{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/canonical/main/json-schema/canonical-nodes-post-schema.json",
  "title": "NodesPost",
  "description": "NodesPost describes a request to create a new node on AMS",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/canonical-nodes-api-openapi.yml#/components/schemas/NodesPost",
  "type": "object",
  "properties": {
    "address": {
      "description": "Internal IP address of the node",
      "type": "string",
      "format": "ipv4"
    },
    "cpu_allocation_rate": {
      "description": "CPU allocation rate for the node",
      "type": "number",
      "format": "float"
    },
    "cpus": {
      "description": "Number of CPUs on the node",
      "type": "integer",
      "format": "int64"
    },
    "gpu_encoder_slots": {
      "description": "Number of GPU encoder slots to configure on the node",
      "type": "integer",
      "format": "int64"
    },
    "gpu_slots": {
      "description": "Number of GPU slots to configure on the node",
      "type": "integer",
      "format": "int64"
    },
    "memory": {
      "description": "Memory (in GB) of the node",
      "type": "string"
    },
    "memory_allocation_rate": {
      "description": "Memory allocation rate for the node",
      "type": "number",
      "format": "float"
    },
    "name": {
      "description": "Name of the node",
      "type": "string"
    },
    "network_acl_name": {
      "description": "Name of the network ACL to create on the LXD node",
      "type": "string"
    },
    "network_bridge_mtu": {
      "description": "MTU for the configured network bridge on LXD",
      "type": "integer",
      "format": "int64"
    },
    "network_name": {
      "description": "Name of the network bridge to create on the LXD node",
      "type": "string"
    },
    "network_subnet": {
      "description": "CIDR of the subnet to configure for the network bridge on LXD",
      "type": "string",
      "format": "ipv4"
    },
    "public_address": {
      "description": "Public IP address of the node",
      "type": "string",
      "format": "ipv4"
    },
    "storage_device": {
      "description": "Storage device to use for configuring LXD storage pools",
      "type": "string"
    },
    "storage_pool": {
      "description": "Name of the storage pool to use for configuring the LXD node",
      "type": "string"
    },
    "tags": {
      "description": "Tags to attach to the node",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "trust_password": {
      "description": "Trust password for the LXD instance",
      "type": "string"
    },
    "unmanaged": {
      "description": "Flag used to control if AMS can manage the LXD node",
      "type": "boolean"
    }
  }
}