{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/canonical/main/json-schema/canonical-system-action-install-schema.json", "title": "SystemActionInstall", "description": "Payload to perform a step in the system installation process.", "x-generated": "2026-10-04", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/canonical-authenticationrequired-api-openapi.yml#/components/schemas/SystemActionInstall", "type": "object", "required": [ "action", "step" ], "properties": { "action": { "type": "string", "enum": [ "install" ] }, "step": { "type": "string", "description": "The specific step of the installation process to execute.", "enum": [ "setup-storage-encryption", "generate-recovery-key", "finish" ] } }, "oneOf": [ { "type": "object", "required": [ "step" ], "properties": { "step": { "type": "string", "enum": [ "setup-storage-encryption" ] }, "on-volumes": { "type": "array", "items": { "type": "string" }, "description": "A list of volume labels to operate on." }, "volumes-auth": { "type": "object", "additionalProperties": { "type": "string" }, "description": "A map of volume labels to their authentication credentials (e.g., passphrase or PIN)." } } }, { "type": "object", "required": [ "step" ], "properties": { "step": { "type": "string", "enum": [ "generate-recovery-key" ] } } }, { "type": "object", "required": [ "step" ], "properties": { "step": { "type": "string", "enum": [ "finish" ] }, "on-volumes": { "type": "array", "items": { "type": "string" }, "description": "A list of volume labels to operate on." }, "optional-install": { "type": "object", "properties": { "all": { "type": "boolean", "description": "If true, install all optional snaps and components. Cannot be used if 'snaps' or 'components' are specified." }, "snaps": { "type": "array", "items": { "type": "string" }, "description": "A list of specific optional snaps to install." }, "components": { "type": "array", "items": { "type": "string" }, "description": "A list of specific optional components to install." } } } } } ] }