diff --git a/nebius/compute/v1/disk.proto b/nebius/compute/v1/disk.proto index d7da67b..95804f3 100644 --- a/nebius/compute/v1/disk.proto +++ b/nebius/compute/v1/disk.proto @@ -136,7 +136,6 @@ message DiskEncryption { DISK_ENCRYPTION_UNSPECIFIED = 0; // Enables encryption using the platform's default root key from KMS. - // Available for blank disks only. // Available for disks with NETWORK_SSD_NON_REPLICATED and NETWORK_SSD_IO_M3 types only. DISK_ENCRYPTION_MANAGED = 1; } diff --git a/nebius/compute/v1/instance.proto b/nebius/compute/v1/instance.proto index 8228409..a3bf944 100644 --- a/nebius/compute/v1/instance.proto +++ b/nebius/compute/v1/instance.proto @@ -77,6 +77,8 @@ message InstanceSpec { ] } ]; + + ReservationPolicy reservation_policy = 23; } message PreemptibleSpec { @@ -198,6 +200,8 @@ message InstanceStatus { oneof gpu_cluster_topology { InstanceStatusInfinibandTopologyPath infiniband_topology_path = 10; } + + string reservation_id = 12; } enum InstanceRecoveryPolicy { @@ -209,3 +213,27 @@ enum InstanceRecoveryPolicy { message InstanceStatusInfinibandTopologyPath { repeated string path = 1; } + +message ReservationPolicy { + enum Policy { + // 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. + AUTO = 0; + + // 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 + FORBID = 1; + + // 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. + STRICT = 2; + } + + Policy policy = 1; + + // Capacity block groups, order matters + repeated string reservation_ids = 2; +}