Canvas · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canvas LMS REST Learning Object Dates API

12 actions 12 updates phrasing extends openapi/canvas-learning-object-dates-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 12

$.info
$.paths['/v1/courses/{course_id}/modules/{context_module_id}/date_details'].get
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/date_details'].get
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/date_details'].put
$.paths['/v1/courses/{course_id}/quizzes/{quiz_id}/date_details'].get
$.paths['/v1/courses/{course_id}/quizzes/{quiz_id}/date_details'].put
$.paths['/v1/courses/{course_id}/discussion_topics/{discussion_topic_id}/date_details'].get
$.paths['/v1/courses/{course_id}/discussion_topics/{discussion_topic_id}/date_details'].put
$.paths['/v1/courses/{course_id}/pages/{url_or_id}/date_details'].get
$.paths['/v1/courses/{course_id}/pages/{url_or_id}/date_details'].put
$.paths['/v1/courses/{course_id}/files/{attachment_id}/date_details'].get
$.paths['/v1/courses/{course_id}/files/{attachment_id}/date_details'].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 Learning Object Dates API
  version: 1.0.0
extends: openapi/canvas-learning-object-dates-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: 11
- target: $.paths['/v1/courses/{course_id}/modules/{context_module_id}/date_details'].get
  update:
    x-apievangelist-phrasing:
      intent: Get date details for a module
      effect: read
      questions:
      - What availability dates and overrides apply to a course module?
      - Can I see which sections get a module on a different schedule?
      instructions:
      - text: Show the date details for module {context_module_id} in course {course_id}.
        slots:
          context_module_id: path.context_module_id
          course_id: path.course_id
      - text: List the overrides attached to module {context_module_id} in course {course_id}.
        slots:
          context_module_id: path.context_module_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/date_details'].get
  update:
    x-apievangelist-phrasing:
      intent: Get date details for an assignment
      effect: read
      questions:
      - Where can I see an assignment's base dates together with every override?
      - Does the assignment date summary say whether it is only visible to overridden students?
      instructions:
      - text: Show the date details for assignment {assignment_id} in course {course_id}.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Pull assignment {assignment_id}'s due, unlock and lock dates plus overrides in course {course_id}.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/date_details'].put
  update:
    x-apievangelist-phrasing:
      intent: Update date details for an assignment
      effect: write
      questions:
      - Can I reset an assignment's dates and its overrides together in one request?
      - Is it possible to change the peer review due date along with the assignment dates?
      instructions:
      - text: Set assignment {assignment_id} in course {course_id} to be due {due_at} via its date details.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
          due_at: requestBody.due_at
      - text: Give assignment {assignment_id} in course {course_id} peer reviews due {peer_review_due_at}.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
          peer_review_due_at: requestBody.peer_review[due_at]
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/quizzes/{quiz_id}/date_details'].get
  update:
    x-apievangelist-phrasing:
      intent: Get date details for a quiz
      effect: read
      questions:
      - When does a quiz open, close and come due, including any exceptions?
      - Can I list the overrides on a classic quiz alongside its dates?
      instructions:
      - text: Show the date details for quiz {quiz_id} in course {course_id}.
        slots:
          quiz_id: path.quiz_id
          course_id: path.course_id
      - text: Get the availability window and overrides for quiz {quiz_id} in course {course_id}.
        slots:
          quiz_id: path.quiz_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/quizzes/{quiz_id}/date_details'].put
  update:
    x-apievangelist-phrasing:
      intent: Update date details for a quiz
      effect: write
      questions:
      - Can I move a quiz's open and close times in a single update?
      - How do I restrict a quiz to only the students who have overrides?
      instructions:
      - text: Make quiz {quiz_id} in course {course_id} available from {unlock_at} until {lock_at}.
        slots:
          quiz_id: path.quiz_id
          course_id: path.course_id
          unlock_at: requestBody.unlock_at
          lock_at: requestBody.lock_at
      - text: 'Set quiz {quiz_id} in course {course_id} visible only to overrides: {only_visible_to_overrides}.'
        slots:
          quiz_id: path.quiz_id
          course_id: path.course_id
          only_visible_to_overrides: requestBody.only_visible_to_overrides
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{discussion_topic_id}/date_details'].get
  update:
    x-apievangelist-phrasing:
      intent: Get date details for a discussion
      effect: read
      questions:
      - What are the due and lock dates on a graded discussion?
      - Which students or sections have a different schedule for a discussion topic?
      instructions:
      - text: Show the date details for discussion {discussion_topic_id} in course {course_id}.
        slots:
          discussion_topic_id: path.discussion_topic_id
          course_id: path.course_id
      - text: Get the overrides on discussion topic {discussion_topic_id} in course {course_id}.
        slots:
          discussion_topic_id: path.discussion_topic_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{discussion_topic_id}/date_details'].put
  update:
    x-apievangelist-phrasing:
      intent: Update date details for a discussion
      effect: write
      questions:
      - Can I change when a discussion closes for replies?
      - Is there a way to update a discussion's overrides and base dates together?
      instructions:
      - text: Lock discussion {discussion_topic_id} in course {course_id} at {lock_at}.
        slots:
          discussion_topic_id: path.discussion_topic_id
          course_id: path.course_id
          lock_at: requestBody.lock_at
      - text: Replace the overrides on discussion {discussion_topic_id} in course {course_id} with {assignment_overrides}.
        slots:
          discussion_topic_id: path.discussion_topic_id
          course_id: path.course_id
          assignment_overrides: requestBody.assignment_overrides
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/pages/{url_or_id}/date_details'].get
  update:
    x-apievangelist-phrasing:
      intent: Get date details for a wiki page
      effect: read
      questions:
      - When does a course page become available to students?
      - Can I look up a page's availability by its URL slug instead of its id?
      instructions:
      - text: Show the date details for page {url_or_id} in course {course_id}.
        slots:
          url_or_id: path.url_or_id
          course_id: path.course_id
      - text: Get the availability dates and overrides of wiki page {url_or_id} in course {course_id}.
        slots:
          url_or_id: path.url_or_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/pages/{url_or_id}/date_details'].put
  update:
    x-apievangelist-phrasing:
      intent: Update date details for a wiki page
      effect: write
      questions:
      - Can I schedule a course page to unlock on a certain date?
      - How do I give one section earlier access to a wiki page?
      instructions:
      - text: Unlock page {url_or_id} in course {course_id} at {unlock_at}.
        slots:
          url_or_id: path.url_or_id
          course_id: path.course_id
          unlock_at: requestBody.unlock_at
      - text: Set the overrides on wiki page {url_or_id} in course {course_id} to {assignment_overrides}.
        slots:
          url_or_id: path.url_or_id
          course_id: path.course_id
          assignment_overrides: requestBody.assignment_overrides
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/files/{attachment_id}/date_details'].get
  update:
    x-apievangelist-phrasing:
      intent: Get date details for a course file
      effect: read
      questions:
      - When is a course file available for students to download?
      - Are there overrides on who can access an uploaded file and when?
      instructions:
      - text: Show the date details for file {attachment_id} in course {course_id}.
        slots:
          attachment_id: path.attachment_id
          course_id: path.course_id
      - text: Get availability dates and overrides of course file {attachment_id} in course {course_id}.
        slots:
          attachment_id: path.attachment_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/files/{attachment_id}/date_details'].put
  update:
    x-apievangelist-phrasing:
      intent: Update date details for a course file
      effect: write
      questions:
      - Can I hide a file until a certain date and then lock it again later?
      - Is there a way to set different file availability for specific students?
      instructions:
      - text: Make file {attachment_id} in course {course_id} available from {unlock_at} to {lock_at}.
        slots:
          attachment_id: path.attachment_id
          course_id: path.course_id
          unlock_at: requestBody.unlock_at
          lock_at: requestBody.lock_at
      - text: Apply overrides {assignment_overrides} to file {attachment_id} in course {course_id}.
        slots:
          attachment_id: path.attachment_id
          course_id: path.course_id
          assignment_overrides: requestBody.assignment_overrides
      method: generated
      generated: '2026-10-01'