{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/vultr/main/json-schema/vultr-create-baremetal-request-schema.json",
  "title": "create_baremetal_request",
  "x-generated": "2026-10-13",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/vultr-openapi.yml#/components/schemas/create_baremetal_request",
  "properties": {
    "region": {
      "description": "The [Region id](#operation/list-regions) to create the instance.",
      "type": "string"
    },
    "plan": {
      "description": "The [Bare Metal plan id](#operation/list-metal-plans) to use for this instance.",
      "type": "string"
    },
    "script_id": {
      "description": "The [Startup Script id](#operation/list-startup-scripts) to use for this instance.",
      "type": "string"
    },
    "enable_ipv6": {
      "description": "Enable IPv6.\n\n* true",
      "type": "boolean"
    },
    "sshkey_id": {
      "description": "The [SSH Key id](#operation/list-ssh-keys) to install on this instance.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "user_data": {
      "description": "The user-supplied, base64 encoded [user data](https://www.vultr.com/docs/manage-instance-user-data-with-the-vultr-metadata-api/) for this Instance.",
      "type": "string"
    },
    "label": {
      "description": "The user-supplied label.",
      "type": "string"
    },
    "activation_email": {
      "description": "Notify by email after deployment.\n\n* true\n* false (default)",
      "type": "boolean"
    },
    "hostname": {
      "description": "The user-supplied hostname to use when deploying this instance.",
      "type": "string"
    },
    "tag": {
      "deprecated": true,
      "description": "Use `tags` instead. The user-supplied tag.",
      "type": "string"
    },
    "reserved_ipv4": {
      "description": "The [Reserved IP id](#operation/list-reserved-ips) for this instance.",
      "type": "string"
    },
    "os_id": {
      "description": "If supplied, deploy the instance using this [Operating System id](#operation/list-os).",
      "type": "integer"
    },
    "snapshot_id": {
      "description": "If supplied, deploy the instance using this [Snapshot ID](#operation/list-snapshots).",
      "type": "string"
    },
    "app_id": {
      "description": "If supplied, deploy the instance using this [Application id](#operation/list-applications).",
      "type": "integer"
    },
    "image_id": {
      "description": "If supplied, deploy the instance using this [Application image_id](#operation/list-applications).",
      "type": "string"
    },
    "persistent_pxe": {
      "description": "Enable persistent PXE.\n\n* true\n* false (default)",
      "type": "boolean"
    },
    "attach_vpc2": {
      "description": "An array of [VPC IDs](#operation/list-vpc2) to attach to this Bare Metal Instance. This parameter takes precedence over `enable_vpc2`. Please choose one parameter.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "detach_vpc2": {
      "description": "An array of [VPC IDs](#operation/list-vpc2) to detach from this Bare Metal Instance. This parameter takes precedence over `enable_vpc2`.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "enable_vpc2": {
      "description": "If `true`, VPC 2.0 support will be added to the new server.\n\nThis parameter attaches a single VPC 2.0 netowrk. When no VPC 2.0 network exists in the region, it will be automatically created.\n\nIf there are multiple VPC 2.0 networks in the instance's region, use `attach_vpc2` instead to specify a VPC 2.0 network.",
      "type": "boolean"
    },
    "tags": {
      "description": "Tags to apply to the instance.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "user_scheme": {
      "description": "Linux-only: The user scheme used for logging into this instance. By default, the \"root\" user is configured. Alternatively, a limited user with sudo permissions can be selected.\n\n* root\n* limited",
      "type": "string"
    }
  },
  "required": [
    "plan",
    "region"
  ],
  "type": "object"
}