> ## 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.

# update

<div>
  <h2>Name</h2>

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

  <p style={{ paddingLeft: "7ch" }}>
    Updates an existing VM instance with new configuration parameters.
  </p>
</div>

<div>
  <h2>Synopsis</h2>

  <p style={{ paddingLeft: "4ch" }}>
    ```
    nebius compute instance update [id]
      --boot-disk-attach-mode
      --boot-disk-device-id
      --boot-disk-existing-disk-id
      --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
      --cloud-init-user-data
      --filesystems
      --hostname
      --id
      --labels
      --labels-add
      --labels-remove
      --local-disks-passthrough-group-requested
      --name
      --network-interfaces
      --nvl-instance-group-id
      --parent-id
      --reservation-policy-policy
      --reservation-policy-reservation-ids
      --resource-version
      --resources-preset
      --secondary-disks
      --stopped
      --async
      --clear-mask
      --diff
      --full
      --patch
    ```
  </p>
</div>

<div>
  <h2>Positional Arguments</h2>

  <p style={{ paddingLeft: "4ch" }}>
    <code>id</code>
  </p>

  <p style={{ paddingLeft: "8ch" }}>
    Identifier for the resource, unique for its resource type.
  </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-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`.</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>
      `--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>
      `--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>
      `--id` (string)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Identifier for the resource, unique for its resource type.
    </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>
      `--labels-add` (string->string)
    </p>

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

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

    <p style={{ paddingLeft: "4ch" }}>
      Remove values from 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)
    </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>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: "4ch" }}>JSON Schema:</p>

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

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

    <p style={{ paddingLeft: "4ch" }}>
      NVLink Instance Group ID associated with the VM.
    </p>
  </div>

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

    <p style={{ paddingLeft: "4ch" }}>
      Identifier of the parent resource to which the resource belongs.
    </p>
  </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-preset` (string)
    </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>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>
    </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>
      `--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>
      `--clear-mask` (string array)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Reset-mask field paths to clear in patch mode. Can be repeated.
    </p>
  </div>

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

    <p style={{ paddingLeft: "4ch" }}>
      Show diff of resource before commiting update.
    </p>
  </div>

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

    <p style={{ paddingLeft: "4ch" }}>
      Update full resource state. Automatically set to true if the --file or argument provided.
    </p>
  </div>

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

    <p style={{ paddingLeft: "4ch" }}>
      Update only specified fields.
    </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": {               
          "id": string,              // [identifier]
                                     // Identifier for the resource, unique for its resource type.
          "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.
                "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
              }
            }
          },
          "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.
          }],
          "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.
            }],
            "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.
            }]
          }],
          "nvl_instance_group_id": string, // NVLink Instance Group ID associated with the VM.
          "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.
            "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.
                "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
              }
            }
          }],
          "stopped": bool                  // Indicates whether the instance should be stopped.
        }
      }
      ```
    </Tab>

    <Tab title="CopyPaste Friendly">
      ```json theme={null}
      nebius compute instance update '
      {              
        "metadata": {           
          "id": "",             
          "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": ""                                      
          }],
          "hostname": "",             
          "local_disks": {        
            "passthrough_group": {
              "requested": false  
            }
          },
          "network_interfaces": [{
            "aliases": [{         
              "allocation_id": "" 
            }],
            "public_ip_address": {
              "allocation_id": "",
              "static": false     
            },
            "security_groups": [{
              "id": ""           
            }]
          }],
          "nvl_instance_group_id": "",
          "reservation_policy": {             
            "policy": "auto"|"forbid"|"strict",
            "reservation_ids": [""]           
          },
          "resources": { 
            "preset": "" 
          },
          "secondary_disks": [{                                  
            "attach_mode": "unspecified"|"read_only"|"read_write",
            "device_id": "",                                     
            "existing_disk": {
              "id": ""        
            }
          }],
          "stopped": false            
        }
      }
      '
      ```
    </Tab>
  </Tabs>
</Expandable>

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