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