Canvas · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canvas LMS REST Asset Processor API

5 actions 5 updates phrasing extends openapi/canvas-asset-processor-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 5

$.info
$.paths['/lti/asset_processors/{asset_processor_id}/reports'].post
$.paths['/lti/asset_processor_eulas/{context_external_tool_id}/deployment'].put
$.paths['/lti/asset_processor_eulas/{context_external_tool_id}/user'].post
$.paths['/lti/asset_processor_eulas/{context_external_tool_id}/user'].delete

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 Asset Processor API
  version: 1.0.0
extends: openapi/canvas-asset-processor-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: 4
- target: $.paths['/lti/asset_processors/{asset_processor_id}/reports'].post
  update:
    x-apievangelist-phrasing:
      intent: Submit an asset processor report for a submission file
      effect: write
      questions:
      - How does an LTI asset processor tool post its result back for a student's submission attachment?
      - Can an asset report include a colored indicator and processing progress?
      instructions:
      - text: Post an asset report for asset {assetId} from processor {asset_processor_id} with result {result}.
        slots:
          assetId: requestBody.assetId
          asset_processor_id: path.asset_processor_id
          result: requestBody.result
      - text: Report processing progress {processingProgress} on asset {assetId} for processor {asset_processor_id}, type {type}.
        slots:
          processingProgress: requestBody.processingProgress
          assetId: requestBody.assetId
          asset_processor_id: path.asset_processor_id
          type: requestBody.type
      method: generated
      generated: '2026-10-01'
- target: $.paths['/lti/asset_processor_eulas/{context_external_tool_id}/deployment'].put
  update:
    x-apievangelist-phrasing:
      intent: Turn the EULA requirement on or off for a deployment
      effect: write
      questions:
      - Can a tool require every user in a deployment to accept a EULA?
      - How do I switch off the EULA requirement for a whole tool deployment?
      instructions:
      - text: Set EULA required to {eulaRequired} for tool deployment {context_external_tool_id}.
        slots:
          eulaRequired: requestBody.eulaRequired
          context_external_tool_id: path.context_external_tool_id
      - text: 'Require a EULA across deployment {context_external_tool_id}: {eulaRequired}.'
        slots:
          context_external_tool_id: path.context_external_tool_id
          eulaRequired: requestBody.eulaRequired
      method: generated
      generated: '2026-10-01'
- target: $.paths['/lti/asset_processor_eulas/{context_external_tool_id}/user'].post
  update:
    x-apievangelist-phrasing:
      intent: Record whether a user accepted the tool EULA
      effect: write
      questions:
      - How does a tool tell Canvas that a user accepted its EULA?
      - Can I record that a user declined the EULA, with a timestamp?
      instructions:
      - text: Record that user {userId} accepted {accepted} the EULA for tool {context_external_tool_id}.
        slots:
          userId: requestBody.userId
          accepted: requestBody.accepted
          context_external_tool_id: path.context_external_tool_id
      - text: Log EULA decision {accepted} for user {userId} at {timestamp} on deployment {context_external_tool_id}.
        slots:
          accepted: requestBody.accepted
          userId: requestBody.userId
          timestamp: requestBody.timestamp
          context_external_tool_id: path.context_external_tool_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/lti/asset_processor_eulas/{context_external_tool_id}/user'].delete
  update:
    x-apievangelist-phrasing:
      intent: Reset EULA acceptances for all users in a deployment
      effect: destructive
      questions:
      - After our EULA changes, how do I force every user to accept it again?
      - Can a tool clear all users' EULA acceptance status at once?
      instructions:
      - text: Clear all EULA acceptances for deployment {context_external_tool_id}.
        slots:
          context_external_tool_id: path.context_external_tool_id
      - text: Make every user re-accept the EULA on tool {context_external_tool_id}.
        slots:
          context_external_tool_id: path.context_external_tool_id
      method: generated
      generated: '2026-10-01'