Canvas · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canvas LMS REST Notification Preferences API

11 actions 11 updates phrasing extends openapi/canvas-notification-preferences-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 11

$.info
$.paths['/v1/users/{user_id}/communication_channels/{communication_channel_id}/notification_preferences'].get
$.paths['/v1/users/{user_id}/communication_channels/{type}/{address}/notification_preferences'].get
$.paths['/v1/users/{user_id}/communication_channels/{communication_channel_id}/notification_preference_categories'].get
$.paths['/v1/users/{user_id}/communication_channels/{communication_channel_id}/notification_preferences/{notification}'].get
$.paths['/v1/users/{user_id}/communication_channels/{type}/{address}/notification_preferences/{notification}'].get
$.paths['/v1/users/self/communication_channels/{communication_channel_id}/notification_preferences/{notification}'].put
$.paths['/v1/users/self/communication_channels/{type}/{address}/notification_preferences/{notification}'].put
$.paths['/v1/users/self/communication_channels/{communication_channel_id}/notification_preference_categories/{category}'].put
$.paths['/v1/users/self/communication_channels/{communication_channel_id}/notification_preferences'].put
$.paths['/v1/users/self/communication_channels/{type}/{address}/notification_preferences'].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 Notification Preferences API
  version: 1.0.0
extends: openapi/canvas-notification-preferences-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: 10
- target: $.paths['/v1/users/{user_id}/communication_channels/{communication_channel_id}/notification_preferences'].get
  update:
    x-apievangelist-phrasing:
      intent: List notification settings for a channel by id
      effect: read
      questions:
      - What notification frequencies are set on a user's Canvas email channel?
      - Can I see every notification preference for one communication channel id?
      instructions:
      - text: List notification preferences for user {user_id} on channel {communication_channel_id}.
        slots:
          user_id: path.user_id
          communication_channel_id: path.communication_channel_id
      - text: Show how often channel {communication_channel_id} of user {user_id} gets each alert.
        slots:
          communication_channel_id: path.communication_channel_id
          user_id: path.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/communication_channels/{type}/{address}/notification_preferences'].get
  update:
    x-apievangelist-phrasing:
      intent: List notification settings for a channel by address
      effect: read
      questions:
      - Can I look up notification preferences using an email address instead of a channel id?
      - Which alerts go to a user's phone number, looked up by channel type and address?
      instructions:
      - text: List preferences for user {user_id} on the {type} channel at {address}.
        slots:
          user_id: path.user_id
          type: path.type
          address: path.address
      - text: Show the notification settings for {address} ({type}) belonging to {user_id}.
        slots:
          address: path.address
          type: path.type
          user_id: path.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/communication_channels/{communication_channel_id}/notification_preference_categories'].get
  update:
    x-apievangelist-phrasing:
      intent: List notification categories for a channel
      effect: read
      questions:
      - What notification categories exist for a user's communication channel?
      - Which groupings of alerts can I set preferences on by category?
      instructions:
      - text: List notification preference categories for user {user_id} channel {communication_channel_id}.
        slots:
          user_id: path.user_id
          communication_channel_id: path.communication_channel_id
      - text: Get the alert categories available on channel {communication_channel_id} for {user_id}.
        slots:
          communication_channel_id: path.communication_channel_id
          user_id: path.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/communication_channels/{communication_channel_id}/notification_preferences/{notification}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one notification setting by channel id
      effect: read
      questions:
      - How often does a user get a specific notification on a given channel id?
      - Is a particular alert turned off for one communication channel?
      instructions:
      - text: Get the {notification} preference for user {user_id} on channel {communication_channel_id}.
        slots:
          notification: path.notification
          user_id: path.user_id
          communication_channel_id: path.communication_channel_id
      - text: Check the frequency of {notification} alerts on channel {communication_channel_id} for {user_id}.
        slots:
          notification: path.notification
          communication_channel_id: path.communication_channel_id
          user_id: path.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/communication_channels/{type}/{address}/notification_preferences/{notification}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one notification setting by channel address
      effect: read
      questions:
      - Can I check a single notification setting using the channel's email or phone address?
      - What frequency is one alert set to for a given address and channel type?
      instructions:
      - text: Get the {notification} setting for user {user_id} at {type} address {address}.
        slots:
          notification: path.notification
          user_id: path.user_id
          type: path.type
          address: path.address
      - text: Look up how {address} ({type}) of {user_id} receives {notification}.
        slots:
          address: path.address
          type: path.type
          user_id: path.user_id
          notification: path.notification
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/self/communication_channels/{communication_channel_id}/notification_preferences/{notification}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change one notification setting by channel id
      effect: write
      questions:
      - Can I make one notification arrive as a daily digest on my email channel?
      - How do I silence a single alert type on one of my channels?
      instructions:
      - text: Set {notification} on my channel {communication_channel_id} to {frequency}.
        slots:
          notification: path.notification
          communication_channel_id: path.communication_channel_id
          frequency: requestBody.notification_preferences[frequency]
      - text: Change my {notification} alerts on channel {communication_channel_id} to never.
        slots:
          notification: path.notification
          communication_channel_id: path.communication_channel_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/self/communication_channels/{type}/{address}/notification_preferences/{notification}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change one notification setting by channel address
      effect: write
      questions:
      - Can I update a single notification for my channel using its address rather than id?
      - Is it possible to set my text-message alert for one notification to weekly?
      instructions:
      - text: Set {notification} for my {type} address {address} to {frequency}.
        slots:
          notification: path.notification
          type: path.type
          address: path.address
          frequency: requestBody.notification_preferences[frequency]
      - text: Make {notification} immediate on my {type} channel {address}.
        slots:
          notification: path.notification
          type: path.type
          address: path.address
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/self/communication_channels/{communication_channel_id}/notification_preference_categories/{category}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change all notifications in a category
      effect: write
      questions:
      - Can I change a whole category of alerts, like all grading notices, at once?
      - Is there a way to set one frequency for every notification in a category?
      instructions:
      - text: Set the {category} category on my channel {communication_channel_id} to {frequency}.
        slots:
          category: path.category
          communication_channel_id: path.communication_channel_id
          frequency: requestBody.notification_preferences[frequency]
      - text: Turn every {category} alert on channel {communication_channel_id} to daily.
        slots:
          category: path.category
          communication_channel_id: path.communication_channel_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/self/communication_channels/{communication_channel_id}/notification_preferences'].put
  update:
    x-apievangelist-phrasing:
      intent: Change several notification settings by channel id
      effect: write
      questions:
      - Can I update many different notifications on one channel id in a single request?
      - What's the bulk way to rewrite my notification frequencies for a channel?
      instructions:
      - text: Update multiple notification preferences on my channel {communication_channel_id} to {frequency}.
        slots:
          communication_channel_id: path.communication_channel_id
          frequency: requestBody.notification_preferences[<X>][frequency]
      - text: Bulk set several alerts at once for channel {communication_channel_id}.
        slots:
          communication_channel_id: path.communication_channel_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/self/communication_channels/{type}/{address}/notification_preferences'].put
  update:
    x-apievangelist-phrasing:
      intent: Change several notification settings by address
      effect: write
      questions:
      - Can I bulk-change notifications for my email address without knowing the channel id?
      - Is a multi-notification update possible by channel type and address?
      instructions:
      - text: Update several notification frequencies for my {type} address {address} to {frequency}.
        slots:
          type: path.type
          address: path.address
          frequency: requestBody.notification_preferences[<X>][frequency]
      - text: Bulk rewrite the alert settings on {type} channel {address}.
        slots:
          type: path.type
          address: path.address
      method: generated
      generated: '2026-10-01'