Releases: Azure/typespec-azure
Releases · Azure/typespec-azure
@azure-tools/typespec-client-generator-core@0.68.2
Features
- #4480 Extend
isExactNameto additional SDK types whose names can be changed by@clientName:SdkClientType,SdkServiceMethodBase(and its derived method kinds), andSdkEnumValueType. Also fixedSdkClientType.nameto strip the internalexact()marker.
Bug Fixes
- #4477 Fix
reorderParameters,addParameter,removeParameter, andreplaceParameterso that decorators copied to cloned model properties and cloned operations are applied (by callingfinishTypeafter cloning). This fixes scenarios such as parameters with@typeChangedFromunder a@versionedservice. - #4487 Fix example value matching for
decimalanddecimal128typed properties. JSONnumbervalues in example files are now correctly recognized as matchingdecimal/decimal128typed properties. - #4484 Fix example values being dropped on subtypes added via
@hierarchyBuildingby propagating serialization options from the nearest ancestor to the newly added subtype
@azure-tools/typespec-client-generator-core@0.68.1
Bug Fixes
- #4440 Fix
@@usageand@@accessaugment decorators being silently dropped when targeting models from imported libraries (npm packages) whose namespaces are not user-defined. Explicitly-tagged models are now honored regardless of which namespace they live in.
@azure-tools/typespec-python@0.62.1
Bump dependencies
- #4418 Bump @typespec/http-client-python to 0.29.1
typespec-azure@0.68.0
@azure-tools/typespec-autorest
Bug Fixes
- #4397 Add an autorest emitter warning when multiple operations resolve to the same OpenAPI
operationId, and report the warning on each conflicting operation. - #4322 Fix
@armProviderNamespaceto inject the canonical absolute ARM scopehttps://management.azure.com/.defaultas the default OAuth2 scope instead of the bare relativeuser_impersonationvalue. For backwards compatibility with existing ARM Swagger, the@azure-tools/typespec-autorestemitter now rewrites this scope back touser_impersonationwhen emitting OpenAPI v2 for namespaces decorated with@armProviderNamespace. - #4357 Fix crash in autorest emitter when no
@serviceis declared but a spec references a model from a versioned namespace (e.g.CommonTypes.AzureEntityResource). - #4393 Emit intrinsic
@TypeSpec.example(...)on model properties in the autorest OpenAPI2 emitter so propertyexamplevalues are preserved in generated definitions.
@azure-tools/typespec-azure-core
Features
- #4144 Add
no-route-parameter-name-mismatchlinting rule that detects when two operation routes differ only by path parameter name.
Bug Fixes
- #4394 Make
@useFinalStateViavalidation decorator-order independent for PUT operations.
@azure-tools/typespec-azure-portal-core
No changes, version bump only.
@azure-tools/typespec-azure-resource-manager
Features
- #4185 Add
ArmListBySubscriptionScopeoperation template for listing resources at the subscription scope with a flat path, useful for child resources that need a subscription-level list operation without parent path segments. - #4347 Add new
version-progressionlinter rule that validates ARM service versions all use unique dates and are declared in strictly increasing chronological order. Two api-versions sharing the sameYYYY-MM-DDdate (for example,2026-04-28and2026-04-28-preview) are not allowed. - #4379 Add new linter rule
arm-no-path-casing-conflictsthat flags ARM operation paths which differ only by character casing. The rule is enabled in the@azure-tools/typespec-azure-rulesetsresource-manager ruleset.
Bug Fixes
- #4322 Fix
@armProviderNamespaceto inject the canonical absolute ARM scopehttps://management.azure.com/.defaultas the default OAuth2 scope instead of the bare relativeuser_impersonationvalue. For backwards compatibility with existing ARM Swagger, the@azure-tools/typespec-autorestemitter now rewrites this scope back touser_impersonationwhen emitting OpenAPI v2 for namespaces decorated with@armProviderNamespace. - #4369 Fix doc comment typos and errors in ARM foundations library.
- #4357 Fix
AzureEntityResourceemittingTrackedResourcereference in OpenAPI. It now correctly references theAzureEntityResourcedefinition in the ARM common-types schema.
@azure-tools/typespec-client-generator-core
Breaking Changes
- #4358 When an operation's response declares multiple content types (e.g.
Http.File<"image/png" | "image/jpeg">), the syntheticacceptparameter is now generated as a single string constant whose value joins all response content types with,(structured content types such as JSON/XML/text-plain are listed first), instead of an enum. This avoids modeling such operations as content negotiation. Use@sharedRouteto split an operation if real content negotiation is required.
Features
- #4378 Added
exact()function for use with@clientNameto preserve client names without language-specific casing transformations. When a name is marked withexact(), emitters should use it as-is. Also addedisExactNameboolean field to SDK type interfaces (SdkModelType,SdkEnumType,SdkUnionType,SdkModelPropertyTypeBase, etc.) so emitters can check whether to skip casing transformations. - #4332 Enhance
@Azure.ClientGenerator.Core.Legacy.hierarchyBuildingto support arbitrary inheritance replacement. The decorator no longer requires the target to be a property-superset of the new base; properties contributed by removed intermediate parents are lifted onto the target so the SDK model preserves its observable property set. - #4274 Add
serializationOptionstoSdkBodyParameterandSdkHttpResponse/SdkHttpErrorResponseso emitters can determine the serialization format for request/response bodies regardless of whether the body type is a model or a basic type. - #4339 Add
inconsistent-multiple-service-dependencywarning that is reported when services merged into a single client (viaautoMergeService) declare diverging@useDependencyversions for the same shared library (e.g., ARM common-types). Aligning the versions avoids generating duplicated/diverged models in the SDK.
Bug Fixes
- #4344 Fix wrong
methodParameterSegmentsfor op with@clientLocationand@override - #4365 Remove usage of node APIs for browser compatible ones
- #4236 Types that are only used within external alternate types are no longer included in sdkPackage models, enums, or unions.
- #4341 Fix wrong API version param judgement: a body model property whose name matches
apiVersion/api-versionis no longer incorrectly flagged asisApiVersionParamwith a service-derivedclientDefaultValue. Only operation parameters can be considered API version parameters. - #4391 Fix broken links to linter rule documentation pages from the
Linter usagereference page. - #4386 Fix regression introduced in PR #4341: a server URL template parameter (declared in
@server) namedapiVersion/api-versionwith a plainstringtype in a versioned service is now correctly recognized asisApiVersionParam. - #4343 Fix
@responseAsBoolsetting bodyType on HEAD operation HTTP responses
@azure-tools/typespec-azure-rulesets
Features
- #4347 Add new
version-progressionlinter rule that validates ARM service versions all use unique dates and are declared in strictly increasing chronological order. Two api-versions sharing the sameYYYY-MM-DDdate (for example,2026-04-28and2026-04-28-preview) are not allowed. - #4379 Add new linter rule
arm-no-path-casing-conflictsthat flags ARM operation paths which differ only by character casing. The rule is enabled in the@azure-tools/typespec-azure-rulesetsresource-manager ruleset. - #4144 Add
no-route-parameter-name-mismatchlinting rule that detects when two operation routes differ only by path parameter name.
@azure-tools/typespec-python@0.62.0
@azure-tools/typespec-azure-resource-manager@0.67.2
Bug Fixes
- Remove self import from common-types.tsp
@azure-tools/azure-http-specs@0.1.0-alpha.40
Features
- #4323 Add
@clientNamecsharp-scoped renames for the nested sub-clients ofIndividuallyParentClientin theclient-initialization/individually-parentspec. The original names (e.g.IndividuallyParentNestedWithParamAliasClient) combined with the deeply-nested test project path produced generated file paths exceeding the 260-character Windows path limit in downstream csharp emitters. - #4298 Add
@clientNameC#-scoped renames forOperationsandSubNamespacein the multiple-services spec to avoid name collisions in C# codegen. - #4221 Add
@clientNameJava-scoped renames forOperationsandSubNamespacein the multiple-services spec to avoid name collisions in Java codegen. - #4328 Add Python client namespace to response-as-bool spec
- #4336 Add test for etags with
Azure.Core.eTagdefinition and non-standard wire names - #4268 Add Spector specs for @responseAsBool and @clientDoc decorators
Bug Fixes
@azure-tools/typespec-client-generator-core@0.67.4
Bug Fixes
- #4345 Fix wrong encode for
bytesinHttpPartformultipart/form-data. The encode is now correctlybytesinstead ofbase64.
@azure-tools/typespec-client-generator-core@0.67.3
Bug Fixes
- #4302 Fix wrong
methodParameterSegmentsfor op with@clientLocationand@override
@azure-tools/typespec-azure-core@0.67.1
Bug Fixes
- #4277 Allow
@useFinalStateVia("original-uri")for long-running POST operations, even when there is no GET operation modeled at the POST url.