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

# estimate-batch

<div>
  <h2>Name</h2>

  <p style={{ paddingLeft: "4ch" }}>
    <code>nebius billing v1alpha1 calculator estimate-batch</code>
  </p>

  <p style={{ paddingLeft: "7ch" }}>
    Estimates prices for multiple resources.<br />
    Returns aggregated hourly and monthly cost estimates for all specified resources.
  </p>
</div>

<div>
  <h2>Synopsis</h2>

  <p style={{ paddingLeft: "4ch" }}>
    ```
    nebius billing v1alpha1 calculator estimate-batch
      --offer-types
      --resource-specs [required]
    ```
  </p>
</div>

<div>
  <h2>Options</h2>

  <div style={{ paddingLeft: "4ch" }}>
    <p>
      `--offer-types` (enum array)
    </p>

    <p style={{ paddingLeft: "4ch" }}>
      Type of offers to be applied to the cost estimate.
    </p>
  </div>

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

    <p style={{ paddingLeft: "4ch" }}>
      List of resource specifications for cost estimation.<br />
      Each resource will be priced individually and then aggregated into total costs.
    </p>

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

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

      <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>compute\_disk\_update\_spec</em>, <em>compute\_filesystem\_spec</em>, <em>compute\_filesystem\_update\_spec</em>, <em>compute\_instance\_spec</em>, <em>compute\_instance\_update\_spec</em>.</p>

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

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

          <p style={{ paddingLeft: "6ch" }}>
            Identifier for the resource, unique for its resource type.
          </p>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            Labels associated with the 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)
          </p>

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

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

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

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

          <p style={{ paddingLeft: "6ch" }}>
            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>
        </p>
      </p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>spec</strong> -> (structure)
        </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: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>compute\_disk\_update\_spec</strong> -> (structure)
      </p>

      <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>compute\_disk\_spec</em>, <em>compute\_filesystem\_spec</em>, <em>compute\_filesystem\_update\_spec</em>, <em>compute\_instance\_spec</em>, <em>compute\_instance\_update\_spec</em>.</p>

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

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

          <p style={{ paddingLeft: "6ch" }}>
            Identifier for the resource, unique for its resource type.
          </p>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            Labels associated with the 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)
          </p>

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

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

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

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

          <p style={{ paddingLeft: "6ch" }}>
            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>
        </p>
      </p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>spec</strong> -> (structure)
        </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: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>compute\_filesystem\_spec</strong> -> (structure)
      </p>

      <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>compute\_disk\_spec</em>, <em>compute\_disk\_update\_spec</em>, <em>compute\_filesystem\_update\_spec</em>, <em>compute\_instance\_spec</em>, <em>compute\_instance\_update\_spec</em>.</p>

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

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

          <p style={{ paddingLeft: "6ch" }}>
            Identifier for the resource, unique for its resource type.
          </p>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            Labels associated with the 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)
          </p>

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

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

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

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

          <p style={{ paddingLeft: "6ch" }}>
            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>
        </p>
      </p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>spec</strong> -> (structure)
        </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>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>type</strong> -> (string)<em>\[required]</em>
            <em>\[immutable]</em>
          </p>

          <p style={{ paddingLeft: "6ch" }}>
            The Shared Filesystem type determines its limits and performance characteristics.<br />
            For details, see [https://docs.nebius.com/compute/storage/types#filesystems-types](https://docs.nebius.com/compute/storage/types#filesystems-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>"weka"</code>
            </li>

            <li>
              <code>"vast"</code>
            </li>
          </ul>
        </p>
      </p>
    </p>

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

      <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>compute\_disk\_spec</em>, <em>compute\_disk\_update\_spec</em>, <em>compute\_filesystem\_spec</em>, <em>compute\_instance\_spec</em>, <em>compute\_instance\_update\_spec</em>.</p>

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

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

          <p style={{ paddingLeft: "6ch" }}>
            Identifier for the resource, unique for its resource type.
          </p>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            Labels associated with the 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)
          </p>

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

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

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

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

          <p style={{ paddingLeft: "6ch" }}>
            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>
        </p>
      </p>

      <p style={{ paddingLeft: "2ch" }}>
        <p style={{ paddingLeft: "4ch" }}>
          <strong>spec</strong> -> (structure)
        </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>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>type</strong> -> (string)<em>\[required]</em>
            <em>\[immutable]</em>
          </p>

          <p style={{ paddingLeft: "6ch" }}>
            The Shared Filesystem type determines its limits and performance characteristics.<br />
            For details, see [https://docs.nebius.com/compute/storage/types#filesystems-types](https://docs.nebius.com/compute/storage/types#filesystems-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>"weka"</code>
            </li>

            <li>
              <code>"vast"</code>
            </li>
          </ul>
        </p>
      </p>
    </p>

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

      <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>compute\_disk\_spec</em>, <em>compute\_disk\_update\_spec</em>, <em>compute\_filesystem\_spec</em>, <em>compute\_filesystem\_update\_spec</em>, <em>compute\_instance\_update\_spec</em>.</p>

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

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

          <p style={{ paddingLeft: "6ch" }}>
            Identifier for the resource, unique for its resource type.
          </p>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            Labels associated with the 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)
          </p>

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

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

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

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

          <p style={{ paddingLeft: "6ch" }}>
            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>
        </p>
      </p>

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

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

          <p style={{ paddingLeft: "6ch" }}>
            Specified boot disk attached to the instance.
          </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>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>cloud\_init\_user\_data</strong> -> (string)<em>\[sensitive]</em>
          </p>

          <p style={{ paddingLeft: "6ch" }}>
            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>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            List of Shared Filesystems attached to the instance.
          </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>

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

          <p style={{ paddingLeft: "6ch" }}>
            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>

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

            <p style={{ paddingLeft: "6ch" }}>
              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>
          </p>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            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>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            Local disks are meaningfully different from regular (remote) disks:<br />
            they are provided by the underlying host and are tied to a particular VM run.<br />
            Local disk data is not preserved across Stop-Start initiated via Compute API.<br />
            Local disks are not provided by default. To get them, explicitly request them via this field.<br />
            Availability depends on the selected platform, preset and region.<br />
            Changing this field will result in disks change and content loss, but only after stop and start the instance.
          </p>

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

            <p style={{ paddingLeft: "6ch" }}>
              Requests passthrough local disks from the host.<br />
              Topology of the provided disks is preserved during stop and start<br />
              for every instance of a specific platform and preset in the region.
            </p>

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

              <p style={{ paddingLeft: "6ch" }}>
                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>
            </p>
          </p>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            List of network interfaces attached to the instance.
          </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>

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

          <p style={{ paddingLeft: "6ch" }}>
            Include these parameters to create a Preemptible VM and omit them to create a Regular VM<br />
            For details, see [https://docs.nebius.com/compute/virtual-machines/preemptible](https://docs.nebius.com/compute/virtual-machines/preemptible).
          </p>

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

            <p style={{ paddingLeft: "6ch" }}>
              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: "6ch" }}>A value must be one of:</p>

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

              <li>
                <code>"stop"</code>
              </li>
            </ul>
          </p>

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

            <p style={{ paddingLeft: "6ch" }}>
              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>
          </p>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            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: "6ch" }}>A value must be one of:</p>

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

            <li>
              <code>"fail"</code>
            </li>
          </ul>
        </p>

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

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

            <p style={{ paddingLeft: "6ch" }}>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>
          </p>

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

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

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

          <p style={{ paddingLeft: "6ch" }}>
            Specification of compute resources allocated to the instance.<br />
            For details, see [https://docs.nebius.com/compute/virtual-machines/types](https://docs.nebius.com/compute/virtual-machines/types).
          </p>

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

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

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

          <p style={{ paddingLeft: "6ch" }}>
            List of additional data disks attached to the instance beyond the boot disk.
          </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>

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

          <p style={{ paddingLeft: "6ch" }}>
            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>
        </p>

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

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

    <p style={{ paddingLeft: "2ch" }}>
      <p style={{ paddingLeft: "4ch" }}>
        <strong>compute\_instance\_update\_spec</strong> -> (structure)
      </p>

      <p style={{ paddingLeft: "6ch" }}>Mutually exclusive with: <em>compute\_disk\_spec</em>, <em>compute\_disk\_update\_spec</em>, <em>compute\_filesystem\_spec</em>, <em>compute\_filesystem\_update\_spec</em>, <em>compute\_instance\_spec</em>.</p>

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

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

          <p style={{ paddingLeft: "6ch" }}>
            Identifier for the resource, unique for its resource type.
          </p>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            Labels associated with the 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)
          </p>

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

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

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

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

          <p style={{ paddingLeft: "6ch" }}>
            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>
        </p>
      </p>

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

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

          <p style={{ paddingLeft: "6ch" }}>
            Specified boot disk attached to the instance.
          </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>

        <p style={{ paddingLeft: "2ch" }}>
          <p style={{ paddingLeft: "4ch" }}>
            <strong>cloud\_init\_user\_data</strong> -> (string)<em>\[sensitive]</em>
          </p>

          <p style={{ paddingLeft: "6ch" }}>
            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>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            List of Shared Filesystems attached to the instance.
          </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>

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

          <p style={{ paddingLeft: "6ch" }}>
            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>

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

            <p style={{ paddingLeft: "6ch" }}>
              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>
          </p>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            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>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            Local disks are meaningfully different from regular (remote) disks:<br />
            they are provided by the underlying host and are tied to a particular VM run.<br />
            Local disk data is not preserved across Stop-Start initiated via Compute API.<br />
            Local disks are not provided by default. To get them, explicitly request them via this field.<br />
            Availability depends on the selected platform, preset and region.<br />
            Changing this field will result in disks change and content loss, but only after stop and start the instance.
          </p>

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

            <p style={{ paddingLeft: "6ch" }}>
              Requests passthrough local disks from the host.<br />
              Topology of the provided disks is preserved during stop and start<br />
              for every instance of a specific platform and preset in the region.
            </p>

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

              <p style={{ paddingLeft: "6ch" }}>
                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>
            </p>
          </p>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            List of network interfaces attached to the instance.
          </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>

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

          <p style={{ paddingLeft: "6ch" }}>
            Include these parameters to create a Preemptible VM and omit them to create a Regular VM<br />
            For details, see [https://docs.nebius.com/compute/virtual-machines/preemptible](https://docs.nebius.com/compute/virtual-machines/preemptible).
          </p>

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

            <p style={{ paddingLeft: "6ch" }}>
              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: "6ch" }}>A value must be one of:</p>

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

              <li>
                <code>"stop"</code>
              </li>
            </ul>
          </p>

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

            <p style={{ paddingLeft: "6ch" }}>
              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>
          </p>
        </p>

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

          <p style={{ paddingLeft: "6ch" }}>
            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: "6ch" }}>A value must be one of:</p>

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

            <li>
              <code>"fail"</code>
            </li>
          </ul>
        </p>

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

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

            <p style={{ paddingLeft: "6ch" }}>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>
          </p>

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

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

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

          <p style={{ paddingLeft: "6ch" }}>
            Specification of compute resources allocated to the instance.<br />
            For details, see [https://docs.nebius.com/compute/virtual-machines/types](https://docs.nebius.com/compute/virtual-machines/types).
          </p>

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

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

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

          <p style={{ paddingLeft: "6ch" }}>
            List of additional data disks attached to the instance beyond the boot disk.
          </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>

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

          <p style={{ paddingLeft: "6ch" }}>
            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>
        </p>

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

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

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

    <p style={{ paddingLeft: "4ch" }}>
      ```json theme={null}
      [{                                   
        "compute_disk_spec": {
          "metadata": {           
            "id": "",             
            "labels": {           
              "": ""                  
            },
            "name": "",           
            "parent_id": "",      
            "resource_version": 0 
          },
          "spec": {                                                                                           
            "block_size_bytes": 0,                                                                            
            "disk_encryption": {                                             
              "type": "disk_encryption_unspecified"|"disk_encryption_managed"
            },
            "forbid_deletion": false,                                                                         
            "size_bytes": 0,                                                                                  
            "source_image_family": {
              "image_family": "",   
              "parent_id": ""       
            },
            "type": "unspecified"|"network_ssd"|"network_hdd"|"network_ssd_non_replicated"|"network_ssd_io_m3"
          }
        }
      }]
      ```
    </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}
      {                     
        "offer_types": enum(           // Type of offers to be applied to the cost estimate.
          "OFFER_TYPE_UNSPECIFIED",   
          "OFFER_TYPE_CONTRACT_PRICE"  // Contract price is a special price for SKU.
        ),
        "resource_specs": [{                  // [required]
                                              // List of resource specifications for cost estimation.
                                              // Each resource will be priced individually and then aggregated into total costs.
          "compute_disk_spec": { // Cannot be set together with: compute_instance_spec, compute_instance_update_spec, compute_disk_update_spec, compute_filesystem_spec, compute_filesystem_update_spec
            "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": {                   
              "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"          
              )
            }
          },
          "compute_disk_update_spec": { // Cannot be set together with: compute_instance_spec, compute_instance_update_spec, compute_disk_spec, compute_filesystem_spec, compute_filesystem_update_spec
            "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": {                   
              "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"          
              )
            }
          },
          "compute_filesystem_spec": { // Cannot be set together with: compute_instance_spec, compute_instance_update_spec, compute_disk_spec, compute_disk_update_spec, compute_filesystem_update_spec
            "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": {                   
              "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).
              "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
              "type": enum(    // [required] [immutable]
                               // The Shared Filesystem type determines its limits and performance characteristics.
                               // For details, see https://docs.nebius.com/compute/storage/types#filesystems-types.
                "UNSPECIFIED",
                "NETWORK_SSD", // The list of available types will be clarified later, it is not final version.
                "NETWORK_HDD",
                "WEKA",       
                "VAST"        
              )
            }
          },
          "compute_filesystem_update_spec": { // Cannot be set together with: compute_instance_spec, compute_instance_update_spec, compute_disk_spec, compute_disk_update_spec, compute_filesystem_spec
            "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": {                   
              "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).
              "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
              "type": enum(    // [required] [immutable]
                               // The Shared Filesystem type determines its limits and performance characteristics.
                               // For details, see https://docs.nebius.com/compute/storage/types#filesystems-types.
                "UNSPECIFIED",
                "NETWORK_SSD", // The list of available types will be clarified later, it is not final version.
                "NETWORK_HDD",
                "WEKA",       
                "VAST"        
              )
            }
          },
          "compute_instance_spec": { // Cannot be set together with: compute_instance_update_spec, compute_disk_spec, compute_disk_update_spec, compute_filesystem_spec, compute_filesystem_update_spec
            "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.
                    "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.
            }
          },
          "compute_instance_update_spec": { // Cannot be set together with: compute_instance_spec, compute_disk_spec, compute_disk_update_spec, compute_filesystem_spec, compute_filesystem_update_spec
            "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.
                    "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 billing v1alpha1 calculator estimate-batch '
      {                                                                    
        "offer_types": "offer_type_unspecified"|"offer_type_contract_price",
        "resource_specs": [{                 
          "compute_disk_spec": {
            "metadata": {           
              "id": "",             
              "labels": {           
                "": ""                  
              },
              "name": "",           
              "parent_id": "",      
              "resource_version": 0 
            },
            "spec": {                                                                                           
              "block_size_bytes": 0,                                                                            
              "disk_encryption": {                                             
                "type": "disk_encryption_unspecified"|"disk_encryption_managed"
              },
              "forbid_deletion": false,                                                                         
              "size_bytes": 0,                                                                                  
              "source_image_family": {
                "image_family": "",   
                "parent_id": ""       
              },
              "type": "unspecified"|"network_ssd"|"network_hdd"|"network_ssd_non_replicated"|"network_ssd_io_m3"
            }
          }
        }]
      }
      '
      ```
    </Tab>
  </Tabs>
</Expandable>

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