From e8f7d17e7c26b9ac5bc0fa42206d50d36733650a Mon Sep 17 00:00:00 2001 From: Cameron Taggart Date: Tue, 29 Apr 2025 22:59:41 +0200 Subject: [PATCH 01/19] TypeSpec for AVS SDKs --- .../Microsoft.AVS.Management/tspconfig.yaml | 68 +++++++++---------- .../vmware/resource-manager/readme.md | 8 +-- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml index 5876dd5fae34..3de8f9ab8da2 100644 --- a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml +++ b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml @@ -18,41 +18,41 @@ options: omit-unreachable-types: true use-read-only-status-schema: true - # "@azure-tools/typespec-csharp": - # flavor: azure - # package-dir: "Azure.ResourceManager.Avs" - # clear-output-folder: true - # model-namespace: true - # namespace: "{package-dir}" + "@azure-tools/typespec-csharp": + flavor: azure + package-dir: "Azure.ResourceManager.Avs" + clear-output-folder: true + model-namespace: true + namespace: "{package-dir}" - # "@azure-tools/typespec-go": - # service-dir: "sdk/resourcemanager/avs" - # package-dir: "armavs" - # module: "github.com/Azure/azure-sdk-for-go/{service-dir}/{package-dir}" - # fix-const-stuttering: true - # flavor: "azure" - # generate-samples: true - # generate-fakes: true - # head-as-boolean: true - # inject-spans: true + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/avs" + package-dir: "armavs" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/{package-dir}" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true - # "@azure-tools/typespec-java": - # package-dir: "azure-resourcemanager-avs" - # namespace: "com.azure.resourcemanager.avs" - # service-name: "avs" - # flavor: azure + "@azure-tools/typespec-java": + package-dir: "azure-resourcemanager-avs" + namespace: "com.azure.resourcemanager.avs" + service-name: "avs" + flavor: azure - # "@azure-tools/typespec-python": - # package-dir: "azure-mgmt-avs" - # namespace: "azure.mgmt.avs" - # flavor: "azure" - # generate-test: true - # generate-sample: true + "@azure-tools/typespec-python": + package-dir: "azure-mgmt-avs" + namespace: "azure.mgmt.avs" + flavor: "azure" + generate-test: true + generate-sample: true - # "@azure-tools/typespec-ts": - # is-modular-library: true - # experimental-extensible-enums: true - # package-dir: "arm-avs" - # flavor: "azure" - # package-details: - # name: "@azure/arm-avs" + "@azure-tools/typespec-ts": + is-modular-library: true + experimental-extensible-enums: true + package-dir: "arm-avs" + flavor: "azure" + package-details: + name: "@azure/arm-avs" diff --git a/specification/vmware/resource-manager/readme.md b/specification/vmware/resource-manager/readme.md index 531b46d9bcce..d00c14665ac7 100644 --- a/specification/vmware/resource-manager/readme.md +++ b/specification/vmware/resource-manager/readme.md @@ -115,10 +115,10 @@ This is not used by Autorest itself. ``` yaml $(swagger-to-sdk) swagger-to-sdk: - - repo: azure-sdk-for-js - - repo: azure-sdk-for-python - - repo: azure-sdk-for-go - - repo: azure-sdk-for-java + # - repo: azure-sdk-for-js + # - repo: azure-sdk-for-python + # - repo: azure-sdk-for-go + # - repo: azure-sdk-for-java - repo: azure-resource-manager-schemas - repo: azure-powershell ``` From 01e42b574a1faaf81684868663b2ee8555f5ab38 Mon Sep 17 00:00:00 2001 From: Cameron Taggart Date: Thu, 1 May 2025 10:58:41 +0200 Subject: [PATCH 02/19] sdk/compute for python --- specification/vmware/Microsoft.AVS.Management/tspconfig.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml index 3de8f9ab8da2..78ecb19d3f07 100644 --- a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml +++ b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml @@ -43,7 +43,7 @@ options: flavor: azure "@azure-tools/typespec-python": - package-dir: "azure-mgmt-avs" + package-dir: "sdk/compute" namespace: "azure.mgmt.avs" flavor: "azure" generate-test: true From 634c7d71575fab1dbf0f237ab8b743b4895f08c2 Mon Sep 17 00:00:00 2001 From: Cameron Taggart Date: Thu, 1 May 2025 13:26:04 +0200 Subject: [PATCH 03/19] add WorkloadNetworksClient in Customizations --- .../Microsoft.AVS.Management/client.tsp | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/specification/vmware/Microsoft.AVS.Management/client.tsp b/specification/vmware/Microsoft.AVS.Management/client.tsp index 7271b07252f7..8be45b4f22a1 100644 --- a/specification/vmware/Microsoft.AVS.Management/client.tsp +++ b/specification/vmware/Microsoft.AVS.Management/client.tsp @@ -2,6 +2,69 @@ import "./main.tsp"; import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; +using Microsoft.AVS; + +@TypeSpec.Versioning.useDependency(Versions.v2024_09_01) +@client( + { + name: "WorkloadNetworksClient", + service: Microsoft.AVS, + }, + "csharp,go,java,javascript,python" +) +namespace Customizations; @@clientName(Microsoft.AVS, "AzureVMwareSolutionAPI", "javascript"); @@clientName(Microsoft.AVS, "AVS", "python"); + +interface WorkloadNetworksClient { + list is Microsoft.AVS.WorkloadNetworks.list; + get is Microsoft.AVS.WorkloadNetworks.get; + + listDhcp is WorkloadNetworkDhcpConfigurations.list; + getDhcp is WorkloadNetworkDhcpConfigurations.get; + createDhcp is WorkloadNetworkDhcpConfigurations.create; + updateDhcp is WorkloadNetworkDhcpConfigurations.update; + deleteDhcp is WorkloadNetworkDhcpConfigurations.delete; + + listDnsService is WorkloadNetworkDnsServices.list; + getDnsService is WorkloadNetworkDnsServices.get; + createDnsService is WorkloadNetworkDnsServices.create; + updateDnsService is WorkloadNetworkDnsServices.update; + deleteDnsService is WorkloadNetworkDnsServices.delete; + + listDnsZones is WorkloadNetworkDnsZones.list; + getDnsZone is WorkloadNetworkDnsZones.get; + createDnsZone is WorkloadNetworkDnsZones.create; + updateDnsZone is WorkloadNetworkDnsZones.update; + deleteDnsZone is WorkloadNetworkDnsZones.delete; + + listGateways is WorkloadNetworkGateways.list; + getGateway is WorkloadNetworkGateways.get; + + listPortMirroring is WorkloadNetworkPortMirroringProfiles.list; + getPortMirroring is WorkloadNetworkPortMirroringProfiles.get; + createPortMirroring is WorkloadNetworkPortMirroringProfiles.create; + updatePortMirroring is WorkloadNetworkPortMirroringProfiles.update; + deletePortMirroring is WorkloadNetworkPortMirroringProfiles.delete; + + listPublicIPs is WorkloadNetworkPublicIps.list; + getPublicIP is WorkloadNetworkPublicIps.get; + createPublicIP is WorkloadNetworkPublicIps.create; + deletePublicIP is WorkloadNetworkPublicIps.delete; + + listSegments is WorkloadNetworkSegments.list; + getSegment is WorkloadNetworkSegments.get; + createSegment is WorkloadNetworkSegments.create; + updateSegment is WorkloadNetworkSegments.update; + deleteSegment is WorkloadNetworkSegments.deleteSegment; + + listVirtualMachines is WorkloadNetworkVirtualMachines.list; + getVirtualMachine is WorkloadNetworkVirtualMachines.get; + + listVMGropus is WorkloadNetworkVmGroups.list; + getVMGroup is WorkloadNetworkVmGroups.get; + createVMGroup is WorkloadNetworkVmGroups.create; + updateVMGroup is WorkloadNetworkVmGroups.update; + deleteVMGroup is WorkloadNetworkVmGroups.delete; +} From bf9768365ebb433f91625cb13afd652eeb8acc6c Mon Sep 17 00:00:00 2001 From: Chenjie Shi Date: Tue, 6 May 2025 13:21:52 +0800 Subject: [PATCH 04/19] Update client.tsp --- specification/vmware/Microsoft.AVS.Management/client.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/vmware/Microsoft.AVS.Management/client.tsp b/specification/vmware/Microsoft.AVS.Management/client.tsp index 8be45b4f22a1..b450c7f0146a 100644 --- a/specification/vmware/Microsoft.AVS.Management/client.tsp +++ b/specification/vmware/Microsoft.AVS.Management/client.tsp @@ -10,7 +10,7 @@ using Microsoft.AVS; name: "WorkloadNetworksClient", service: Microsoft.AVS, }, - "csharp,go,java,javascript,python" + "csharp,java,javascript,python" ) namespace Customizations; From b557375d716982ca6f3d872c9a0866e0cf0a4769 Mon Sep 17 00:00:00 2001 From: Cameron Taggart Date: Tue, 6 May 2025 12:11:23 +0200 Subject: [PATCH 05/19] client on namespce --- .../Microsoft.AVS.Management/client.tsp | 92 +++++++++---------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/specification/vmware/Microsoft.AVS.Management/client.tsp b/specification/vmware/Microsoft.AVS.Management/client.tsp index b450c7f0146a..d8ff2d35ae08 100644 --- a/specification/vmware/Microsoft.AVS.Management/client.tsp +++ b/specification/vmware/Microsoft.AVS.Management/client.tsp @@ -7,64 +7,64 @@ using Microsoft.AVS; @TypeSpec.Versioning.useDependency(Versions.v2024_09_01) @client( { - name: "WorkloadNetworksClient", service: Microsoft.AVS, }, "csharp,java,javascript,python" ) -namespace Customizations; +namespace Client { + @@clientName(Microsoft.AVS, "AzureVMwareSolutionAPI", "javascript"); + @@clientName(Microsoft.AVS, "AVS", "python"); -@@clientName(Microsoft.AVS, "AzureVMwareSolutionAPI", "javascript"); -@@clientName(Microsoft.AVS, "AVS", "python"); + @operationGroup + interface WorkloadNetworksClient { + list is Microsoft.AVS.WorkloadNetworks.list; + get is Microsoft.AVS.WorkloadNetworks.get; -interface WorkloadNetworksClient { - list is Microsoft.AVS.WorkloadNetworks.list; - get is Microsoft.AVS.WorkloadNetworks.get; + listDhcp is WorkloadNetworkDhcpConfigurations.list; + getDhcp is WorkloadNetworkDhcpConfigurations.get; + createDhcp is WorkloadNetworkDhcpConfigurations.create; + updateDhcp is WorkloadNetworkDhcpConfigurations.update; + deleteDhcp is WorkloadNetworkDhcpConfigurations.delete; - listDhcp is WorkloadNetworkDhcpConfigurations.list; - getDhcp is WorkloadNetworkDhcpConfigurations.get; - createDhcp is WorkloadNetworkDhcpConfigurations.create; - updateDhcp is WorkloadNetworkDhcpConfigurations.update; - deleteDhcp is WorkloadNetworkDhcpConfigurations.delete; + listDnsService is WorkloadNetworkDnsServices.list; + getDnsService is WorkloadNetworkDnsServices.get; + createDnsService is WorkloadNetworkDnsServices.create; + updateDnsService is WorkloadNetworkDnsServices.update; + deleteDnsService is WorkloadNetworkDnsServices.delete; - listDnsService is WorkloadNetworkDnsServices.list; - getDnsService is WorkloadNetworkDnsServices.get; - createDnsService is WorkloadNetworkDnsServices.create; - updateDnsService is WorkloadNetworkDnsServices.update; - deleteDnsService is WorkloadNetworkDnsServices.delete; + listDnsZones is WorkloadNetworkDnsZones.list; + getDnsZone is WorkloadNetworkDnsZones.get; + createDnsZone is WorkloadNetworkDnsZones.create; + updateDnsZone is WorkloadNetworkDnsZones.update; + deleteDnsZone is WorkloadNetworkDnsZones.delete; - listDnsZones is WorkloadNetworkDnsZones.list; - getDnsZone is WorkloadNetworkDnsZones.get; - createDnsZone is WorkloadNetworkDnsZones.create; - updateDnsZone is WorkloadNetworkDnsZones.update; - deleteDnsZone is WorkloadNetworkDnsZones.delete; + listGateways is WorkloadNetworkGateways.list; + getGateway is WorkloadNetworkGateways.get; - listGateways is WorkloadNetworkGateways.list; - getGateway is WorkloadNetworkGateways.get; + listPortMirroring is WorkloadNetworkPortMirroringProfiles.list; + getPortMirroring is WorkloadNetworkPortMirroringProfiles.get; + createPortMirroring is WorkloadNetworkPortMirroringProfiles.create; + updatePortMirroring is WorkloadNetworkPortMirroringProfiles.update; + deletePortMirroring is WorkloadNetworkPortMirroringProfiles.delete; - listPortMirroring is WorkloadNetworkPortMirroringProfiles.list; - getPortMirroring is WorkloadNetworkPortMirroringProfiles.get; - createPortMirroring is WorkloadNetworkPortMirroringProfiles.create; - updatePortMirroring is WorkloadNetworkPortMirroringProfiles.update; - deletePortMirroring is WorkloadNetworkPortMirroringProfiles.delete; + listPublicIPs is WorkloadNetworkPublicIps.list; + getPublicIP is WorkloadNetworkPublicIps.get; + createPublicIP is WorkloadNetworkPublicIps.create; + deletePublicIP is WorkloadNetworkPublicIps.delete; - listPublicIPs is WorkloadNetworkPublicIps.list; - getPublicIP is WorkloadNetworkPublicIps.get; - createPublicIP is WorkloadNetworkPublicIps.create; - deletePublicIP is WorkloadNetworkPublicIps.delete; + listSegments is WorkloadNetworkSegments.list; + getSegment is WorkloadNetworkSegments.get; + createSegment is WorkloadNetworkSegments.create; + updateSegment is WorkloadNetworkSegments.update; + deleteSegment is WorkloadNetworkSegments.deleteSegment; - listSegments is WorkloadNetworkSegments.list; - getSegment is WorkloadNetworkSegments.get; - createSegment is WorkloadNetworkSegments.create; - updateSegment is WorkloadNetworkSegments.update; - deleteSegment is WorkloadNetworkSegments.deleteSegment; + listVirtualMachines is WorkloadNetworkVirtualMachines.list; + getVirtualMachine is WorkloadNetworkVirtualMachines.get; - listVirtualMachines is WorkloadNetworkVirtualMachines.list; - getVirtualMachine is WorkloadNetworkVirtualMachines.get; - - listVMGropus is WorkloadNetworkVmGroups.list; - getVMGroup is WorkloadNetworkVmGroups.get; - createVMGroup is WorkloadNetworkVmGroups.create; - updateVMGroup is WorkloadNetworkVmGroups.update; - deleteVMGroup is WorkloadNetworkVmGroups.delete; + listVMGropus is WorkloadNetworkVmGroups.list; + getVMGroup is WorkloadNetworkVmGroups.get; + createVMGroup is WorkloadNetworkVmGroups.create; + updateVMGroup is WorkloadNetworkVmGroups.update; + deleteVMGroup is WorkloadNetworkVmGroups.delete; + } } From 85477e7c373886124da9ab7fbb476ef37c4a54ef Mon Sep 17 00:00:00 2001 From: Cameron Taggart Date: Tue, 6 May 2025 12:55:37 +0200 Subject: [PATCH 06/19] fix TypeSpec warnings --- .../Microsoft.AVS.Management/client.tsp | 36 +++++++++++++++++-- .../workloadNetworks-dhcpConfigurations.tsp | 1 + 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/specification/vmware/Microsoft.AVS.Management/client.tsp b/specification/vmware/Microsoft.AVS.Management/client.tsp index d8ff2d35ae08..911f08857727 100644 --- a/specification/vmware/Microsoft.AVS.Management/client.tsp +++ b/specification/vmware/Microsoft.AVS.Management/client.tsp @@ -2,9 +2,10 @@ import "./main.tsp"; import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; +using Azure.ResourceManager; using Microsoft.AVS; -@TypeSpec.Versioning.useDependency(Versions.v2024_09_01) +@TypeSpec.Versioning.useDependency(Microsoft.AVS.Versions.v2024_09_01) @client( { service: Microsoft.AVS, @@ -16,26 +17,36 @@ namespace Client { @@clientName(Microsoft.AVS, "AVS", "python"); @operationGroup + @armResourceOperations interface WorkloadNetworksClient { list is Microsoft.AVS.WorkloadNetworks.list; get is Microsoft.AVS.WorkloadNetworks.get; listDhcp is WorkloadNetworkDhcpConfigurations.list; getDhcp is WorkloadNetworkDhcpConfigurations.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + @Azure.Core.useFinalStateVia("azure-async-operation") createDhcp is WorkloadNetworkDhcpConfigurations.create; updateDhcp is WorkloadNetworkDhcpConfigurations.update; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" deleteDhcp is WorkloadNetworkDhcpConfigurations.delete; listDnsService is WorkloadNetworkDnsServices.list; getDnsService is WorkloadNetworkDnsServices.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + @Azure.Core.useFinalStateVia("azure-async-operation") createDnsService is WorkloadNetworkDnsServices.create; updateDnsService is WorkloadNetworkDnsServices.update; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" deleteDnsService is WorkloadNetworkDnsServices.delete; listDnsZones is WorkloadNetworkDnsZones.list; getDnsZone is WorkloadNetworkDnsZones.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + @Azure.Core.useFinalStateVia("azure-async-operation") createDnsZone is WorkloadNetworkDnsZones.create; updateDnsZone is WorkloadNetworkDnsZones.update; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" deleteDnsZone is WorkloadNetworkDnsZones.delete; listGateways is WorkloadNetworkGateways.list; @@ -43,28 +54,49 @@ namespace Client { listPortMirroring is WorkloadNetworkPortMirroringProfiles.list; getPortMirroring is WorkloadNetworkPortMirroringProfiles.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + @Azure.Core.useFinalStateVia("azure-async-operation") createPortMirroring is WorkloadNetworkPortMirroringProfiles.create; updatePortMirroring is WorkloadNetworkPortMirroringProfiles.update; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" deletePortMirroring is WorkloadNetworkPortMirroringProfiles.delete; + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." listPublicIPs is WorkloadNetworkPublicIps.list; + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." getPublicIP is WorkloadNetworkPublicIps.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." + @Azure.Core.useFinalStateVia("azure-async-operation") createPublicIP is WorkloadNetworkPublicIps.create; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." deletePublicIP is WorkloadNetworkPublicIps.delete; listSegments is WorkloadNetworkSegments.list; getSegment is WorkloadNetworkSegments.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + @Azure.Core.useFinalStateVia("azure-async-operation") createSegment is WorkloadNetworkSegments.create; updateSegment is WorkloadNetworkSegments.update; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" deleteSegment is WorkloadNetworkSegments.deleteSegment; listVirtualMachines is WorkloadNetworkVirtualMachines.list; getVirtualMachine is WorkloadNetworkVirtualMachines.get; - listVMGropus is WorkloadNetworkVmGroups.list; + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." + listVMGroups is WorkloadNetworkVmGroups.list; + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." getVMGroup is WorkloadNetworkVmGroups.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." + @Azure.Core.useFinalStateVia("azure-async-operation") createVMGroup is WorkloadNetworkVmGroups.create; + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." updateVMGroup is WorkloadNetworkVmGroups.update; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." deleteVMGroup is WorkloadNetworkVmGroups.delete; } } diff --git a/specification/vmware/Microsoft.AVS.Management/workloadNetworks-dhcpConfigurations.tsp b/specification/vmware/Microsoft.AVS.Management/workloadNetworks-dhcpConfigurations.tsp index 8483d59dd48e..48d636685e30 100644 --- a/specification/vmware/Microsoft.AVS.Management/workloadNetworks-dhcpConfigurations.tsp +++ b/specification/vmware/Microsoft.AVS.Management/workloadNetworks-dhcpConfigurations.tsp @@ -23,6 +23,7 @@ interface WorkloadNetworkDhcpConfigurations { @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AVS/privateClouds/{privateCloudName}/workloadNetworks/default/dhcpConfigurations/{dhcpId}") @doc("Get a {name}", WorkloadNetworkDhcp) @get + @armResourceRead(WorkloadNetworkDhcp) get( ...Foundations.BaseParameters, ...DhcpIdParameter, From 396d038d888870b4d15c8efcd04f3f73d5834ad7 Mon Sep 17 00:00:00 2001 From: Cameron Taggart Date: Tue, 6 May 2025 13:24:31 +0200 Subject: [PATCH 07/19] add other operationGroups --- .../Microsoft.AVS.Management/client.tsp | 283 ++++++++++++------ 1 file changed, 194 insertions(+), 89 deletions(-) diff --git a/specification/vmware/Microsoft.AVS.Management/client.tsp b/specification/vmware/Microsoft.AVS.Management/client.tsp index 911f08857727..bee5b1d49c83 100644 --- a/specification/vmware/Microsoft.AVS.Management/client.tsp +++ b/specification/vmware/Microsoft.AVS.Management/client.tsp @@ -4,99 +4,204 @@ import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; using Azure.ResourceManager; using Microsoft.AVS; +using TypeSpec.Versioning; -@TypeSpec.Versioning.useDependency(Microsoft.AVS.Versions.v2024_09_01) @client( { + name: "AvsClient", service: Microsoft.AVS, }, - "csharp,java,javascript,python" + "java,csharp,javascript" ) -namespace Client { - @@clientName(Microsoft.AVS, "AzureVMwareSolutionAPI", "javascript"); - @@clientName(Microsoft.AVS, "AVS", "python"); - - @operationGroup - @armResourceOperations - interface WorkloadNetworksClient { - list is Microsoft.AVS.WorkloadNetworks.list; - get is Microsoft.AVS.WorkloadNetworks.get; - - listDhcp is WorkloadNetworkDhcpConfigurations.list; - getDhcp is WorkloadNetworkDhcpConfigurations.get; - #suppress "@azure-tools/typespec-azure-core/invalid-final-state" - @Azure.Core.useFinalStateVia("azure-async-operation") - createDhcp is WorkloadNetworkDhcpConfigurations.create; - updateDhcp is WorkloadNetworkDhcpConfigurations.update; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" - deleteDhcp is WorkloadNetworkDhcpConfigurations.delete; - - listDnsService is WorkloadNetworkDnsServices.list; - getDnsService is WorkloadNetworkDnsServices.get; - #suppress "@azure-tools/typespec-azure-core/invalid-final-state" - @Azure.Core.useFinalStateVia("azure-async-operation") - createDnsService is WorkloadNetworkDnsServices.create; - updateDnsService is WorkloadNetworkDnsServices.update; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" - deleteDnsService is WorkloadNetworkDnsServices.delete; - - listDnsZones is WorkloadNetworkDnsZones.list; - getDnsZone is WorkloadNetworkDnsZones.get; - #suppress "@azure-tools/typespec-azure-core/invalid-final-state" - @Azure.Core.useFinalStateVia("azure-async-operation") - createDnsZone is WorkloadNetworkDnsZones.create; - updateDnsZone is WorkloadNetworkDnsZones.update; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" - deleteDnsZone is WorkloadNetworkDnsZones.delete; - - listGateways is WorkloadNetworkGateways.list; - getGateway is WorkloadNetworkGateways.get; - - listPortMirroring is WorkloadNetworkPortMirroringProfiles.list; - getPortMirroring is WorkloadNetworkPortMirroringProfiles.get; - #suppress "@azure-tools/typespec-azure-core/invalid-final-state" - @Azure.Core.useFinalStateVia("azure-async-operation") - createPortMirroring is WorkloadNetworkPortMirroringProfiles.create; - updatePortMirroring is WorkloadNetworkPortMirroringProfiles.update; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" - deletePortMirroring is WorkloadNetworkPortMirroringProfiles.delete; - - #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." - listPublicIPs is WorkloadNetworkPublicIps.list; - #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." - getPublicIP is WorkloadNetworkPublicIps.get; - #suppress "@azure-tools/typespec-azure-core/invalid-final-state" - #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." - @Azure.Core.useFinalStateVia("azure-async-operation") - createPublicIP is WorkloadNetworkPublicIps.create; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" - #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." - deletePublicIP is WorkloadNetworkPublicIps.delete; - - listSegments is WorkloadNetworkSegments.list; - getSegment is WorkloadNetworkSegments.get; - #suppress "@azure-tools/typespec-azure-core/invalid-final-state" - @Azure.Core.useFinalStateVia("azure-async-operation") - createSegment is WorkloadNetworkSegments.create; - updateSegment is WorkloadNetworkSegments.update; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" - deleteSegment is WorkloadNetworkSegments.deleteSegment; - - listVirtualMachines is WorkloadNetworkVirtualMachines.list; - getVirtualMachine is WorkloadNetworkVirtualMachines.get; - - #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." - listVMGroups is WorkloadNetworkVmGroups.list; - #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." - getVMGroup is WorkloadNetworkVmGroups.get; - #suppress "@azure-tools/typespec-azure-core/invalid-final-state" - #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." - @Azure.Core.useFinalStateVia("azure-async-operation") - createVMGroup is WorkloadNetworkVmGroups.create; - #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." - updateVMGroup is WorkloadNetworkVmGroups.update; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" - #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." - deleteVMGroup is WorkloadNetworkVmGroups.delete; - } +@client( + { + name: "AVSClient", + service: Microsoft.AVS, + }, + "python" +) +@useDependency(Microsoft.AVS.Versions.v2024_09_01) +namespace Customization; + +@@clientName(Microsoft.AVS, "AzureVMwareSolutionAPI", "javascript"); +@@clientName(Microsoft.AVS, "AVS", "python"); + +@operationGroup +@armResourceOperations +interface WorkloadNetworksClient { + list is Microsoft.AVS.WorkloadNetworks.list; + get is Microsoft.AVS.WorkloadNetworks.get; + + listDhcp is WorkloadNetworkDhcpConfigurations.list; + getDhcp is WorkloadNetworkDhcpConfigurations.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + @Azure.Core.useFinalStateVia("azure-async-operation") + createDhcp is WorkloadNetworkDhcpConfigurations.create; + updateDhcp is WorkloadNetworkDhcpConfigurations.update; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" + deleteDhcp is WorkloadNetworkDhcpConfigurations.delete; + + listDnsService is WorkloadNetworkDnsServices.list; + getDnsService is WorkloadNetworkDnsServices.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + @Azure.Core.useFinalStateVia("azure-async-operation") + createDnsService is WorkloadNetworkDnsServices.create; + updateDnsService is WorkloadNetworkDnsServices.update; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" + deleteDnsService is WorkloadNetworkDnsServices.delete; + + listDnsZones is WorkloadNetworkDnsZones.list; + getDnsZone is WorkloadNetworkDnsZones.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + @Azure.Core.useFinalStateVia("azure-async-operation") + createDnsZone is WorkloadNetworkDnsZones.create; + updateDnsZone is WorkloadNetworkDnsZones.update; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" + deleteDnsZone is WorkloadNetworkDnsZones.delete; + + listGateways is WorkloadNetworkGateways.list; + getGateway is WorkloadNetworkGateways.get; + + listPortMirroring is WorkloadNetworkPortMirroringProfiles.list; + getPortMirroring is WorkloadNetworkPortMirroringProfiles.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + @Azure.Core.useFinalStateVia("azure-async-operation") + createPortMirroring is WorkloadNetworkPortMirroringProfiles.create; + updatePortMirroring is WorkloadNetworkPortMirroringProfiles.update; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" + deletePortMirroring is WorkloadNetworkPortMirroringProfiles.delete; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." + listPublicIPs is WorkloadNetworkPublicIps.list; + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." + getPublicIP is WorkloadNetworkPublicIps.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." + @Azure.Core.useFinalStateVia("azure-async-operation") + createPublicIP is WorkloadNetworkPublicIps.create; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." + deletePublicIP is WorkloadNetworkPublicIps.delete; + + listSegments is WorkloadNetworkSegments.list; + getSegment is WorkloadNetworkSegments.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + @Azure.Core.useFinalStateVia("azure-async-operation") + createSegment is WorkloadNetworkSegments.create; + updateSegment is WorkloadNetworkSegments.update; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" + deleteSegment is WorkloadNetworkSegments.deleteSegment; + + listVirtualMachines is WorkloadNetworkVirtualMachines.list; + getVirtualMachine is WorkloadNetworkVirtualMachines.get; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." + listVMGroups is WorkloadNetworkVmGroups.list; + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." + getVMGroup is WorkloadNetworkVmGroups.get; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." + @Azure.Core.useFinalStateVia("azure-async-operation") + createVMGroup is WorkloadNetworkVmGroups.create; + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." + updateVMGroup is WorkloadNetworkVmGroups.update; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Can not change existing name." + deleteVMGroup is WorkloadNetworkVmGroups.delete; } + +// operation group per interface + +@operationGroup +interface Operations extends Microsoft.AVS.Operations {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface Locations extends Microsoft.AVS.Locations {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface PrivateClouds extends Microsoft.AVS.PrivateClouds {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface Clusters extends Microsoft.AVS.Clusters {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface Datastores extends Microsoft.AVS.Datastores {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface HcxEnterpriseSites extends Microsoft.AVS.HcxEnterpriseSites {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface Authorizations extends Microsoft.AVS.Authorizations {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface GlobalReachConnections extends Microsoft.AVS.GlobalReachConnections {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface CloudLinks extends Microsoft.AVS.CloudLinks {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface Addons extends Microsoft.AVS.Addons {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface VirtualMachines extends Microsoft.AVS.VirtualMachines {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface PlacementPolicies extends Microsoft.AVS.PlacementPolicies {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface ScriptPackages extends Microsoft.AVS.ScriptPackages {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface ScriptCmdlets extends Microsoft.AVS.ScriptCmdlets {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface ScriptExecutions extends Microsoft.AVS.ScriptExecutions {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface IscsiPaths extends Microsoft.AVS.IscsiPaths {} + +// model +@@clientName(Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity, + "PrivateCloudIdentity" +); +// name conflict with Azure.ResourceManager.CommonTypes.ResourceIdentityType +// @@clientName(Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType, +// "ResourceIdentityType" +// ); + +@@clientName(VmVmPlacementPolicyProperties, "VmPlacementPolicyProperties"); +@@clientName(WorkloadNetworkPublicIP, "WorkloadNetworkPublicIp", "java"); +@@clientName(WorkloadNetworkPublicIPProvisioningState, + "WorkloadNetworkPublicIpProvisioningState", + "java" +); + +// property +@@clientName(Circuit.expressRouteID, "expressRouteId", "java"); +@@clientName(Circuit.expressRoutePrivatePeeringID, + "expressRoutePrivatePeeringId", + "java" +); +@@clientName(WorkloadNetworkPublicIPProperties, + "WorkloadNetworkPublicIpProperties", + "java" +); +@@clientName(WorkloadNetworkPublicIPProperties.publicIPBlock, + "publicIpBlock", + "java" +); From 339860db78e2b27f167f150683be95c08c903058 Mon Sep 17 00:00:00 2001 From: Cameron Taggart Date: Tue, 6 May 2025 13:46:40 +0200 Subject: [PATCH 08/19] AzureVMwareSolutionAPI for javascript --- .../vmware/Microsoft.AVS.Management/client.tsp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/specification/vmware/Microsoft.AVS.Management/client.tsp b/specification/vmware/Microsoft.AVS.Management/client.tsp index bee5b1d49c83..e5368600bf80 100644 --- a/specification/vmware/Microsoft.AVS.Management/client.tsp +++ b/specification/vmware/Microsoft.AVS.Management/client.tsp @@ -11,7 +11,14 @@ using TypeSpec.Versioning; name: "AvsClient", service: Microsoft.AVS, }, - "java,csharp,javascript" + "csharp,java" +) +@client( + { + name: "AzureVMwareSolutionAPI", + service: Microsoft.AVS, + }, + "javascript" ) @client( { @@ -23,9 +30,6 @@ using TypeSpec.Versioning; @useDependency(Microsoft.AVS.Versions.v2024_09_01) namespace Customization; -@@clientName(Microsoft.AVS, "AzureVMwareSolutionAPI", "javascript"); -@@clientName(Microsoft.AVS, "AVS", "python"); - @operationGroup @armResourceOperations interface WorkloadNetworksClient { From 87f1f2bf5ca45ac2a9495fd572a689ebeede3981 Mon Sep 17 00:00:00 2001 From: Cameron Taggart Date: Tue, 6 May 2025 13:50:36 +0200 Subject: [PATCH 09/19] add new operationGroups --- .../vmware/Microsoft.AVS.Management/client.tsp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/specification/vmware/Microsoft.AVS.Management/client.tsp b/specification/vmware/Microsoft.AVS.Management/client.tsp index e5368600bf80..82079f1b798e 100644 --- a/specification/vmware/Microsoft.AVS.Management/client.tsp +++ b/specification/vmware/Microsoft.AVS.Management/client.tsp @@ -179,6 +179,18 @@ interface ScriptExecutions extends Microsoft.AVS.ScriptExecutions {} @operationGroup interface IscsiPaths extends Microsoft.AVS.IscsiPaths {} +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface Hosts extends Microsoft.AVS.Hosts {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface ProvisionedNetworks extends Microsoft.AVS.ProvisionedNetworks {} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface Skus extends Microsoft.AVS.Skus {} + // model @@clientName(Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity, "PrivateCloudIdentity" From 45016139b8274ca139cc03d4bcf9e910105cdfaf Mon Sep 17 00:00:00 2001 From: Cameron Taggart Date: Tue, 6 May 2025 15:53:08 +0200 Subject: [PATCH 10/19] WorkloadNetworks operatoinGroup --- specification/vmware/Microsoft.AVS.Management/client.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/vmware/Microsoft.AVS.Management/client.tsp b/specification/vmware/Microsoft.AVS.Management/client.tsp index 82079f1b798e..b5c9b0205054 100644 --- a/specification/vmware/Microsoft.AVS.Management/client.tsp +++ b/specification/vmware/Microsoft.AVS.Management/client.tsp @@ -32,7 +32,7 @@ namespace Customization; @operationGroup @armResourceOperations -interface WorkloadNetworksClient { +interface WorkloadNetworks { list is Microsoft.AVS.WorkloadNetworks.list; get is Microsoft.AVS.WorkloadNetworks.get; From 93a0701431d53b6f374c2068d4c489d20f43e7b4 Mon Sep 17 00:00:00 2001 From: ZiWei Chen <98569699+kazrael2119@users.noreply.github.com> Date: Fri, 9 May 2025 10:14:55 +0800 Subject: [PATCH 11/19] Update specification/vmware/Microsoft.AVS.Management/tspconfig.yaml --- specification/vmware/Microsoft.AVS.Management/tspconfig.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml index 78ecb19d3f07..3176f45cd302 100644 --- a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml +++ b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml @@ -50,7 +50,6 @@ options: generate-sample: true "@azure-tools/typespec-ts": - is-modular-library: true experimental-extensible-enums: true package-dir: "arm-avs" flavor: "azure" From 2e46885e431f1fb90ce6ad4832f7058e4f173079 Mon Sep 17 00:00:00 2001 From: ZiWei Chen <98569699+kazrael2119@users.noreply.github.com> Date: Fri, 9 May 2025 11:38:49 +0800 Subject: [PATCH 12/19] Update specification/vmware/Microsoft.AVS.Management/tspconfig.yaml --- specification/vmware/Microsoft.AVS.Management/tspconfig.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml index 3176f45cd302..09c653fdc64c 100644 --- a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml +++ b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml @@ -50,6 +50,8 @@ options: generate-sample: true "@azure-tools/typespec-ts": + typespec-title-map: + AzureVMwareSolutionAPIClient: AzureVMwareSolutionAPI experimental-extensible-enums: true package-dir: "arm-avs" flavor: "azure" From a084f5f9daca71945f5474c2ce1d41f9e4f2425b Mon Sep 17 00:00:00 2001 From: ZiWei Chen <98569699+kazrael2119@users.noreply.github.com> Date: Fri, 9 May 2025 11:39:19 +0800 Subject: [PATCH 13/19] Update specification/vmware/Microsoft.AVS.Management/tspconfig.yaml --- specification/vmware/Microsoft.AVS.Management/tspconfig.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml index 09c653fdc64c..3b567dee93cc 100644 --- a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml +++ b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml @@ -50,7 +50,7 @@ options: generate-sample: true "@azure-tools/typespec-ts": - typespec-title-map: + typespec-title-map: AzureVMwareSolutionAPIClient: AzureVMwareSolutionAPI experimental-extensible-enums: true package-dir: "arm-avs" From 8c669f8e3a380ac9f02fddd035e578b7a85cf6d9 Mon Sep 17 00:00:00 2001 From: Chenjie Shi Date: Mon, 12 May 2025 10:47:13 +0800 Subject: [PATCH 14/19] Update client.tsp --- specification/vmware/Microsoft.AVS.Management/client.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/vmware/Microsoft.AVS.Management/client.tsp b/specification/vmware/Microsoft.AVS.Management/client.tsp index b5c9b0205054..3adfe60eb587 100644 --- a/specification/vmware/Microsoft.AVS.Management/client.tsp +++ b/specification/vmware/Microsoft.AVS.Management/client.tsp @@ -11,7 +11,7 @@ using TypeSpec.Versioning; name: "AvsClient", service: Microsoft.AVS, }, - "csharp,java" + "csharp,java,go" ) @client( { From 80e786dddbddc63ce5679276e8fdb1843d8e18ed Mon Sep 17 00:00:00 2001 From: Weidong Xu Date: Wed, 28 May 2025 13:39:31 +0800 Subject: [PATCH 15/19] Update tspconfig.yaml --- specification/vmware/Microsoft.AVS.Management/tspconfig.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml index 3b567dee93cc..a8ec58ae580e 100644 --- a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml +++ b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml @@ -39,7 +39,7 @@ options: "@azure-tools/typespec-java": package-dir: "azure-resourcemanager-avs" namespace: "com.azure.resourcemanager.avs" - service-name: "avs" + service-name: "Avs" flavor: azure "@azure-tools/typespec-python": From cf43029f86f40af4fa89f69b84bbbae95dda95b2 Mon Sep 17 00:00:00 2001 From: Weidong Xu Date: Wed, 28 May 2025 13:41:50 +0800 Subject: [PATCH 16/19] Update tspconfig.yaml --- specification/vmware/Microsoft.AVS.Management/tspconfig.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml index a8ec58ae580e..5a85a858fe2b 100644 --- a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml +++ b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml @@ -43,7 +43,8 @@ options: flavor: azure "@azure-tools/typespec-python": - package-dir: "sdk/compute" + service-dir: "sdk/compute" + package-dir: "azure-mgmt-avs" namespace: "azure.mgmt.avs" flavor: "azure" generate-test: true From 6bd9f58d68ba31a95ca647d2be0695b9e3482d3d Mon Sep 17 00:00:00 2001 From: tadelesh Date: Thu, 29 May 2025 11:47:28 +0800 Subject: [PATCH 17/19] update --- .../Microsoft.AVS.Management/client.tsp | 33 +++++++++++++------ .../placementPolicies.tsp | 10 +++++- 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/specification/vmware/Microsoft.AVS.Management/client.tsp b/specification/vmware/Microsoft.AVS.Management/client.tsp index 3adfe60eb587..ac53523c9295 100644 --- a/specification/vmware/Microsoft.AVS.Management/client.tsp +++ b/specification/vmware/Microsoft.AVS.Management/client.tsp @@ -31,7 +31,6 @@ using TypeSpec.Versioning; namespace Customization; @operationGroup -@armResourceOperations interface WorkloadNetworks { list is Microsoft.AVS.WorkloadNetworks.list; get is Microsoft.AVS.WorkloadNetworks.get; @@ -45,7 +44,7 @@ interface WorkloadNetworks { #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" deleteDhcp is WorkloadNetworkDhcpConfigurations.delete; - listDnsService is WorkloadNetworkDnsServices.list; + listDnsServices is WorkloadNetworkDnsServices.list; getDnsService is WorkloadNetworkDnsServices.get; #suppress "@azure-tools/typespec-azure-core/invalid-final-state" @Azure.Core.useFinalStateVia("azure-async-operation") @@ -91,8 +90,8 @@ interface WorkloadNetworks { getSegment is WorkloadNetworkSegments.get; #suppress "@azure-tools/typespec-azure-core/invalid-final-state" @Azure.Core.useFinalStateVia("azure-async-operation") - createSegment is WorkloadNetworkSegments.create; - updateSegment is WorkloadNetworkSegments.update; + createSegments is WorkloadNetworkSegments.create; + updateSegments is WorkloadNetworkSegments.update; #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" deleteSegment is WorkloadNetworkSegments.deleteSegment; @@ -191,22 +190,34 @@ interface ProvisionedNetworks extends Microsoft.AVS.ProvisionedNetworks {} @operationGroup interface Skus extends Microsoft.AVS.Skus {} +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" +@operationGroup +interface PureStoragePolicies extends Microsoft.AVS.PureStoragePolicies {} + // model +@@clientName(VmVmPlacementPolicyProperties, "VmPlacementPolicyProperties"); + @@clientName(Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity, - "PrivateCloudIdentity" + "PrivateCloudIdentity", + "java,go" +); +@@clientName(Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType, + "ResourceIdentityType", + "java,go" +); +@@clientName(Azure.ResourceManager.CommonTypes.ResourceIdentityType, + "SystemAssignedResourceIdentityType", + "java,go" ); -// name conflict with Azure.ResourceManager.CommonTypes.ResourceIdentityType -// @@clientName(Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType, -// "ResourceIdentityType" -// ); -@@clientName(VmVmPlacementPolicyProperties, "VmPlacementPolicyProperties"); @@clientName(WorkloadNetworkPublicIP, "WorkloadNetworkPublicIp", "java"); @@clientName(WorkloadNetworkPublicIPProvisioningState, "WorkloadNetworkPublicIpProvisioningState", "java" ); +@@clientName(Azure.ResourceManager.Foundations.Sku, "SKU", "go"); + // property @@clientName(Circuit.expressRouteID, "expressRouteId", "java"); @@clientName(Circuit.expressRoutePrivatePeeringID, @@ -221,3 +232,5 @@ interface Skus extends Microsoft.AVS.Skus {} "publicIpBlock", "java" ); + +@@alternateType(ScriptExecutionProperties.namedOutputs, Record, "java,go"); diff --git a/specification/vmware/Microsoft.AVS.Management/placementPolicies.tsp b/specification/vmware/Microsoft.AVS.Management/placementPolicies.tsp index 64fda31f466e..3782168cb468 100644 --- a/specification/vmware/Microsoft.AVS.Management/placementPolicies.tsp +++ b/specification/vmware/Microsoft.AVS.Management/placementPolicies.tsp @@ -31,7 +31,15 @@ interface PlacementPolicies { update is ArmCustomPatchAsync< PlacementPolicy, PlacementPolicyUpdate, - Response = ArmResponse | ArmAcceptedLroResponseWithResponseBody + Response = ArmResponse | ArmAcceptedLroResponseWithResponseBody< + PlacementPolicy, + LroHeaders = ArmLroLocationHeader< + Azure.Core.StatusMonitorPollingOptions, + PlacementPolicy, + string + > & + Azure.Core.Foundations.RetryAfterHeader + > >; #suppress "deprecated" From b9dd14b9326e5cd638de72a104910dbaada031a3 Mon Sep 17 00:00:00 2001 From: tadelesh Date: Thu, 29 May 2025 11:51:11 +0800 Subject: [PATCH 18/19] add suppression --- specification/vmware/Microsoft.AVS.Management/client.tsp | 1 + 1 file changed, 1 insertion(+) diff --git a/specification/vmware/Microsoft.AVS.Management/client.tsp b/specification/vmware/Microsoft.AVS.Management/client.tsp index ac53523c9295..cd923d70bb01 100644 --- a/specification/vmware/Microsoft.AVS.Management/client.tsp +++ b/specification/vmware/Microsoft.AVS.Management/client.tsp @@ -30,6 +30,7 @@ using TypeSpec.Versioning; @useDependency(Microsoft.AVS.Versions.v2024_09_01) namespace Customization; +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "operationGroup" @operationGroup interface WorkloadNetworks { list is Microsoft.AVS.WorkloadNetworks.list; From 70bff4eef761ea04c3e971c838861a25ba16751e Mon Sep 17 00:00:00 2001 From: tadelesh Date: Thu, 29 May 2025 12:56:45 +0800 Subject: [PATCH 19/19] fix last breaking for go --- specification/vmware/Microsoft.AVS.Management/client.tsp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/specification/vmware/Microsoft.AVS.Management/client.tsp b/specification/vmware/Microsoft.AVS.Management/client.tsp index cd923d70bb01..36e47ff371c2 100644 --- a/specification/vmware/Microsoft.AVS.Management/client.tsp +++ b/specification/vmware/Microsoft.AVS.Management/client.tsp @@ -217,8 +217,6 @@ interface PureStoragePolicies extends Microsoft.AVS.PureStoragePolicies {} "java" ); -@@clientName(Azure.ResourceManager.Foundations.Sku, "SKU", "go"); - // property @@clientName(Circuit.expressRouteID, "expressRouteId", "java"); @@clientName(Circuit.expressRoutePrivatePeeringID, @@ -234,4 +232,9 @@ interface PureStoragePolicies extends Microsoft.AVS.PureStoragePolicies {} "java" ); -@@alternateType(ScriptExecutionProperties.namedOutputs, Record, "java,go"); +@@clientName(Locations.checkTrialAvailability::parameters.sku, "SKU", "go"); + +@@alternateType(ScriptExecutionProperties.namedOutputs, + Record, + "java,go" +);