openapi: 3.2.0 info: contact: email: lxd@lists.canonical.com name: LXD upstream url: https://github.com/canonical/lxd description: 'This is the REST API used by all LXD clients. Internal endpoints aren''t included in this documentation. The LXD API is available over both a local unix+http and remote https API. Authentication for local users relies on group membership and access to the unix socket. For remote users, the default authentication method is TLS client.' license: name: AGPL-3.0-only url: https://www.gnu.org/licenses/agpl-3.0.en.html title: LXD external REST Cluster Groups API version: '1.0' tags: - name: cluster groups paths: /1.0/cluster/groups: get: description: Returns a list of cluster groups (URLs). operationId: cluster_groups_get responses: '200': description: API endpoints content: application/json: schema: description: Sync response properties: metadata: description: List of endpoints example: "[\n \"/1.0/cluster/groups/lxd01\",\n \"/1.0/cluster/groups/lxd02\"\n]" items: type: string type: array status: description: Status description example: Success type: string status_code: description: Status code example: 200 type: integer type: description: Response type example: sync type: string type: object '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' summary: Get the cluster groups tags: - cluster groups /1.0/cluster/groups/{name}: delete: description: Removes the cluster group. operationId: cluster_group_delete responses: '200': $ref: '#/components/responses/EmptySyncResponse' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' summary: Delete the cluster group tags: - cluster groups get: description: Gets a specific cluster group. operationId: cluster_group_get responses: '200': description: Cluster group content: application/json: schema: description: Sync response properties: metadata: $ref: '#/components/schemas/ClusterGroup' status: description: Status description example: Success type: string status_code: description: Status code example: 200 type: integer type: description: Response type example: sync type: string type: object '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' summary: Get the cluster group tags: - cluster groups patch: description: Updates the cluster group configuration. operationId: cluster_group_patch responses: '200': $ref: '#/components/responses/EmptySyncResponse' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '412': $ref: '#/components/responses/PreconditionFailed' '500': $ref: '#/components/responses/InternalServerError' summary: Update the cluster group tags: - cluster groups requestBody: content: application/json: schema: $ref: '#/components/schemas/ClusterGroupPut' description: cluster group configuration required: true post: description: Renames an existing cluster group. operationId: cluster_group_post responses: '200': $ref: '#/components/responses/EmptySyncResponse' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' summary: Rename the cluster group tags: - cluster groups requestBody: content: application/json: schema: $ref: '#/components/schemas/ClusterGroupPost' description: Cluster group rename request required: true put: description: Updates the entire cluster group configuration. operationId: cluster_group_put responses: '200': $ref: '#/components/responses/EmptySyncResponse' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '412': $ref: '#/components/responses/PreconditionFailed' '500': $ref: '#/components/responses/InternalServerError' summary: Update the cluster group tags: - cluster groups requestBody: content: application/json: schema: $ref: '#/components/schemas/ClusterGroupPut' description: cluster group configuration required: true /1.0/cluster/groups?recursion=1: get: description: Returns a list of cluster groups (structs). operationId: cluster_groups_get_recursion1 responses: '200': description: API endpoints content: application/json: schema: description: Sync response properties: metadata: description: List of cluster groups items: $ref: '#/components/schemas/ClusterGroup' type: array status: description: Status description example: Success type: string status_code: description: Status code example: 200 type: integer type: description: Response type example: sync type: string type: object '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' summary: Get the cluster groups tags: - cluster groups components: responses: EmptySyncResponse: description: Empty sync response content: application/json: schema: properties: status: example: Success type: string x-go-name: Status status_code: example: 200 format: int64 type: integer x-go-name: StatusCode type: example: sync type: string x-go-name: Type type: object InternalServerError: description: Internal Server Error content: application/json: schema: properties: error: example: internal server error type: string x-go-name: Error error_code: example: 500 format: int64 type: integer x-go-name: ErrorCode type: example: error type: string x-go-name: Type type: object PreconditionFailed: description: Precondition Failed content: application/json: schema: properties: error: example: precondition failed type: string x-go-name: Error error_code: example: 412 format: int64 type: integer x-go-name: ErrorCode type: example: error type: string x-go-name: Type type: object BadRequest: description: Bad Request content: application/json: schema: properties: error: example: bad request type: string x-go-name: Error error_code: example: 400 format: int64 type: integer x-go-name: ErrorCode type: example: error type: string x-go-name: Type type: object Forbidden: description: Forbidden content: application/json: schema: properties: error: example: not authorized type: string x-go-name: Error error_code: example: 403 format: int64 type: integer x-go-name: ErrorCode type: example: error type: string x-go-name: Type type: object schemas: ClusterGroupPost: properties: name: description: The new name of the cluster group example: group1 type: string x-go-name: Name title: ClusterGroupPost represents the fields required to rename a cluster group. type: object x-go-package: github.com/canonical/lxd/shared/api ClusterGroup: properties: description: description: The description of the cluster group example: amd64 servers type: string x-go-name: Description members: description: List of members in this group example: - node1 - node3 items: type: string type: array x-go-name: Members name: description: The new name of the cluster group example: group1 type: string x-go-name: Name used_by: description: 'UsedBy is a list or LXD entity URLs that reference the cluster group. API extension: clustering_groups_used_by' items: type: string type: array x-go-name: UsedBy title: ClusterGroup represents a cluster group. type: object x-go-package: github.com/canonical/lxd/shared/api ClusterGroupPut: properties: description: description: The description of the cluster group example: amd64 servers type: string x-go-name: Description members: description: List of members in this group example: - node1 - node3 items: type: string type: array x-go-name: Members title: ClusterGroupPut represents the modifiable fields of a cluster group. type: object x-go-package: github.com/canonical/lxd/shared/api