---
title: 0.44.0 July 2024
---

# Release Notes Version 0.44.0 - July 2024

See TypeSpec Core 0.58 [release notes](https://typespec.io/docs/release-notes/release-2024-07-16)

:::caution
This release contains breaking changes and deprecation
:::

## Breaking Changes

### @azure-tools/typespec-autorest

- [#1105](https://github.com/Azure/typespec-azure/pull/1105) `x-ms-client-flatten` extension on some of resource properties property is now configurable to be emitted by autorest emitter(`arm-resource-flattening` option). Default is false which will skip emission of that extension.
  To revert to previous behavior update your `tspconfig.yaml` with the following

  ```diff
  options:
    "@azure-tools/typespec-autorest":
      # ...other options
  +   arm-resource-flattening: true
  ```

### @azure-tools/typespec-azure-resource-manager

- [#1093](https://github.com/Azure/typespec-azure/pull/1093) Removing $armRenameListByOperation decorator so operation id is directly derived from operation name. Previously operation id is statically resolved and fixed :

- For top level resources, `[Resource]_ListByResourceGroup`
- For child resources, `[Resource]_ListBy[ParentResource]`

With this change, the operation name will form the second part of the operation id, just like other ARM operation templates.

```diff
-list is ArmResourceListByParent<Employee>;
+listByLocation is ArmResourceListByParent<Employee>;
```

You can modify the operation name to match existing spec to avoid breaking changes.

- [#1146](https://github.com/Azure/typespec-azure/pull/1146) Moved `@armRenameListByOperation` into `Azure.ResourceManager.Private` namespace. Adding back original listByParent doc resolution logic to keep swagger changes to minimal.
- [#1105](https://github.com/Azure/typespec-azure/pull/1105) `x-ms-client-flatten` extension on some of resource properties property is now configurable to be emitted by autorest emitter. Default is false which will skip emission of that extension.

### @azure-tools/typespec-client-generator-core

- [#1078](https://github.com/Azure/typespec-azure/pull/1078) remove `experimental_` prefix from `sdkPackage`. Now it's just called `sdkPackage`.

## Features

### @azure-tools/typespec-autorest

- [#1116](https://github.com/Azure/typespec-azure/pull/1116) Resolve Arm Common Definitions for enums and unions as well
- [#955](https://github.com/Azure/typespec-azure/pull/955) Use emit-lro--options emitter option to control emission of x-ms-long-running-operation-options
- [#955](https://github.com/Azure/typespec-azure/pull/955) Add support for displaying lro options in typespec-autorest based on lro metadata
- [#1123](https://github.com/Azure/typespec-azure/pull/1123) Removed direct reference to OpenAPI extension `x-ms-azure-resource` in ARM library and replaced with `@Azure.ResourceManager.Private.azureResourceBase` decorator. It is only used internally on base resource types. `autorest` emitter has been updated to check the decorator and still emit `x-ms-azure-resource` extension in swagger.
- [#1081](https://github.com/Azure/typespec-azure/pull/1166) Allow void in final result for Azure-AsyncOperation header

### @azure-tools/typespec-azure-resource-manager

- [#1116](https://github.com/Azure/typespec-azure/pull/1116) Link CommonTypes enums and unions to the swagger common types
- [#1161](https://github.com/Azure/typespec-azure/pull/1161) Added an optional template parameter on `TrackedResource`, `ProxyResource`, and `ExtensionResource` ARM templates that allows brownfield services to customize the optionality of the ARM resource `properties` field.
- [#1123](https://github.com/Azure/typespec-azure/pull/1123) Removed direct reference to OpenAPI extension `x-ms-azure-resource` in ARM library and replaced with `@Azure.ResourceManager.Private.azureResourceBase` decorator. It is only used internally on base resource types. `autorest` emitter has been updated to check the decorator and still emit `x-ms-azure-resource` extension in swagger.

### @azure-tools/typespec-client-generator-core

- [#1152](https://github.com/Azure/typespec-azure/pull/1152) add `.generateConvenient` and `.generateProtocol` for service methods. These booleans tell emitters whether to generate convenient and protocol versions for the method
- [#1129](https://github.com/Azure/typespec-azure/pull/1129) add `UsageFlags.Json`. Will be set if a model is used with a JSON content type
- [#1045](https://github.com/Azure/typespec-azure/pull/1045) filter api versions enum to only include GA versions if default value is GA

## Bug Fixes

### @azure-tools/typespec-autorest

- [#1081](https://github.com/Azure/typespec-azure/pull/1081) Fix patch models for common-types

### @azure-tools/typespec-azure-core

- [#927](https://github.com/Azure/typespec-azure/pull/927) Remove explicit `all` rulesets

### @azure-tools/typespec-azure-resource-manager

- [#1156](https://github.com/Azure/typespec-azure/pull/1156) Minor fix to make foundations and common-type more consistent.
- [#1102](https://github.com/Azure/typespec-azure/pull/1102) Fixing typo
- [#1139](https://github.com/Azure/typespec-azure/pull/1139) LocationResourceParameter should be azureLocation instead of string
- [#1111](https://github.com/Azure/typespec-azure/pull/1111) Fix the type discrepancy issue for property userAssignedIdentities in common types V5 ManagedServiceIdentity
- [#927](https://github.com/Azure/typespec-azure/pull/927) Remove explicit `all` rulesets
- [#1081](https://github.com/Azure/typespec-azure/pull/1081) Fix ArmResourcePatch templates and incorporate common-types updates
- [#1144](https://github.com/Azure/typespec-azure/pull/1144) Tweak regex to validate Arm keys

### @azure-tools/typespec-client-generator-core

- [#1142](https://github.com/Azure/typespec-azure/pull/1142) TCGC, Add description to `SdkHttpResponse`
- [#1102](https://github.com/Azure/typespec-azure/pull/1102) Fixing typo
- [#1157](https://github.com/Azure/typespec-azure/pull/1157) findContextPath need to handle nested operation group, also refine the logic for naming and composing cross language definition id
