From 939d6f4eddd26c98f5e0ec8bc1d6c8f5392648c6 Mon Sep 17 00:00:00 2001 From: Neerja Gangwar Date: Tue, 16 Jun 2026 16:25:13 +0100 Subject: [PATCH 1/3] update managed hsm sku enum to string --- .../Microsoft.KeyVault/KeyVault/models.tsp | 24 ++++++++++----- .../preview/2026-03-01-preview/openapi.json | 29 ++++++++++++++++++- .../KeyVault/stable/2025-05-01/openapi.json | 29 ++++++++++++++++++- .../KeyVault/stable/2026-02-01/openapi.json | 29 ++++++++++++++++++- 4 files changed, 101 insertions(+), 10 deletions(-) diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/models.tsp b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/models.tsp index 93de604410f1..84d9c523ea8e 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/models.tsp +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/models.tsp @@ -588,13 +588,23 @@ enum KeyVaultNameUnavailableReason { /** * SKU of the managed HSM Pool */ -#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" -enum ManagedHsmSkuName { - Standard_B1, - Custom_B32, - Custom_B6, - Custom_C42, - Custom_C10, +union ManagedHsmSkuName { + string, + + /** Standard_B1 SKU */ + Standard_B1: "Standard_B1", + + /** Custom_B32 SKU */ + Custom_B32: "Custom_B32", + + /** Custom_B6 SKU */ + Custom_B6: "Custom_B6", + + /** Custom_C42 SKU */ + Custom_C42: "Custom_C42", + + /** Custom_C10 SKU */ + Custom_C10: "Custom_C10", } /** diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/preview/2026-03-01-preview/openapi.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/preview/2026-03-01-preview/openapi.json index 5111e11d9d42..22f431c64e39 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/preview/2026-03-01-preview/openapi.json +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/preview/2026-03-01-preview/openapi.json @@ -4654,7 +4654,34 @@ ], "x-ms-enum": { "name": "ManagedHsmSkuName", - "modelAsString": false + "modelAsString": true, + "values": [ + { + "name": "Standard_B1", + "value": "Standard_B1", + "description": "Standard_B1 SKU" + }, + { + "name": "Custom_B32", + "value": "Custom_B32", + "description": "Custom_B32 SKU" + }, + { + "name": "Custom_B6", + "value": "Custom_B6", + "description": "Custom_B6 SKU" + }, + { + "name": "Custom_C42", + "value": "Custom_C42", + "description": "Custom_C42 SKU" + }, + { + "name": "Custom_C10", + "value": "Custom_C10", + "description": "Custom_C10 SKU" + } + ] } }, "ManagedHsmTrigger": { diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2025-05-01/openapi.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2025-05-01/openapi.json index 085a3138bfdb..a28e63d34490 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2025-05-01/openapi.json +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2025-05-01/openapi.json @@ -4654,7 +4654,34 @@ ], "x-ms-enum": { "name": "ManagedHsmSkuName", - "modelAsString": false + "modelAsString": true, + "values": [ + { + "name": "Standard_B1", + "value": "Standard_B1", + "description": "Standard_B1 SKU" + }, + { + "name": "Custom_B32", + "value": "Custom_B32", + "description": "Custom_B32 SKU" + }, + { + "name": "Custom_B6", + "value": "Custom_B6", + "description": "Custom_B6 SKU" + }, + { + "name": "Custom_C42", + "value": "Custom_C42", + "description": "Custom_C42 SKU" + }, + { + "name": "Custom_C10", + "value": "Custom_C10", + "description": "Custom_C10 SKU" + } + ] } }, "ManagedHsmTrigger": { diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2026-02-01/openapi.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2026-02-01/openapi.json index 51c12965fcb9..5cab25b5b0dd 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2026-02-01/openapi.json +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2026-02-01/openapi.json @@ -4654,7 +4654,34 @@ ], "x-ms-enum": { "name": "ManagedHsmSkuName", - "modelAsString": false + "modelAsString": true, + "values": [ + { + "name": "Standard_B1", + "value": "Standard_B1", + "description": "Standard_B1 SKU" + }, + { + "name": "Custom_B32", + "value": "Custom_B32", + "description": "Custom_B32 SKU" + }, + { + "name": "Custom_B6", + "value": "Custom_B6", + "description": "Custom_B6 SKU" + }, + { + "name": "Custom_C42", + "value": "Custom_C42", + "description": "Custom_C42 SKU" + }, + { + "name": "Custom_C10", + "value": "Custom_C10", + "description": "Custom_C10 SKU" + } + ] } }, "ManagedHsmTrigger": { From 16dccb6dbbb14b9c4764de6595224f5b193e16e3 Mon Sep 17 00:00:00 2001 From: Neerja Gangwar Date: Fri, 19 Jun 2026 12:31:51 +0100 Subject: [PATCH 2/3] update --- .../Microsoft.KeyVault/KeyVault/models.tsp | 18 ++++++++++-- .../preview/2026-03-01-preview/openapi.json | 6 ++-- .../KeyVault/stable/2025-05-01/openapi.json | 29 +------------------ .../KeyVault/stable/2026-02-01/openapi.json | 29 +------------------ 4 files changed, 21 insertions(+), 61 deletions(-) diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/models.tsp b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/models.tsp index 84d9c523ea8e..66613a97d10e 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/models.tsp +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/models.tsp @@ -588,7 +588,20 @@ enum KeyVaultNameUnavailableReason { /** * SKU of the managed HSM Pool */ -union ManagedHsmSkuName { +#suppress "@azure-tools/typespec-azure-core/no-enum" "Closed enum retained unchanged for already-released GA API versions 2025-05-01 and 2026-02-01 per Azure Breaking Changes Board guidance; superseded by the extensible union ManagedHsmSkuNameV2 starting in 2026-03-01-preview." +enum ManagedHsmSkuName { + Standard_B1, + Custom_B32, + Custom_B6, + Custom_C42, + Custom_C10, +} + +/** + * SKU of the managed HSM Pool + */ +@Versioning.added(KeyVault.Versions.v2026_03_01_preview) +union ManagedHsmSkuNameV2 { string, /** Standard_B1 SKU */ @@ -1916,7 +1929,8 @@ model ManagedHsmSku { /** * SKU of the managed HSM Pool */ - name: ManagedHsmSkuName; + @Versioning.typeChangedFrom(KeyVault.Versions.v2026_03_01_preview, ManagedHsmSkuName) + name: ManagedHsmSkuNameV2; } /** diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/preview/2026-03-01-preview/openapi.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/preview/2026-03-01-preview/openapi.json index 22f431c64e39..244b5aa9cc46 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/preview/2026-03-01-preview/openapi.json +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/preview/2026-03-01-preview/openapi.json @@ -4611,7 +4611,7 @@ "description": "SKU Family of the managed HSM Pool" }, "name": { - "$ref": "#/definitions/ManagedHsmSkuName", + "$ref": "#/definitions/ManagedHsmSkuNameV2", "description": "SKU of the managed HSM Pool" } }, @@ -4642,7 +4642,7 @@ ] } }, - "ManagedHsmSkuName": { + "ManagedHsmSkuNameV2": { "type": "string", "description": "SKU of the managed HSM Pool", "enum": [ @@ -4653,7 +4653,7 @@ "Custom_C10" ], "x-ms-enum": { - "name": "ManagedHsmSkuName", + "name": "ManagedHsmSkuNameV2", "modelAsString": true, "values": [ { diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2025-05-01/openapi.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2025-05-01/openapi.json index a28e63d34490..085a3138bfdb 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2025-05-01/openapi.json +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2025-05-01/openapi.json @@ -4654,34 +4654,7 @@ ], "x-ms-enum": { "name": "ManagedHsmSkuName", - "modelAsString": true, - "values": [ - { - "name": "Standard_B1", - "value": "Standard_B1", - "description": "Standard_B1 SKU" - }, - { - "name": "Custom_B32", - "value": "Custom_B32", - "description": "Custom_B32 SKU" - }, - { - "name": "Custom_B6", - "value": "Custom_B6", - "description": "Custom_B6 SKU" - }, - { - "name": "Custom_C42", - "value": "Custom_C42", - "description": "Custom_C42 SKU" - }, - { - "name": "Custom_C10", - "value": "Custom_C10", - "description": "Custom_C10 SKU" - } - ] + "modelAsString": false } }, "ManagedHsmTrigger": { diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2026-02-01/openapi.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2026-02-01/openapi.json index 5cab25b5b0dd..51c12965fcb9 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2026-02-01/openapi.json +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/stable/2026-02-01/openapi.json @@ -4654,34 +4654,7 @@ ], "x-ms-enum": { "name": "ManagedHsmSkuName", - "modelAsString": true, - "values": [ - { - "name": "Standard_B1", - "value": "Standard_B1", - "description": "Standard_B1 SKU" - }, - { - "name": "Custom_B32", - "value": "Custom_B32", - "description": "Custom_B32 SKU" - }, - { - "name": "Custom_B6", - "value": "Custom_B6", - "description": "Custom_B6 SKU" - }, - { - "name": "Custom_C42", - "value": "Custom_C42", - "description": "Custom_C42 SKU" - }, - { - "name": "Custom_C10", - "value": "Custom_C10", - "description": "Custom_C10 SKU" - } - ] + "modelAsString": false } }, "ManagedHsmTrigger": { From 5bd4295ce29c487b56ca12305a1dd06623afcdf2 Mon Sep 17 00:00:00 2001 From: Neerja Gangwar Date: Fri, 19 Jun 2026 16:54:33 +0100 Subject: [PATCH 3/3] Fix tsp formatting: wrap @typeChangedFrom decorator to satisfy TypeSpec Validation Format rule --- .../resource-manager/Microsoft.KeyVault/KeyVault/models.tsp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/models.tsp b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/models.tsp index 66613a97d10e..17322d565668 100644 --- a/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/models.tsp +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/KeyVault/models.tsp @@ -1929,7 +1929,10 @@ model ManagedHsmSku { /** * SKU of the managed HSM Pool */ - @Versioning.typeChangedFrom(KeyVault.Versions.v2026_03_01_preview, ManagedHsmSkuName) + @Versioning.typeChangedFrom( + KeyVault.Versions.v2026_03_01_preview, + ManagedHsmSkuName + ) name: ManagedHsmSkuNameV2; }