Tray.ai · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Tray Ai Workspaces API

12 actions 12 updates phrasing extends openapi/tray-ai-workspaces-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Tray.ai's API. It is a proposal applied on top of the contract, not a document Tray.ai publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 12

$.info
$.paths['/workspaces'].get
$.paths['/workspaces/{workspaceId}'].get
$.paths['/workspaces/{workspaceId}/users'].get
$.paths['/core/v1/workspaces'].get
$.paths['/core/v1/workspaces/{workspaceId}'].get
$.paths['/core/v1/workspaces/{workspaceId}/users'].get
$.paths['/core/v1/workspaces/{workspaceId}/users'].post
$.paths['/core/v1/workspaces/{workspaceId}/users/{userId}'].get
$.paths['/core/v1/workspaces/{workspaceId}/users/{userId}'].put
$.paths['/core/v1/workspaces/{workspaceId}/users/{userId}'].delete
$.paths['/core/v1/workspaces/{workspaceId}/roles'].get

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 Tray Ai Workspaces API
  version: 1.0.0
extends: openapi/tray-ai-workspaces-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 11
- target: $.paths['/workspaces'].get
  update:
    x-apievangelist-phrasing:
      intent: List workspaces (unversioned)
      effect: read
      questions:
      - Which workspaces, like departments or dev and prod environments, does my organization have?
      - Can I list workspaces on the unversioned /workspaces endpoint?
      instructions:
      - text: List the workspaces in my organization from the unversioned endpoint.
      - text: Show my dev and prod workspaces.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/workspaces/{workspaceId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a workspace by id (unversioned)
      effect: read
      questions:
      - What details does the unversioned workspace endpoint return for one id?
      - Can I look up a single workspace on /workspaces by its id?
      instructions:
      - text: Get workspace {workspace} from the unversioned endpoint.
        slots:
          workspace: path.workspaceId
      - text: Show unversioned details for workspace id {workspace}.
        slots:
          workspace: path.workspaceId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/workspaces/{workspaceId}/users'].get
  update:
    x-apievangelist-phrasing:
      intent: List a workspace's users (unversioned)
      effect: read
      questions:
      - Who belongs to a given workspace, per the unversioned endpoint?
      - Can I list workspace members without paging, on the unversioned endpoint?
      instructions:
      - text: List users of workspace {workspace} from the unversioned endpoint.
        slots:
          workspace: path.workspaceId
      - text: Show everyone who belongs to workspace {workspace}, unversioned.
        slots:
          workspace: path.workspaceId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces'].get
  update:
    x-apievangelist-phrasing:
      intent: List workspaces my token can access
      effect: read
      questions:
      - Does an org-scoped token list every workspace while a workspace token lists only one?
      - Can I filter workspaces by type in core v1?
      instructions:
      - text: List core v1 workspaces of type {type}.
        slots:
          type: query.type
      - text: Show every workspace this token can reach, {count} at a time.
        slots:
          count: query.first
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a workspace with core v1
      effect: read
      questions:
      - What does core v1 return for a workspace id?
      - How do I read a single workspace through the core v1 API?
      instructions:
      - text: Get core v1 workspace {workspace}.
        slots:
          workspace: path.workspaceId
      - text: Fetch workspace {workspace} through core v1.
        slots:
          workspace: path.workspaceId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}/users'].get
  update:
    x-apievangelist-phrasing:
      intent: List a workspace's users with core v1
      effect: read
      questions:
      - Can I page through a workspace's members with a cursor in core v1?
      - Which users have access to a workspace, according to core v1?
      instructions:
      - text: List core v1 users in workspace {workspace}.
        slots:
          workspace: path.workspaceId
      - text: Show workspace {workspace} members after cursor {cursor}.
        slots:
          workspace: path.workspaceId
          cursor: query.cursor
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}/users'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a user to a workspace
      effect: write
      questions:
      - How do I give an existing organization user access to a workspace?
      - Which role must I choose when adding someone to a workspace?
      instructions:
      - text: Add user {user} to workspace {workspace} with role {role}.
        slots:
          user: requestBody.userId
          workspace: path.workspaceId
          role: requestBody.roleId
      - text: Grant {user} role {role} in workspace {workspace}.
        slots:
          user: requestBody.userId
          role: requestBody.roleId
          workspace: path.workspaceId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}/users/{userId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one user's workspace membership
      effect: read
      questions:
      - What role does a specific user have in a workspace?
      - Is a given user a member of this workspace?
      instructions:
      - text: Get user {user} in workspace {workspace}.
        slots:
          user: path.userId
          workspace: path.workspaceId
      - text: Show {user}'s membership and role in workspace {workspace}.
        slots:
          user: path.userId
          workspace: path.workspaceId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}/users/{userId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a user's role in a workspace
      effect: write
      questions:
      - Can I change someone's role in one workspace only?
      - How do I give an existing workspace member a different workspace role?
      instructions:
      - text: Change user {user}'s role in workspace {workspace} to {role}.
        slots:
          user: path.userId
          workspace: path.workspaceId
          role: requestBody.roleId
      - text: Set workspace {workspace} role {role} for member {user}.
        slots:
          workspace: path.workspaceId
          role: requestBody.roleId
          user: path.userId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}/users/{userId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a user from a workspace
      effect: destructive
      questions:
      - Can I take someone out of a workspace without deleting them from the organization?
      - Which call revokes a user's workspace access?
      instructions:
      - text: Remove user {user} from workspace {workspace}.
        slots:
          user: path.userId
          workspace: path.workspaceId
      - text: Revoke {user}'s access to workspace {workspace}.
        slots:
          user: path.userId
          workspace: path.workspaceId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}/roles'].get
  update:
    x-apievangelist-phrasing:
      intent: List roles available in a workspace
      effect: read
      questions:
      - Which roles can I assign inside a particular workspace?
      - Where do I find the role id for a workspace member?
      instructions:
      - text: List the roles for workspace {workspace}.
        slots:
          workspace: path.workspaceId
      - text: Show the first {count} workspace roles in {workspace}.
        slots:
          count: query.first
          workspace: path.workspaceId
      method: generated
      generated: '2026-09-26'