diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/CapacityReservation.tsp b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/CapacityReservation.tsp index f98448fae475..a896c7c89606 100644 --- a/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/CapacityReservation.tsp +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/CapacityReservation.tsp @@ -26,7 +26,7 @@ model CapacityReservation >; /** - * SKU of the resource for which capacity needs be reserved. The SKU name and capacity is required to be set. For Block capacity reservations, sku.capacity can only accept values 1, 2, 4, 8, 16, 32, 64. Currently VM Skus with the capability called 'CapacityReservationSupported' set to true are supported. When 'CapacityReservationSupported' is true, the SKU capability also specifies the 'SupportedCapacityReservationTypes', which lists the types of capacity reservations (such as Targeted or Block) that the SKU supports. Refer to List Microsoft.Compute SKUs in a region (https://docs.microsoft.com/rest/api/compute/resourceskus/list) for supported values. + * SKU of the resource for which capacity needs be reserved. The SKU name and capacity is required to be set. For Block capacity reservations, sku.capacity can only accept values 1, 2, 4, 8, 16, 32, 64. Currently VM Skus with the capability called 'CapacityReservationSupported' set to true are supported. When 'CapacityReservationSupported' is true, the SKU capability also specifies the 'SupportedCapacityReservationTypes', which lists the types of capacity reservations (such as Targeted, Block, or DeferredSpot) that the SKU supports. Refer to List Microsoft.Compute SKUs in a region (https://docs.microsoft.com/rest/api/compute/resourceskus/list) for supported values. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "For backward compatibility" sku: Sku; @@ -71,7 +71,7 @@ interface CapacityReservations { >; /** - * The operation to delete a capacity reservation. This operation is allowed only when all the associated resources are disassociated from the capacity reservation. Please refer to https://aka.ms/CapacityReservation for more details. Note: Block capacity reservations cannot be deleted after it has been successfully allocated until the schedule end time. + * The operation to delete a capacity reservation. This operation is allowed only when all the associated resources are disassociated from the capacity reservation. Please refer to https://aka.ms/CapacityReservation for more details. Note: Block capacity reservations cannot be deleted after being successfully allocated until the schedule end time. DeferredSpot capacity reservations can be deleted while still pending, declined, or expired, but not when confirmed. */ #suppress "deprecated" "For backward compatibility" #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/CapacityReservationGroup_ListByResourceGroup.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/CapacityReservationGroup_ListByResourceGroup.json index 22d0d2b3a7a5..58cff2804910 100644 --- a/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/CapacityReservationGroup_ListByResourceGroup.json +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/CapacityReservationGroup_ListByResourceGroup.json @@ -76,6 +76,28 @@ "reservationType": "Block" } }, + { + "name": "{capacityReservationGroupName}", + "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + "type": "Microsoft.Compute/CapacityReservationGroups", + "location": "West US", + "properties": { + "capacityReservations": [ + { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation1" + }, + { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation2" + } + ], + "virtualMachinesAssociated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM3" + } + ], + "reservationType": "DeferredSpot" + } + }, { "name": "{capacityReservationGroupName}", "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/CapacityReservationGroup_ListBySubscription.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/CapacityReservationGroup_ListBySubscription.json index 7fae66a7b961..df1452cfee36 100644 --- a/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/CapacityReservationGroup_ListBySubscription.json +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/CapacityReservationGroup_ListBySubscription.json @@ -75,6 +75,28 @@ "reservationType": "Block" } }, + { + "name": "{capacityReservationGroupName}", + "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + "type": "Microsoft.Compute/CapacityReservationGroups", + "location": "West US", + "properties": { + "capacityReservations": [ + { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation1" + }, + { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation2" + } + ], + "virtualMachinesAssociated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM3" + } + ], + "reservationType": "DeferredSpot" + } + }, { "name": "{capacityReservationGroupName}", "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservationGroup_CreateOrUpdate.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservationGroup_CreateOrUpdate.json new file mode 100644 index 000000000000..34a882b81705 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservationGroup_CreateOrUpdate.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-03-01", + "capacityReservationGroupName": "deferredSpotCapacityReservationGroup", + "parameters": { + "location": "westus", + "tags": { + "department": "finance" + }, + "zones": [], + "properties": { + "reservationType": "DeferredSpot" + } + } + }, + "responses": { + "201": { + "body": { + "name": "deferredSpotCapacityReservationGroup", + "location": "westus", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/deferredSpotCapacityReservationGroup", + "tags": { + "department": "finance" + }, + "properties": { + "reservationType": "DeferredSpot" + } + } + }, + "200": { + "body": { + "location": "westus", + "tags": { + "department": "finance", + "owner": "myCompany" + }, + "name": "deferredSpotCapacityReservationGroup", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/deferredSpotCapacityReservationGroup", + "properties": { + "reservationType": "DeferredSpot" + } + } + } + }, + "operationId": "CapacityReservationGroups_CreateOrUpdate", + "title": "Create or update a deferred spot capacity reservation group." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservationGroup_Get.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservationGroup_Get.json new file mode 100644 index 000000000000..22016fd09cfd --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservationGroup_Get.json @@ -0,0 +1,85 @@ +{ + "parameters": { + "subscriptionId": "{subscriptionId}", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-03-01", + "capacityReservationGroupName": "deferredSpotCapacityReservationGroup", + "$expand": "instanceView" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/deferredSpotCapacityReservationGroup", + "properties": { + "capacityReservations": [ + { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation1" + }, + { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation2" + } + ], + "instanceView": { + "capacityReservations": [ + { + "name": "deferredSpotCapacityReservation1", + "utilizationInfo": { + "currentCapacity": 5, + "virtualMachinesAllocated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM2" + } + ] + }, + "reservationStateInfo": { + "reservationState": "Confirmed", + "activeFrom": "2026-04-01T05:00:00+00:00", + "activeUntil": "2026-04-01T07:30:00+00:00" + }, + "statuses": [ + { + "code": "ProvisioningState/succeeded", + "level": "Info", + "displayStatus": "Provisioning succeeded" + } + ] + }, + { + "name": "deferredSpotCapacityReservation2", + "utilizationInfo": { + "currentCapacity": 5, + "virtualMachinesAllocated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM3" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM4" + } + ] + }, + "statuses": [ + { + "code": "ProvisioningState/succeeded", + "level": "Info", + "displayStatus": "Provisioning succeeded" + } + ] + } + ] + }, + "reservationType": "DeferredSpot" + }, + "location": "westus", + "tags": { + "{tagName}": "{tagValue}" + }, + "name": "deferredSpotCapacityReservationGroup" + } + } + }, + "operationId": "CapacityReservationGroups_Get", + "title": "Get a deferred spot capacity reservation Group." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservation_CreateOrUpdate.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservation_CreateOrUpdate.json new file mode 100644 index 000000000000..34313b6ea336 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservation_CreateOrUpdate.json @@ -0,0 +1,81 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-03-01", + "parameters": { + "location": "westus", + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + }, + "properties": { + "scheduleProfile": { + "start": "2026-04-01T00:00:00Z", + "end": "2026-04-02T00:00:00Z", + "duration": "PT2H30M" + } + }, + "zones": [] + }, + "capacityReservationGroupName": "deferredSpotCapacityReservationGroup", + "capacityReservationName": "deferredSpotCapacityReservation" + }, + "responses": { + "200": { + "body": { + "name": "deferredSpotCapacityReservation", + "location": "westus", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation", + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + }, + "properties": { + "platformFaultDomainCount": 3, + "reservationId": "{GUID}", + "provisioningState": "Creating", + "scheduleProfile": { + "start": "2026-04-01T00:00:00+00:00", + "end": "2026-04-02T00:00:00+00:00", + "duration": "PT2H30M" + }, + "provisioningTime": "2026-03-30T01:02:38.3138469+00:00" + } + } + }, + "201": { + "body": { + "name": "deferredSpotCapacityReservation", + "location": "westus", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation", + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + }, + "properties": { + "platformFaultDomainCount": 3, + "reservationId": "{GUID}", + "provisioningState": "Creating", + "scheduleProfile": { + "start": "2026-04-01T00:00:00+00:00", + "end": "2026-04-02T00:00:00+00:00", + "duration": "PT2H30M" + }, + "provisioningTime": "2026-03-30T01:02:38.3138469+00:00" + } + } + } + }, + "operationId": "CapacityReservations_CreateOrUpdate", + "title": "Create or update a deferred spot capacity reservation." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservation_Get.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservation_Get.json new file mode 100644 index 000000000000..8f4bf9b4c4b5 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservation_Get.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "subscriptionId": "{subscriptionId}", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-03-01", + "capacityReservationGroupName": "deferredSpotCapacityReservationGroup", + "capacityReservationName": "deferredSpotCapacityReservation", + "$expand": "instanceView" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation", + "properties": { + "platformFaultDomainCount": 3, + "reservationId": "{GUID}", + "provisioningTime": "2026-03-30T01:02:38.3138469+00:00", + "virtualMachinesAssociated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM2" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM3" + } + ], + "provisioningState": "Succeeded", + "instanceView": { + "utilizationInfo": { + "currentCapacity": 5, + "virtualMachinesAllocated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM2" + } + ] + }, + "reservationStateInfo": { + "reservationState": "Confirmed", + "activeFrom": "2026-04-01T05:00:00+00:00", + "activeUntil": "2026-04-01T07:30:00+00:00" + }, + "statuses": [ + { + "code": "ProvisioningState/succeeded", + "level": "Info", + "displayStatus": "Provisioning succeeded" + } + ] + }, + "scheduleProfile": { + "start": "2026-04-01T00:00:00+00:00", + "end": "2026-04-02T00:00:00+00:00", + "duration": "PT2H30M" + }, + "timeCreated": "2026-03-30T01:02:38.3138469+00:00" + }, + "location": "westus", + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + }, + "name": "deferredSpotCapacityReservation" + } + } + }, + "operationId": "CapacityReservations_Get", + "title": "Get a deferred spot capacity reservation." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservation_ListByReservationGroup.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservation_ListByReservationGroup.json new file mode 100644 index 000000000000..936e7db4e6a7 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/examples/2026-03-01/capacityReservationExamples/DeferredSpotCapacityReservation_ListByReservationGroup.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "capacityReservationGroupName": "deferredSpotCapacityReservationGroup", + "api-version": "2026-03-01", + "$expand": "virtualMachines/$ref" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "{capacityReservationName}", + "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}/CapacityReservation/{capacityReservationName}", + "type": "Microsoft.Compute/CapacityReservations", + "location": "West US", + "properties": { + "platformFaultDomainCount": 3, + "reservationId": "{GUID}", + "provisioningTime": "2026-03-30T01:02:38.3138469+00:00", + "virtualMachinesAssociated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM2" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM3" + } + ], + "provisioningState": "Succeeded", + "scheduleProfile": { + "start": "2026-04-01T00:00:00+00:00", + "end": "2026-04-02T00:00:00+00:00", + "duration": "PT2H30M" + } + }, + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + }, + "zones": [] + }, + { + "name": "{capacityReservationName}", + "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}/CapacityReservation/{capacityReservationName}", + "type": "Microsoft.Compute/CapacityReservations", + "location": "West US", + "properties": { + "platformFaultDomainCount": 3, + "reservationId": "{GUID}", + "provisioningTime": "2026-03-30T01:02:38.3138469+00:00", + "virtualMachinesAssociated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM4" + } + ], + "provisioningState": "Succeeded", + "scheduleProfile": { + "start": "2026-04-01T00:00:00+00:00", + "end": "2026-04-02T00:00:00+00:00", + "duration": "PT2H30M" + } + }, + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + } + } + ] + } + } + }, + "operationId": "CapacityReservations_ListByCapacityReservationGroup", + "title": "List deferred spot capacity reservations in reservation group." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/models.tsp b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/models.tsp index 166bff5913b4..33007cb5a0e3 100644 --- a/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/models.tsp +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/Compute/models.tsp @@ -8515,12 +8515,12 @@ model CapacityReservationGroupProperties { instanceView?: CapacityReservationGroupInstanceView; /** - * Specifies the settings to enable sharing across subscriptions for the capacity reservation group resource. The capacity reservation group resource can generally be shared across subscriptions belonging to a single Azure AAD tenant or across AAD tenants if there is a trust relationship established between the tenants. Block capacity reservation does not support sharing across subscriptions. **Note:** Minimum api-version: 2023-09-01. Please refer to https://aka.ms/computereservationsharing for more details. + * Specifies the settings to enable sharing across subscriptions for the capacity reservation group resource. The capacity reservation group resource can generally be shared across subscriptions belonging to a single Azure AAD tenant or across AAD tenants if there is a trust relationship established between the tenants. Block and DeferredSpot capacity reservations do not support sharing across subscriptions. **Note:** Minimum api-version: 2023-09-01. Please refer to https://aka.ms/computereservationsharing for more details. */ sharingProfile?: ResourceSharingProfile; /** - * Indicates the type of capacity reservation. Allowed values are 'Block' for block capacity reservations and 'Targeted' for reservations that enable a VM to consume a specific capacity reservation when a capacity reservation group is provided. The reservation type is immutable and cannot be changed after it is assigned. + * Indicates the type of capacity reservation. Allowed values are 'Block' for block capacity reservations, 'DeferredSpot' for deferred spot capacity reservations, and 'Targeted' for reservations that enable a VM to consume a specific capacity reservation when a capacity reservation group is provided. The reservation type is immutable and cannot be changed after it is assigned. */ @added(Versions.v2025_04_01) reservationType?: ReservationType; @@ -8565,6 +8565,12 @@ model CapacityReservationInstanceView { */ utilizationInfo?: CapacityReservationUtilization; + /** + * The current state and active schedule for Deferred Spot capacity reservations. + */ + @added(Versions.v2026_03_01) + reservationStateInfo?: CapacityReservationStateInfo; + /** * The resource status information. */ @@ -8573,19 +8579,25 @@ model CapacityReservationInstanceView { } /** - * Defines the schedule for Block-type capacity reservations. Specifies the schedule during which capacity reservation is active and VM or VMSS resource can be allocated using reservation. This property is required and only supported when the capacity reservation group type is 'Block'. The scheduleProfile, start, and end fields are immutable after creation. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details. + * Defines the schedule for Block and DeferredSpot capacity reservations. For Block reservations, specifies the schedule during which the capacity reservation is active and VM or VMSS resources can be allocated. For DeferredSpot reservations, start and end define a time window within which a confirmed active schedule of the specified duration will be set. For Block reservations, the scheduleProfile, start, and end fields are immutable after creation. For DeferredSpot reservations, the duration can be updated when the reservation state is not Confirmed. Start, end, and duration can all be updated when the reservation state is Expired or Declined, which resets the state to Pending. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details. */ @added(Versions.v2025_04_01) model ScheduleProfile { /** - * The required start date for block capacity reservations. Must be today or within 56 days in the future. For same-day scheduling, requests must be submitted before 11:30 AM UTC. Example: 2025-06-27. + * The required start date or time for the capacity reservation schedule. For Block reservations, this is the start date and must be today or within 56 days in the future; for same-day scheduling, requests must be submitted before 11:30 AM UTC. For DeferredSpot reservations, this is the start of the time window within which a confirmed active schedule will be set. Example: 2025-06-27. */ start?: string; /** - * The required end date for block capacity reservations. Must be after the start date, with a duration of either 1–14 whole days or 3–26 whole weeks. Example: 2025-06-28. + * The required end date or time for the capacity reservation schedule. For Block reservations, this must be after the start date, with a duration of either 1–14 whole days or 3–26 whole weeks. For DeferredSpot reservations, this is the end of the time window within which a confirmed active schedule will be set. Example: 2025-06-28. */ end?: string; + + /** + * The desired duration for deferred spot capacity reservations. Minimum 2 hours, maximum 4 hours. Must be less than or equal to the total time between start and end. Must be in ISO 8601 format. Example: PT2H30M (2 hours 30 minutes) + */ + @added(Versions.v2026_03_01) + duration?: string; } /** @@ -8632,6 +8644,61 @@ union ReservationType { * To consume scheduled allocated block capacity reservation when a capacity reservation group is provided. */ Block: "Block", + + /** + * To consume scheduled allocated deferred spot capacity reservation when a capacity reservation group is provided. + */ + @added(Versions.v2026_03_01) + DeferredSpot: "DeferredSpot", +} + +/** + * The current state of a deferred spot capacity reservation. + */ +@added(Versions.v2026_03_01) +union ReservationState { + string, + + /** + * The reservation request has been created and is awaiting confirmation. + */ + Pending: "Pending", + + /** + * The reservation has been confirmed and is scheduled for activation. + */ + Confirmed: "Confirmed", + + /** + * The reservation request could not be fulfilled. + */ + Declined: "Declined", + + /** + * The reservation is no longer active because its end time has passed. + */ + Expired: "Expired", +} + +/** + * The current state and confirmed active schedule for a deferred spot capacity reservation. + */ +@added(Versions.v2026_03_01) +model CapacityReservationStateInfo { + /** + * The current state of the capacity reservation. + */ + reservationState?: ReservationState; + + /** + * The date and time in UTC when the capacity reservation becomes active. + */ + activeFrom?: utcDateTime; + + /** + * The date and time in UTC when the capacity reservation expires. + */ + activeUntil?: utcDateTime; } /** @@ -8707,7 +8774,7 @@ model CapacityReservationProperties { timeCreated?: utcDateTime; /** - * Defines the schedule for Block-type capacity reservations. Specifies the schedule during which capacity reservation is active and VM or VMSS resource can be allocated using reservation. This property is required and only supported when the capacity reservation group type is 'Block'. The scheduleProfile, start, and end fields are immutable after creation. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details. + * Defines the schedule for Block and DeferredSpot capacity reservations. For Block reservations, specifies the schedule during which the capacity reservation is active and VM or VMSS resources can be allocated. For DeferredSpot reservations, start and end define a time window within which a confirmed active schedule of the specified duration will be set. For Block reservations, the scheduleProfile, start, and end fields are immutable after creation. For DeferredSpot reservations, the duration can be updated when the reservation state is not Confirmed, and start, end, and duration can all be updated when the reservation state is Expired or Declined, which resets the state to Pending. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details. */ @added(Versions.v2025_04_01) scheduleProfile?: ScheduleProfile; diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2024-11-01/ComputeRP.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2024-11-01/ComputeRP.json index d07989f28a87..33de601b6aac 100644 --- a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2024-11-01/ComputeRP.json +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2024-11-01/ComputeRP.json @@ -2957,7 +2957,7 @@ "tags": [ "CapacityReservations" ], - "description": "The operation to delete a capacity reservation. This operation is allowed only when all the associated resources are disassociated from the capacity reservation. Please refer to https://aka.ms/CapacityReservation for more details. Note: Block capacity reservations cannot be deleted after it has been successfully allocated until the schedule end time.", + "description": "The operation to delete a capacity reservation. This operation is allowed only when all the associated resources are disassociated from the capacity reservation. Please refer to https://aka.ms/CapacityReservation for more details. Note: Block capacity reservations cannot be deleted after being successfully allocated until the schedule end time. DeferredSpot capacity reservations can be deleted while still pending, declined, or expired, but not when confirmed.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" @@ -12722,7 +12722,7 @@ }, "sku": { "$ref": "#/definitions/Sku", - "description": "SKU of the resource for which capacity needs be reserved. The SKU name and capacity is required to be set. For Block capacity reservations, sku.capacity can only accept values 1, 2, 4, 8, 16, 32, 64. Currently VM Skus with the capability called 'CapacityReservationSupported' set to true are supported. When 'CapacityReservationSupported' is true, the SKU capability also specifies the 'SupportedCapacityReservationTypes', which lists the types of capacity reservations (such as Targeted or Block) that the SKU supports. Refer to List Microsoft.Compute SKUs in a region (https://docs.microsoft.com/rest/api/compute/resourceskus/list) for supported values." + "description": "SKU of the resource for which capacity needs be reserved. The SKU name and capacity is required to be set. For Block capacity reservations, sku.capacity can only accept values 1, 2, 4, 8, 16, 32, 64. Currently VM Skus with the capability called 'CapacityReservationSupported' set to true are supported. When 'CapacityReservationSupported' is true, the SKU capability also specifies the 'SupportedCapacityReservationTypes', which lists the types of capacity reservations (such as Targeted, Block, or DeferredSpot) that the SKU supports. Refer to List Microsoft.Compute SKUs in a region (https://docs.microsoft.com/rest/api/compute/resourceskus/list) for supported values." }, "zones": { "type": "array", @@ -12855,7 +12855,7 @@ }, "sharingProfile": { "$ref": "#/definitions/ResourceSharingProfile", - "description": "Specifies the settings to enable sharing across subscriptions for the capacity reservation group resource. The capacity reservation group resource can generally be shared across subscriptions belonging to a single Azure AAD tenant or across AAD tenants if there is a trust relationship established between the tenants. Block capacity reservation does not support sharing across subscriptions. **Note:** Minimum api-version: 2023-09-01. Please refer to https://aka.ms/computereservationsharing for more details." + "description": "Specifies the settings to enable sharing across subscriptions for the capacity reservation group resource. The capacity reservation group resource can generally be shared across subscriptions belonging to a single Azure AAD tenant or across AAD tenants if there is a trust relationship established between the tenants. Block and DeferredSpot capacity reservations do not support sharing across subscriptions. **Note:** Minimum api-version: 2023-09-01. Please refer to https://aka.ms/computereservationsharing for more details." } } }, diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2025-04-01/ComputeRP.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2025-04-01/ComputeRP.json index 6b9d1337e6ae..ea646170ce9e 100644 --- a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2025-04-01/ComputeRP.json +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2025-04-01/ComputeRP.json @@ -2987,7 +2987,7 @@ "tags": [ "CapacityReservations" ], - "description": "The operation to delete a capacity reservation. This operation is allowed only when all the associated resources are disassociated from the capacity reservation. Please refer to https://aka.ms/CapacityReservation for more details. Note: Block capacity reservations cannot be deleted after it has been successfully allocated until the schedule end time.", + "description": "The operation to delete a capacity reservation. This operation is allowed only when all the associated resources are disassociated from the capacity reservation. Please refer to https://aka.ms/CapacityReservation for more details. Note: Block capacity reservations cannot be deleted after being successfully allocated until the schedule end time. DeferredSpot capacity reservations can be deleted while still pending, declined, or expired, but not when confirmed.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" @@ -12851,7 +12851,7 @@ }, "sku": { "$ref": "#/definitions/Sku", - "description": "SKU of the resource for which capacity needs be reserved. The SKU name and capacity is required to be set. For Block capacity reservations, sku.capacity can only accept values 1, 2, 4, 8, 16, 32, 64. Currently VM Skus with the capability called 'CapacityReservationSupported' set to true are supported. When 'CapacityReservationSupported' is true, the SKU capability also specifies the 'SupportedCapacityReservationTypes', which lists the types of capacity reservations (such as Targeted or Block) that the SKU supports. Refer to List Microsoft.Compute SKUs in a region (https://docs.microsoft.com/rest/api/compute/resourceskus/list) for supported values." + "description": "SKU of the resource for which capacity needs be reserved. The SKU name and capacity is required to be set. For Block capacity reservations, sku.capacity can only accept values 1, 2, 4, 8, 16, 32, 64. Currently VM Skus with the capability called 'CapacityReservationSupported' set to true are supported. When 'CapacityReservationSupported' is true, the SKU capability also specifies the 'SupportedCapacityReservationTypes', which lists the types of capacity reservations (such as Targeted, Block, or DeferredSpot) that the SKU supports. Refer to List Microsoft.Compute SKUs in a region (https://docs.microsoft.com/rest/api/compute/resourceskus/list) for supported values." }, "zones": { "type": "array", @@ -12984,11 +12984,11 @@ }, "sharingProfile": { "$ref": "#/definitions/ResourceSharingProfile", - "description": "Specifies the settings to enable sharing across subscriptions for the capacity reservation group resource. The capacity reservation group resource can generally be shared across subscriptions belonging to a single Azure AAD tenant or across AAD tenants if there is a trust relationship established between the tenants. Block capacity reservation does not support sharing across subscriptions. **Note:** Minimum api-version: 2023-09-01. Please refer to https://aka.ms/computereservationsharing for more details." + "description": "Specifies the settings to enable sharing across subscriptions for the capacity reservation group resource. The capacity reservation group resource can generally be shared across subscriptions belonging to a single Azure AAD tenant or across AAD tenants if there is a trust relationship established between the tenants. Block and DeferredSpot capacity reservations do not support sharing across subscriptions. **Note:** Minimum api-version: 2023-09-01. Please refer to https://aka.ms/computereservationsharing for more details." }, "reservationType": { "$ref": "#/definitions/ReservationType", - "description": "Indicates the type of capacity reservation. Allowed values are 'Block' for block capacity reservations and 'Targeted' for reservations that enable a VM to consume a specific capacity reservation when a capacity reservation group is provided. The reservation type is immutable and cannot be changed after it is assigned." + "description": "Indicates the type of capacity reservation. Allowed values are 'Block' for block capacity reservations, 'DeferredSpot' for deferred spot capacity reservations, and 'Targeted' for reservations that enable a VM to consume a specific capacity reservation when a capacity reservation group is provided. The reservation type is immutable and cannot be changed after it is assigned." } } }, @@ -13136,7 +13136,7 @@ }, "scheduleProfile": { "$ref": "#/definitions/ScheduleProfile", - "description": "Defines the schedule for Block-type capacity reservations. Specifies the schedule during which capacity reservation is active and VM or VMSS resource can be allocated using reservation. This property is required and only supported when the capacity reservation group type is 'Block'. The scheduleProfile, start, and end fields are immutable after creation. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details." + "description": "Defines the schedule for Block and DeferredSpot capacity reservations. For Block reservations, specifies the schedule during which the capacity reservation is active and VM or VMSS resources can be allocated. For DeferredSpot reservations, start and end define a time window within which a confirmed active schedule of the specified duration will be set. For Block reservations, the scheduleProfile, start, and end fields are immutable after creation. For DeferredSpot reservations, the duration can be updated when the reservation state is not Confirmed, and start, end, and duration can all be updated when the reservation state is Expired or Declined, which resets the state to Pending. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details." } } }, @@ -17387,15 +17387,15 @@ }, "ScheduleProfile": { "type": "object", - "description": "Defines the schedule for Block-type capacity reservations. Specifies the schedule during which capacity reservation is active and VM or VMSS resource can be allocated using reservation. This property is required and only supported when the capacity reservation group type is 'Block'. The scheduleProfile, start, and end fields are immutable after creation. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details.", + "description": "Defines the schedule for Block and DeferredSpot capacity reservations. For Block reservations, specifies the schedule during which the capacity reservation is active and VM or VMSS resources can be allocated. For DeferredSpot reservations, start and end define a time window within which a confirmed active schedule of the specified duration will be set. For Block reservations, the scheduleProfile, start, and end fields are immutable after creation. For DeferredSpot reservations, the duration can be updated when the reservation state is not Confirmed. Start, end, and duration can all be updated when the reservation state is Expired or Declined, which resets the state to Pending. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details.", "properties": { "start": { "type": "string", - "description": "The required start date for block capacity reservations. Must be today or within 56 days in the future. For same-day scheduling, requests must be submitted before 11:30 AM UTC. Example: 2025-06-27." + "description": "The required start date or time for the capacity reservation schedule. For Block reservations, this is the start date and must be today or within 56 days in the future; for same-day scheduling, requests must be submitted before 11:30 AM UTC. For DeferredSpot reservations, this is the start of the time window within which a confirmed active schedule will be set. Example: 2025-06-27." }, "end": { "type": "string", - "description": "The required end date for block capacity reservations. Must be after the start date, with a duration of either 1–14 whole days or 3–26 whole weeks. Example: 2025-06-28." + "description": "The required end date or time for the capacity reservation schedule. For Block reservations, this must be after the start date, with a duration of either 1–14 whole days or 3–26 whole weeks. For DeferredSpot reservations, this is the end of the time window within which a confirmed active schedule will be set. Example: 2025-06-28." } } }, diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2025-11-01/ComputeRP.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2025-11-01/ComputeRP.json index c449bd0e6110..80a859ad814d 100644 --- a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2025-11-01/ComputeRP.json +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2025-11-01/ComputeRP.json @@ -2990,7 +2990,7 @@ "tags": [ "CapacityReservations" ], - "description": "The operation to delete a capacity reservation. This operation is allowed only when all the associated resources are disassociated from the capacity reservation. Please refer to https://aka.ms/CapacityReservation for more details. Note: Block capacity reservations cannot be deleted after it has been successfully allocated until the schedule end time.", + "description": "The operation to delete a capacity reservation. This operation is allowed only when all the associated resources are disassociated from the capacity reservation. Please refer to https://aka.ms/CapacityReservation for more details. Note: Block capacity reservations cannot be deleted after being successfully allocated until the schedule end time. DeferredSpot capacity reservations can be deleted while still pending, declined, or expired, but not when confirmed.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" @@ -13053,7 +13053,7 @@ }, "sku": { "$ref": "#/definitions/Sku", - "description": "SKU of the resource for which capacity needs be reserved. The SKU name and capacity is required to be set. For Block capacity reservations, sku.capacity can only accept values 1, 2, 4, 8, 16, 32, 64. Currently VM Skus with the capability called 'CapacityReservationSupported' set to true are supported. When 'CapacityReservationSupported' is true, the SKU capability also specifies the 'SupportedCapacityReservationTypes', which lists the types of capacity reservations (such as Targeted or Block) that the SKU supports. Refer to List Microsoft.Compute SKUs in a region (https://docs.microsoft.com/rest/api/compute/resourceskus/list) for supported values." + "description": "SKU of the resource for which capacity needs be reserved. The SKU name and capacity is required to be set. For Block capacity reservations, sku.capacity can only accept values 1, 2, 4, 8, 16, 32, 64. Currently VM Skus with the capability called 'CapacityReservationSupported' set to true are supported. When 'CapacityReservationSupported' is true, the SKU capability also specifies the 'SupportedCapacityReservationTypes', which lists the types of capacity reservations (such as Targeted, Block, or DeferredSpot) that the SKU supports. Refer to List Microsoft.Compute SKUs in a region (https://docs.microsoft.com/rest/api/compute/resourceskus/list) for supported values." }, "zones": { "type": "array", @@ -13186,11 +13186,11 @@ }, "sharingProfile": { "$ref": "#/definitions/ResourceSharingProfile", - "description": "Specifies the settings to enable sharing across subscriptions for the capacity reservation group resource. The capacity reservation group resource can generally be shared across subscriptions belonging to a single Azure AAD tenant or across AAD tenants if there is a trust relationship established between the tenants. Block capacity reservation does not support sharing across subscriptions. **Note:** Minimum api-version: 2023-09-01. Please refer to https://aka.ms/computereservationsharing for more details." + "description": "Specifies the settings to enable sharing across subscriptions for the capacity reservation group resource. The capacity reservation group resource can generally be shared across subscriptions belonging to a single Azure AAD tenant or across AAD tenants if there is a trust relationship established between the tenants. Block and DeferredSpot capacity reservations do not support sharing across subscriptions. **Note:** Minimum api-version: 2023-09-01. Please refer to https://aka.ms/computereservationsharing for more details." }, "reservationType": { "$ref": "#/definitions/ReservationType", - "description": "Indicates the type of capacity reservation. Allowed values are 'Block' for block capacity reservations and 'Targeted' for reservations that enable a VM to consume a specific capacity reservation when a capacity reservation group is provided. The reservation type is immutable and cannot be changed after it is assigned." + "description": "Indicates the type of capacity reservation. Allowed values are 'Block' for block capacity reservations, 'DeferredSpot' for deferred spot capacity reservations, and 'Targeted' for reservations that enable a VM to consume a specific capacity reservation when a capacity reservation group is provided. The reservation type is immutable and cannot be changed after it is assigned." } } }, @@ -13338,7 +13338,7 @@ }, "scheduleProfile": { "$ref": "#/definitions/ScheduleProfile", - "description": "Defines the schedule for Block-type capacity reservations. Specifies the schedule during which capacity reservation is active and VM or VMSS resource can be allocated using reservation. This property is required and only supported when the capacity reservation group type is 'Block'. The scheduleProfile, start, and end fields are immutable after creation. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details." + "description": "Defines the schedule for Block and DeferredSpot capacity reservations. For Block reservations, specifies the schedule during which the capacity reservation is active and VM or VMSS resources can be allocated. For DeferredSpot reservations, start and end define a time window within which a confirmed active schedule of the specified duration will be set. For Block reservations, the scheduleProfile, start, and end fields are immutable after creation. For DeferredSpot reservations, the duration can be updated when the reservation state is not Confirmed, and start, end, and duration can all be updated when the reservation state is Expired or Declined, which resets the state to Pending. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details." } } }, @@ -17766,15 +17766,15 @@ }, "ScheduleProfile": { "type": "object", - "description": "Defines the schedule for Block-type capacity reservations. Specifies the schedule during which capacity reservation is active and VM or VMSS resource can be allocated using reservation. This property is required and only supported when the capacity reservation group type is 'Block'. The scheduleProfile, start, and end fields are immutable after creation. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details.", + "description": "Defines the schedule for Block and DeferredSpot capacity reservations. For Block reservations, specifies the schedule during which the capacity reservation is active and VM or VMSS resources can be allocated. For DeferredSpot reservations, start and end define a time window within which a confirmed active schedule of the specified duration will be set. For Block reservations, the scheduleProfile, start, and end fields are immutable after creation. For DeferredSpot reservations, the duration can be updated when the reservation state is not Confirmed. Start, end, and duration can all be updated when the reservation state is Expired or Declined, which resets the state to Pending. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details.", "properties": { "start": { "type": "string", - "description": "The required start date for block capacity reservations. Must be today or within 56 days in the future. For same-day scheduling, requests must be submitted before 11:30 AM UTC. Example: 2025-06-27." + "description": "The required start date or time for the capacity reservation schedule. For Block reservations, this is the start date and must be today or within 56 days in the future; for same-day scheduling, requests must be submitted before 11:30 AM UTC. For DeferredSpot reservations, this is the start of the time window within which a confirmed active schedule will be set. Example: 2025-06-27." }, "end": { "type": "string", - "description": "The required end date for block capacity reservations. Must be after the start date, with a duration of either 1–14 whole days or 3–26 whole weeks. Example: 2025-06-28." + "description": "The required end date or time for the capacity reservation schedule. For Block reservations, this must be after the start date, with a duration of either 1–14 whole days or 3–26 whole weeks. For DeferredSpot reservations, this is the end of the time window within which a confirmed active schedule will be set. Example: 2025-06-28." } } }, diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/ComputeRP.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/ComputeRP.json index fa3a9d194323..a19c22d1373e 100644 --- a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/ComputeRP.json +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/ComputeRP.json @@ -2485,6 +2485,9 @@ "Get a capacity reservation Group.": { "$ref": "./examples/capacityReservationExamples/CapacityReservationGroup_Get.json" }, + "Get a deferred spot capacity reservation Group.": { + "$ref": "./examples/capacityReservationExamples/DeferredSpotCapacityReservationGroup_Get.json" + }, "Get a targeted capacity reservation group.": { "$ref": "./examples/capacityReservationExamples/TargetedCapacityReservationGroup_Get.json" } @@ -2550,6 +2553,9 @@ "Create or update a capacity reservation group.": { "$ref": "./examples/capacityReservationExamples/CapacityReservationGroup_CreateOrUpdate.json" }, + "Create or update a deferred spot capacity reservation group.": { + "$ref": "./examples/capacityReservationExamples/DeferredSpotCapacityReservationGroup_CreateOrUpdate.json" + }, "Create or update a targeted capacity reservation group.": { "$ref": "./examples/capacityReservationExamples/TargetedCapacityReservationGroup_CreateOrUpdate.json" } @@ -2732,6 +2738,9 @@ }, "List capacity reservations in targeted reservation group.": { "$ref": "./examples/capacityReservationExamples/TargetedCapacityReservation_ListByReservationGroup.json" + }, + "List deferred spot capacity reservations in reservation group.": { + "$ref": "./examples/capacityReservationExamples/DeferredSpotCapacityReservation_ListByReservationGroup.json" } }, "x-ms-pageable": { @@ -2812,6 +2821,9 @@ "Get a capacity reservation.": { "$ref": "./examples/capacityReservationExamples/CapacityReservation_Get.json" }, + "Get a deferred spot capacity reservation.": { + "$ref": "./examples/capacityReservationExamples/DeferredSpotCapacityReservation_Get.json" + }, "Get a targeted capacity reservation.": { "$ref": "./examples/capacityReservationExamples/TargetedCapacityReservation_Get.json" } @@ -2895,6 +2907,9 @@ "Create or update a capacity reservation .": { "$ref": "./examples/capacityReservationExamples/CapacityReservation_CreateOrUpdate.json" }, + "Create or update a deferred spot capacity reservation.": { + "$ref": "./examples/capacityReservationExamples/DeferredSpotCapacityReservation_CreateOrUpdate.json" + }, "Create or update a targeted capacity reservation.": { "$ref": "./examples/capacityReservationExamples/TargetedCapacityReservation_CreateOrUpdate.json" } @@ -2990,7 +3005,7 @@ "tags": [ "CapacityReservations" ], - "description": "The operation to delete a capacity reservation. This operation is allowed only when all the associated resources are disassociated from the capacity reservation. Please refer to https://aka.ms/CapacityReservation for more details. Note: Block capacity reservations cannot be deleted after it has been successfully allocated until the schedule end time.", + "description": "The operation to delete a capacity reservation. This operation is allowed only when all the associated resources are disassociated from the capacity reservation. Please refer to https://aka.ms/CapacityReservation for more details. Note: Block capacity reservations cannot be deleted after being successfully allocated until the schedule end time. DeferredSpot capacity reservations can be deleted while still pending, declined, or expired, but not when confirmed.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" @@ -13053,7 +13068,7 @@ }, "sku": { "$ref": "#/definitions/Sku", - "description": "SKU of the resource for which capacity needs be reserved. The SKU name and capacity is required to be set. For Block capacity reservations, sku.capacity can only accept values 1, 2, 4, 8, 16, 32, 64. Currently VM Skus with the capability called 'CapacityReservationSupported' set to true are supported. When 'CapacityReservationSupported' is true, the SKU capability also specifies the 'SupportedCapacityReservationTypes', which lists the types of capacity reservations (such as Targeted or Block) that the SKU supports. Refer to List Microsoft.Compute SKUs in a region (https://docs.microsoft.com/rest/api/compute/resourceskus/list) for supported values." + "description": "SKU of the resource for which capacity needs be reserved. The SKU name and capacity is required to be set. For Block capacity reservations, sku.capacity can only accept values 1, 2, 4, 8, 16, 32, 64. Currently VM Skus with the capability called 'CapacityReservationSupported' set to true are supported. When 'CapacityReservationSupported' is true, the SKU capability also specifies the 'SupportedCapacityReservationTypes', which lists the types of capacity reservations (such as Targeted, Block, or DeferredSpot) that the SKU supports. Refer to List Microsoft.Compute SKUs in a region (https://docs.microsoft.com/rest/api/compute/resourceskus/list) for supported values." }, "zones": { "type": "array", @@ -13186,11 +13201,11 @@ }, "sharingProfile": { "$ref": "#/definitions/ResourceSharingProfile", - "description": "Specifies the settings to enable sharing across subscriptions for the capacity reservation group resource. The capacity reservation group resource can generally be shared across subscriptions belonging to a single Azure AAD tenant or across AAD tenants if there is a trust relationship established between the tenants. Block capacity reservation does not support sharing across subscriptions. **Note:** Minimum api-version: 2023-09-01. Please refer to https://aka.ms/computereservationsharing for more details." + "description": "Specifies the settings to enable sharing across subscriptions for the capacity reservation group resource. The capacity reservation group resource can generally be shared across subscriptions belonging to a single Azure AAD tenant or across AAD tenants if there is a trust relationship established between the tenants. Block and DeferredSpot capacity reservations do not support sharing across subscriptions. **Note:** Minimum api-version: 2023-09-01. Please refer to https://aka.ms/computereservationsharing for more details." }, "reservationType": { "$ref": "#/definitions/ReservationType", - "description": "Indicates the type of capacity reservation. Allowed values are 'Block' for block capacity reservations and 'Targeted' for reservations that enable a VM to consume a specific capacity reservation when a capacity reservation group is provided. The reservation type is immutable and cannot be changed after it is assigned." + "description": "Indicates the type of capacity reservation. Allowed values are 'Block' for block capacity reservations, 'DeferredSpot' for deferred spot capacity reservations, and 'Targeted' for reservations that enable a VM to consume a specific capacity reservation when a capacity reservation group is provided. The reservation type is immutable and cannot be changed after it is assigned." } } }, @@ -13218,6 +13233,10 @@ "$ref": "#/definitions/CapacityReservationUtilization", "description": "Unutilized capacity of the capacity reservation." }, + "reservationStateInfo": { + "$ref": "#/definitions/CapacityReservationStateInfo", + "description": "The current state and active schedule for Deferred Spot capacity reservations." + }, "statuses": { "type": "array", "description": "The resource status information.", @@ -13338,7 +13357,27 @@ }, "scheduleProfile": { "$ref": "#/definitions/ScheduleProfile", - "description": "Defines the schedule for Block-type capacity reservations. Specifies the schedule during which capacity reservation is active and VM or VMSS resource can be allocated using reservation. This property is required and only supported when the capacity reservation group type is 'Block'. The scheduleProfile, start, and end fields are immutable after creation. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details." + "description": "Defines the schedule for Block and DeferredSpot capacity reservations. For Block reservations, specifies the schedule during which the capacity reservation is active and VM or VMSS resources can be allocated. For DeferredSpot reservations, start and end define a time window within which a confirmed active schedule of the specified duration will be set. For Block reservations, the scheduleProfile, start, and end fields are immutable after creation. For DeferredSpot reservations, the duration can be updated when the reservation state is not Confirmed, and start, end, and duration can all be updated when the reservation state is Expired or Declined, which resets the state to Pending. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details." + } + } + }, + "CapacityReservationStateInfo": { + "type": "object", + "description": "The current state and confirmed active schedule for a deferred spot capacity reservation.", + "properties": { + "reservationState": { + "$ref": "#/definitions/ReservationState", + "description": "The current state of the capacity reservation." + }, + "activeFrom": { + "type": "string", + "format": "date-time", + "description": "The date and time in UTC when the capacity reservation becomes active." + }, + "activeUntil": { + "type": "string", + "format": "date-time", + "description": "The date and time in UTC when the capacity reservation expires." } } }, @@ -16760,12 +16799,49 @@ } ] }, + "ReservationState": { + "type": "string", + "description": "The current state of a deferred spot capacity reservation.", + "enum": [ + "Pending", + "Confirmed", + "Declined", + "Expired" + ], + "x-ms-enum": { + "name": "ReservationState", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "Pending", + "description": "The reservation request has been created and is awaiting confirmation." + }, + { + "name": "Confirmed", + "value": "Confirmed", + "description": "The reservation has been confirmed and is scheduled for activation." + }, + { + "name": "Declined", + "value": "Declined", + "description": "The reservation request could not be fulfilled." + }, + { + "name": "Expired", + "value": "Expired", + "description": "The reservation is no longer active because its end time has passed." + } + ] + } + }, "ReservationType": { "type": "string", "description": "Indicates the type of capacity reservation. Allowed values are 'Block' for block capacity reservations and 'Targeted' for reservations that enable a VM to consume a specific capacity reservation when a capacity reservation group is provided. The reservation type is immutable and cannot be changed after it is assigned.", "enum": [ "Targeted", - "Block" + "Block", + "DeferredSpot" ], "x-ms-enum": { "name": "ReservationType", @@ -16780,6 +16856,11 @@ "name": "Block", "value": "Block", "description": "To consume scheduled allocated block capacity reservation when a capacity reservation group is provided." + }, + { + "name": "DeferredSpot", + "value": "DeferredSpot", + "description": "To consume scheduled allocated deferred spot capacity reservation when a capacity reservation group is provided." } ] } @@ -17766,15 +17847,19 @@ }, "ScheduleProfile": { "type": "object", - "description": "Defines the schedule for Block-type capacity reservations. Specifies the schedule during which capacity reservation is active and VM or VMSS resource can be allocated using reservation. This property is required and only supported when the capacity reservation group type is 'Block'. The scheduleProfile, start, and end fields are immutable after creation. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details.", + "description": "Defines the schedule for Block and DeferredSpot capacity reservations. For Block reservations, specifies the schedule during which the capacity reservation is active and VM or VMSS resources can be allocated. For DeferredSpot reservations, start and end define a time window within which a confirmed active schedule of the specified duration will be set. For Block reservations, the scheduleProfile, start, and end fields are immutable after creation. For DeferredSpot reservations, the duration can be updated when the reservation state is not Confirmed. Start, end, and duration can all be updated when the reservation state is Expired or Declined, which resets the state to Pending. Minimum API version: 2025-04-01. Please refer to https://aka.ms/blockcapacityreservation for more details.", "properties": { "start": { "type": "string", - "description": "The required start date for block capacity reservations. Must be today or within 56 days in the future. For same-day scheduling, requests must be submitted before 11:30 AM UTC. Example: 2025-06-27." + "description": "The required start date or time for the capacity reservation schedule. For Block reservations, this is the start date and must be today or within 56 days in the future; for same-day scheduling, requests must be submitted before 11:30 AM UTC. For DeferredSpot reservations, this is the start of the time window within which a confirmed active schedule will be set. Example: 2025-06-27." }, "end": { "type": "string", - "description": "The required end date for block capacity reservations. Must be after the start date, with a duration of either 1–14 whole days or 3–26 whole weeks. Example: 2025-06-28." + "description": "The required end date or time for the capacity reservation schedule. For Block reservations, this must be after the start date, with a duration of either 1–14 whole days or 3–26 whole weeks. For DeferredSpot reservations, this is the end of the time window within which a confirmed active schedule will be set. Example: 2025-06-28." + }, + "duration": { + "type": "string", + "description": "The desired duration for deferred spot capacity reservations. Minimum 2 hours, maximum 4 hours. Must be less than or equal to the total time between start and end. Must be in ISO 8601 format. Example: PT2H30M (2 hours 30 minutes)" } } }, diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/CapacityReservationGroup_ListByResourceGroup.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/CapacityReservationGroup_ListByResourceGroup.json index 4e5bdba85e66..f28bbc836b43 100644 --- a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/CapacityReservationGroup_ListByResourceGroup.json +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/CapacityReservationGroup_ListByResourceGroup.json @@ -76,6 +76,28 @@ "reservationType": "Block" } }, + { + "name": "{capacityReservationGroupName}", + "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + "type": "Microsoft.Compute/CapacityReservationGroups", + "location": "West US", + "properties": { + "capacityReservations": [ + { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation1" + }, + { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation2" + } + ], + "virtualMachinesAssociated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM3" + } + ], + "reservationType": "DeferredSpot" + } + }, { "name": "{capacityReservationGroupName}", "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/CapacityReservationGroup_ListBySubscription.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/CapacityReservationGroup_ListBySubscription.json index 13ab2accdec8..76e18af44216 100644 --- a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/CapacityReservationGroup_ListBySubscription.json +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/CapacityReservationGroup_ListBySubscription.json @@ -75,6 +75,28 @@ "reservationType": "Block" } }, + { + "name": "{capacityReservationGroupName}", + "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", + "type": "Microsoft.Compute/CapacityReservationGroups", + "location": "West US", + "properties": { + "capacityReservations": [ + { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation1" + }, + { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation2" + } + ], + "virtualMachinesAssociated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM3" + } + ], + "reservationType": "DeferredSpot" + } + }, { "name": "{capacityReservationGroupName}", "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}", diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservationGroup_CreateOrUpdate.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservationGroup_CreateOrUpdate.json new file mode 100644 index 000000000000..34a882b81705 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservationGroup_CreateOrUpdate.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-03-01", + "capacityReservationGroupName": "deferredSpotCapacityReservationGroup", + "parameters": { + "location": "westus", + "tags": { + "department": "finance" + }, + "zones": [], + "properties": { + "reservationType": "DeferredSpot" + } + } + }, + "responses": { + "201": { + "body": { + "name": "deferredSpotCapacityReservationGroup", + "location": "westus", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/deferredSpotCapacityReservationGroup", + "tags": { + "department": "finance" + }, + "properties": { + "reservationType": "DeferredSpot" + } + } + }, + "200": { + "body": { + "location": "westus", + "tags": { + "department": "finance", + "owner": "myCompany" + }, + "name": "deferredSpotCapacityReservationGroup", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/deferredSpotCapacityReservationGroup", + "properties": { + "reservationType": "DeferredSpot" + } + } + } + }, + "operationId": "CapacityReservationGroups_CreateOrUpdate", + "title": "Create or update a deferred spot capacity reservation group." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservationGroup_Get.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservationGroup_Get.json new file mode 100644 index 000000000000..22016fd09cfd --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservationGroup_Get.json @@ -0,0 +1,85 @@ +{ + "parameters": { + "subscriptionId": "{subscriptionId}", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-03-01", + "capacityReservationGroupName": "deferredSpotCapacityReservationGroup", + "$expand": "instanceView" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/deferredSpotCapacityReservationGroup", + "properties": { + "capacityReservations": [ + { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation1" + }, + { + "id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation2" + } + ], + "instanceView": { + "capacityReservations": [ + { + "name": "deferredSpotCapacityReservation1", + "utilizationInfo": { + "currentCapacity": 5, + "virtualMachinesAllocated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM2" + } + ] + }, + "reservationStateInfo": { + "reservationState": "Confirmed", + "activeFrom": "2026-04-01T05:00:00+00:00", + "activeUntil": "2026-04-01T07:30:00+00:00" + }, + "statuses": [ + { + "code": "ProvisioningState/succeeded", + "level": "Info", + "displayStatus": "Provisioning succeeded" + } + ] + }, + { + "name": "deferredSpotCapacityReservation2", + "utilizationInfo": { + "currentCapacity": 5, + "virtualMachinesAllocated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM3" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM4" + } + ] + }, + "statuses": [ + { + "code": "ProvisioningState/succeeded", + "level": "Info", + "displayStatus": "Provisioning succeeded" + } + ] + } + ] + }, + "reservationType": "DeferredSpot" + }, + "location": "westus", + "tags": { + "{tagName}": "{tagValue}" + }, + "name": "deferredSpotCapacityReservationGroup" + } + } + }, + "operationId": "CapacityReservationGroups_Get", + "title": "Get a deferred spot capacity reservation Group." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservation_CreateOrUpdate,json b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservation_CreateOrUpdate,json new file mode 100644 index 000000000000..a4adc1949482 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservation_CreateOrUpdate,json @@ -0,0 +1,79 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-03-01", + "parameters": { + "location": "westus", + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + }, + "properties": { + "scheduleProfile": { + "start": "2026-04-01T00:00:00Z", + "end": "2026-04-02T00:00:00Z", + "duration": "PT2H30M" + } + }, + "zones": [] + }, + "capacityReservationGroupName": "deferredSpotCapacityReservationGroup", + "capacityReservationName": "deferredSpotCapacityReservation" + }, + "responses": { + "200": { + "body": { + "name": "deferredSpotCapacityReservation", + "location": "westus", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation", + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + }, + "properties": { + "platformFaultDomainCount": 3, + "reservationId": "{GUID}", + "provisioningState": "Creating", + "scheduleProfile": { + "start": "2026-04-01T00:00:00+00:00", + "end": "2026-04-02T00:00:00+00:00", + "duration": "PT2H30M" + }, + "provisioningTime": "2026-03-30T01:02:38.3138469+00:00" + } + } + }, + "201": { + "body": { + "name": "deferredSpotCapacityReservation", + "location": "westus", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation", + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + }, + "properties": { + "platformFaultDomainCount": 3, + "reservationId": "{GUID}", + "provisioningState": "Creating", + "scheduleProfile": { + "start": "2026-04-01T00:00:00+00:00", + "end": "2026-04-02T00:00:00+00:00", + "duration": "PT2H30M" + }, + "provisioningTime": "2026-03-30T01:02:38.3138469+00:00" + } + } + } + } +} \ No newline at end of file diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservation_CreateOrUpdate.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservation_CreateOrUpdate.json new file mode 100644 index 000000000000..34313b6ea336 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservation_CreateOrUpdate.json @@ -0,0 +1,81 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-03-01", + "parameters": { + "location": "westus", + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + }, + "properties": { + "scheduleProfile": { + "start": "2026-04-01T00:00:00Z", + "end": "2026-04-02T00:00:00Z", + "duration": "PT2H30M" + } + }, + "zones": [] + }, + "capacityReservationGroupName": "deferredSpotCapacityReservationGroup", + "capacityReservationName": "deferredSpotCapacityReservation" + }, + "responses": { + "200": { + "body": { + "name": "deferredSpotCapacityReservation", + "location": "westus", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation", + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + }, + "properties": { + "platformFaultDomainCount": 3, + "reservationId": "{GUID}", + "provisioningState": "Creating", + "scheduleProfile": { + "start": "2026-04-01T00:00:00+00:00", + "end": "2026-04-02T00:00:00+00:00", + "duration": "PT2H30M" + }, + "provisioningTime": "2026-03-30T01:02:38.3138469+00:00" + } + } + }, + "201": { + "body": { + "name": "deferredSpotCapacityReservation", + "location": "westus", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation", + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + }, + "properties": { + "platformFaultDomainCount": 3, + "reservationId": "{GUID}", + "provisioningState": "Creating", + "scheduleProfile": { + "start": "2026-04-01T00:00:00+00:00", + "end": "2026-04-02T00:00:00+00:00", + "duration": "PT2H30M" + }, + "provisioningTime": "2026-03-30T01:02:38.3138469+00:00" + } + } + } + }, + "operationId": "CapacityReservations_CreateOrUpdate", + "title": "Create or update a deferred spot capacity reservation." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservation_Get.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservation_Get.json new file mode 100644 index 000000000000..8f4bf9b4c4b5 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservation_Get.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "subscriptionId": "{subscriptionId}", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-03-01", + "capacityReservationGroupName": "deferredSpotCapacityReservationGroup", + "capacityReservationName": "deferredSpotCapacityReservation", + "$expand": "instanceView" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/deferredSpotCapacityReservationGroup/capacityReservations/deferredSpotCapacityReservation", + "properties": { + "platformFaultDomainCount": 3, + "reservationId": "{GUID}", + "provisioningTime": "2026-03-30T01:02:38.3138469+00:00", + "virtualMachinesAssociated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM2" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM3" + } + ], + "provisioningState": "Succeeded", + "instanceView": { + "utilizationInfo": { + "currentCapacity": 5, + "virtualMachinesAllocated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM2" + } + ] + }, + "reservationStateInfo": { + "reservationState": "Confirmed", + "activeFrom": "2026-04-01T05:00:00+00:00", + "activeUntil": "2026-04-01T07:30:00+00:00" + }, + "statuses": [ + { + "code": "ProvisioningState/succeeded", + "level": "Info", + "displayStatus": "Provisioning succeeded" + } + ] + }, + "scheduleProfile": { + "start": "2026-04-01T00:00:00+00:00", + "end": "2026-04-02T00:00:00+00:00", + "duration": "PT2H30M" + }, + "timeCreated": "2026-03-30T01:02:38.3138469+00:00" + }, + "location": "westus", + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + }, + "name": "deferredSpotCapacityReservation" + } + } + }, + "operationId": "CapacityReservations_Get", + "title": "Get a deferred spot capacity reservation." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservation_ListByReservationGroup.json b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservation_ListByReservationGroup.json new file mode 100644 index 000000000000..936e7db4e6a7 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-03-01/examples/capacityReservationExamples/DeferredSpotCapacityReservation_ListByReservationGroup.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "capacityReservationGroupName": "deferredSpotCapacityReservationGroup", + "api-version": "2026-03-01", + "$expand": "virtualMachines/$ref" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "{capacityReservationName}", + "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}/CapacityReservation/{capacityReservationName}", + "type": "Microsoft.Compute/CapacityReservations", + "location": "West US", + "properties": { + "platformFaultDomainCount": 3, + "reservationId": "{GUID}", + "provisioningTime": "2026-03-30T01:02:38.3138469+00:00", + "virtualMachinesAssociated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM2" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM3" + } + ], + "provisioningState": "Succeeded", + "scheduleProfile": { + "start": "2026-04-01T00:00:00+00:00", + "end": "2026-04-02T00:00:00+00:00", + "duration": "PT2H30M" + } + }, + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + }, + "zones": [] + }, + { + "name": "{capacityReservationName}", + "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}/CapacityReservation/{capacityReservationName}", + "type": "Microsoft.Compute/CapacityReservations", + "location": "West US", + "properties": { + "platformFaultDomainCount": 3, + "reservationId": "{GUID}", + "provisioningTime": "2026-03-30T01:02:38.3138469+00:00", + "virtualMachinesAssociated": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM4" + } + ], + "provisioningState": "Succeeded", + "scheduleProfile": { + "start": "2026-04-01T00:00:00+00:00", + "end": "2026-04-02T00:00:00+00:00", + "duration": "PT2H30M" + } + }, + "tags": { + "department": "HR" + }, + "sku": { + "name": "Standard_D2s_v3", + "capacity": 1 + } + } + ] + } + } + }, + "operationId": "CapacityReservations_ListByCapacityReservationGroup", + "title": "List deferred spot capacity reservations in reservation group." +}