mattermost/api/v4/source/remoteclusters.yaml
Caleb Roseland fcded9559c
MM-61032: Add default_team_id to accept invite flow (#28841)
* add default_team_id to accept invite api

* add team selector to accept invite flow UI

* e2e

* lint/i18n
2024-10-18 12:26:38 +02:00

306 lines
8.9 KiB
YAML

"/api/v4/remotecluster":
get:
tags:
- remote clusters
summary: Get a list of remote clusters.
description: |
Get a list of remote clusters.
##### Permissions
`manage_secure_connections`
operationId: GetRemoteClusters
parameters:
- name: page
in: query
description: The page to select
schema:
type: integer
- name: per_page
in: query
description: The number of remote clusters per page
schema:
type: integer
- name: exclude_offline
in: query
description: Exclude offline remote clusters
schema:
type: boolean
- name: in_channel
in: query
description: Select remote clusters in channel
schema:
type: string
- name: not_in_channel
in: query
description: Select remote clusters not in this channel
schema:
type: string
- name: only_confirmed
in: query
description: Select only remote clusters already confirmed
schema:
type: boolean
- name: only_plugins
in: query
description: Select only remote clusters that belong to a plugin
schema:
type: boolean
- name: exclude_plugins
in: query
description: Select only remote clusters that don't belong to a plugin
schema:
type: boolean
- name: include_deleted
in: query
description: Include those remote clusters that have been deleted
schema:
type: boolean
responses:
"200":
description: Remote clusters fetch successful. Result might be empty.
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/RemoteCluster"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
post:
tags:
- remote clusters
summary: Create a new remote cluster.
description: |
Create a new remote cluster and generate an invite code.
##### Permissions
`manage_secure_connections`
operationId: CreateRemoteCluster
requestBody:
content:
application/json:
schema:
type: object
required:
- name
- default_team_id
properties:
name:
type: string
display_name:
type: string
default_team_id:
type: string
password:
type: string
description: |
The password to use in the invite code. If empty,
the server will generate one and it will be part
of the response
responses:
"201":
description: Remote cluster creation successful
content:
application/json:
schema:
type: object
properties:
remote_cluster:
$ref: "#/components/schemas/RemoteCluster"
invite:
type: string
description: The encrypted invite for the newly created remote cluster
password:
type: string
description: |
The password generated by the server if none was
sent on the create request
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"/api/v4/remotecluster/{remote_id}":
get:
tags:
- remote clusters
summary: Get a remote cluster.
description: |
Get the Remote Cluster details from the provided id string.
##### Permissions
`manage_secure_connections`
operationId: GetRemoteCluster
parameters:
- name: remote_id
in: path
description: Remote Cluster GUID
required: true
schema:
type: string
responses:
"200":
description: Remote Cluster retrieval successful
content:
application/json:
schema:
$ref: "#/components/schemas/RemoteCluster"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"404":
$ref: "#/components/responses/NotFound"
patch:
tags:
- remote clusters
summary: Patch a remote cluster.
description: |
Partially update a Remote Cluster by providing only the fields you want to update. Ommited fields will not be updated.
##### Permissions
`manage_secure_connections`
operationId: PatchRemoteCluster
parameters:
- name: remote_id
in: path
description: Remote Cluster GUID
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
display_name:
type: string
default_team_id:
type: string
description: The team where channels from invites are created
responses:
"200":
description: Remote Cluster patch successful
content:
application/json:
schema:
$ref: "#/components/schemas/RemoteCluster"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"404":
$ref: "#/components/responses/NotFound"
delete:
tags:
- remote clusters
summary: Delete a remote cluster.
description: |
Deletes a Remote Cluster.
##### Permissions
`manage_secure_connections`
operationId: DeleteRemoteCluster
parameters:
- name: remote_id
in: path
description: Remote Cluster GUID
required: true
schema:
type: string
responses:
"204":
description: Remote Cluster deletion successful
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"404":
$ref: "#/components/responses/NotFound"
"/api/v4/remotecluster/{remote_id}/generate_invite":
post:
tags:
- remote clusters
summary: Generate invite code.
description: |
Generates an invite code for a given remote cluster.
##### Permissions
`manage_secure_connections`
operationId: GenerateRemoteClusterInvite
requestBody:
content:
application/json:
schema:
type: object
required:
- password
properties:
password:
type: string
description: The password to encrypt the invite code with.
responses:
"201":
description: Invite code generated
content:
application/json:
schema:
type: string
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"/api/v4/remotecluster/accept_invite":
post:
tags:
- remote clusters
summary: Accept a remote cluster invite code.
description: |
Accepts a remote cluster invite code.
##### Permissions
`manage_secure_connections`
operationId: AcceptRemoteClusterInvite
requestBody:
content:
application/json:
schema:
type: object
required:
- invite
- name
- default_team_id
- password
properties:
invite:
type: string
name:
type: string
display_name:
type: string
default_team_id:
type: string
password:
type: string
description: The password to decrypt the invite code.
responses:
"201":
description: Invite successfully accepted
content:
application/json:
schema:
type: object
$ref: "#/components/schemas/RemoteCluster"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"