Canonical · Schema
InstanceFull is a combination of Instance, InstanceBackup, InstanceState and InstanceSnapshot.
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 |
| backups | array | List of backups. |
| 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 |
| snapshots | array | List of snapshots. |
| state | object | |
| 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) |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/canonical/main/json-schema/canonical-instance-full-schema.json",
"title": "InstanceFull is a combination of Instance, InstanceBackup, InstanceState and InstanceSnapshot.",
"x-generated": "2026-10-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/canonical-instances-api-openapi.yml#/components/schemas/InstanceFull",
"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"
},
"backups": {
"description": "List of backups.",
"items": {
"$ref": "#/$defs/InstanceBackup"
},
"type": "array",
"x-go-name": "Backups"
},
"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"
},
"snapshots": {
"description": "List of snapshots.",
"items": {
"$ref": "#/$defs/InstanceSnapshot"
},
"type": "array",
"x-go-name": "Snapshots"
},
"state": {
"$ref": "#/$defs/InstanceState"
},
"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": {
"InstanceBackup": {
"properties": {
"container_only": {
"description": "Whether to ignore snapshots (deprecated, use instance_only)\n\nDeprecated: Use InstanceOnly.",
"type": "boolean",
"x-deprecated": true,
"x-go-name": "ContainerOnly"
},
"created_at": {
"description": "When the backup was created",
"format": "date-time",
"type": "string",
"x-go-name": "CreatedAt"
},
"expires_at": {
"description": "When the backup expires (gets auto-deleted)",
"format": "date-time",
"type": "string",
"x-go-name": "ExpiresAt"
},
"instance_only": {
"description": "Whether to ignore snapshots",
"type": "boolean",
"x-go-name": "InstanceOnly"
},
"name": {
"description": "Backup name",
"type": "string",
"x-go-name": "Name"
},
"optimized_storage": {
"description": "Whether to use a pool-optimized binary format (instead of plain tarball)",
"type": "boolean",
"x-go-name": "OptimizedStorage"
}
},
"title": "InstanceBackup represents a LXD instance backup.",
"type": "object",
"x-go-package": "github.com/canonical/lxd/shared/api"
},
"InstanceSnapshot": {
"properties": {
"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"
},
"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"
},
"expires_at": {
"description": "When the snapshot expires (gets auto-deleted)",
"format": "date-time",
"type": "string",
"x-go-name": "ExpiresAt"
},
"last_used_at": {
"description": "Last start timestamp",
"format": "date-time",
"type": "string",
"x-go-name": "LastUsedAt"
},
"name": {
"description": "Snapshot 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"
},
"size": {
"description": "Size of the snapshot in bytes\n\nAPI extension: snapshot_disk_usage",
"format": "int64",
"type": "integer",
"x-go-name": "Size"
},
"stateful": {
"description": "Whether the instance currently has saved state on disk",
"type": "boolean",
"x-go-name": "Stateful"
}
},
"title": "InstanceSnapshot represents a LXD instance snapshot.",
"type": "object",
"x-go-package": "github.com/canonical/lxd/shared/api"
},
"InstanceState": {
"properties": {
"cpu": {
"$ref": "#/$defs/InstanceStateCPU"
},
"disk": {
"additionalProperties": {
"$ref": "#/$defs/InstanceStateDisk"
},
"description": "Disk usage key/value pairs",
"type": "object",
"x-go-name": "Disk"
},
"memory": {
"$ref": "#/$defs/InstanceStateMemory"
},
"network": {
"additionalProperties": {
"$ref": "#/$defs/InstanceStateNetwork"
},
"description": "Network usage key/value pairs",
"type": "object",
"x-go-name": "Network"
},
"pid": {
"description": "PID of the runtime",
"format": "int64",
"type": "integer",
"x-go-name": "Pid"
},
"processes": {
"description": "Number of processes in the instance",
"format": "int64",
"type": "integer",
"x-go-name": "Processes"
},
"status": {
"description": "Current status (Running, Stopped, Frozen or Error)",
"type": "string",
"x-go-name": "Status"
},
"status_code": {
"$ref": "#/$defs/StatusCode_2"
}
},
"title": "InstanceState represents a LXD instance's state.",
"type": "object",
"x-go-package": "github.com/canonical/lxd/shared/api"
},
"InstanceStateCPU": {
"properties": {
"usage": {
"description": "CPU usage in nanoseconds",
"format": "int64",
"type": "integer",
"x-go-name": "Usage"
}
},
"title": "InstanceStateCPU represents the cpu information section of a LXD instance's state.",
"type": "object",
"x-go-package": "github.com/canonical/lxd/shared/api"
},
"InstanceStateDisk": {
"properties": {
"total": {
"description": "Total size in bytes. Uses 0 to convey that the instance has access to the entire pool's storage.\n\nAPI extension: instances_state_total",
"format": "int64",
"type": "integer",
"x-go-name": "Total"
},
"usage": {
"description": "Disk usage in bytes. Uses 0 to indicate that the storage driver for the pool does not support retrieving disk usage.",
"format": "int64",
"type": "integer",
"x-go-name": "Usage"
}
},
"title": "InstanceStateDisk represents the disk information section of a LXD instance's state.",
"type": "object",
"x-go-package": "github.com/canonical/lxd/shared/api"
},
"InstanceStateMemory": {
"properties": {
"swap_usage": {
"description": "SWAP usage in bytes",
"format": "int64",
"type": "integer",
"x-go-name": "SwapUsage"
},
"swap_usage_peak": {
"description": "Peak SWAP usage in bytes",
"format": "int64",
"type": "integer",
"x-go-name": "SwapUsagePeak"
},
"total": {
"description": "Total memory size in bytes\n\nAPI extension: instances_state_total",
"format": "int64",
"type": "integer",
"x-go-name": "Total"
},
"usage": {
"description": "Memory usage in bytes",
"format": "int64",
"type": "integer",
"x-go-name": "Usage"
},
"usage_peak": {
"description": "Peak memory usage in bytes",
"format": "int64",
"type": "integer",
"x-go-name": "UsagePeak"
}
},
"title": "InstanceStateMemory represents the memory information section of a LXD instance's state.",
"type": "object",
"x-go-package": "github.com/canonical/lxd/shared/api"
},
"InstanceStateNetwork": {
"properties": {
"addresses": {
"description": "List of IP addresses",
"items": {
"$ref": "#/$defs/InstanceStateNetworkAddress"
},
"type": "array",
"x-go-name": "Addresses"
},
"counters": {
"$ref": "#/$defs/InstanceStateNetworkCounters"
},
"host_name": {
"description": "Name of the interface on the host",
"type": "string",
"x-go-name": "HostName"
},
"hwaddr": {
"description": "MAC address",
"type": "string",
"x-go-name": "Hwaddr"
},
"mtu": {
"description": "MTU (maximum transmit unit) for the interface",
"format": "int64",
"type": "integer",
"x-go-name": "Mtu"
},
"state": {
"description": "Administrative state of the interface (up/down)",
"type": "string",
"x-go-name": "State"
},
"type": {
"description": "Type of interface (broadcast, loopback, point-to-point, ...)",
"type": "string",
"x-go-name": "Type"
}
},
"title": "InstanceStateNetwork represents the network information section of a LXD instance's state.",
"type": "object",
"x-go-package": "github.com/canonical/lxd/shared/api"
},
"InstanceStateNetworkAddress": {
"description": "InstanceStateNetworkAddress represents a network address as part of the network section of a LXD\ninstance's state.",
"properties": {
"address": {
"description": "IP address",
"type": "string",
"x-go-name": "Address"
},
"family": {
"description": "Network family (inet or inet6)",
"type": "string",
"x-go-name": "Family"
},
"netmask": {
"description": "Network mask",
"type": "string",
"x-go-name": "Netmask"
},
"scope": {
"description": "Address scope (local, link or global)",
"type": "string",
"x-go-name": "Scope"
}
},
"type": "object",
"x-go-package": "github.com/canonical/lxd/shared/api"
},
"InstanceStateNetworkCounters": {
"description": "InstanceStateNetworkCounters represents packet counters as part of the network section of a LXD\ninstance's state.",
"properties": {
"bytes_received": {
"description": "Number of bytes received",
"format": "uint64",
"type": "integer",
"x-go-name": "BytesReceived"
},
"bytes_sent": {
"description": "Number of bytes sent",
"format": "uint64",
"type": "integer",
"x-go-name": "BytesSent"
},
"errors_received": {
"description": "Number of errors received",
"format": "uint64",
"type": "integer",
"x-go-name": "ErrorsReceived"
},
"errors_sent": {
"description": "Number of errors sent",
"format": "uint64",
"type": "integer",
"x-go-name": "ErrorsSent"
},
"packets_dropped_inbound": {
"description": "Number of inbound packets dropped",
"format": "uint64",
"type": "integer",
"x-go-name": "PacketsDroppedInbound"
},
"packets_dropped_outbound": {
"description": "Number of outbound packets dropped",
"format": "uint64",
"type": "integer",
"x-go-name": "PacketsDroppedOutbound"
},
"packets_received": {
"description": "Number of packets received",
"format": "uint64",
"type": "integer",
"x-go-name": "PacketsReceived"
},
"packets_sent": {
"description": "Number of packets sent",
"format": "uint64",
"type": "integer",
"x-go-name": "PacketsSent"
}
},
"type": "object",
"x-go-package": "github.com/canonical/lxd/shared/api"
},
"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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/canonical-instance-full"
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.