diff --git a/specification/vmware/Microsoft.AVS.Management/client.tsp b/specification/vmware/Microsoft.AVS.Management/client.tsp index 7271b07252f7..36e47ff371c2 100644 --- a/specification/vmware/Microsoft.AVS.Management/client.tsp +++ b/specification/vmware/Microsoft.AVS.Management/client.tsp @@ -2,6 +2,239 @@ import "./main.tsp"; import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; +using Azure.ResourceManager; +using Microsoft.AVS; +using TypeSpec.Versioning; -@@clientName(Microsoft.AVS, "AzureVMwareSolutionAPI", "javascript"); -@@clientName(Microsoft.AVS, "AVS", "python"); +@client( + { + name: "AvsClient", + service: Microsoft.AVS, + }, + "csharp,java,go" +) +@client( + { + name: "AzureVMwareSolutionAPI", + service: Microsoft.AVS, + }, + "javascript" +) +@client( + { + name: "AVSClient", + service: Microsoft.AVS, + }, + "python" +) +@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; + 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; + + listDnsServices 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") + createSegments is WorkloadNetworkSegments.create; + updateSegments 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 {} + +#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 {} + +#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", + "java,go" +); +@@clientName(Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType, + "ResourceIdentityType", + "java,go" +); +@@clientName(Azure.ResourceManager.CommonTypes.ResourceIdentityType, + "SystemAssignedResourceIdentityType", + "java,go" +); + +@@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" +); + +@@clientName(Locations.checkTrialAvailability::parameters.sku, "SKU", "go"); + +@@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" diff --git a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml index a3b366fcce72..5a85a858fe2b 100644 --- a/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml +++ b/specification/vmware/Microsoft.AVS.Management/tspconfig.yaml @@ -18,40 +18,43 @@ 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": + service-dir: "sdk/compute" + package-dir: "azure-mgmt-avs" + namespace: "azure.mgmt.avs" + flavor: "azure" + generate-test: true + generate-sample: true - # "@azure-tools/typespec-ts": - # experimental-extensible-enums: true - # package-dir: "arm-avs" - # flavor: azure - # package-details: - # name: "@azure/arm-avs" + "@azure-tools/typespec-ts": + typespec-title-map: + AzureVMwareSolutionAPIClient: AzureVMwareSolutionAPI + experimental-extensible-enums: true + package-dir: "arm-avs" + flavor: "azure" + package-details: + name: "@azure/arm-avs" 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, diff --git a/specification/vmware/resource-manager/readme.md b/specification/vmware/resource-manager/readme.md index aa42bae2f54f..d0eac75b4ef3 100644 --- a/specification/vmware/resource-manager/readme.md +++ b/specification/vmware/resource-manager/readme.md @@ -115,9 +115,10 @@ This is not used by Autorest itself. ``` yaml $(swagger-to-sdk) swagger-to-sdk: - - 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 ```