Canonical · Schema

Instance represents a LXD instance.

CanonicalCloudLinuxOpen SourceUbuntuContainersBare MetalCharmsIdentity

Properties

Name Type Description
access_entitlements array AccessEntitlements represents the entitlements that are granted to the requesting user on the attached entity.
architecture string Architecture name
config object Instance configuration (see doc/instances.md)
created_at string Instance creation timestamp
description string Instance description
devices object Instance devices (see doc/instances.md)
ephemeral boolean Whether the instance is ephemeral (deleted on shutdown)
expanded_config object Expanded configuration (all profiles and local config merged)
expanded_devices object Expanded devices (all profiles and local devices merged)
last_used_at string Last start timestamp
location string What cluster member this instance is located on
name string Instance name
profiles array List of profiles applied to the instance
project string Instance project name API extension: instance_all_projects
stateful boolean Whether the instance currently has saved state on disk
status string Instance status (see instance_state)
status_code object
type string The type of instance (container or virtual-machine)
View JSON Schema on GitHub

JSON Schema

canonical-instance-2-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/canonical/main/json-schema/canonical-instance-2-schema.json",
  "title": "Instance represents a LXD instance.",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/canonical-instances-api-openapi.yml#/components/schemas/Instance_2",
  "properties": {
    "access_entitlements": {
      "description": "AccessEntitlements represents the entitlements that are granted to the requesting user on the attached entity.",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-go-name": "AccessEntitlements"
    },
    "architecture": {
      "description": "Architecture name",
      "type": "string",
      "x-go-name": "Architecture"
    },
    "config": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Instance configuration (see doc/instances.md)",
      "type": "object",
      "x-go-name": "Config"
    },
    "created_at": {
      "description": "Instance creation timestamp",
      "format": "date-time",
      "type": "string",
      "x-go-name": "CreatedAt"
    },
    "description": {
      "description": "Instance description",
      "type": "string",
      "x-go-name": "Description"
    },
    "devices": {
      "additionalProperties": {
        "additionalProperties": {
          "type": "string"
        },
        "type": "object"
      },
      "description": "Instance devices (see doc/instances.md)",
      "type": "object",
      "x-go-name": "Devices"
    },
    "ephemeral": {
      "description": "Whether the instance is ephemeral (deleted on shutdown)",
      "type": "boolean",
      "x-go-name": "Ephemeral"
    },
    "expanded_config": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Expanded configuration (all profiles and local config merged)",
      "type": "object",
      "x-go-name": "ExpandedConfig"
    },
    "expanded_devices": {
      "additionalProperties": {
        "additionalProperties": {
          "type": "string"
        },
        "type": "object"
      },
      "description": "Expanded devices (all profiles and local devices merged)",
      "type": "object",
      "x-go-name": "ExpandedDevices"
    },
    "last_used_at": {
      "description": "Last start timestamp",
      "format": "date-time",
      "type": "string",
      "x-go-name": "LastUsedAt"
    },
    "location": {
      "description": "What cluster member this instance is located on",
      "type": "string",
      "x-go-name": "Location"
    },
    "name": {
      "description": "Instance name",
      "type": "string",
      "x-go-name": "Name"
    },
    "profiles": {
      "description": "List of profiles applied to the instance",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-go-name": "Profiles"
    },
    "project": {
      "description": "Instance project name\n\nAPI extension: instance_all_projects",
      "type": "string",
      "x-go-name": "Project"
    },
    "stateful": {
      "description": "Whether the instance currently has saved state on disk",
      "type": "boolean",
      "x-go-name": "Stateful"
    },
    "status": {
      "description": "Instance status (see instance_state)",
      "type": "string",
      "x-go-name": "Status"
    },
    "status_code": {
      "$ref": "#/$defs/StatusCode_2"
    },
    "type": {
      "description": "The type of instance (container or virtual-machine)",
      "type": "string",
      "x-go-name": "Type"
    }
  },
  "type": "object",
  "x-go-package": "github.com/canonical/lxd/shared/api",
  "$defs": {
    "StatusCode_2": {
      "format": "int64",
      "title": "StatusCode represents a valid LXD operation and container status.",
      "type": "integer",
      "x-go-package": "github.com/canonical/lxd/shared/api"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/canonical-instance-2"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.