> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nebius.com/llms.txt
> Use this file to discover all available pages before exploring further.

# create

<div>
  <h2>Name</h2>

  <p style={{ paddingLeft: "4ch" }}>
    <code>nebius compute instance create</code>
  </p>

  <p style={{ paddingLeft: "7ch" }}>
    Creates a new VM instance based on the provided specification.<br />
    For details, see [https://docs.nebius.com/compute/virtual-machines/manage](https://docs.nebius.com/compute/virtual-machines/manage).
  </p>
</div>

<div>
  <h2>Synopsis</h2>

  <p style={{ paddingLeft: "4ch" }}>
    ```
    nebius compute instance create
      --boot-disk-attach-mode
      --boot-disk-device-id
      --boot-disk-existing-disk-id
      --boot-disk-managed-disk-block-size-bytes
      --boot-disk-managed-disk-disk-encryption-type
      --boot-disk-managed-disk-forbid-deletion
      --boot-disk-managed-disk-labels
      --boot-disk-managed-disk-name
      --boot-disk-managed-disk-size-bytes
      --boot-disk-managed-disk-size-gibibytes
      --boot-disk-managed-disk-size-kibibytes
      --boot-disk-managed-disk-size-mebibytes
      --boot-disk-managed-disk-source-image-family-image-family
      --boot-disk-managed-disk-source-image-family-parent-id
      --boot-disk-managed-disk-source-image-id
      --boot-disk-managed-disk-type
      --cloud-init-user-data
      --filesystems
      --gpu-cluster-id
      --hostname
      --labels
      --local-disks-passthrough-group-requested
      --name
      --network-interfaces [required]
      --parent-id [required]
      --preemptible-on-preemption
      --preemptible-priority
      --recovery-policy
      --reservation-policy-policy
      --reservation-policy-reservation-ids
      --resource-version
      --resources-platform [required]
      --resources-preset [required]
      --secondary-disks
      --service-account-id
      --stopped
      --async
      -i, --interactive
    ```
  </p>
</div>

<div>
  <h2>Options</h2>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-attach-mode` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>A value must be one of:</p>

    <ul style={{ paddingLeft: "8ch" }}>
      <li>
        <code>unspecified</code>
      </li>

      <li>
        <code>read\_only</code>
      </li>

      <li>
        <code>read\_write</code>
      </li>
    </ul>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-device-id` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Specifies the user-defined identifier, allowing to use '/dev/disk/by-id/virtio-{device_id}' as a device path in mount command.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-existing-disk-id` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-managed-disk-block-size-bytes`, `--boot-disk-managed-disk-disk-encryption-type`, `--boot-disk-managed-disk-forbid-deletion`, `--boot-disk-managed-disk-labels`, `--boot-disk-managed-disk-name`, `--boot-disk-managed-disk-size-bytes`, `--boot-disk-managed-disk-size-gibibytes`, `--boot-disk-managed-disk-size-kibibytes`, `--boot-disk-managed-disk-size-mebibytes`, `--boot-disk-managed-disk-source-image-family-image-family`, `--boot-disk-managed-disk-source-image-family-parent-id`, `--boot-disk-managed-disk-source-image-id`, `--boot-disk-managed-disk-type`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-managed-disk-block-size-bytes` (int64)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Block size in bytes.<br />
      The block size must be a power of two between 4096 bytes (4 KiB) and 131072 bytes (128 KiB).<br />
      The default value is 4096 bytes (4 KiB).
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-existing-disk-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-managed-disk-disk-encryption-type` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>A value must be one of:</p>

    <ul style={{ paddingLeft: "8ch" }}>
      <li>
        <code>disk\_encryption\_unspecified</code>
      </li>

      <li>
        <code>disk\_encryption\_managed</code>
      </li>
    </ul>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-existing-disk-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-managed-disk-forbid-deletion` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Prevents deletion whilst set.
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-existing-disk-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-managed-disk-labels` (string->string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Labels associated with disk resource.
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-existing-disk-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-managed-disk-name` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Name of a dependent disk.<br />
      Use it to convert an ExistingDisk to a dependent disk.<br />
      Changing the name will replace the disk and cause data loss.
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-existing-disk-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-managed-disk-size-bytes` (int64)
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-existing-disk-id`, `--boot-disk-managed-disk-size-gibibytes`, `--boot-disk-managed-disk-size-kibibytes`, `--boot-disk-managed-disk-size-mebibytes`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-managed-disk-size-gibibytes` (int64)
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-existing-disk-id`, `--boot-disk-managed-disk-size-bytes`, `--boot-disk-managed-disk-size-kibibytes`, `--boot-disk-managed-disk-size-mebibytes`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-managed-disk-size-kibibytes` (int64)
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-existing-disk-id`, `--boot-disk-managed-disk-size-bytes`, `--boot-disk-managed-disk-size-gibibytes`, `--boot-disk-managed-disk-size-mebibytes`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-managed-disk-size-mebibytes` (int64)
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-existing-disk-id`, `--boot-disk-managed-disk-size-bytes`, `--boot-disk-managed-disk-size-gibibytes`, `--boot-disk-managed-disk-size-kibibytes`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-managed-disk-source-image-family-image-family` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-existing-disk-id`, `--boot-disk-managed-disk-source-image-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-managed-disk-source-image-family-parent-id` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-existing-disk-id`, `--boot-disk-managed-disk-source-image-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-managed-disk-source-image-id` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-existing-disk-id`, `--boot-disk-managed-disk-source-image-family-image-family`, `--boot-disk-managed-disk-source-image-family-parent-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--boot-disk-managed-disk-type` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      The type of disk defines the performance and reliability characteristics of the block device.<br />
      For details, see [https://docs.nebius.com/compute/storage/types#disks-types](https://docs.nebius.com/compute/storage/types#disks-types).
    </p>

    <p style={{ paddingLeft: "4ch" }}>A value must be one of:</p>

    <ul style={{ paddingLeft: "8ch" }}>
      <li>
        <code>unspecified</code>
      </li>

      <li>
        <code>network\_ssd</code>
      </li>

      <li>
        <code>network\_hdd</code>
      </li>

      <li>
        <code>network\_ssd\_non\_replicated</code>
      </li>

      <li>
        <code>network\_ssd\_io\_m3</code>
      </li>
    </ul>

    <p style={{ paddingLeft: "4ch" }}>Mutually exclusive with: `--boot-disk-existing-disk-id`.</p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--cloud-init-user-data` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Data in cloud-init format for customizing instance initialization.<br />
      For details, see [https://docs.nebius.com/compute/virtual-machines/manage#user-data](https://docs.nebius.com/compute/virtual-machines/manage#user-data).
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--filesystems` (json)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      List of Shared Filesystems attached to the instance.
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      (structure)
    </p>

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>attach\_mode</strong> -> (string)<em>\[required]</em>
      </p>

      <p style={{ paddingLeft: "6ch" }}>A value must be one of:</p>

      <ul style={{ paddingLeft: "8ch" }}>
        <li>
          <code>"unspecified"</code>
        </li>

        <li>
          <code>"read\_only"</code>
        </li>

        <li>
          <code>"read\_write"</code>
        </li>
      </ul>
    </p>

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>existing\_filesystem</strong> -> (structure)
      </p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>id</strong> -> (string)<em>\[required]</em>
        </p>
      </p>
    </p>

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>mount\_tag</strong> -> (string)<em>\[required]</em>
      </p>

      <p style={{ paddingLeft: "6ch" }}>
        Specifies the user-defined identifier, allowing to use it as a device in mount command.
      </p>
    </p>

    <p style={{ paddingLeft: "4ch" }}>JSON Schema:</p>

    <p style={{ paddingLeft: "4ch" }}>
      ```json theme={null}
      [{                                                     
        "attach_mode": "unspecified"|"read_only"|"read_write",
        "existing_filesystem": {
          "id": ""              
        },
        "mount_tag": ""                                      
      }]
      ```
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--gpu-cluster-id` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      If you want to interconnect several instances in a GPU cluster via NVIDIA InfiniBand,<br />
      set the ID of an existing GPU cluster.<br />
      You can only add the VM to the cluster when creating the VM.<br />
      For details, see [https://docs.nebius.com/compute/clusters/gpu](https://docs.nebius.com/compute/clusters/gpu).
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--hostname` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Instance's hostname. Used to generate default DNS record in format `<hostname>.<network_id>.compute.internal.`<br />
      or `<instance_id>.<network_id>.compute.internal.` if hostname is not specified.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--labels` (string->string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Labels associated with the resource.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--local-disks-passthrough-group-requested` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Passthrough local disks from the underlying host.<br />

      <br />

      Devices are expected to appear in the guest as NVMe devices (nvme0, nvme1, ...),<br />
      but the exact number depends on the preset.<br />
      Enabled only when this field is explicitly set.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--name` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Human readable name for the resource.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--network-interfaces` (json)<em> \[required]</em>
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      List of network interfaces attached to the instance.
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      (structure)
    </p>

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>aliases</strong> -> (structure)
      </p>

      <p style={{ paddingLeft: "6ch" }}>
        Assign ranges of IP addresses as aliases.
      </p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>allocation\_id</strong> -> (string)<em>\[required]</em>
        </p>

        <p style={{ paddingLeft: "6ch" }}>
          ID of allocation.
        </p>
      </p>
    </p>

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>ip\_address</strong> -> (structure)<em>\[required]</em>
        <em>\[immutable]</em>
        <em>\[meaningful\_empty\_value]</em>
      </p>

      <p style={{ paddingLeft: "6ch" }}>
        Private IPv4 address associated with the interface.
      </p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>allocation\_id</strong> -> (string)
        </p>

        <p style={{ paddingLeft: "6ch" }}>
          Allocation identifier if it was created before.
        </p>
      </p>
    </p>

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>name</strong> -> (string)<em>\[required]</em>
        <em>\[immutable]</em>
      </p>

      <p style={{ paddingLeft: "6ch" }}>
        Interface name<br />
        Value of this field configures the name of the network interface inside VM's OS.<br />
        Longer values will persist in the specification but will be truncated to 15 symbols before being passed to VM configuration.
      </p>
    </p>

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>public\_ip\_address</strong> -> (structure)<em>\[meaningful\_empty\_value]</em>
      </p>

      <p style={{ paddingLeft: "6ch" }}>
        Public IPv4 address associated with the interface.
      </p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>allocation\_id</strong> -> (string)
        </p>

        <p style={{ paddingLeft: "6ch" }}>
          Allocation identifier if it was created before.
        </p>
      </p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>static</strong> -> (bool)
        </p>

        <p style={{ paddingLeft: "6ch" }}>
          If false - Allocation will be created/deleted during NetworkInterface.Allocate/NetworkInterface.Deallocate<br />
          If true  - Allocation will be created/deleted during NetworkInterface.Create/NetworkInterface.Delete<br />
          False by default.
        </p>
      </p>
    </p>

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>security\_groups</strong> -> (structure)
      </p>

      <p style={{ paddingLeft: "6ch" }}>
        Security groups associated with the network interface.<br />
        If an empty list is provided, the default security group for the network will be used.<br />
        Effective security groups can be seen in the status.
      </p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>id</strong> -> (string)
        </p>

        <p style={{ paddingLeft: "6ch" }}>
          Security group identifier.
        </p>
      </p>
    </p>

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>subnet\_id</strong> -> (string)<em>\[required]</em>
        <em>\[immutable]</em>
      </p>

      <p style={{ paddingLeft: "6ch" }}>
        Subnet ID.
      </p>
    </p>

    <p style={{ paddingLeft: "4ch" }}>JSON Schema:</p>

    <p style={{ paddingLeft: "4ch" }}>
      ```json theme={null}
      [{                      
        "aliases": [{         
          "allocation_id": "" 
        }],
        "ip_address": {       
          "allocation_id": "" 
        },
        "name": "",           
        "public_ip_address": {
          "allocation_id": "",
          "static": false     
        },
        "security_groups": [{
          "id": ""           
        }],
        "subnet_id": ""       
      }]
      ```
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--parent-id` (string)<em> \[required]</em>
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Identifier of the parent resource to which the resource belongs.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--preemptible-on-preemption` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Specifies what happens when the VM is preempted. The only supported value is STOP:<br />
      Compute stops the VM without deleting or restarting it.
    </p>

    <p style={{ paddingLeft: "4ch" }}>A value must be one of:</p>

    <ul style={{ paddingLeft: "8ch" }}>
      <li>
        <code>unspecified</code>
      </li>

      <li>
        <code>stop</code>
      </li>
    </ul>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--preemptible-priority` (int32)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      The value can range from 1 to 5, where 5 indicates the highest priority.<br />
      Affects the order in which Compute tries to preempt VMs, but does not guarantee the exact order.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--recovery-policy` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Recovery policy defines how the instance will be treated in case of a failure.<br />
      Common source of failure is a host failure, but it can be any other failure.<br />
      Instance undergoing a guest shutdown (poweroff, etc.) will be subject to recovery policy, meaning that it could<br />
      be restarted and billed accordingly. Stop instance via API or UI to stop it to avoid recovering.<br />

      * If set to RECOVER, instance will be restarted, if possible. It could be restarted on the same host or on another host.<br />
      * If set to FAIL, instance will be stopped and not restarted.
    </p>

    <p style={{ paddingLeft: "4ch" }}>A value must be one of:</p>

    <ul style={{ paddingLeft: "8ch" }}>
      <li>
        <code>recover</code>
      </li>

      <li>
        <code>fail</code>
      </li>
    </ul>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--reservation-policy-policy` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>A value must be one of:</p>

    <ul style={{ paddingLeft: "8ch" }}>
      <li>
        <code>auto</code>
      </li>

      <li>
        <code>forbid</code>
      </li>

      <li>
        <code>strict</code>
      </li>
    </ul>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--reservation-policy-reservation-ids` (string array)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Capacity block groups, order matters.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--resource-version` (int64)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Version of the resource for safe concurrent modifications and consistent reads.<br />
      Positive and monotonically increases on each resource spec change (but *not* on each change of the<br />
      resource's container(s) or status).<br />
      Service allows zero value or current.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--resources-platform` (string)<em> \[required]</em>
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--resources-preset` (string)<em> \[required]</em>
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--secondary-disks` (json)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      List of additional data disks attached to the instance beyond the boot disk.
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      (structure)
    </p>

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>attach\_mode</strong> -> (string)<em>\[required]</em>
      </p>

      <p style={{ paddingLeft: "6ch" }}>A value must be one of:</p>

      <ul style={{ paddingLeft: "8ch" }}>
        <li>
          <code>"unspecified"</code>
        </li>

        <li>
          <code>"read\_only"</code>
        </li>

        <li>
          <code>"read\_write"</code>
        </li>
      </ul>
    </p>

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>device\_id</strong> -> (string)
      </p>

      <p style={{ paddingLeft: "6ch" }}>
        Specifies the user-defined identifier, allowing to use '/dev/disk/by-id/virtio-{device_id}' as a device path in mount command.
      </p>
    </p>

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>existing\_disk</strong> -> (structure)
      </p>

      <p style={{ paddingLeft: "6ch" }}>
        Attach an existing disk.<br />

        <br />

        Lifecycle:<br />

        * The disk is preserved when the instance is deleted (it will be detached).<br />
                  <br />

        Switching to a managed disk:<br />

        * To delete the disk together with the instance, switch to ManagedDisk in the instance spec.<br />
        * For the switch, `ManagedDisk.name` MUST match the current disk `name`<br />
          (see DiskService.Get for the disk referenced by `ExistingDisk.id`).<br />
        * When converting an ExistingDisk to a ManagedDisk, you must provide `ManagedDisk.name` and `ManagedDisk.spec`<br />
          exactly as they are currently defined in the disk resource.<br />
          Obtain the current values via `DiskService.Get` and copy them verbatim.<br />
          If `ManagedDisk.spec` differs from the current disk spec, the instance update will fail.
      </p>

      <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>managed\_disk</em>.</p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>id</strong> -> (string)<em>\[required]</em>
        </p>
      </p>
    </p>

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>managed\_disk</strong> -> (structure)
      </p>

      <p style={{ paddingLeft: "6ch" }}>
        Attach a managed disk.<br />

        <br />

        Lifecycle:<br />

        * The disk is deleted when the instance is deleted.<br />
                  <br />

        Semantics:<br />

        * Specifying a ManagedDisk expresses an intent to have that managed disk attached.<br />
        * If this intent cannot be satisfied, the entire operation fails.<br />
        * You can check the intent status in `instance.status.disk_attachments`.<br />
                  <br />

        Updates and matching:<br />

        * Managed disks can be updated only via instance spec updates. Updates via DiskService are not allowed.<br />
        * During updates, disks are matched by `name`.<br />
                  <br />

        Renaming and data loss:<br />

        * Changing the disk `name` triggers disk replacement (create a new disk and delete the old one),<br />
          which causes data loss.<br />
        * To rename a managed disk safely:<br />
          1. switch it to ExistingDisk in the instance spec, and<br />
          2. update/rename it via DiskService.<br />
                     <br />

        Conflicts:<br />

        * Instance create/update fails if there is already a disk with the same `name`.<br />
          as requested by any ManagedDisk.<br />
                  <br />

        Finding the disk ID:<br />

        * The disk ID is available in `instance.status.disk_attachments` after it is created.<br />
          Use `DiskAttachmentStatus.name` to find the desired disk which matches `name`.<br />
                  <br />

        Switching to an existing (non-managed) disk:<br />

        * To preserve the disk after instance deletion, switch it to ExistingDisk in the instance spec,<br />
          use the disk ID from `instance.status.disk_attachments`.<br />
                  <br />

        Deletion protection:<br />

        * Switching ExistingDisk to ManagedDisk fails if `Disk.spec.deletion_protection` is enabled.<br />
        * Deleting an instance that has a ManagedDisk fails if `Disk.spec.deletion_protection` is enabled.
      </p>

      <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>existing\_disk</em>.</p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>labels</strong> -> (map)<em>\[map]</em>
        </p>

        <p style={{ paddingLeft: "6ch" }}>
          Labels associated with disk resource.
        </p>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>key</strong> -> (string)
          </p>
        </p>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>value</strong> -> (string)
          </p>
        </p>
      </p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>name</strong> -> (string)<em>\[required]</em>
        </p>

        <p style={{ paddingLeft: "6ch" }}>
          Name of a dependent disk.<br />
          Use it to convert an ExistingDisk to a dependent disk.<br />
          Changing the name will replace the disk and cause data loss.
        </p>
      </p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>spec</strong> -> (structure)<em>\[required]</em>
        </p>

        <p style={{ paddingLeft: "6ch" }}>
          Specification of a dependent disk to be created.
        </p>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>block\_size\_bytes</strong> -> (int64)<em>\[immutable]</em>
          </p>

          <p style={{ paddingLeft: "6ch" }}>
            Block size in bytes.<br />
            The block size must be a power of two between 4096 bytes (4 KiB) and 131072 bytes (128 KiB).<br />
            The default value is 4096 bytes (4 KiB).
          </p>
        </p>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>disk\_encryption</strong> -> (structure)<em>\[immutable]</em>
          </p>

          <p style={{ paddingLeft: "6ch" }}>
            Defines how data on the disk is encrypted. By default, no encryption is applied.
          </p>

          <p style={{ paddingLeft: "2ch" }}>
            <p style={{ paddingLeft: "4ch" }}>
              <strong>type</strong> -> (string)
            </p>

            <p style={{ paddingLeft: "6ch" }}>A value must be one of:</p>

            <ul style={{ paddingLeft: "8ch" }}>
              <li>
                <code>"disk\_encryption\_unspecified"</code>
              </li>

              <li>
                <code>"disk\_encryption\_managed"</code>
              </li>
            </ul>
          </p>
        </p>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>forbid\_deletion</strong> -> (bool)
          </p>

          <p style={{ paddingLeft: "6ch" }}>
            Prevents deletion whilst set.
          </p>
        </p>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>size\_bytes</strong> -> (int64)
          </p>

          <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>size\_gibibytes</em>, <em>size\_kibibytes</em>, <em>size\_mebibytes</em>.</p>
        </p>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>size\_gibibytes</strong> -> (int64)
          </p>

          <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>size\_bytes</em>, <em>size\_kibibytes</em>, <em>size\_mebibytes</em>.</p>
        </p>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>size\_kibibytes</strong> -> (int64)
          </p>

          <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>size\_bytes</em>, <em>size\_gibibytes</em>, <em>size\_mebibytes</em>.</p>
        </p>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>size\_mebibytes</strong> -> (int64)
          </p>

          <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>size\_bytes</em>, <em>size\_gibibytes</em>, <em>size\_kibibytes</em>.</p>
        </p>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>source\_image\_family</strong> -> (structure)<em>\[immutable]</em>
          </p>

          <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>source\_image\_id</em>.</p>

          <p style={{ paddingLeft: "2ch" }}>
            <p style={{ paddingLeft: "4ch" }}>
              <strong>image\_family</strong> -> (string)<em>\[required]</em>
            </p>
          </p>

          <p style={{ paddingLeft: "2ch" }}>
            <p style={{ paddingLeft: "4ch" }}>
              <strong>parent\_id</strong> -> (string)
            </p>
          </p>
        </p>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>source\_image\_id</strong> -> (string)<em>\[immutable]</em>
          </p>

          <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>source\_image\_family</em>.</p>
        </p>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>type</strong> -> (string)<em>\[required]</em>
            <em>\[immutable]</em>
          </p>

          <p style={{ paddingLeft: "6ch" }}>
            The type of disk defines the performance and reliability characteristics of the block device.<br />
            For details, see [https://docs.nebius.com/compute/storage/types#disks-types](https://docs.nebius.com/compute/storage/types#disks-types).
          </p>

          <p style={{ paddingLeft: "6ch" }}>A value must be one of:</p>

          <ul style={{ paddingLeft: "8ch" }}>
            <li>
              <code>"unspecified"</code>
            </li>

            <li>
              <code>"network\_ssd"</code>
            </li>

            <li>
              <code>"network\_hdd"</code>
            </li>

            <li>
              <code>"network\_ssd\_non\_replicated"</code>
            </li>

            <li>
              <code>"network\_ssd\_io\_m3"</code>
            </li>
          </ul>
        </p>
      </p>
    </p>

    <p style={{ paddingLeft: "4ch" }}>JSON Schema:</p>

    <p style={{ paddingLeft: "4ch" }}>
      ```json theme={null}
      [{                                                     
        "attach_mode": "unspecified"|"read_only"|"read_write",
        "device_id": "",                                     
        "existing_disk": {
          "id": ""        
        }
      }]
      ```
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--service-account-id` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Unique identifier of the service account associated with this instance.<br />
      For details, see [https://docs.nebius.dev/en/iam/about-iam/concepts/service-accounts](https://docs.nebius.dev/en/iam/about-iam/concepts/service-accounts).
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--stopped` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Indicates whether the instance should be stopped.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--async` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      If set, returns operation id. Otherwise, waits for the operation to complete and returns its resource.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-i, --interactive` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      If set, suggests to insert field values in interactive mode.
    </p>
  </div>
</div>

<div>
  <h2>Global Options</h2>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-h, --help` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Show this message.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-p, --profile` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set a profile for interacting with the cloud.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--format` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Output format. Supported values: yaml|json|jsonpath|table|text.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-f, --file` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Input file. For 'update' commands automatically set --full=true.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `-c, --config` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Provide path to config file.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--debug` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Enable debug logs.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--color` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Enable colored output.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--no-browser` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Do not open browser automatically on auth.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--insecure` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Disable transport security.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--auth-timeout` (duration: 2h30m10s)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set the timeout for the request including authentication process, default is 15m0s.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--per-retry-timeout` (duration: 2h30m10s)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set the timeout for each retry attempt, default is 20s.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--retries` (uint)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set the number of retry attempts, 1 is disable retries, default is 3.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--timeout` (duration: 2h30m10s)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Set the timeout for the main request, default is 1m0s.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--no-check-update` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Suppress check for updates.
    </p>
  </div>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--no-progress` (bool)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Suppress progress indicators and spinners.
    </p>
  </div>
</div>

<Expandable title="Input argument JSON Schema">
  <Tabs>
    <Tab title="Full">
      ```json theme={null}
      {              
        "metadata": {               
          "labels": {                // [map]
                                     // Labels associated with the resource.
            string: string                  
          },
          "name": string,            // Human readable name for the resource.
          "parent_id": string,       // [required]
                                     // Identifier of the parent resource to which the resource belongs.
          "resource_version": int64  // Version of the resource for safe concurrent modifications and consistent reads.
                                     // Positive and monotonically increases on each resource spec change (but *not* on each change of the
                                     // resource's container(s) or status).
                                     // Service allows zero value or current.
        },
        "spec": {                        
          "boot_disk": {         // Specified boot disk attached to the instance.
            "attach_mode": enum( // [required]
              "UNSPECIFIED",    
              "READ_ONLY",      
              "READ_WRITE"      
            ),
            "device_id": string, // Specifies the user-defined identifier, allowing to use '/dev/disk/by-id/virtio-{device_id}' as a device path in mount command.
            "existing_disk": { // Cannot be set together with: managed_disk
                               // Attach an existing disk.
                               // 
                               // Lifecycle:
                               // - The disk is preserved when the instance is deleted (it will be detached).
                               // 
                               // Switching to a managed disk:
                               // - To delete the disk together with the instance, switch to ManagedDisk in the instance spec.
                               // - For the switch, `ManagedDisk.name` MUST match the current disk `name`
                               //   (see DiskService.Get for the disk referenced by `ExistingDisk.id`).
                               // - When converting an ExistingDisk to a ManagedDisk, you must provide `ManagedDisk.name` and `ManagedDisk.spec`
                               //   exactly as they are currently defined in the disk resource.
                               //   Obtain the current values via `DiskService.Get` and copy them verbatim.
                               //   If `ManagedDisk.spec` differs from the current disk spec, the instance update will fail.
              "id": string     // [required]
            },
            "managed_disk": { // Cannot be set together with: existing_disk
                              // Attach a managed disk.
                              // 
                              // Lifecycle:
                              // - The disk is deleted when the instance is deleted.
                              // 
                              // Semantics:
                              // - Specifying a ManagedDisk expresses an intent to have that managed disk attached.
                              // - If this intent cannot be satisfied, the entire operation fails.
                              // - You can check the intent status in `instance.status.disk_attachments`.
                              // 
                              // Updates and matching:
                              // - Managed disks can be updated only via instance spec updates. Updates via DiskService are not allowed.
                              // - During updates, disks are matched by `name`.
                              // 
                              // Renaming and data loss:
                              // - Changing the disk `name` triggers disk replacement (create a new disk and delete the old one),
                              //   which causes data loss.
                              // - To rename a managed disk safely:
                              //   1) switch it to ExistingDisk in the instance spec, and
                              //   2) update/rename it via DiskService.
                              // 
                              // Conflicts:
                              // - Instance create/update fails if there is already a disk with the same `name`.
                              //   as requested by any ManagedDisk.
                              // 
                              // Finding the disk ID:
                              // - The disk ID is available in `instance.status.disk_attachments` after it is created.
                              //   Use `DiskAttachmentStatus.name` to find the desired disk which matches `name`.
                              // 
                              // Switching to an existing (non-managed) disk:
                              // - To preserve the disk after instance deletion, switch it to ExistingDisk in the instance spec,
                              //   use the disk ID from `instance.status.disk_attachments`.
                              // 
                              // Deletion protection:
                              // - Switching ExistingDisk to ManagedDisk fails if `Disk.spec.deletion_protection` is enabled.
                              // - Deleting an instance that has a ManagedDisk fails if `Disk.spec.deletion_protection` is enabled.
              "labels": {        // [map]
                                 // Labels associated with disk resource.
                string: string          
              },
              "name": string, // [required]
                              // Name of a dependent disk.
                              // Use it to convert an ExistingDisk to a dependent disk.
                              // Changing the name will replace the disk and cause data loss.
              "spec": {                    // [required]
                                           // Specification of a dependent disk to be created.
                "block_size_bytes": int64, // [immutable]
                                           // Block size in bytes.
                                           // The block size must be a power of two between 4096 bytes (4 KiB) and 131072 bytes (128 KiB).
                                           // The default value is 4096 bytes (4 KiB).
                "disk_encryption": { // [immutable]
                                     // Defines how data on the disk is encrypted. By default, no encryption is applied.
                  "type": enum(                   
                    "DISK_ENCRYPTION_UNSPECIFIED", // No encryption is applied unless explicitly specified.
                    "DISK_ENCRYPTION_MANAGED"      // Enables encryption using the platform's default root key from KMS.
                                                   // Available for disks with NETWORK_SSD_NON_REPLICATED and NETWORK_SSD_IO_M3 types only.
                  )
                },
                "forbid_deletion": bool,   // Prevents deletion whilst set.
                "size_bytes": int64,       // Cannot be set together with: size_kibibytes, size_mebibytes, size_gibibytes
                "size_gibibytes": int64,   // Cannot be set together with: size_bytes, size_kibibytes, size_mebibytes
                "size_kibibytes": int64,   // Cannot be set together with: size_bytes, size_mebibytes, size_gibibytes
                "size_mebibytes": int64,   // Cannot be set together with: size_bytes, size_kibibytes, size_gibibytes
                "source_image_family": {  // [immutable]
                                          // Cannot be set together with: source_image_id
                  "image_family": string, // [required]
                  "parent_id": string    
                },
                "source_image_id": string, // [immutable]
                                           // Cannot be set together with: source_image_family
                "type": enum(                   // [required] [immutable]
                                                // The type of disk defines the performance and reliability characteristics of the block device.
                                                // For details, see https://docs.nebius.com/compute/storage/types#disks-types.
                  "UNSPECIFIED",               
                  "NETWORK_SSD",               
                  "NETWORK_HDD",               
                  "NETWORK_SSD_NON_REPLICATED",
                  "NETWORK_SSD_IO_M3"          
                )
              }
            }
          },
          "cloud_init_user_data": string, // [sensitive]
                                          // Data in cloud-init format for customizing instance initialization.
                                          // For details, see https://docs.nebius.com/compute/virtual-machines/manage#user-data.
          "filesystems": [{          // List of Shared Filesystems attached to the instance.
            "attach_mode": enum( // [required]
              "UNSPECIFIED",    
              "READ_ONLY",      
              "READ_WRITE"      
            ),
            "existing_filesystem": {
              "id": string           // [required]
            },
            "mount_tag": string      // [required]
                                     // Specifies the user-defined identifier, allowing to use it as a device in mount command.
          }],
          "gpu_cluster": { // [immutable]
                           // If you want to interconnect several instances in a GPU cluster via NVIDIA InfiniBand,
                           // set the ID of an existing GPU cluster.
                           // You can only add the VM to the cluster when creating the VM.
                           // For details, see https://docs.nebius.com/compute/clusters/gpu.
            "id": string   // If you want to interconnect several instances in a GPU cluster via NVIDIA InfiniBand,
                           // set the ID of an existing GPU cluster.
                           // You can only add the VM to the cluster when creating the VM.
                           // For details, see https://docs.nebius.com/compute/clusters/gpu.
          },
          "hostname": string,             // Instance's hostname. Used to generate default DNS record in format `<hostname>.<network_id>.compute.internal.`
                                          // or `<instance_id>.<network_id>.compute.internal.` if hostname is not specified.
          "local_disks": {         // Local disks are meaningfully different from regular (remote) disks:
                                   // they are provided by the underlying host and are tied to a particular VM run.
                                   // Local disk data is not preserved across Stop-Start initiated via Compute API.
                                   // Local disks are not provided by default. To get them, explicitly request them via this field.
                                   // Availability depends on the selected platform, preset and region.
                                   // Changing this field will result in disks change and content loss, but only after stop and start the instance.
            "passthrough_group": { // Requests passthrough local disks from the host.
                                   // Topology of the provided disks is preserved during stop and start
                                   // for every instance of a specific platform and preset in the region.
              "requested": bool    // Passthrough local disks from the underlying host.
                                   // 
                                   // Devices are expected to appear in the guest as NVMe devices (nvme0, nvme1, ...),
                                   // but the exact number depends on the preset.
                                   // Enabled only when this field is explicitly set.
            }
          },
          "network_interfaces": [{ // [required]
                                   // List of network interfaces attached to the instance.
            "aliases": [{              // Assign ranges of IP addresses as aliases.
              "allocation_id": string  // [required]
                                       // ID of allocation.
            }],
            "ip_address": {            // [required] [immutable] [meaningful_empty_value]
                                       // Private IPv4 address associated with the interface.
              "allocation_id": string  // Allocation identifier if it was created before.
            },
            "name": string,        // [required] [immutable]
                                   // Interface name
                                   // Value of this field configures the name of the network interface inside VM's OS.
                                   // Longer values will persist in the specification but will be truncated to 15 symbols before being passed to VM configuration.
            "public_ip_address": {     // [meaningful_empty_value]
                                       // Public IPv4 address associated with the interface.
              "allocation_id": string, // Allocation identifier if it was created before.
              "static": bool           // If false - Allocation will be created/deleted during NetworkInterface.Allocate/NetworkInterface.Deallocate
                                       // If true  - Allocation will be created/deleted during NetworkInterface.Create/NetworkInterface.Delete
                                       // False by default.
            },
            "security_groups": [{ // Security groups associated with the network interface.
                                  // If an empty list is provided, the default security group for the network will be used.
                                  // Effective security groups can be seen in the status.
              "id": string        // Security group identifier.
            }],
            "subnet_id": string    // [required] [immutable]
                                   // Subnet ID.
          }],
          "preemptible": {         // [immutable]
                                   // Include these parameters to create a Preemptible VM and omit them to create a Regular VM
                                   // For details, see https://docs.nebius.com/compute/virtual-machines/preemptible.
            "on_preemption": enum( // [required] [immutable]
                                   // Specifies what happens when the VM is preempted. The only supported value is STOP:
                                   // Compute stops the VM without deleting or restarting it.
              "UNSPECIFIED",      
              "STOP"              
            ),
            "priority": int32      // [required] [immutable]
                                   // The value can range from 1 to 5, where 5 indicates the highest priority.
                                   // Affects the order in which Compute tries to preempt VMs, but does not guarantee the exact order.
          },
          "recovery_policy": enum( // [immutable]
                                   // Recovery policy defines how the instance will be treated in case of a failure.
                                   // Common source of failure is a host failure, but it can be any other failure.
                                   // Instance undergoing a guest shutdown (poweroff, etc.) will be subject to recovery policy, meaning that it could
                                   // be restarted and billed accordingly. Stop instance via API or UI to stop it to avoid recovering.
                                   // - If set to RECOVER, instance will be restarted, if possible. It could be restarted on the same host or on another host.
                                   // - If set to FAIL, instance will be stopped and not restarted.
            "RECOVER",            
            "FAIL"                
          ),
          "reservation_policy": {       
            "policy": enum(
              "AUTO",       // 1) Will try to launch instance in any reservation_ids if provided.
                            // 2) Will try to launch instance in any of the available capacity block.
                            // 3) Will try to launch instance in PAYG if 1 & 2 are not satisfied.
              "FORBID",     // The instance is launched only using on-demand (PAYG) capacity.
                            // No attempt is made to find or use a Capacity Block.
                            // It's an error to provide reservation_ids with policy = FORBID.
              "STRICT"      // 1) Will try to launch the instance in Capacity Blocks from reservation_ids if provided.
                            // 2) If reservation_ids are not provided will try to launch instance in suitable & available Capacity Block.
                            // 3) Fail otherwise.
            ),
            "reservation_ids": [string]  // Capacity block groups, order matters.
          },
          "resources": {        // [required]
                                // Specification of compute resources allocated to the instance.
                                // For details, see https://docs.nebius.com/compute/virtual-machines/types.
            "platform": string, // [required] [immutable]
            "preset": string   
          },
          "secondary_disks": [{  // List of additional data disks attached to the instance beyond the boot disk.
            "attach_mode": enum( // [required]
              "UNSPECIFIED",    
              "READ_ONLY",      
              "READ_WRITE"      
            ),
            "device_id": string, // Specifies the user-defined identifier, allowing to use '/dev/disk/by-id/virtio-{device_id}' as a device path in mount command.
            "existing_disk": { // Cannot be set together with: managed_disk
                               // Attach an existing disk.
                               // 
                               // Lifecycle:
                               // - The disk is preserved when the instance is deleted (it will be detached).
                               // 
                               // Switching to a managed disk:
                               // - To delete the disk together with the instance, switch to ManagedDisk in the instance spec.
                               // - For the switch, `ManagedDisk.name` MUST match the current disk `name`
                               //   (see DiskService.Get for the disk referenced by `ExistingDisk.id`).
                               // - When converting an ExistingDisk to a ManagedDisk, you must provide `ManagedDisk.name` and `ManagedDisk.spec`
                               //   exactly as they are currently defined in the disk resource.
                               //   Obtain the current values via `DiskService.Get` and copy them verbatim.
                               //   If `ManagedDisk.spec` differs from the current disk spec, the instance update will fail.
              "id": string     // [required]
            },
            "managed_disk": { // Cannot be set together with: existing_disk
                              // Attach a managed disk.
                              // 
                              // Lifecycle:
                              // - The disk is deleted when the instance is deleted.
                              // 
                              // Semantics:
                              // - Specifying a ManagedDisk expresses an intent to have that managed disk attached.
                              // - If this intent cannot be satisfied, the entire operation fails.
                              // - You can check the intent status in `instance.status.disk_attachments`.
                              // 
                              // Updates and matching:
                              // - Managed disks can be updated only via instance spec updates. Updates via DiskService are not allowed.
                              // - During updates, disks are matched by `name`.
                              // 
                              // Renaming and data loss:
                              // - Changing the disk `name` triggers disk replacement (create a new disk and delete the old one),
                              //   which causes data loss.
                              // - To rename a managed disk safely:
                              //   1) switch it to ExistingDisk in the instance spec, and
                              //   2) update/rename it via DiskService.
                              // 
                              // Conflicts:
                              // - Instance create/update fails if there is already a disk with the same `name`.
                              //   as requested by any ManagedDisk.
                              // 
                              // Finding the disk ID:
                              // - The disk ID is available in `instance.status.disk_attachments` after it is created.
                              //   Use `DiskAttachmentStatus.name` to find the desired disk which matches `name`.
                              // 
                              // Switching to an existing (non-managed) disk:
                              // - To preserve the disk after instance deletion, switch it to ExistingDisk in the instance spec,
                              //   use the disk ID from `instance.status.disk_attachments`.
                              // 
                              // Deletion protection:
                              // - Switching ExistingDisk to ManagedDisk fails if `Disk.spec.deletion_protection` is enabled.
                              // - Deleting an instance that has a ManagedDisk fails if `Disk.spec.deletion_protection` is enabled.
              "labels": {        // [map]
                                 // Labels associated with disk resource.
                string: string          
              },
              "name": string, // [required]
                              // Name of a dependent disk.
                              // Use it to convert an ExistingDisk to a dependent disk.
                              // Changing the name will replace the disk and cause data loss.
              "spec": {                    // [required]
                                           // Specification of a dependent disk to be created.
                "block_size_bytes": int64, // [immutable]
                                           // Block size in bytes.
                                           // The block size must be a power of two between 4096 bytes (4 KiB) and 131072 bytes (128 KiB).
                                           // The default value is 4096 bytes (4 KiB).
                "disk_encryption": { // [immutable]
                                     // Defines how data on the disk is encrypted. By default, no encryption is applied.
                  "type": enum(                   
                    "DISK_ENCRYPTION_UNSPECIFIED", // No encryption is applied unless explicitly specified.
                    "DISK_ENCRYPTION_MANAGED"      // Enables encryption using the platform's default root key from KMS.
                                                   // Available for disks with NETWORK_SSD_NON_REPLICATED and NETWORK_SSD_IO_M3 types only.
                  )
                },
                "forbid_deletion": bool,   // Prevents deletion whilst set.
                "size_bytes": int64,       // Cannot be set together with: size_kibibytes, size_mebibytes, size_gibibytes
                "size_gibibytes": int64,   // Cannot be set together with: size_bytes, size_kibibytes, size_mebibytes
                "size_kibibytes": int64,   // Cannot be set together with: size_bytes, size_mebibytes, size_gibibytes
                "size_mebibytes": int64,   // Cannot be set together with: size_bytes, size_kibibytes, size_gibibytes
                "source_image_family": {  // [immutable]
                                          // Cannot be set together with: source_image_id
                  "image_family": string, // [required]
                  "parent_id": string    
                },
                "source_image_id": string, // [immutable]
                                           // Cannot be set together with: source_image_family
                "type": enum(                   // [required] [immutable]
                                                // The type of disk defines the performance and reliability characteristics of the block device.
                                                // For details, see https://docs.nebius.com/compute/storage/types#disks-types.
                  "UNSPECIFIED",               
                  "NETWORK_SSD",               
                  "NETWORK_HDD",               
                  "NETWORK_SSD_NON_REPLICATED",
                  "NETWORK_SSD_IO_M3"          
                )
              }
            }
          }],
          "service_account_id": string,   // [immutable]
                                          // Unique identifier of the service account associated with this instance.
                                          // For details, see https://docs.nebius.dev/en/iam/about-iam/concepts/service-accounts.
          "stopped": bool                 // Indicates whether the instance should be stopped.
        }
      }
      ```
    </Tab>

    <Tab title="CopyPaste Friendly">
      ```json theme={null}
      nebius compute instance create '
      {              
        "metadata": {           
          "labels": {           
            "": ""                  
          },
          "name": "",           
          "parent_id": "",      
          "resource_version": 0 
        },
        "spec": {                            
          "boot_disk": {                                         
            "attach_mode": "unspecified"|"read_only"|"read_write",
            "device_id": "",                                     
            "existing_disk": {
              "id": ""        
            }
          },
          "cloud_init_user_data": "",        
          "filesystems": [{                                      
            "attach_mode": "unspecified"|"read_only"|"read_write",
            "existing_filesystem": {
              "id": ""              
            },
            "mount_tag": ""                                      
          }],
          "gpu_cluster": {
            "id": ""      
          },
          "hostname": "",                    
          "local_disks": {        
            "passthrough_group": {
              "requested": false  
            }
          },
          "network_interfaces": [{
            "aliases": [{         
              "allocation_id": "" 
            }],
            "ip_address": {       
              "allocation_id": "" 
            },
            "name": "",           
            "public_ip_address": {
              "allocation_id": "",
              "static": false     
            },
            "security_groups": [{
              "id": ""           
            }],
            "subnet_id": ""       
          }],
          "preemptible": {                       
            "on_preemption": "unspecified"|"stop",
            "priority": 0                        
          },
          "recovery_policy": "recover"|"fail",
          "reservation_policy": {             
            "policy": "auto"|"forbid"|"strict",
            "reservation_ids": [""]           
          },
          "resources": {   
            "platform": "",
            "preset": ""   
          },
          "secondary_disks": [{                                  
            "attach_mode": "unspecified"|"read_only"|"read_write",
            "device_id": "",                                     
            "existing_disk": {
              "id": ""        
            }
          }],
          "service_account_id": "",          
          "stopped": false                   
        }
      }
      '
      ```
    </Tab>
  </Tabs>
</Expandable>

<strong>Auto generated on 7-May-2026</strong>
