Skip to content

Commit 5db1734

Browse files
authored
Adding soft delete resources to API version 2025-08-01 [Migrating vault soft delete properties to stable version] (#37221)
* Adding soft delete resources to API version 2025-08-01 * Minor fix * Adding naming pattern * Swagger lint fix * Update naming pattern for DeletedVaults
1 parent 2beceb9 commit 5db1734

File tree

81 files changed

+9086
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+9086
-1
lines changed
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
import "./models.tsp";
2+
import "@typespec/versioning";
3+
import "@azure-tools/typespec-azure-resource-manager";
4+
import "@azure-tools/typespec-azure-core";
5+
import "@typespec/rest";
6+
import "@typespec/http";
7+
8+
using TypeSpec.Versioning;
9+
using Azure.Core;
10+
using Azure.ResourceManager;
11+
using TypeSpec.Rest;
12+
using TypeSpec.Http;
13+
14+
namespace Microsoft.RecoveryServices;
15+
16+
/**
17+
Deleted Vault operations.
18+
*/
19+
@armResourceOperations
20+
@added(Versions.v2025_08_01)
21+
interface DeletedVaultOps
22+
extends Azure.ResourceManager.Legacy.LegacyOperations<
23+
{
24+
...ApiVersionParameter,
25+
...SubscriptionIdParameter,
26+
...Azure.ResourceManager.Legacy.Provider,
27+
...LocationParameter,
28+
},
29+
KeysOf<ResourceNameParameter<
30+
Resource = DeletedVault,
31+
KeyName = "deletedVaultName",
32+
SegmentName = "deletedVaults",
33+
NamePattern = "^[-\\w\\._\\(\\)]+$"
34+
>>
35+
> {}
36+
37+
@armResourceOperations
38+
interface DeletedVaultsOperationStatus
39+
extends Azure.ResourceManager.Legacy.LegacyOperations<
40+
{
41+
...ApiVersionParameter,
42+
...SubscriptionIdParameter,
43+
...Azure.ResourceManager.Legacy.Provider,
44+
...LocationParameter,
45+
},
46+
{
47+
/**
48+
*The name of deleted vault.
49+
*/
50+
@segment("deletedVaults")
51+
@path
52+
@pattern("^[-\\w\\._\\(\\)]+$")
53+
deletedVaultName: string,
54+
55+
#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
56+
@path
57+
@segment("operations")
58+
operationId: string,
59+
},
60+
ErrorType = CloudError
61+
> {}
62+
63+
@armResourceOperations
64+
@added(Versions.v2025_08_01)
65+
interface DeletedVaults {
66+
/** List deleted vaults in a subscription. */
67+
listBySubscriptionId is ArmListBySubscription<
68+
DeletedVault,
69+
Response = ArmResponse<DeletedVaultList>,
70+
Error = CloudError
71+
>;
72+
73+
/** Get a specific deleted vault. */
74+
get is DeletedVaultOps.Read<DeletedVault, OverrideErrorType = CloudError>;
75+
76+
/** Start undelete of a deleted vault. */
77+
@action("undelete")
78+
undelete is DeletedVaultOps.ActionAsync<
79+
DeletedVault,
80+
DeletedVaultUndeleteInput,
81+
DeletedVault,
82+
LroHeaders = ArmAsyncOperationHeader & ArmLroLocationHeader
83+
>;
84+
85+
/**
86+
* Get the operation status of a deleted vault.
87+
*/
88+
#suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
89+
@get
90+
getOperationStatus is DeletedVaultsOperationStatus.Read<
91+
DeletedVault,
92+
Response = ArmResponse<OperationResource>
93+
>;
94+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{
2+
"parameters": {
3+
"api-version": "2025-08-01",
4+
"input": {
5+
"type": "Microsoft.RecoveryServices/Vaults",
6+
"properties": {
7+
"dnsZones": [
8+
{
9+
"subResource": "AzureBackup"
10+
},
11+
{
12+
"subResource": "AzureSiteRecovery"
13+
}
14+
]
15+
}
16+
},
17+
"location": "westus",
18+
"subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18"
19+
},
20+
"responses": {
21+
"200": {
22+
"body": {
23+
"type": "Microsoft.RecoveryServices/Vaults",
24+
"properties": {
25+
"dnsZones": [
26+
{
27+
"requiredZoneNames": [
28+
"privatelink.wus.backup.windowsazure.com",
29+
"privatelink.queue.core.windows.net",
30+
"privatelink.blob.core.windows.net"
31+
],
32+
"subResource": "AzureBackup"
33+
},
34+
{
35+
"requiredZoneNames": [
36+
"privatelink.siterecovery.windowsazure.com"
37+
],
38+
"subResource": "AzureSiteRecovery"
39+
}
40+
]
41+
}
42+
}
43+
}
44+
},
45+
"operationId": "RecoveryServices_Capabilities",
46+
"title": "Capabilities for Microsoft.RecoveryServices/Vaults"
47+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"parameters": {
3+
"api-version": "2025-08-01",
4+
"input": {
5+
"name": "swaggerExample",
6+
"type": "Microsoft.RecoveryServices/Vaults"
7+
},
8+
"location": "westus",
9+
"resourceGroupName": "resGroupFoo",
10+
"subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18"
11+
},
12+
"responses": {
13+
"200": {
14+
"body": {
15+
"nameAvailable": true
16+
}
17+
}
18+
},
19+
"operationId": "RecoveryServices_CheckNameAvailability",
20+
"title": "Availability status of Resource Name when no resource with same name, type and subscription exists, nor has been deleted within last 24 hours"
21+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"parameters": {
3+
"api-version": "2025-08-01",
4+
"input": {
5+
"name": "swaggerExample2",
6+
"type": "Microsoft.RecoveryServices/Vaults"
7+
},
8+
"location": "westus",
9+
"resourceGroupName": "resGroupBar",
10+
"subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18"
11+
},
12+
"responses": {
13+
"200": {
14+
"body": {
15+
"message": "Resource already exists with the same name.",
16+
"nameAvailable": false,
17+
"reason": "AlreadyExists"
18+
}
19+
}
20+
},
21+
"operationId": "RecoveryServices_CheckNameAvailability",
22+
"title": "Availability status of Resource Name when resource with same name, type and subscription exists"
23+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"parameters": {
3+
"api-version": "2025-08-01",
4+
"identityName": "dpmcontainer01",
5+
"resourceGroupName": "BCDRIbzRG",
6+
"subscriptionId": "77777777-d41f-4550-9f70-7708a3a2283b",
7+
"vaultName": "BCDRIbzVault"
8+
},
9+
"responses": {
10+
"204": {}
11+
},
12+
"operationId": "RegisteredIdentities_Delete",
13+
"title": "Delete registered Identity"
14+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"parameters": {
3+
"api-version": "2025-08-01",
4+
"resourceGroupName": "Default-RecoveryServices-ResourceGroup",
5+
"subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18",
6+
"vaultName": "swaggerExample"
7+
},
8+
"responses": {
9+
"202": {
10+
"headers": {
11+
"Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2025-08-01",
12+
"Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2025-08-01",
13+
"Retry-After": "10"
14+
}
15+
},
16+
"204": {}
17+
},
18+
"operationId": "Vaults_Delete",
19+
"title": "Delete Recovery Services Vault"
20+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"parameters": {
3+
"subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18",
4+
"location": "westus",
5+
"deletedVaultName": "swaggerExample",
6+
"api-version": "2025-08-01"
7+
},
8+
"responses": {
9+
"200": {
10+
"body": {
11+
"id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample",
12+
"name": "swaggerExample",
13+
"type": "Microsoft.RecoveryServices/locations/deletedVaults",
14+
"properties": {
15+
"vaultId": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample",
16+
"vaultDeletionTime": "2024-09-20T09:49:46Z",
17+
"purgeAt": "2024-10-20T09:49:46Z"
18+
}
19+
}
20+
}
21+
},
22+
"operationId": "DeletedVaults_Get",
23+
"title": "Gets Deleted vault"
24+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"parameters": {
3+
"subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18",
4+
"location": "westus",
5+
"deletedVaultName": "swaggerExample",
6+
"operationId": "YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==",
7+
"api-version": "2025-08-01"
8+
},
9+
"responses": {
10+
"200": {
11+
"body": {
12+
"id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample/operations/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==",
13+
"name": "YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==",
14+
"status": "Succeeded",
15+
"startTime": "2024-09-20T09:49:44.0478496Z",
16+
"endTime": "2024-09-20T09:49:46Z"
17+
}
18+
}
19+
},
20+
"operationId": "DeletedVaults_GetOperationStatus",
21+
"title": "Gets operation status on deleted vault"
22+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"parameters": {
3+
"subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18",
4+
"location": "westus",
5+
"api-version": "2025-08-01"
6+
},
7+
"responses": {
8+
"200": {
9+
"body": {
10+
"value": [
11+
{
12+
"id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample1",
13+
"name": "swaggerExample1",
14+
"type": "Microsoft.RecoveryServices/locations/deletedVaults",
15+
"properties": {
16+
"vaultId": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample1",
17+
"vaultDeletionTime": "2024-09-20T09:49:46Z",
18+
"purgeAt": "2024-10-20T09:49:46Z"
19+
}
20+
},
21+
{
22+
"id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample2",
23+
"name": "swaggerExample2",
24+
"type": "Microsoft.RecoveryServices/locations/deletedVaults",
25+
"properties": {
26+
"vaultId": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample2",
27+
"vaultDeletionTime": "2024-09-20T09:49:46Z",
28+
"purgeAt": "2024-10-20T09:49:46Z"
29+
}
30+
}
31+
]
32+
}
33+
}
34+
},
35+
"operationId": "DeletedVaults_ListBySubscriptionId",
36+
"title": "List deleted vaults in a subscription"
37+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"parameters": {
3+
"subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18",
4+
"location": "westus",
5+
"deletedVaultName": "swaggerExample",
6+
"api-version": "2025-08-01",
7+
"body": {
8+
"properties": {
9+
"recoveryResourceGroupId": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup"
10+
}
11+
}
12+
},
13+
"responses": {
14+
"200": {
15+
"body": {
16+
"id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample",
17+
"name": "swaggerExample",
18+
"type": "Microsoft.RecoveryServices/locations/deletedVaults",
19+
"properties": {
20+
"vaultId": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample",
21+
"vaultDeletionTime": "2024-09-20T09:49:46Z",
22+
"purgeAt": "2024-10-20T09:49:46Z"
23+
}
24+
},
25+
"headers": {
26+
"Azure-AsyncOperation": "https://management.azure.com/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample/operations/a93f3cd5-9035-4b1e-a2c9-b16df6d5d34b?api-version=2024-09-30-preview"
27+
}
28+
},
29+
"202": {
30+
"headers": {
31+
"Azure-AsyncOperation": "https://management.azure.com/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample/operations/a93f3cd5-9035-4b1e-a2c9-b16df6d5d34b?api-version=2024-09-30-preview",
32+
"Retry-After": 30
33+
}
34+
}
35+
},
36+
"operationId": "DeletedVaults_Undelete",
37+
"title": "Undelete a deleted vault"
38+
}

0 commit comments

Comments
 (0)