{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/canonical/main/json-schema/canonical-cluster-put-schema.json", "title": "ClusterPut", "description": "ClusterPut represents the fields required to bootstrap or join a LXD\ncluster.", "x-generated": "2026-10-04", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/canonical-cluster-api-openapi.yml#/components/schemas/ClusterPut", "properties": { "cluster_address": { "description": "The address of the cluster you wish to join", "type": "string", "x-go-name": "ClusterAddress" }, "cluster_certificate": { "description": "The expected certificate (X509 PEM encoded) for the cluster", "type": "string", "x-go-name": "ClusterCertificate" }, "cluster_token": { "description": "The cluster join token for the cluster you're trying to join\n\nAPI extension: explicit_trust_token", "type": "string", "x-go-name": "ClusterToken" }, "enabled": { "description": "Whether clustering is enabled", "type": "boolean", "x-go-name": "Enabled" }, "member_config": { "description": "List of member configuration keys (used during join)\n\nAPI extension: clustering_join", "items": { "$ref": "#/$defs/ClusterMemberConfigKey" }, "type": "array", "x-go-name": "MemberConfig" }, "server_address": { "description": "The local address to use for cluster communication\n\nAPI extension: clustering_join", "type": "string", "x-go-name": "ServerAddress" }, "server_name": { "description": "Name of the cluster member answering the request", "type": "string", "x-go-name": "ServerName" } }, "type": "object", "x-go-package": "github.com/canonical/lxd/shared/api", "$defs": { "ClusterMemberConfigKey": { "description": "The Value field is empty when getting clustering information with GET\n1.0/cluster, and should be filled by the joining node when performing a PUT\n1.0/cluster join request.", "properties": { "description": { "description": "A human friendly description key", "type": "string", "x-go-name": "Description" }, "entity": { "description": "The kind of configuration key (network, storage-pool, ...)", "type": "string", "x-go-name": "Entity" }, "key": { "description": "The name of the key", "type": "string", "x-go-name": "Key" }, "name": { "description": "The name of the object requiring this key", "type": "string", "x-go-name": "Name" }, "value": { "description": "The value on the answering cluster member", "type": "string", "x-go-name": "Value" } }, "title": "ClusterMemberConfigKey represents a single config key that a new member of\nthe cluster is required to provide when joining.", "type": "object", "x-go-package": "github.com/canonical/lxd/shared/api" } } }