# 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 Feature Flags API version: 1.0.0 extends: openapi/canvas-feature-flags-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: 16 - target: $.paths['/v1/courses/{course_id}/features'].get update: x-apievangelist-phrasing: intent: List features for a course effect: read questions: - Which feature options can be toggled for a course? - Can I hide features that are already turned on by a parent account? instructions: - text: List the features available to course {course_id}. slots: course_id: path.course_id - text: 'Show course {course_id} features, hiding inherited enabled ones: {hide_inherited_enabled}.' slots: course_id: path.course_id hide_inherited_enabled: query.hide_inherited_enabled method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/features'].get update: x-apievangelist-phrasing: intent: List features for an account effect: read questions: - What features can an admin enable or disable for an account? - Can I see every feature option that applies to a sub-account? instructions: - text: List the features available to account {account_id}. slots: account_id: path.account_id - text: Show account {account_id} feature options without inherited enabled ones ({hide_inherited_enabled}). slots: account_id: path.account_id hide_inherited_enabled: query.hide_inherited_enabled method: generated generated: '2026-10-01' - target: $.paths['/v1/users/{user_id}/features'].get update: x-apievangelist-phrasing: intent: List features for a user effect: read questions: - Which user-level feature previews can a person opt into? - How do I see the full feature list that applies to one user? instructions: - text: List the features available to user {user_id}. slots: user_id: path.user_id - text: Show all feature options for user {user_id}. slots: user_id: path.user_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/features/enabled'].get update: x-apievangelist-phrasing: intent: List features turned on for a course effect: read questions: - Which features are currently switched on in my course? - Can I get just the names of enabled course features? instructions: - text: List enabled features in course {course_id}. slots: course_id: path.course_id - text: Which feature names are active for course {course_id}. slots: course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/features/enabled'].get update: x-apievangelist-phrasing: intent: List features turned on for an account effect: read questions: - What features are enabled on our account right now? - Is there a quick list of only the active feature names for an account? instructions: - text: List enabled features in account {account_id}. slots: account_id: path.account_id - text: Which feature names are active for account {account_id}. slots: account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v1/users/{user_id}/features/enabled'].get update: x-apievangelist-phrasing: intent: List features turned on for a user effect: read questions: - Which feature previews has a user already enabled? - Can I get only the enabled feature names for one person? instructions: - text: List enabled features for user {user_id}. slots: user_id: path.user_id - text: Which feature names are active for user {user_id}. slots: user_id: path.user_id method: generated generated: '2026-10-01' - target: $.paths['/v1/features/environment'].get update: x-apievangelist-phrasing: intent: Get global UI feature settings effect: read questions: - What global feature options shape the Canvas user interface? - Can I read the same feature hash the web UI receives in its environment? instructions: - text: Show the environment-wide feature options. - text: Get the global UI feature flags for this Canvas instance. method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/features/flags/{feature}'].get update: x-apievangelist-phrasing: intent: Check a feature flag on a course effect: read questions: - Is a feature on or off for a course, and is that inherited from the account? - Can I tell where a course's feature flag was set? instructions: - text: Get the {feature} feature flag for course {course_id}. slots: feature: path.feature course_id: path.course_id - text: Check whether {feature} is enabled in course {course_id}. slots: feature: path.feature course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/features/flags/{feature}'].put update: x-apievangelist-phrasing: intent: Set a feature flag on a course effect: write questions: - Can a teacher turn a feature on for just one course? - Why would setting a course feature flag fail? instructions: - text: Set feature {feature} to {state} in course {course_id}. slots: feature: path.feature state: requestBody.state course_id: path.course_id - text: Turn on {feature} for course {course_id}. slots: feature: path.feature course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/features/flags/{feature}'].delete update: x-apievangelist-phrasing: intent: Remove a feature flag from a course effect: destructive questions: - What happens to a course when its own feature flag is removed? - Can I make a course go back to inheriting a feature setting? instructions: - text: Remove the {feature} flag from course {course_id}. slots: feature: path.feature course_id: path.course_id - text: Clear course {course_id}'s own setting for {feature} so it inherits again. slots: feature: path.feature course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/features/flags/{feature}'].get update: x-apievangelist-phrasing: intent: Check a feature flag on an account effect: read questions: - Is a given feature enabled for my account? - Does an account feature flag come from a parent account? instructions: - text: Get the {feature} feature flag for account {account_id}. slots: feature: path.feature account_id: path.account_id - text: Check whether {feature} is on for account {account_id}. slots: feature: path.feature account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/features/flags/{feature}'].put update: x-apievangelist-phrasing: intent: Set a feature flag on an account effect: write questions: - Can an admin lock a feature on for all courses in an account? - What states can an account-level feature flag take? instructions: - text: Set feature {feature} to {state} in account {account_id}. slots: feature: path.feature state: requestBody.state account_id: path.account_id - text: Enable {feature} across account {account_id}. slots: feature: path.feature account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/features/flags/{feature}'].delete update: x-apievangelist-phrasing: intent: Remove a feature flag from an account effect: destructive questions: - Can I delete an account's feature flag so it follows the parent again? - Must the flag be defined directly on the account to remove it? instructions: - text: Remove the {feature} flag from account {account_id}. slots: feature: path.feature account_id: path.account_id - text: Clear account {account_id}'s own setting for {feature}. slots: feature: path.feature account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v1/users/{user_id}/features/flags/{feature}'].get update: x-apievangelist-phrasing: intent: Check a feature flag on a user effect: read questions: - Has a particular user opted into a feature? - Can I see a user's flag for one feature and where it comes from? instructions: - text: Get the {feature} feature flag for user {user_id}. slots: feature: path.feature user_id: path.user_id - text: Check whether {feature} is on for user {user_id}. slots: feature: path.feature user_id: path.user_id method: generated generated: '2026-10-01' - target: $.paths['/v1/users/{user_id}/features/flags/{feature}'].put update: x-apievangelist-phrasing: intent: Set a feature flag on a user effect: write questions: - Can I turn a feature preview on for an individual user? - Is a user flag blocked if the account already locked the feature? instructions: - text: Set feature {feature} to {state} for user {user_id}. slots: feature: path.feature state: requestBody.state user_id: path.user_id - text: Opt user {user_id} into {feature}. slots: feature: path.feature user_id: path.user_id method: generated generated: '2026-10-01' - target: $.paths['/v1/users/{user_id}/features/flags/{feature}'].delete update: x-apievangelist-phrasing: intent: Remove a feature flag from a user effect: destructive questions: - Can I reset a user's personal feature setting? - What does a user fall back to after their feature flag is removed? instructions: - text: Remove the {feature} flag from user {user_id}. slots: feature: path.feature user_id: path.user_id - text: Clear user {user_id}'s personal setting for {feature}. slots: feature: path.feature user_id: path.user_id method: generated generated: '2026-10-01'