Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
237 changes: 235 additions & 2 deletions specification/vmware/Microsoft.AVS.Management/client.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -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<unknown>,
"java,go"
);
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,15 @@ interface PlacementPolicies {
update is ArmCustomPatchAsync<
PlacementPolicy,
PlacementPolicyUpdate,
Response = ArmResponse<PlacementPolicy> | ArmAcceptedLroResponseWithResponseBody<PlacementPolicy>
Response = ArmResponse<PlacementPolicy> | ArmAcceptedLroResponseWithResponseBody<
PlacementPolicy,
LroHeaders = ArmLroLocationHeader<
Azure.Core.StatusMonitorPollingOptions<ArmOperationStatus>,
PlacementPolicy,
string
> &
Azure.Core.Foundations.RetryAfterHeader
>
>;

#suppress "deprecated"
Expand Down
69 changes: 36 additions & 33 deletions specification/vmware/Microsoft.AVS.Management/tspconfig.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Comment thread
kazrael2119 marked this conversation as resolved.
package-dir: "arm-avs"
flavor: "azure"
package-details:
name: "@azure/arm-avs"
Original file line number Diff line number Diff line change
Expand Up @@ -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<WorkloadNetworkDhcp>,
...DhcpIdParameter,
Expand Down
7 changes: 4 additions & 3 deletions specification/vmware/resource-manager/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
```
Expand Down