0.73.0
0.73.0
Section titled “0.73.0”This release adds support for unified examples.yaml files in the AutoRest emitter, introduces inherited API-version overrides across Azure Core and client generation, and expands configurable naming and SDK design linting.
Highlights
Section titled “Highlights”Unified examples for AutoRest
Section titled “Unified examples for AutoRest”The AutoRest emitter can now read the unified examples.yaml format and materialize the legacy x-ms-examples files expected by downstream tools. The new examples-format option defaults to "auto", using examples.yaml when present and otherwise preserving the existing per-version JSON workflow.
Materialized examples retain Azure naming conventions and preserve original file names and keys when available, minimizing specs-repository diffs without changing downstream consumers.
Inherited API-version overrides
Section titled “Inherited API-version overrides”The new legacy @Azure.Core.Legacy.overrideApiVersion decorator overrides inherited API-version wire defaults on namespaces and interfaces.
@Azure.Core.Legacy.overrideApiVersion("2021-11-01")interface Widgets { get(): void;}AutoRest honors these overrides in emitted OpenAPI documents, TCGC applies them to operation API-version parameter defaults, and @featureFileOptions can override the generated client API version.
Configurable casing and SDK method guidance
Section titled “Configurable casing and SDK method guidance”The casing-style rule can now be configured independently for declaration categories, including opt-in snake_case model properties, operation parameters, union variants, and enum members. Existing Azure defaults remain unchanged.
linter: enable: "@azure-tools/typespec-azure-core/casing-style": modelProperty: snake_case union: PascalCase unionVariant: snake_case enum: PascalCase enumMember: snake_case scalar: PascalCaseTCGC also adds rules for GET SDK method names and ARM PUT methods, while exposing service-level HTTP authentication requirements on SDK clients.
Features
Section titled “Features”@azure-tools/typespec-autorest
Section titled “@azure-tools/typespec-autorest”- #5176 Honor inherited Azure Core API-version overrides in emitted OpenAPI documents and warn when a document has inconsistent overrides.
- #5465 Add an
examples-formatoption that lets the emitter read the unifiedexamples.yamlformat and materialize the legacyx-ms-examplesfiles for the emitted API version."auto"(default) usesexamples.yamlwhen present and otherwise loads the legacy per-version JSON files. Materialized files follow the Azure naming convention (<OperationId>.json, keyed by<OperationId>) and honor the original file name and key when preserved inexamples.yaml, so the rollout keeps the specs-repo diff minimal without changing downstream consumers.
@azure-tools/typespec-azure-core
Section titled “@azure-tools/typespec-azure-core”-
#5602 Configure
casing-styleper declaration category, including opt-insnake_caseproperties, operation parameters, union variants, and enum members. Existing Azure defaults remain unchanged.linter:enable:"@azure-tools/typespec-azure-core/casing-style":modelProperty: snake_caseunion: PascalCaseunionVariant: snake_caseenum: PascalCaseenumMember: snake_casescalar: PascalCase -
#5176 Add the legacy
@Azure.Core.Legacy.overrideApiVersiondecorator for overriding inherited API-version wire defaults on namespaces and interfaces.@Azure.Core.Legacy.overrideApiVersion("2021-11-01")interface Widgets {get(): void;}
@azure-tools/typespec-azure-resource-manager
Section titled “@azure-tools/typespec-azure-resource-manager”- #5176 Add a
versionoption to@featureFileOptionsfor overriding the generated client API version. - #5361 Add the
use-model-request-bodyARM lint rule, an idiomatic TypeSpec migration of the SwaggerParametersSchemaAsTypeObjectvalidator rule.
@azure-tools/typespec-client-generator-core
Section titled “@azure-tools/typespec-client-generator-core”- #5176 Override operation API-version parameter defaults from
Azure.Core.Legacy.overrideApiVersion. - #5364 Add the
get-operation-namerule for GET SDK method names. - #5520 Expose service-level HTTP authentication requirements on SDK clients while preserving the existing credential parameter projection.
- #5457 Add the
use-create-for-putlinter rule to require acreateprefix on ARM PUT SDK method names, honoring unscoped@clientNameoverrides.
@azure-tools/azure-http-specs
Section titled “@azure-tools/azure-http-specs”- #5513 Customize the existing alternate-type scenarios for C# by mapping
GeometrytoAzure.Core.GeoJson.GeoPointfromAzure.Core1.61.0 or later instead of the invalid Feature mapping. Preserve all existing scenarios and payloads. - #5176 Add an Azure HTTP scenario verifying that
@Azure.Core.Legacy.overrideApiVersionsupplies the default API-version query value for a child client.