Files
team/api/v4/source/commands.yaml
zeekayandHanzo Dev 404de134f3 Point the API spec and its route checker at the new base
The OpenAPI document keys every operation by its full path, so the spec
described endpoints that no longer exist the moment the server moved.

The openApiSync analyzer cross-checks each registered subrouter against
that document and reconstructs the prefix from a literal of its own, so
spec and analyzer have to move together or every route reports as
missing. Its special case for the v5 root goes away with the root
itself.

The api/v4 directory keeps its name: it is where the spec sources live,
not a URL anyone requests.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-14 10:58:08 -07:00

395 lines
12 KiB
YAML

/v1/team/commands:
post:
tags:
- commands
summary: Create a command
description: |
Create a command for a team.
##### Permissions
`manage_slash_commands` for the team the command is in.
operationId: CreateCommand
requestBody:
content:
application/json:
schema:
type: object
required:
- team_id
- method
- trigger
- url
properties:
team_id:
type: string
description: Team ID to where the command should be created
method:
type: string
description: "`'P'` for post request, `'G'` for get request"
trigger:
type: string
description: Activation word to trigger the command
url:
type: string
description: The URL that the command will make the request
description: command to be created
required: true
responses:
"201":
description: Command creation successful
content:
application/json:
schema:
$ref: "#/components/schemas/Command"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"501":
$ref: "#/components/responses/NotImplemented"
get:
tags:
- commands
summary: List commands for a team
description: |
List commands for a team.
##### Permissions
`manage_slash_commands` if need list custom commands.
operationId: ListCommands
parameters:
- name: team_id
in: query
description: The team id.
schema:
type: string
- name: custom_only
in: query
description: >
To get only the custom commands. If set to false will get the custom
if the user have access plus the system commands, otherwise just the system commands.
schema:
type: boolean
default: false
responses:
"200":
description: List Commands retrieve successful
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Command"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"501":
$ref: "#/components/responses/NotImplemented"
"/v1/team/teams/{team_id}/commands/autocomplete":
get:
tags:
- commands
summary: List autocomplete commands
description: |
List autocomplete commands in the team.
##### Permissions
`view_team` for the team.
operationId: ListAutocompleteCommands
parameters:
- name: team_id
in: path
description: Team GUID
required: true
schema:
type: string
responses:
"200":
description: Autocomplete commands retrieval successful
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Command"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"/v1/team/teams/{team_id}/commands/autocomplete_suggestions":
get:
tags:
- commands
summary: List commands' autocomplete data
description: |
List commands' autocomplete data for the team.
##### Permissions
`view_team` for the team.
__Minimum server version__: 5.24
operationId: ListCommandAutocompleteSuggestions
parameters:
- name: team_id
in: path
description: Team GUID
required: true
schema:
type: string
- name: user_input
in: query
description: String inputted by the user.
required: true
schema:
type: string
responses:
"200":
description: Commands' autocomplete data retrieval successful
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/AutocompleteSuggestion"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"/v1/team/commands/{command_id}":
get:
tags:
- commands
summary: Get a command
description: >
Get a command definition based on command id string.
##### Permissions
Must have `manage_slash_commands` permission for the team the command is in.
__Minimum server version__: 5.22
operationId: GetCommandById
parameters:
- in: path
name: command_id
description: ID of the command to get
required: true
schema:
type: string
responses:
"200":
description: Command get successful
content:
application/json:
schema:
$ref: "#/components/schemas/Command"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"404":
$ref: "#/components/responses/NotFound"
put:
tags:
- commands
summary: Update a command
description: >
Update a single command based on command id string and Command struct.
##### Permissions
Must have `manage_slash_commands` permission for the team the command is in.
operationId: UpdateCommand
parameters:
- in: path
name: command_id
description: ID of the command to update
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Command"
required: true
responses:
"200":
description: Command updated successful
content:
application/json:
schema:
$ref: "#/components/schemas/Command"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
delete:
tags:
- commands
summary: Delete a command
description: >
Delete a command based on command id string.
##### Permissions
Must have `manage_slash_commands` permission for the team the command is in.
operationId: DeleteCommand
parameters:
- in: path
name: command_id
description: ID of the command to delete
required: true
schema:
type: string
responses:
"200":
description: Command deletion successful
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"404":
$ref: "#/components/responses/NotFound"
"/v1/team/commands/{command_id}/move":
put:
tags:
- commands
summary: Move a command
description: >
Move a command to a different team based on command id string.
##### Permissions
Must have `manage_slash_commands` permission for the team the command is currently in and the destination team.
__Minimum server version__: 5.22
operationId: MoveCommand
parameters:
- in: path
name: command_id
description: ID of the command to move
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
team_id:
type: string
description: Destination teamId
required: true
responses:
"200":
description: Command move successful
content:
application/json:
schema:
$ref: "#/components/schemas/StatusOK"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"404":
$ref: "#/components/responses/NotFound"
"/v1/team/commands/{command_id}/regen_token":
put:
tags:
- commands
summary: Generate a new token
description: >
Generate a new token for the command based on command id string.
##### Permissions
Must have `manage_slash_commands` permission for the team the command is in.
operationId: RegenCommandToken
parameters:
- in: path
name: command_id
description: ID of the command to generate the new token
required: true
schema:
type: string
responses:
"200":
description: Token generation successful
content:
application/json:
schema:
type: object
properties:
token:
description: The new token
type: string
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
/v1/team/commands/execute:
post:
tags:
- commands
summary: Execute a command
description: >
Execute a command on a team.
##### Permissions
Must have `use_slash_commands` permission for the team the command is in.
operationId: ExecuteCommand
requestBody:
content:
application/json:
schema:
type: object
required:
- channel_id
- command
properties:
channel_id:
type: string
description: Channel Id where the command will execute
command:
type: string
description: "The slash command to execute, including parameters. Eg, `'/echo bounces around the room'`"
description: command to be executed
required: true
responses:
"200":
description: Command execution successful
content:
application/json:
schema:
$ref: "#/components/schemas/CommandResponse"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"501":
$ref: "#/components/responses/NotImplemented"