Skip to content

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.

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.

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: PascalCase

TCGC also adds rules for GET SDK method names and ARM PUT methods, while exposing service-level HTTP authentication requirements on SDK clients.

  • #5176 Honor inherited Azure Core API-version overrides in emitted OpenAPI documents and warn when a document has inconsistent overrides.
  • #5465 Add an examples-format option that lets the emitter read the unified examples.yaml format and materialize the legacy x-ms-examples files for the emitted API version. "auto" (default) uses examples.yaml when 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 in examples.yaml, so the rollout keeps the specs-repo diff minimal without changing downstream consumers.
  • #5602 Configure casing-style per declaration category, including opt-in snake_case 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: PascalCase
  • #5176 Add the legacy @Azure.Core.Legacy.overrideApiVersion decorator 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 version option to @featureFileOptions for overriding the generated client API version.
  • #5361 Add the use-model-request-body ARM lint rule, an idiomatic TypeSpec migration of the Swagger ParametersSchemaAsTypeObject validator 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-name rule 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-put linter rule to require a create prefix on ARM PUT SDK method names, honoring unscoped @clientName overrides.
  • #5513 Customize the existing alternate-type scenarios for C# by mapping Geometry to Azure.Core.GeoJson.GeoPoint from Azure.Core 1.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.overrideApiVersion supplies the default API-version query value for a child client.
  • #5517 Update the ARM multi-service and multi-service shared-model scenarios to use modern ARM common types so resource IDs project as armResourceIdentifier.
  • #5471 Add Spector coverage for client response replacement.