Canvas · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canvas LMS REST Media Objects API

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

What the actions change

x-apievangelist-phrasing

Targets 13

$.info
$.paths['/v1/media_objects/{media_object_id}/media_tracks'].get
$.paths['/v1/media_objects/{media_object_id}/media_tracks'].put
$.paths['/v1/media_attachments/{attachment_id}/media_tracks'].get
$.paths['/v1/media_attachments/{attachment_id}/media_tracks'].put
$.paths['/v1/media_objects'].get
$.paths['/v1/courses/{course_id}/media_objects'].get
$.paths['/v1/groups/{group_id}/media_objects'].get
$.paths['/v1/media_attachments'].get
$.paths['/v1/courses/{course_id}/media_attachments'].get
$.paths['/v1/groups/{group_id}/media_attachments'].get
$.paths['/v1/media_objects/{media_object_id}'].put
$.paths['/v1/media_attachments/{attachment_id}'].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 Canvas LMS REST Media Objects API
  version: 1.0.0
extends: openapi/canvas-media-objects-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: 12
- target: $.paths['/v1/media_objects/{media_object_id}/media_tracks'].get
  update:
    x-apievangelist-phrasing:
      intent: List captions on a media object
      effect: read
      questions:
      - What caption or subtitle tracks does a media object have?
      - Which languages of captions exist for a recorded video by media object ID?
      instructions:
      - text: List the media tracks for media object {media_object_id}.
        slots:
          media_object_id: path.media_object_id
      - text: Show captions on media object {media_object_id} including {include}.
        slots:
          media_object_id: path.media_object_id
          include: query.include
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/media_objects/{media_object_id}/media_tracks'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace caption tracks on a media object
      effect: destructive
      questions:
      - How do I replace all the subtitles on a media object?
      - Will tracks I leave out be deleted when I update a media object's captions?
      instructions:
      - text: Replace the media tracks on media object {media_object_id}.
        slots:
          media_object_id: path.media_object_id
      - text: Update captions on media object {media_object_id} and return {include}.
        slots:
          media_object_id: path.media_object_id
          include: requestBody.include
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/media_attachments/{attachment_id}/media_tracks'].get
  update:
    x-apievangelist-phrasing:
      intent: List captions on a media attachment
      effect: read
      questions:
      - What caption tracks are attached to an uploaded media file?
      - Can I list subtitles for a media attachment by its attachment ID?
      instructions:
      - text: List the media tracks for attachment {attachment_id}.
        slots:
          attachment_id: path.attachment_id
      - text: Show captions on media attachment {attachment_id} including {include}.
        slots:
          attachment_id: path.attachment_id
          include: query.include
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/media_attachments/{attachment_id}/media_tracks'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace caption tracks on a media attachment
      effect: destructive
      questions:
      - How do I swap out the subtitles on a media attachment?
      - Does updating an attachment's tracks remove ones I don't list?
      instructions:
      - text: Replace the media tracks on attachment {attachment_id}.
        slots:
          attachment_id: path.attachment_id
      - text: Update captions on media attachment {attachment_id} and return {include}.
        slots:
          attachment_id: path.attachment_id
          include: requestBody.include
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/media_objects'].get
  update:
    x-apievangelist-phrasing:
      intent: List media objects I created
      effect: read
      questions:
      - Which videos and audio recordings have I uploaded?
      - Can I sort my own media objects by title or date?
      instructions:
      - text: List the media objects I created.
      - text: List my media objects sorted by {sort} in {order} order.
        slots:
          sort: query.sort
          order: query.order
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/media_objects'].get
  update:
    x-apievangelist-phrasing:
      intent: List media objects in a course
      effect: read
      questions:
      - What recordings are associated with my course?
      - Can I list a course's media objects without their source data?
      instructions:
      - text: List the media objects in course {course_id}.
        slots:
          course_id: path.course_id
      - text: List course {course_id}'s media objects sorted by {sort}.
        slots:
          course_id: path.course_id
          sort: query.sort
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/media_objects'].get
  update:
    x-apievangelist-phrasing:
      intent: List media objects in a group
      effect: read
      questions:
      - What videos have been added to a student group?
      - Can I list a group's media objects in title order?
      instructions:
      - text: List the media objects in group {group_id}.
        slots:
          group_id: path.group_id
      - text: List group {group_id}'s media objects sorted by {sort}.
        slots:
          group_id: path.group_id
          sort: query.sort
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/media_attachments'].get
  update:
    x-apievangelist-phrasing:
      intent: List my media attachments
      effect: read
      questions:
      - Which media files have I uploaded as attachments?
      - Can I list my media attachments while excluding source details?
      instructions:
      - text: List my media attachments.
      - text: List my media attachments ordered {order} by {sort}.
        slots:
          order: query.order
          sort: query.sort
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/media_attachments'].get
  update:
    x-apievangelist-phrasing:
      intent: List media attachments in a course
      effect: read
      questions:
      - What uploaded media attachments belong to a course?
      - Can I sort a course's media attachments by creation date?
      instructions:
      - text: List the media attachments in course {course_id}.
        slots:
          course_id: path.course_id
      - text: List course {course_id}'s media attachments ordered {order}.
        slots:
          course_id: path.course_id
          order: query.order
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/media_attachments'].get
  update:
    x-apievangelist-phrasing:
      intent: List media attachments in a group
      effect: read
      questions:
      - Which media attachments has a group uploaded?
      - Can I sort a group's media attachments?
      instructions:
      - text: List the media attachments in group {group_id}.
        slots:
          group_id: path.group_id
      - text: List group {group_id}'s media attachments ordered {order}.
        slots:
          group_id: path.group_id
          order: query.order
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/media_objects/{media_object_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Rename a media object
      effect: write
      questions:
      - How do I change the title of a recorded video by media object ID?
      - Can I restrict whether viewers see the rolling transcript on a media object?
      instructions:
      - text: Rename media object {media_object_id} to {user_entered_title}.
        slots:
          media_object_id: path.media_object_id
          user_entered_title: requestBody.user_entered_title
      - text: Set viewer restrictions on media object {media_object_id} to {viewer_restrictions}.
        slots:
          media_object_id: path.media_object_id
          viewer_restrictions: requestBody.viewer_restrictions
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/media_attachments/{attachment_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Rename a media attachment
      effect: write
      questions:
      - How do I retitle an uploaded media attachment?
      - Can I set viewer restrictions on a media attachment?
      instructions:
      - text: Rename media attachment {attachment_id} to {user_entered_title}.
        slots:
          attachment_id: path.attachment_id
          user_entered_title: requestBody.user_entered_title
      - text: Set viewer restrictions on attachment {attachment_id} to {viewer_restrictions}.
        slots:
          attachment_id: path.attachment_id
          viewer_restrictions: requestBody.viewer_restrictions
      method: generated
      generated: '2026-10-01'