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 Metadata API version: '1.0' tags: - name: Metadata paths: /1.0/metadata/configuration: get: description: Returns the generated LXD metadata configuration in JSON format. operationId: metadata_configuration_get responses: '200': description: API endpoints content: text/plain: schema: description: Sync response properties: metadata: $ref: '#/components/schemas/MetadataConfiguration' 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 metadata configuration tags: - Metadata components: responses: 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 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: MetadataConfigurationConfigKeys: properties: keys: items: additionalProperties: $ref: '#/components/schemas/MetadataConfigurationConfigKey' type: object type: array x-go-name: Keys title: MetadataConfigurationConfigKeys contains metadata about LXD server configuration options. type: object x-go-package: github.com/canonical/lxd/shared/api MetadataConfigurationEntityEntitlement: properties: description: description: Description describes the entitlement. example: Grants permission to do X, Y, and Z type: string x-go-name: Description name: description: Name contains the name of the entitlement. example: can_edit type: string x-go-name: Name title: MetadataConfigurationEntityEntitlement contains metadata about a LXD server entitlement. type: object x-go-package: github.com/canonical/lxd/shared/api MetadataConfigurationEntity: properties: entitlements: description: Entitlements contains a list of entitlements that apply to a specific entity type. items: $ref: '#/components/schemas/MetadataConfigurationEntityEntitlement' type: array x-go-name: Entitlements project_specific: description: ProjectSpecific indicates whether the entity is project specific. example: true type: boolean x-go-name: ProjectSpecific title: MetadataConfigurationEntity contains metadata about LXD server entities and available entitlements for authorization. type: object x-go-package: github.com/canonical/lxd/shared/api MetadataConfigurationConfigKey: properties: condition: description: Condition describes conditions under which the configuration key can be applied. example: Virtual machines only type: string x-go-name: Condition defaultdesc: description: DefaultDescription contains a description of the configuration key. example: A general description of a configuration key type: string x-go-name: DefaultDescription longdesc: description: LongDescription contains a long-form description of the configuration key. example: A much more in-depth description of the configuration key, including where and how it is used type: string x-go-name: LongDescription managed: description: Managed describes whether the configuration key is managed by LXD. example: 'yes' type: string x-go-name: Managed required: description: Required describes conditions under which the configuration key is required. example: On device creation type: string x-go-name: Required scope: description: 'Scope describes the cluster member specificity of a configuration key. Options marked with a `global` scope are applied to all cluster members. Options marked with a `local` scope are set on a per-member basis. API extension: metadata_configuration_scope' example: global type: string x-go-name: Scope shortdesc: description: ShortDescription contains a short-form description of the configuration key. example: A key for doing X type: string x-go-name: ShortDescription type: description: Type describes the type of the key. example: Comma delimited CIDR format subnets type: string x-go-name: Type title: MetadataConfigurationConfigKey contains metadata about a LXD server configuration option. type: object x-go-package: github.com/canonical/lxd/shared/api MetadataConfiguration: properties: configs: additionalProperties: additionalProperties: $ref: '#/components/schemas/MetadataConfigurationConfigKeys' type: object description: Configs contains all server configuration metadata. type: object x-go-name: Configs entities: additionalProperties: $ref: '#/components/schemas/MetadataConfigurationEntity' description: 'Entities contains all authorization related metadata. API extension: metadata_configuration_entity_types' type: object x-go-name: Entities title: MetadataConfiguration contains metadata about the LXD server configuration options. type: object x-go-package: github.com/canonical/lxd/shared/api