Canvas · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canvas LMS REST Blueprint Courses API

14 actions 14 updates phrasing extends openapi/canvas-blueprint-courses-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 14

$.info
$.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}'].get
$.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/associated_courses'].get
$.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/update_associations'].put
$.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/migrations'].get
$.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/migrations'].post
$.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/restrict_item'].put
$.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/unsynced_changes'].get
$.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/migrations/{id}'].get
$.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/migrations/{id}/details'].get
$.paths['/v1/courses/{course_id}/blueprint_subscriptions'].get
$.paths['/v1/courses/{course_id}/blueprint_subscriptions/{subscription_id}/migrations'].get
$.paths['/v1/courses/{course_id}/blueprint_subscriptions/{subscription_id}/migrations/{id}'].get
$.paths['/v1/courses/{course_id}/blueprint_subscriptions/{subscription_id}/migrations/{id}/details'].get

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 Blueprint Courses API
  version: 1.0.0
extends: openapi/canvas-blueprint-courses-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: 13
- target: $.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a blueprint course template
      effect: read
      questions:
      - Is this course set up as a blueprint, and what does its template look like?
      - When was a blueprint course last synced to its associated courses?
      instructions:
      - text: Get blueprint template {template_id} for course {course_id}.
        slots:
          template_id: path.template_id
          course_id: path.course_id
      - text: Show the default blueprint settings for course {course_id} using template {template_id}.
        slots:
          course_id: path.course_id
          template_id: path.template_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/associated_courses'].get
  update:
    x-apievangelist-phrasing:
      intent: List courses that receive a blueprint's updates
      effect: read
      questions:
      - Which courses get updates pushed from my blueprint course?
      - Can I see every course associated with a blueprint template?
      instructions:
      - text: List courses associated with blueprint {course_id} template {template_id}.
        slots:
          course_id: path.course_id
          template_id: path.template_id
      - text: Show which courses receive syncs from blueprint course {course_id} via template {template_id}.
        slots:
          course_id: path.course_id
          template_id: path.template_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/update_associations'].put
  update:
    x-apievangelist-phrasing:
      intent: Add or remove courses linked to a blueprint
      effect: write
      questions:
      - How do I add courses so they inherit content from a blueprint?
      - Can I link a course from a different account to my blueprint?
      - Can I unlink a course from a blueprint so it stops getting updates?
      instructions:
      - text: Add courses {course_ids_to_add} to blueprint {course_id} template {template_id}.
        slots:
          course_ids_to_add: requestBody.course_ids_to_add
          course_id: path.course_id
          template_id: path.template_id
      - text: Remove courses {course_ids_to_remove} from blueprint course {course_id} template {template_id}.
        slots:
          course_ids_to_remove: requestBody.course_ids_to_remove
          course_id: path.course_id
          template_id: path.template_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/migrations'].get
  update:
    x-apievangelist-phrasing:
      intent: List sync migrations pushed from a blueprint
      effect: read
      questions:
      - What syncs has my blueprint course pushed out, most recent first?
      - Can I see the history of blueprint pushes from the blueprint side?
      instructions:
      - text: List migrations for blueprint {course_id} template {template_id}.
        slots:
          course_id: path.course_id
          template_id: path.template_id
      - text: Show the sync history pushed from blueprint course {course_id} template {template_id}.
        slots:
          course_id: path.course_id
          template_id: path.template_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/migrations'].post
  update:
    x-apievangelist-phrasing:
      intent: Push blueprint changes to associated courses
      effect: write
      questions:
      - How do I sync my latest blueprint edits out to all associated courses?
      - Can I notify teachers when I push blueprint updates?
      - Can I run two blueprint syncs at the same time?
      instructions:
      - text: Sync blueprint {course_id} template {template_id} to all associated courses.
        slots:
          course_id: path.course_id
          template_id: path.template_id
      - text: Push blueprint {course_id} template {template_id} changes with the comment {comment} and send notifications.
        slots:
          course_id: path.course_id
          template_id: path.template_id
          comment: requestBody.comment
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/restrict_item'].put
  update:
    x-apievangelist-phrasing:
      intent: Lock or unlock a blueprint item in child courses
      effect: write
      questions:
      - How do I stop teachers in associated courses from editing a blueprint assignment?
      - Can I lock only the content or points of a blueprint item instead of everything?
      instructions:
      - text: Lock {content_type} {content_id} in blueprint {course_id} template {template_id}.
        slots:
          content_type: requestBody.content_type
          content_id: requestBody.content_id
          course_id: path.course_id
          template_id: path.template_id
      - text: Set restricted to {restricted} on blueprint course {course_id} template {template_id} item {content_id}.
        slots:
          restricted: requestBody.restricted
          course_id: path.course_id
          template_id: path.template_id
          content_id: requestBody.content_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/unsynced_changes'].get
  update:
    x-apievangelist-phrasing:
      intent: List blueprint changes not yet synced
      effect: read
      questions:
      - What has changed in my blueprint since the last sync?
      - Which learning objects are waiting to be pushed to associated courses?
      instructions:
      - text: Show unsynced changes in blueprint {course_id} template {template_id}.
        slots:
          course_id: path.course_id
          template_id: path.template_id
      - text: List items edited since the last sync of blueprint course {course_id} template {template_id}.
        slots:
          course_id: path.course_id
          template_id: path.template_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/migrations/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the status of a blueprint sync
      effect: read
      questions:
      - Has the blueprint sync I started finished yet?
      - Can I check the state of one specific blueprint push from the blueprint course?
      instructions:
      - text: Get blueprint migration {id} for course {course_id} template {template_id}.
        slots:
          id: path.id
          course_id: path.course_id
          template_id: path.template_id
      - text: Check the status of sync {id} pushed from blueprint {course_id} template {template_id}.
        slots:
          id: path.id
          course_id: path.course_id
          template_id: path.template_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blueprint_templates/{template_id}/migrations/{id}/details'].get
  update:
    x-apievangelist-phrasing:
      intent: See what changed in a blueprint sync
      effect: read
      questions:
      - Which items were pushed out in a particular blueprint sync?
      - Can I see the exact changes a blueprint migration propagated?
      instructions:
      - text: Show the changes in migration {id} from blueprint {course_id} template {template_id}.
        slots:
          id: path.id
          course_id: path.course_id
          template_id: path.template_id
      - text: List the items propagated by blueprint course {course_id} template {template_id} sync {id}.
        slots:
          course_id: path.course_id
          template_id: path.template_id
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blueprint_subscriptions'].get
  update:
    x-apievangelist-phrasing:
      intent: List a course's blueprint subscriptions
      effect: read
      questions:
      - Is my course receiving content from a blueprint?
      - Which blueprint is a given course subscribed to?
      instructions:
      - text: List blueprint subscriptions for course {course_id}.
        slots:
          course_id: path.course_id
      - text: Show which blueprint course {course_id} is subscribed to.
        slots:
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blueprint_subscriptions/{subscription_id}/migrations'].get
  update:
    x-apievangelist-phrasing:
      intent: List blueprint syncs imported into a course
      effect: read
      questions:
      - What blueprint updates has my associated course received?
      - Can I see blueprint import history from the receiving course's side?
      instructions:
      - text: List blueprint imports into course {course_id} for subscription {subscription_id}.
        slots:
          course_id: path.course_id
          subscription_id: path.subscription_id
      - text: Show the blueprint syncs course {course_id} received through subscription {subscription_id}.
        slots:
          course_id: path.course_id
          subscription_id: path.subscription_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blueprint_subscriptions/{subscription_id}/migrations/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the status of a blueprint import
      effect: read
      questions:
      - Did a specific blueprint update land in my associated course?
      - Can I check one blueprint import's status from the receiving course?
      instructions:
      - text: Get blueprint import {id} for course {course_id} subscription {subscription_id}.
        slots:
          id: path.id
          course_id: path.course_id
          subscription_id: path.subscription_id
      - text: Check whether import {id} into course {course_id} via subscription {subscription_id} completed.
        slots:
          id: path.id
          course_id: path.course_id
          subscription_id: path.subscription_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blueprint_subscriptions/{subscription_id}/migrations/{id}/details'].get
  update:
    x-apievangelist-phrasing:
      intent: See what a blueprint import changed in a course
      effect: read
      questions:
      - What exactly changed in my course from a blueprint import?
      - Can I list the items a blueprint update overwrote in an associated course?
      instructions:
      - text: Show the changes from import {id} in course {course_id} subscription {subscription_id}.
        slots:
          id: path.id
          course_id: path.course_id
          subscription_id: path.subscription_id
      - text: List items course {course_id} received in blueprint import {id} through subscription {subscription_id}.
        slots:
          course_id: path.course_id
          id: path.id
          subscription_id: path.subscription_id
      method: generated
      generated: '2026-10-01'