# 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 Discussion Topics API version: 1.0.0 extends: openapi/canvas-discussion-topics-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: 58 - target: $.paths['/v1/courses/{course_id}/discussion_topics'].get update: x-apievangelist-phrasing: intent: List a course's discussion topics effect: read questions: - What discussion topics are open in my Canvas course right now? - Can I filter a course's discussions to only unread ones or only announcements? - Is there a way to search course discussion threads by title keyword? instructions: - text: List the discussion topics in course {course_id}. slots: course_id: path.course_id - text: Show only the announcements in course {course_id}, newest first. slots: course_id: path.course_id - text: Search course {course_id} discussions for {search_term}. slots: course_id: path.course_id search_term: query.search_term method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics'].post update: x-apievangelist-phrasing: intent: Start a new discussion in a course effect: write questions: - How do I post a new discussion prompt for my whole class? - Can a new course discussion be scheduled to appear later or require students to post first? instructions: - text: Create a discussion titled {title} in course {course_id}. slots: title: requestBody.title course_id: path.course_id - text: Post a course announcement in {course_id} with the message {message}. slots: course_id: path.course_id message: requestBody.message method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics'].get update: x-apievangelist-phrasing: intent: List a group's discussion topics effect: read questions: - Which discussions exist inside my student group's space? - Can I see only the pinned or locked threads in a group? instructions: - text: List all discussion threads in group {group_id}. slots: group_id: path.group_id - text: Find group {group_id} threads mentioning {search_term}. slots: group_id: path.group_id search_term: query.search_term method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics'].post update: x-apievangelist-phrasing: intent: Start a new discussion in a group effect: write questions: - Can students open a new thread just for their project group? - What does it take to post a discussion inside a group rather than the course? instructions: - text: Open a new group thread in {group_id} called {title}. slots: group_id: path.group_id title: requestBody.title - text: Start a discussion for group {group_id} that says {message}. slots: group_id: path.group_id message: requestBody.message method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}'].get update: x-apievangelist-phrasing: intent: Get one course discussion topic effect: read questions: - How can I pull the settings and details of a single course discussion? - Where do I see whether a specific class discussion is locked or graded? instructions: - text: Get discussion topic {topic_id} from course {course_id}. slots: topic_id: path.topic_id course_id: path.course_id - text: Show me the details of course {course_id} topic {topic_id}. slots: course_id: path.course_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}'].put update: x-apievangelist-phrasing: intent: Edit a course discussion topic effect: write questions: - Can I rename or re-lock a class discussion after it's already posted? - How do I pin an existing course discussion to the top? instructions: - text: Rename topic {topic_id} in course {course_id} to {title}. slots: topic_id: path.topic_id course_id: path.course_id title: requestBody.title - text: Pin course {course_id} discussion {topic_id}. slots: course_id: path.course_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}'].delete update: x-apievangelist-phrasing: intent: Delete a course discussion topic effect: destructive questions: - Does deleting a graded class discussion also remove its assignment? - Can I permanently remove a discussion from my course? instructions: - text: Delete discussion {topic_id} from course {course_id}. slots: topic_id: path.topic_id course_id: path.course_id - text: Remove course {course_id} topic {topic_id} and its assignment. slots: course_id: path.course_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}'].get update: x-apievangelist-phrasing: intent: Get one group discussion topic effect: read questions: - Can I look up one particular thread in a student group? - What settings does a given group discussion have? instructions: - text: Fetch group {group_id} discussion {topic_id}. slots: group_id: path.group_id topic_id: path.topic_id - text: Look up thread {topic_id} in group {group_id}. slots: topic_id: path.topic_id group_id: path.group_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}'].put update: x-apievangelist-phrasing: intent: Edit a group discussion topic effect: write questions: - Can a group discussion's title or message be changed after posting? - Is it possible to lock a thread inside a student group? instructions: - text: Change the message of group {group_id} thread {topic_id} to {message}. slots: group_id: path.group_id topic_id: path.topic_id message: requestBody.message - text: Lock group {group_id} discussion {topic_id} on {lock_at}. slots: group_id: path.group_id topic_id: path.topic_id lock_at: requestBody.lock_at method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}'].delete update: x-apievangelist-phrasing: intent: Delete a group discussion topic effect: destructive questions: - How do I get rid of a thread in a student group? - Can a group discussion be deleted for good? instructions: - text: Delete thread {topic_id} from group {group_id}. slots: topic_id: path.topic_id group_id: path.group_id - text: Remove group {group_id} discussion {topic_id}. slots: group_id: path.group_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/reorder'].post update: x-apievangelist-phrasing: intent: Reorder pinned discussions in a course effect: write questions: - Can I change the order of the pinned discussions at the top of my course? - Do I have to include every pinned topic when reordering course discussions? instructions: - text: Reorder the pinned discussions in course {course_id} as {order}. slots: course_id: path.course_id order: requestBody.order - text: 'Put course {course_id} pinned topics in this sequence: {order}.' slots: course_id: path.course_id order: requestBody.order method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/reorder'].post update: x-apievangelist-phrasing: intent: Reorder pinned discussions in a group effect: write questions: - Is there a way to rearrange pinned threads in a group space? - How are pinned group discussions sorted, and can I set the order? instructions: - text: Arrange pinned threads in group {group_id} in the order {order}. slots: group_id: path.group_id order: requestBody.order - text: Set group {group_id} pinned discussion order to {order}. slots: group_id: path.group_id order: requestBody.order method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{id}'].put update: x-apievangelist-phrasing: intent: Edit a post in a course discussion effect: write questions: - Can I edit a reply I already posted in a class discussion? - Who is allowed to change someone's post in a course discussion? instructions: - text: Edit entry {id} in course {course_id} topic {topic_id} to say {message}. slots: id: path.id course_id: path.course_id topic_id: path.topic_id message: requestBody.message - text: Fix the text of my course discussion post {id} under topic {topic_id} in {course_id}. slots: id: path.id topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a post from a course discussion effect: destructive questions: - Can an instructor remove an inappropriate post from a class discussion? - What permissions do I need to delete a course discussion entry? instructions: - text: Delete entry {id} from topic {topic_id} in course {course_id}. slots: id: path.id topic_id: path.topic_id course_id: path.course_id - text: Remove post {id} from course {course_id} discussion {topic_id}. slots: id: path.id course_id: path.course_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries/{id}'].put update: x-apievangelist-phrasing: intent: Edit a post in a group discussion effect: write questions: - Is editing my own message in a group thread possible? - Can a group member revise what they wrote in a group discussion? instructions: - text: Update group {group_id} post {id} in thread {topic_id} with {message}. slots: group_id: path.group_id id: path.id topic_id: path.topic_id message: requestBody.message - text: Revise my entry {id} in group {group_id} discussion {topic_id}. slots: id: path.id group_id: path.group_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a post from a group discussion effect: destructive questions: - How do I take down a message someone posted in a group thread? - Can I delete my own post from a group discussion? instructions: - text: Delete group {group_id} entry {id} from thread {topic_id}. slots: group_id: path.group_id id: path.id topic_id: path.topic_id - text: Take down post {id} in group {group_id} topic {topic_id}. slots: id: path.id group_id: path.group_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/summaries'].get update: x-apievangelist-phrasing: intent: Get the last AI summary of a course discussion effect: read questions: - Can I see the most recent AI-generated summary of a class discussion? - What prompt did I use for the last summary of this course discussion? instructions: - text: Show the last summary generated for course {course_id} topic {topic_id}. slots: course_id: path.course_id topic_id: path.topic_id - text: Fetch the latest discussion summary and my prompt for {topic_id} in {course_id}. slots: topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/summaries'].post update: x-apievangelist-phrasing: intent: Generate an AI summary of a course discussion effect: write questions: - Can Canvas summarize a long class discussion for me? - Is it possible to steer a course discussion summary with my own focus prompt? instructions: - text: Summarize discussion {topic_id} in course {course_id}. slots: topic_id: path.topic_id course_id: path.course_id - text: Generate a summary of course {course_id} topic {topic_id} focused on {userInput}. slots: course_id: path.course_id topic_id: path.topic_id userInput: requestBody.userInput method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/summaries'].get update: x-apievangelist-phrasing: intent: Get the last AI summary of a group discussion effect: read questions: - Where can I find the previous summary made for a group thread? - Was a summary already produced for this group discussion? instructions: - text: Retrieve the previous summary for group {group_id} thread {topic_id}. slots: group_id: path.group_id topic_id: path.topic_id - text: Get the most recent group {group_id} summary of topic {topic_id}. slots: group_id: path.group_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/summaries'].post update: x-apievangelist-phrasing: intent: Generate an AI summary of a group discussion effect: write questions: - Can I get a quick recap of what my project group discussed? - Does the group thread summary report token usage? instructions: - text: Create a recap of group {group_id} thread {topic_id}. slots: group_id: path.group_id topic_id: path.topic_id - text: Summarize group {group_id} discussion {topic_id} with emphasis on {userInput}. slots: group_id: path.group_id topic_id: path.topic_id userInput: requestBody.userInput method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/summaries/disable'].put update: x-apievangelist-phrasing: intent: Turn off summaries for a course discussion effect: write questions: - Can I switch off AI summaries on one class discussion? - Is the endpoint for disabling course discussion summaries deprecated? instructions: - text: Disable the summary on course {course_id} topic {topic_id}. slots: course_id: path.course_id topic_id: path.topic_id - text: Turn off discussion summarizing for {topic_id} in course {course_id}. slots: topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/summaries/disable'].put update: x-apievangelist-phrasing: intent: Turn off summaries for a group discussion effect: write questions: - How do I stop summaries from showing on a group thread? - Can summarization be disabled for a single group discussion? instructions: - text: Switch off summaries for group {group_id} thread {topic_id}. slots: group_id: path.group_id topic_id: path.topic_id - text: Disable group {group_id} discussion {topic_id} summary. slots: group_id: path.group_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/summaries/{summary_id}/feedback'].post update: x-apievangelist-phrasing: intent: Rate an AI summary of a course discussion effect: write questions: - Can I give a thumbs up or down on a course discussion summary? - Is there a way to leave a comment on how good a class discussion summary was? instructions: - text: Record {_action} feedback on summary {summary_id} for course {course_id} topic {topic_id}. slots: _action: requestBody._action summary_id: path.summary_id course_id: path.course_id topic_id: path.topic_id - text: Comment {comment} on course {course_id} discussion {topic_id} summary {summary_id}. slots: comment: requestBody.comment course_id: path.course_id topic_id: path.topic_id summary_id: path.summary_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/summaries/{summary_id}/feedback'].post update: x-apievangelist-phrasing: intent: Rate an AI summary of a group discussion effect: write questions: - Where do I send feedback about a group thread summary? - Can I flag a group discussion summary as unhelpful? instructions: - text: Send {_action} feedback for group {group_id} thread {topic_id} summary {summary_id}. slots: _action: requestBody._action group_id: path.group_id topic_id: path.topic_id summary_id: path.summary_id - text: Leave the note {comment} on summary {summary_id} of group {group_id} topic {topic_id}. slots: comment: requestBody.comment summary_id: path.summary_id group_id: path.group_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/view'].get update: x-apievangelist-phrasing: intent: Get a whole course discussion with all posts effect: read questions: - Can I export an entire class discussion with every post and author in one call? - What's the fastest way to read a full course discussion thread tree? instructions: - text: Get the full view of course {course_id} discussion {topic_id} with all entries. slots: course_id: path.course_id topic_id: path.topic_id - text: Dump every post and author in topic {topic_id} of course {course_id}. slots: topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/view'].get update: x-apievangelist-phrasing: intent: Get a whole group discussion with all posts effect: read questions: - Can I load an entire group thread including all replies at once? - Is there a cached full view of a group discussion? instructions: - text: Load the complete group {group_id} thread {topic_id} with replies. slots: group_id: path.group_id topic_id: path.topic_id - text: Pull the whole conversation tree for group {group_id} topic {topic_id}. slots: group_id: path.group_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries'].get update: x-apievangelist-phrasing: intent: List top-level posts in a course discussion effect: read questions: - Which students have posted top-level responses in a class discussion? - Do I need to post first before I can list entries in a course discussion? instructions: - text: List the top-level entries in course {course_id} topic {topic_id}. slots: course_id: path.course_id topic_id: path.topic_id - text: Show the main responses posted to discussion {topic_id} in {course_id}. slots: topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries'].post update: x-apievangelist-phrasing: intent: Post a response to a course discussion effect: write questions: - Can I submit my response to a class discussion through the API? - Is attaching a file to a course discussion post supported? instructions: - text: Post {message} as a new entry in course {course_id} topic {topic_id}. slots: message: requestBody.message course_id: path.course_id topic_id: path.topic_id - text: Reply to the course {course_id} prompt {topic_id} with file {attachment}. slots: course_id: path.course_id topic_id: path.topic_id attachment: requestBody.attachment method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries'].get update: x-apievangelist-phrasing: intent: List top-level posts in a group discussion effect: read questions: - What has everyone in my group posted to our thread so far? - Can I page through the main posts of a group discussion? instructions: - text: List top-level posts in group {group_id} thread {topic_id}. slots: group_id: path.group_id topic_id: path.topic_id - text: Show what members wrote in group {group_id} discussion {topic_id}. slots: group_id: path.group_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries'].post update: x-apievangelist-phrasing: intent: Post a response to a group discussion effect: write questions: - Can I add a new post to my project group's thread? - Is a file upload allowed when posting in a group discussion? instructions: - text: Write {message} in group {group_id} thread {topic_id}. slots: message: requestBody.message group_id: path.group_id topic_id: path.topic_id - text: Add a group {group_id} post to topic {topic_id} attaching {attachment}. slots: group_id: path.group_id topic_id: path.topic_id attachment: requestBody.attachment method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/duplicate'].post update: x-apievangelist-phrasing: intent: Copy a course discussion topic effect: write questions: - Can I duplicate an existing class discussion instead of recreating it? - Does copying a course discussion keep it in the same course? instructions: - text: Duplicate discussion {topic_id} in course {course_id}. slots: topic_id: path.topic_id course_id: path.course_id - text: Make a copy of course {course_id} topic {topic_id}. slots: course_id: path.course_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/duplicate'].post update: x-apievangelist-phrasing: intent: Copy a group discussion topic effect: write questions: - Is cloning a thread inside a group possible? - Can I reuse a group discussion by duplicating it? instructions: - text: Clone group {group_id} thread {topic_id}. slots: group_id: path.group_id topic_id: path.topic_id - text: Duplicate topic {topic_id} within group {group_id}. slots: topic_id: path.topic_id group_id: path.group_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{entry_id}/replies'].get update: x-apievangelist-phrasing: intent: List replies to a post in a course discussion effect: read questions: - Who replied to a particular student's post in a class discussion? - Can I see the replies under one entry in a course discussion? instructions: - text: List replies to entry {entry_id} in course {course_id} topic {topic_id}. slots: entry_id: path.entry_id course_id: path.course_id topic_id: path.topic_id - text: Show the responses under course post {entry_id} in discussion {topic_id} of {course_id}. slots: entry_id: path.entry_id topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{entry_id}/replies'].post update: x-apievangelist-phrasing: intent: Reply to a post in a course discussion effect: write questions: - Can I respond directly to a classmate's post rather than the main prompt? - Is it possible to attach a file to a reply in a course discussion? instructions: - text: Reply {message} to entry {entry_id} in course {course_id} topic {topic_id}. slots: message: requestBody.message entry_id: path.entry_id course_id: path.course_id topic_id: path.topic_id - text: Respond to course {course_id} post {entry_id} under {topic_id} with file {attachment}. slots: course_id: path.course_id entry_id: path.entry_id topic_id: path.topic_id attachment: requestBody.attachment method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries/{entry_id}/replies'].get update: x-apievangelist-phrasing: intent: List replies to a post in a group discussion effect: read questions: - What answers came back to my post in the group thread? - Can I page through the replies to one group discussion entry? instructions: - text: Get replies to group {group_id} entry {entry_id} in thread {topic_id}. slots: group_id: path.group_id entry_id: path.entry_id topic_id: path.topic_id - text: Show answers to post {entry_id} in group {group_id} topic {topic_id}. slots: entry_id: path.entry_id group_id: path.group_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries/{entry_id}/replies'].post update: x-apievangelist-phrasing: intent: Reply to a post in a group discussion effect: write questions: - How do I answer a teammate's message in our group thread? - Can a reply in a group discussion include an attachment? instructions: - text: Answer group {group_id} entry {entry_id} in thread {topic_id} with {message}. slots: group_id: path.group_id entry_id: path.entry_id topic_id: path.topic_id message: requestBody.message - text: Send a reply to post {entry_id} in group {group_id} topic {topic_id} with {attachment}. slots: entry_id: path.entry_id group_id: path.group_id topic_id: path.topic_id attachment: requestBody.attachment method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entry_list'].get update: x-apievangelist-phrasing: intent: Get specific course discussion posts by id effect: read questions: - Can I fetch several course discussion posts at once by their ids? - Is there a batch lookup for entries in a class discussion? instructions: - text: Fetch entries {ids} from course {course_id} topic {topic_id}. slots: ids: query.ids course_id: path.course_id topic_id: path.topic_id - text: Look up posts with ids {ids} in course discussion {topic_id} of {course_id}. slots: ids: query.ids topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entry_list'].get update: x-apievangelist-phrasing: intent: Get specific group discussion posts by id effect: read questions: - Can I grab particular group thread posts when I already know their ids? - Does a group discussion support retrieving a chosen set of entries? instructions: - text: Retrieve group {group_id} thread {topic_id} entries {ids}. slots: group_id: path.group_id topic_id: path.topic_id ids: query.ids - text: Get the group posts {ids} from topic {topic_id} in {group_id}. slots: ids: query.ids topic_id: path.topic_id group_id: path.group_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/read'].put update: x-apievangelist-phrasing: intent: Mark a course discussion prompt as read effect: write questions: - Can I clear the unread badge on a class discussion's opening post? - What marks just the initial text of a course discussion as seen? instructions: - text: Mark course {course_id} topic {topic_id} as read. slots: course_id: path.course_id topic_id: path.topic_id - text: Flag the opening post of discussion {topic_id} in {course_id} as seen. slots: topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/read'].delete update: x-apievangelist-phrasing: intent: Mark a course discussion prompt as unread effect: destructive questions: - Can I set a class discussion's opening post back to unread as a reminder? - Is there a way to restore the unread state of a course topic? instructions: - text: Mark course {course_id} topic {topic_id} as unread. slots: course_id: path.course_id topic_id: path.topic_id - text: Set the prompt of discussion {topic_id} in {course_id} back to unread. slots: topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/read'].put update: x-apievangelist-phrasing: intent: Mark a group discussion prompt as read effect: write questions: - Can I mark a group thread's first message as seen? - What clears the unread flag on a group discussion prompt? instructions: - text: Mark the group {group_id} thread {topic_id} prompt read. slots: group_id: path.group_id topic_id: path.topic_id - text: Set group discussion {topic_id} in {group_id} as seen. slots: topic_id: path.topic_id group_id: path.group_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/read'].delete update: x-apievangelist-phrasing: intent: Mark a group discussion prompt as unread effect: destructive questions: - Is it possible to flag a group thread's first message unread again? - Can I undo having read a group discussion prompt? instructions: - text: Mark the group {group_id} thread {topic_id} prompt unread. slots: group_id: path.group_id topic_id: path.topic_id - text: Reset group discussion {topic_id} in {group_id} to not seen. slots: topic_id: path.topic_id group_id: path.group_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/read_all'].put update: x-apievangelist-phrasing: intent: Mark every course discussion as read effect: write questions: - Can I clear unread markers on all discussions in my course at once? - Is there a single call to catch up on every class discussion prompt? instructions: - text: Mark all discussion topics in course {course_id} as read. slots: course_id: path.course_id - text: Clear every unread discussion prompt in {course_id}. slots: course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/read_all'].put update: x-apievangelist-phrasing: intent: Mark every group discussion as read effect: write questions: - Can I mark all my group's threads as seen in one go? - What catches me up on every discussion inside a group? instructions: - text: Mark every thread in group {group_id} as read. slots: group_id: path.group_id - text: Catch me up on all group {group_id} discussions. slots: group_id: path.group_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/read_all'].put update: x-apievangelist-phrasing: intent: Mark a course discussion and all its posts read effect: write questions: - Can I mark a whole class discussion including every reply as read? - Does forcing the read state lock a course discussion's posts as read? instructions: - text: Mark course {course_id} topic {topic_id} and all its entries read. slots: course_id: path.course_id topic_id: path.topic_id - text: Read-all every reply in discussion {topic_id} of {course_id}, forced {forced_read_state}. slots: topic_id: path.topic_id course_id: path.course_id forced_read_state: requestBody.forced_read_state method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/read_all'].delete update: x-apievangelist-phrasing: intent: Mark a course discussion and all its posts unread effect: destructive questions: - Can I flip an entire class discussion and its replies back to unread? - Is there a bulk unread for all posts in one course thread? instructions: - text: Mark course {course_id} topic {topic_id} and all its entries unread. slots: course_id: path.course_id topic_id: path.topic_id - text: Unread every post in discussion {topic_id} of {course_id}, forced {forced_read_state}. slots: topic_id: path.topic_id course_id: path.course_id forced_read_state: query.forced_read_state method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/read_all'].put update: x-apievangelist-phrasing: intent: Mark a group discussion and all its posts read effect: write questions: - Can I mark every reply in a group thread as seen? - Is there a read-all for one group discussion's posts? instructions: - text: Mark group {group_id} thread {topic_id} and every reply read. slots: group_id: path.group_id topic_id: path.topic_id - text: Set all posts in group discussion {topic_id} of {group_id} to seen. slots: topic_id: path.topic_id group_id: path.group_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/read_all'].delete update: x-apievangelist-phrasing: intent: Mark a group discussion and all its posts unread effect: destructive questions: - Can every reply in a group thread be set back to unread? - Is there a bulk unread for a single group discussion? instructions: - text: Mark group {group_id} thread {topic_id} and every reply unread. slots: group_id: path.group_id topic_id: path.topic_id - text: Reset all posts in group discussion {topic_id} of {group_id} to not seen. slots: topic_id: path.topic_id group_id: path.group_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{entry_id}/read'].put update: x-apievangelist-phrasing: intent: Mark one course discussion post as read effect: write questions: - Can I mark a single reply in a class discussion as read? - What marks one particular course discussion entry as seen? instructions: - text: Mark entry {entry_id} in course {course_id} topic {topic_id} as read. slots: entry_id: path.entry_id course_id: path.course_id topic_id: path.topic_id - text: Flag course post {entry_id} under discussion {topic_id} of {course_id} as seen. slots: entry_id: path.entry_id topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{entry_id}/read'].delete update: x-apievangelist-phrasing: intent: Mark one course discussion post as unread effect: destructive questions: - Can I set one reply in a class discussion back to unread so I revisit it? - Is marking a single course discussion entry unread supported? instructions: - text: Mark entry {entry_id} in course {course_id} topic {topic_id} as unread. slots: entry_id: path.entry_id course_id: path.course_id topic_id: path.topic_id - text: Set course post {entry_id} under discussion {topic_id} of {course_id} back to unread. slots: entry_id: path.entry_id topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries/{entry_id}/read'].put update: x-apievangelist-phrasing: intent: Mark one group discussion post as read effect: write questions: - Can I mark one message in my group thread as seen? - Which call marks a single group discussion entry read? instructions: - text: Mark group {group_id} entry {entry_id} in thread {topic_id} read. slots: group_id: path.group_id entry_id: path.entry_id topic_id: path.topic_id - text: Flag post {entry_id} in group {group_id} topic {topic_id} as seen. slots: entry_id: path.entry_id group_id: path.group_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries/{entry_id}/read'].delete update: x-apievangelist-phrasing: intent: Mark one group discussion post as unread effect: destructive questions: - Can I flag one message in a group thread unread again? - Which call resets a single group discussion entry to unread? instructions: - text: Mark group {group_id} entry {entry_id} in thread {topic_id} unread. slots: group_id: path.group_id entry_id: path.entry_id topic_id: path.topic_id - text: Reset post {entry_id} in group {group_id} topic {topic_id} to not seen. slots: entry_id: path.entry_id group_id: path.group_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{entry_id}/rating'].post update: x-apievangelist-phrasing: intent: Like or rate a course discussion post effect: write questions: - Can I like a classmate's post in a course discussion? - How are ratings on class discussion entries set or removed? instructions: - text: Rate entry {entry_id} in course {course_id} topic {topic_id} as {rating}. slots: entry_id: path.entry_id course_id: path.course_id topic_id: path.topic_id rating: requestBody.rating - text: Like course post {entry_id} in discussion {topic_id} of {course_id}. slots: entry_id: path.entry_id topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries/{entry_id}/rating'].post update: x-apievangelist-phrasing: intent: Like or rate a group discussion post effect: write questions: - Is liking a teammate's message in a group thread possible? - Can I give a rating to a group discussion entry? instructions: - text: Give group {group_id} entry {entry_id} in thread {topic_id} a rating of {rating}. slots: group_id: path.group_id entry_id: path.entry_id topic_id: path.topic_id rating: requestBody.rating - text: Like post {entry_id} in group {group_id} topic {topic_id}. slots: entry_id: path.entry_id group_id: path.group_id topic_id: path.topic_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/subscribed'].put update: x-apievangelist-phrasing: intent: Follow a course discussion for notifications effect: write questions: - Can I get notified when someone posts new replies in a class discussion? - What do I call to follow a course discussion? instructions: - text: Subscribe me to course {course_id} topic {topic_id}. slots: course_id: path.course_id topic_id: path.topic_id - text: Notify me about new posts in discussion {topic_id} of {course_id}. slots: topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/subscribed'].delete update: x-apievangelist-phrasing: intent: Stop following a course discussion effect: destructive questions: - Can I stop getting notifications from a noisy class discussion? - How do I unfollow a course discussion? instructions: - text: Unsubscribe me from course {course_id} topic {topic_id}. slots: course_id: path.course_id topic_id: path.topic_id - text: Stop alerts for new posts in discussion {topic_id} of {course_id}. slots: topic_id: path.topic_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/subscribed'].put update: x-apievangelist-phrasing: intent: Follow a group discussion for notifications effect: write questions: - Can I receive alerts when my group thread gets new messages? - Is following a group discussion supported? instructions: - text: Follow group {group_id} thread {topic_id}. slots: group_id: path.group_id topic_id: path.topic_id - text: Alert me to new entries in group discussion {topic_id} of {group_id}. slots: topic_id: path.topic_id group_id: path.group_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/subscribed'].delete update: x-apievangelist-phrasing: intent: Stop following a group discussion effect: destructive questions: - Can I mute notifications from a group thread? - What do I call to unfollow a discussion in my group? instructions: - text: Unfollow group {group_id} thread {topic_id}. slots: group_id: path.group_id topic_id: path.topic_id - text: Mute alerts for group discussion {topic_id} of {group_id}. slots: topic_id: path.topic_id group_id: path.group_id method: generated generated: '2026-10-01'