Skip to content
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
547d95d
Add Disk RP api-version 2026-03-02
Feb 20, 2026
255052a
Resolve conflicts and refactor folder
v-xuto Mar 11, 2026
8db13de
Fix broken common-types paths in DiskRP.json (2026-03-02)
Apr 8, 2026
ed0d09e
Merge branch 'main' into compute-2026-03-02
haagha Apr 8, 2026
68db9da
Merge branch 'compute-2026-03-02' of https://github.com/Azure/azure-r…
Apr 8, 2026
8025a41
Merge branch 'main' into compute-2026-03-02
haagha Apr 20, 2026
c696e6e
Update DiskRP.json
Apr 20, 2026
04b7eac
Merge remote-tracking branch 'origin/main' into compute-2026-03-02
Apr 23, 2026
ba73feb
fix: update package tags and input files for Compute API specifications
Apr 23, 2026
a3930bc
Add snapshotAccessState to DiskRestorePointProperties for InstantAcce…
akashpargat May 6, 2026
c9147f2
Swagger changes for ConfidentialVMVersion (#42541) ( ARMSignedOff)
aayushkher May 6, 2026
ec2a828
DiskRP Swagger changes -- adding two APIs support for immutable snaps…
zhanrz88-sudo May 13, 2026
866199a
Merge branch 'main' into compute-2026-03-02
haagha May 13, 2026
d22e665
Merge remote-tracking branch 'origin/main' into compute-2026-03-02
May 21, 2026
30fe592
Address ARM API review feedback for snapshot immutability policy
May 20, 2026
b0dc325
Update immutability policy examples with response fields and async he…
May 21, 2026
bf3d968
Merge branch 'main' into compute-2026-03-02
haagha May 22, 2026
49423b7
Refactor immutability policy documentation and examples for snapshots
May 28, 2026
8e92932
Merge branch 'main' into compute-2026-03-02
haagha May 28, 2026
c963691
Merge origin/main into compute-2026-03-02
Jun 17, 2026
2f07174
Merge branch 'compute-2026-03-02' of https://github.com/Azure/azure-r…
Jun 17, 2026
bd74f5a
Merge branch 'main' into compute-2026-03-02
haagha Jun 18, 2026
a611e43
Merge branch 'main' into compute-2026-03-02
haagha Jun 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@ import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";
import "@typespec/openapi";
import "@typespec/rest";
import "@typespec/versioning";
import "./models.tsp";

using TypeSpec.Rest;
using Azure.ResourceManager;
using TypeSpec.Http;
using TypeSpec.OpenAPI;
using TypeSpec.Versioning;
using Common;

namespace ComputeDisk;
Expand Down Expand Up @@ -121,6 +123,34 @@ interface Snapshots {
OkResponse,
LroHeaders = ArmLroLocationHeader & Azure.Core.Foundations.RetryAfterHeader
>;

/**
* Updates the immutability policy of a snapshot. Sets or extends an unlocked immutability policy with the specified duration and type. If the snapshot already has a locked policy, the request will be rejected. Use updateImmutabilityPolicyLock to lock an immutability policy.
*/
@added(Versions.v2026_03_02)
@action("updateImmutabilityPolicy")
updateImmutabilityPolicy is ComputeResourceActionAsync<
Snapshot,
ImmutabilityPolicyData,
Snapshot,
LroHeaders = ArmAsyncOperationHeader<FinalResult = Snapshot> &
ArmLroLocationHeader<FinalResult = Snapshot> &
Azure.Core.Foundations.RetryAfterHeader
>;

/**
* Locks the immutability policy of a snapshot. Once locked, the policy cannot be reduced or removed until the lock period expires.
*/
@added(Versions.v2026_03_02)
@action("updateImmutabilityPolicyLock")
updateImmutabilityPolicyLock is ComputeResourceActionAsync<
Snapshot,
ImmutabilityPolicyLockData,
Snapshot,
LroHeaders = ArmAsyncOperationHeader<FinalResult = Snapshot> &
ArmLroLocationHeader<FinalResult = Snapshot> &
Azure.Core.Foundations.RetryAfterHeader
>;
}

@@doc(
Expand All @@ -140,3 +170,11 @@ interface Snapshots {
Snapshots.grantAccess::parameters.body,
"Access data object supplied in the body of the get snapshot access operation."
);
@@doc(
Snapshots.updateImmutabilityPolicy::parameters.body,
"Immutability policy data supplied in the body of the update immutability policy operation."
);
@@doc(
Snapshots.updateImmutabilityPolicyLock::parameters.body,
"Immutability policy data supplied in the body of the update immutability policy lock operation."
);
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,14 @@ using ComputeDisk;
@@clientName(Snapshots.createOrUpdate::parameters.resource, "snapshot");
@@clientName(Snapshots.update::parameters.properties, "snapshot");
@@clientName(Snapshots.grantAccess::parameters.body, "grantAccessData");

@@clientName(
Snapshots.updateImmutabilityPolicy::parameters.body,
"immutabilityPolicyData"
);
@@clientName(
Snapshots.updateImmutabilityPolicyLock::parameters.body,
"immutabilityPolicyData"
);
@@clientLocation(DiskRestorePoints.get, "DiskRestorePoint", "!csharp");
@@clientLocation(
DiskRestorePoints.listByRestorePoint,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
"parameters": {
"subscriptionId": "{subscription-id}",
"resourceGroupName": "myResourceGroup",
"api-version": "2026-03-02",
"diskAccessName": "myDiskAccess",
"privateEndpointConnectionName": "myPrivateEndpointConnection",
"privateEndpointConnection": {
"properties": {
"privateLinkServiceConnectionState": {
"status": "Approved",
"description": "Approving myPrivateEndpointConnection"
}
}
}
},
"responses": {
"200": {
"body": {
"name": "myPrivateEndpointConnectionName",
"type": "Microsoft.Compute/diskAccesses/PrivateEndpointConnections",
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess/privateEndpoinConnections/myPrivateEndpointConnectionName",
"properties": {
"provisioningState": "Succeeded",
"privateEndpoint": {
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
},
"privateLinkServiceConnectionState": {
"actionsRequired": "None",
"description": "Approving myPrivateEndpointConnection",
"status": "Approved"
}
}
}
},
"202": {
"body": {
"name": "myPrivateEndpointConenction",
"type": "Microsoft.Compute/diskAccesses/privateEndpointConnections",
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess/privateEndpoinConnections/myPrivateEndpointConnectionName",
"properties": {
"provisioningState": "Updating",
"privateEndpoint": {
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
},
"privateLinkServiceConnectionState": {
"actionsRequired": "None",
"description": "Approving myPrivateEndpointConnection",
"status": "Approved"
}
}
}
}
},
"operationId": "DiskAccesses_UpdateAPrivateEndpointConnection",
"title": "approve a Private Endpoint Connection under a disk access resource."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"parameters": {
"subscriptionId": "{subscription-id}",
"resourceGroupName": "myResourceGroup",
"diskAccessName": "myDiskAccess",
"privateEndpointConnectionName": "myPrivateEndpointConnection",
"api-version": "2026-03-02"
},
"responses": {
"200": {},
"202": {
"headers": {
"Location": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/operations/{operationId}&monitor=true&api-version=2026-03-02"
}
},
"204": {}
},
"operationId": "DiskAccesses_DeleteAPrivateEndpointConnection",
"title": "delete a private endpoint connection under a disk access resource."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"parameters": {
"subscriptionId": "{subscription-id}",
"resourceGroupName": "myResourceGroup",
"api-version": "2026-03-02",
"diskAccessName": "myDiskAccess",
"privateEndpointConnectionName": "myPrivateEndpointConnection"
},
"responses": {
"200": {
"body": {
"name": "myPrivateEndpointConnection",
"type": "Microsoft.Compute/diskAccesses/PrivateEndpointConnections",
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess/privateEndpoinConnections/myPrivateEndpointConnection",
"properties": {
"provisioningState": "Succeeded",
"privateEndpoint": {
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
},
"privateLinkServiceConnectionState": {
"actionsRequired": "None",
"description": "Auto-Approved",
"status": "Approved"
}
}
}
}
},
"operationId": "DiskAccesses_GetAPrivateEndpointConnection",
"title": "get information about a private endpoint connection under a disk access resource."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"parameters": {
"subscriptionId": "{subscription-id}",
"resourceGroupName": "myResourceGroup",
"api-version": "2026-03-02",
"diskAccessName": "myDiskAccess"
},
"responses": {
"200": {
"body": {
"value": [
{
"name": "myPrivateEndpointConnection",
"type": "Microsoft.Compute/diskAccesses/PrivateEndpointConnections",
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess/privateEndpoinConnections/myPrivateEndpointConnection",
"properties": {
"provisioningState": "Succeeded",
"privateEndpoint": {
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
},
"privateLinkServiceConnectionState": {
"actionsRequired": "None",
"description": "Auto-Approved",
"status": "Approved"
}
}
}
]
}
}
},
"operationId": "DiskAccesses_ListPrivateEndpointConnections",
"title": "get information about a private endpoint connection under a disk access resource."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"parameters": {
"subscriptionId": "{subscription-id}",
"resourceGroupName": "myResourceGroup",
"api-version": "2026-03-02",
"diskAccessName": "myDiskAccess"
},
"responses": {
"200": {
"body": {
"value": [
{
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess/privateLinkResources/disks",
"name": "disks",
"type": "Microsoft.Compute/diskAccesses/privateLinkResources",
"properties": {
"groupId": "disks",
"requiredMembers": [
"diskAccess_1"
],
"requiredZoneNames": [
"privatelink.blob.core.windows.net"
]
}
}
]
}
}
},
"operationId": "DiskAccesses_GetPrivateLinkResources",
"title": "list all possible private link resources under disk access resource."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"parameters": {
"subscriptionId": "{subscription-id}",
"resourceGroupName": "myResourceGroup",
"api-version": "2026-03-02",
"diskAccessName": "myDiskAccess",
"diskAccess": {
"location": "West US"
}
},
"responses": {
"200": {
"body": {
"name": "myDiskAccess",
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourcegroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess",
"type": "Microsoft.Compute/diskAccesses",
"location": "West US",
"properties": {
"provisioningState": "Succeeded",
"timeCreated": "2020-05-01T04:41:35.079872+00:00"
}
}
},
"202": {
"body": {
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourcegroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess",
"name": "myDiskAccess",
"location": "West US",
"type": "Microsoft.Compute/diskAccesses"
}
}
},
"operationId": "DiskAccesses_CreateOrUpdate",
"title": "create a disk access resource."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"parameters": {
"subscriptionId": "{subscription-id}",
"resourceGroupName": "myResourceGroup",
"diskAccessName": "myDiskAccess",
"api-version": "2026-03-02"
},
"responses": {
"200": {},
"202": {
"headers": {
"Location": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/operations/{operationId}&monitor=true&api-version=2026-03-02"
}
},
"204": {}
},
"operationId": "DiskAccesses_Delete",
"title": "delete a disk access resource."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"parameters": {
"subscriptionId": "{subscription-id}",
"resourceGroupName": "myResourceGroup",
"api-version": "2026-03-02",
"diskAccessName": "myDiskAccess"
},
"responses": {
"200": {
"body": {
"properties": {
"provisioningState": "Succeeded",
"timeCreated": "2020-05-01T04:41:35.079872+00:00"
},
"type": "Microsoft.Compute/diskAccesses",
"location": "westus",
"tags": {
"department": "Development",
"project": "PrivateEndpoints"
},
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess",
"name": "myDiskAccess"
}
}
},
"operationId": "DiskAccesses_Get",
"title": "get information about a disk access resource."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"parameters": {
"subscriptionId": "{subscription-id}",
"resourceGroupName": "myResourceGroup",
"api-version": "2026-03-02",
"diskAccessName": "myDiskAccess"
},
"responses": {
"200": {
"body": {
"properties": {
"provisioningState": "Succeeded",
"timeCreated": "2020-05-01T04:41:35.079872+00:00",
"privateEndpointConnections": [
{
"name": "myDiskAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef",
"type": "Microsoft.Compute/diskAccesses/PrivateEndpointConnections",
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess/privateEndpoinConnections/myDiskAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef",
"properties": {
"provisioningState": "Succeeded",
"privateEndpoint": {
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
},
"privateLinkServiceConnectionState": {
"actionsRequired": "None",
"description": "Auto-Approved",
"status": "Approved"
}
}
}
]
},
"type": "Microsoft.Compute/diskAccesses",
"location": "westus",
"tags": {
"department": "Development",
"project": "PrivateEndpoints"
},
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess",
"name": "myDiskAccess"
}
}
},
"operationId": "DiskAccesses_Get",
"title": "get information about a disk access resource with private endpoints."
}
Loading
Loading