Canvas · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canvas LMS REST Enrollments API

15 actions 15 updates phrasing extends openapi/canvas-enrollments-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 15

$.info
$.paths['/v1/courses/{course_id}/enrollments'].get
$.paths['/v1/courses/{course_id}/enrollments'].post
$.paths['/v1/sections/{section_id}/enrollments'].get
$.paths['/v1/sections/{section_id}/enrollments'].post
$.paths['/v1/users/{user_id}/enrollments'].get
$.paths['/v1/accounts/{account_id}/enrollments/{id}'].get
$.paths['/v1/accounts/{account_id}/bulk_enrollment'].post
$.paths['/v1/courses/{course_id}/enrollments/{id}'].delete
$.paths['/v1/courses/{course_id}/enrollments/{id}/accept'].post
$.paths['/v1/courses/{course_id}/enrollments/{id}/reject'].post
$.paths['/v1/courses/{course_id}/enrollments/{id}/reactivate'].put
$.paths['/v1/courses/{course_id}/users/{user_id}/last_attended'].put
$.paths['/v1/users/{user_id}/temporary_enrollment_status'].get
$.paths['/v1/temporary_enrollment_status'].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 Enrollments API
  version: 1.0.0
extends: openapi/canvas-enrollments-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: 14
- target: $.paths['/v1/courses/{course_id}/enrollments'].get
  update:
    x-apievangelist-phrasing:
      intent: List enrollments in a course
      effect: read
      questions:
      - Who is enrolled in my course, students and teachers alike?
      - Can I list only the active student enrollments in a course?
      instructions:
      - text: List the enrollments in course {course_id}.
        slots:
          course_id: path.course_id
      - text: List {type} enrollments in course {course_id} with state {state}.
        slots:
          type: query.type
          course_id: path.course_id
          state: query.state
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/enrollments'].post
  update:
    x-apievangelist-phrasing:
      intent: Enroll a user in a course
      effect: write
      questions:
      - How do I add a student to a course?
      - Can I enroll someone as a teacher and skip the invitation?
      instructions:
      - text: Enroll user {user_id} in course {course_id} as a {type}.
        slots:
          user_id: requestBody.enrollment[user_id]
          course_id: path.course_id
          type: requestBody.enrollment[type]
      - text: Add user {user_id} to course {course_id} as {type} with state {enrollment_state}.
        slots:
          user_id: requestBody.enrollment[user_id]
          course_id: path.course_id
          type: requestBody.enrollment[type]
          enrollment_state: requestBody.enrollment[enrollment_state]
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/enrollments'].get
  update:
    x-apievangelist-phrasing:
      intent: List enrollments in a section
      effect: read
      questions:
      - Who is enrolled in a particular course section?
      - Can I filter a section's roster by role?
      instructions:
      - text: List the enrollments in section {section_id}.
        slots:
          section_id: path.section_id
      - text: List {role} enrollments in section {section_id}.
        slots:
          role: query.role
          section_id: path.section_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/enrollments'].post
  update:
    x-apievangelist-phrasing:
      intent: Enroll a user in a section
      effect: write
      questions:
      - How do I put a student into a specific section?
      - Can I enroll a TA directly into one section of a course?
      instructions:
      - text: Enroll user {user_id} in section {section_id} as a {type}.
        slots:
          user_id: requestBody.enrollment[user_id]
          section_id: path.section_id
          type: requestBody.enrollment[type]
      - text: Add user {user_id} to section {section_id} as {type} and notify them by setting notify to {notify}.
        slots:
          user_id: requestBody.enrollment[user_id]
          section_id: path.section_id
          type: requestBody.enrollment[type]
          notify: requestBody.enrollment[notify]
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/enrollments'].get
  update:
    x-apievangelist-phrasing:
      intent: List a user's enrollments
      effect: read
      questions:
      - Which courses is a particular user enrolled in?
      - Can I see a student's enrollments for one grading period?
      instructions:
      - text: List all enrollments for user {user_id}.
        slots:
          user_id: path.user_id
      - text: List user {user_id}'s enrollments with state {state}.
        slots:
          user_id: path.user_id
          state: query.state
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/enrollments/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an enrollment by ID
      effect: read
      questions:
      - What are the details of one enrollment record?
      - Can I look up a single enrollment by its ID within an account?
      instructions:
      - text: Get enrollment {id} in account {account_id}.
        slots:
          id: path.id
          account_id: path.account_id
      - text: Show me enrollment record {id} from account {account_id}.
        slots:
          id: path.id
          account_id: path.account_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/bulk_enrollment'].post
  update:
    x-apievangelist-phrasing:
      intent: Bulk enroll users across courses
      effect: write
      questions:
      - How do I enroll a list of users into several courses at once?
      - Can I bulk-enroll people with a start and end date?
      instructions:
      - text: Enroll users {user_ids} into courses {course_ids} in account {account_id}.
        slots:
          user_ids: requestBody.user_ids
          course_ids: requestBody.course_ids
          account_id: path.account_id
      - text: Bulk enroll {user_ids} as {enrollment_type} in courses {course_ids} under account {account_id}.
        slots:
          user_ids: requestBody.user_ids
          enrollment_type: requestBody.enrollment_type
          course_ids: requestBody.course_ids
          account_id: path.account_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/enrollments/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Conclude, deactivate or delete an enrollment
      effect: destructive
      questions:
      - How do I remove a student from a course?
      - What happens if I deactivate an enrollment instead of concluding it?
      instructions:
      - text: Conclude enrollment {id} in course {course_id}.
        slots:
          id: path.id
          course_id: path.course_id
      - text: Apply task {task} to enrollment {id} in course {course_id}.
        slots:
          task: query.task
          id: path.id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/enrollments/{id}/accept'].post
  update:
    x-apievangelist-phrasing:
      intent: Accept a course invitation
      effect: write
      questions:
      - How do I accept a pending invitation to join a course?
      - Can I accept my course invite through the API?
      instructions:
      - text: Accept my invitation {id} to course {course_id}.
        slots:
          id: path.id
          course_id: path.course_id
      - text: Join course {course_id} by accepting pending enrollment {id}.
        slots:
          course_id: path.course_id
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/enrollments/{id}/reject'].post
  update:
    x-apievangelist-phrasing:
      intent: Decline a course invitation
      effect: destructive
      questions:
      - How do I decline an invitation to a course?
      - Can I turn down a pending course invite?
      instructions:
      - text: Reject my invitation {id} to course {course_id}.
        slots:
          id: path.id
          course_id: path.course_id
      - text: Decline pending enrollment {id} in course {course_id}.
        slots:
          id: path.id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/enrollments/{id}/reactivate'].put
  update:
    x-apievangelist-phrasing:
      intent: Reactivate an inactive enrollment
      effect: write
      questions:
      - How do I bring back a student whose enrollment was deactivated?
      - Can an inactive enrollment be turned back on?
      instructions:
      - text: Reactivate enrollment {id} in course {course_id}.
        slots:
          id: path.id
          course_id: path.course_id
      - text: Make inactive enrollment {id} in course {course_id} active again.
        slots:
          id: path.id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/users/{user_id}/last_attended'].put
  update:
    x-apievangelist-phrasing:
      intent: Record a student's last attended date
      effect: write
      questions:
      - How do I record the last day a student attended my course?
      - Can I set a last attendance date on a student's enrollment?
      instructions:
      - text: Set user {user_id}'s last attended date in course {course_id} to {date}.
        slots:
          user_id: path.user_id
          course_id: path.course_id
          date: requestBody.date
      - text: Record that student {user_id} last attended course {course_id} on {date}.
        slots:
          user_id: path.user_id
          course_id: path.course_id
          date: requestBody.date
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/temporary_enrollment_status'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a user's temporary enrollment status
      effect: read
      questions:
      - Is this user giving or receiving a temporary enrollment?
      - Can I see whether someone is a temporary enrollment provider or recipient?
      instructions:
      - text: Show the temporary enrollment status for user {user_id}.
        slots:
          user_id: path.user_id
      - text: Check user {user_id}'s temporary enrollment status in account {account_id}.
        slots:
          user_id: path.user_id
          account_id: query.account_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/temporary_enrollment_status'].get
  update:
    x-apievangelist-phrasing:
      intent: Check temporary enrollment status for many users
      effect: read
      questions:
      - Can I check temporary enrollment status for a whole list of users at once?
      - What's the limit on users per bulk temporary enrollment check?
      instructions:
      - text: Get temporary enrollment statuses for users {user_ids}.
        slots:
          user_ids: query.user_ids
      - text: Check temporary enrollment status in bulk for {user_ids} in account {account_id}.
        slots:
          user_ids: query.user_ids
          account_id: query.account_id
      method: generated
      generated: '2026-10-01'