Skip to content

Add azure_resourcemanager_vmware crate#4095

Draft
cataggar wants to merge 3 commits intoAzure:mainfrom
cataggar:azure_resourcemanager_vmware
Draft

Add azure_resourcemanager_vmware crate#4095
cataggar wants to merge 3 commits intoAzure:mainfrom
cataggar:azure_resourcemanager_vmware

Conversation

@cataggar
Copy link
Copy Markdown
Member

@cataggar cataggar commented Apr 4, 2026

Description

Generate the initial azure_resourcemanager_vmware crate from the Microsoft.AVS TypeSpec specification. This crate provides Rust client bindings for managing Azure VMware Solution resources.

What's included

  • Generated client code from the Microsoft.AVS TypeSpec (commit 519c29a of azure-rest-api-specs)
  • AVSClient - primary entry point with sub-clients for:
    • Private clouds, clusters, hosts, datastores
    • Workload networks (DNS, DHCP, segments, gateways, etc.)
    • Addons, authorizations, cloud links, licenses
    • Script packages, cmdlets, and executions
    • Placement policies, provisioned networks, and more
  • Workspace registration in root Cargo.toml
  • CI pipeline configuration (sdk/avs/ci.yml)
  • README.md, CHANGELOG.md, and tsp-location.yaml
  • Example: list_private_clouds listing all AVS private clouds in a subscription

Validation

  • cargo build -p azure_resourcemanager_vmware
  • cargo clippy -p azure_resourcemanager_vmware ✅ (only dead_code warnings in generated code)
  • cargo fmt -p azure_resourcemanager_vmware
  • Tested live against an Azure subscription - successfully listed 33 private clouds ✅

Known issues

  • The typespec-rust emitter generates user_impersonation as the auth scope instead of https://management.azure.com/.default for ARM crates. A manual fix is included in this PR; the emitter should be updated upstream.
  • The VMware tspconfig.yaml in azure-rest-api-specs does not yet include Rust emitter configuration. The emitter options were provided via --emitter-options during generation. A follow-up PR to azure-rest-api-specs will be needed.

Fixes #2954

cataggar added 3 commits April 4, 2026 00:10
Generate the initial azure_resourcemanager_vmware crate from the
Microsoft.AVS TypeSpec specification (2024-09-01 API version).
The crate provides Rust client bindings for managing Azure VMware
Solution resources including private clouds, clusters, datastores,
and workload networks.

Fixes Azure#2954
Add an example that lists all Azure VMware Solution private clouds
in a subscription using the AVSClient and DeveloperToolsCredential.
Also adds futures and tokio as dev-dependencies for the example.
The generated code used 'user_impersonation' as the auth scope which
resolves to Microsoft Graph instead of Azure Management. Changed to
'https://management.azure.com/.default' to correctly authenticate
against the ARM API. This is a workaround for a typespec-rust emitter
bug that should be fixed upstream.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TypeSpec generated replacement for azure_resourcemanager_vmware

1 participant