Twilio · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Twilio Compositions API

11 actions 11 updates phrasing extends openapi/twilio-compositions-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Twilio's API. It is a proposal applied on top of the contract, not a document Twilio publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 11

$.info
$.paths['/Compositions'].get
$.paths['/Compositions'].post
$.paths['/Compositions/{CompositionSid}'].get
$.paths['/Compositions/{CompositionSid}'].delete
$.paths['/CompositionSettings/Default'].get
$.paths['/CompositionSettings/Default'].post
$.paths['/v1/Compositions/{Sid}'].get
$.paths['/v1/Compositions/{Sid}'].delete
$.paths['/v1/Compositions'].get
$.paths['/v1/Compositions'].post

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 Twilio Compositions API
  version: 1.0.0
extends: openapi/twilio-compositions-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 10
- target: $.paths['/Compositions'].get
  update:
    x-apievangelist-phrasing:
      intent: List compositions (legacy unversioned endpoint)
      effect: read
      questions:
      - Using the older unversioned compositions path, which video compositions are still processing?
      - Can the legacy compositions list be narrowed to one video room?
      instructions:
      - text: Via the legacy unversioned endpoint, list compositions with status {status}.
        slots:
          status: query.Status
      - text: Via the legacy unversioned endpoint, list compositions made from room {room}.
        slots:
          room: query.RoomSid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/Compositions'].post
  update:
    x-apievangelist-phrasing:
      intent: Compose room recordings (legacy unversioned endpoint)
      effect: write
      questions:
      - On the older unversioned endpoint, how do I merge a room's recordings into one media file?
      - Can the legacy create endpoint set a layout and resolution like 1280x720?
      instructions:
      - text: Via the legacy unversioned endpoint, compose the recordings of room {room}.
        slots:
          room: requestBody.RoomSid
      - text: Via the legacy unversioned endpoint, compose room {room} at {resolution} in {format}.
        slots:
          room: requestBody.RoomSid
          resolution: requestBody.Resolution
          format: requestBody.Format
      method: generated
      generated: '2026-09-26'
- target: $.paths['/Compositions/{CompositionSid}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a composition (legacy unversioned endpoint)
      effect: read
      questions:
      - Through the older unversioned path, what is the status of one composition?
      - Can I fetch a single composition from the legacy endpoint?
      instructions:
      - text: Via the legacy unversioned endpoint, get composition {composition}.
        slots:
          composition: path.CompositionSid
      - text: Using the older unversioned path, show composition {composition}.
        slots:
          composition: path.CompositionSid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/Compositions/{CompositionSid}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a composition (legacy unversioned endpoint)
      effect: destructive
      questions:
      - Through the older unversioned path, how do I delete a composition?
      - Can the legacy endpoint remove a composition I no longer need?
      instructions:
      - text: Via the legacy unversioned endpoint, delete composition {composition}.
        slots:
          composition: path.CompositionSid
      - text: Using the older unversioned path, remove composition {composition}.
        slots:
          composition: path.CompositionSid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/CompositionSettings/Default'].get
  update:
    x-apievangelist-phrasing:
      intent: Read default composition storage settings
      effect: read
      questions:
      - Where are my compositions being stored by default, and is encryption on?
      - Which S3 bucket and AWS credentials do my composition settings point to?
      instructions:
      - text: Show my default composition settings.
      - text: Check whether external S3 storage and encryption are enabled for compositions.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/CompositionSettings/Default'].post
  update:
    x-apievangelist-phrasing:
      intent: Configure where compositions are stored
      effect: write
      questions:
      - How do I send finished compositions to my own S3 bucket?
      - Can I turn on encryption for stored compositions with my own key?
      instructions:
      - text: Save composition settings {name} storing to {s3_url} with AWS credentials {aws_credentials}.
        slots:
          name: requestBody.FriendlyName
          s3_url: requestBody.AwsS3Url
          aws_credentials: requestBody.AwsCredentialsSid
      - text: Set composition settings {name} to encrypt with key {encryption_key}.
        slots:
          name: requestBody.FriendlyName
          encryption_key: requestBody.EncryptionKeySid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/Compositions/{Sid}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a recording composition
      effect: read
      questions:
      - What is the status and duration of a specific recording composition?
      - Is a given v1 composition finished and ready to download?
      instructions:
      - text: Get v1 composition {composition}.
        slots:
          composition: path.Sid
      - text: Show the details of recording composition {composition} from the v1 API.
        slots:
          composition: path.Sid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/Compositions/{Sid}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a recording composition
      effect: destructive
      questions:
      - How do I permanently delete a v1 recording composition?
      - Can I free storage by removing a composition I have already downloaded?
      instructions:
      - text: Delete v1 composition {composition}.
        slots:
          composition: path.Sid
      - text: Permanently remove recording composition {composition} using the v1 API.
        slots:
          composition: path.Sid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/Compositions'].get
  update:
    x-apievangelist-phrasing:
      intent: List recording compositions
      effect: read
      questions:
      - Which compositions were created in a given date range?
      - What recording compositions exist for one room, filtered by status?
      instructions:
      - text: List v1 compositions created after {after} and before {before}.
        slots:
          after: query.DateCreatedAfter
          before: query.DateCreatedBefore
      - text: List v1 compositions for room {room} with status {status}.
        slots:
          room: query.RoomSid
          status: query.Status
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/Compositions'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a recording composition
      effect: write
      questions:
      - With the v1 API, how do I turn a video room's recordings into a single file?
      - Is it possible to exclude certain audio tracks from a v1 composition?
      instructions:
      - text: Create a v1 composition of room {room}.
        slots:
          room: requestBody.RoomSid
      - text: Create a v1 composition of room {room} in {format}, notifying {callback_url} when done.
        slots:
          room: requestBody.RoomSid
          format: requestBody.Format
          callback_url: requestBody.StatusCallback
      - text: Compose room {room} with the v1 API, leaving out audio sources {excluded}.
        slots:
          room: requestBody.RoomSid
          excluded: requestBody.AudioSourcesExcluded
      method: generated
      generated: '2026-09-26'