---
title: March 2024
---

# Release Notes March 2024 (2024-03-05)

See TypeSpec Core [release notes](https://typespec.io/docs/release-notes/release-2024-03-05)

:::caution
This release contains breaking changes in typespec core.
:::

## Breaking changes

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

- [#295](https://github.com/Azure/typespec-azure/pull/295) [API] Split datetime type into utcDateTime and offsetDateTime to remain in sync with tsp

## Features

### `@azure-tools/typespec-autorest`

- [#337](https://github.com/Azure/typespec-azure/pull/337) Add support for all properties of openapi `info` object on the `@info` decorator
- [#277](https://github.com/Azure/typespec-azure/pull/277) Support `@flattenProperty` decorator.

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

- [#341](https://github.com/Azure/typespec-azure/pull/341) Add new `azureLocation` scalar
- [#258](https://github.com/Azure/typespec-azure/pull/258) Implement code fixes for `no-enum` linter rule

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

- [#304](https://github.com/Azure/typespec-azure/pull/304) Add `arm-no-record` rule.
- [#283](https://github.com/Azure/typespec-azure/pull/283) Added `ArmResourceHead` operation template
- [#298](https://github.com/Azure/typespec-azure/pull/298) ARM: add `arm-delete-response-codes` rule.
- [#317](https://github.com/Azure/typespec-azure/pull/317) Add ruleset `canonical-versioning` to Azure Resource Manager library.

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

- [#341](https://github.com/Azure/typespec-azure/pull/341) add support for azureLocation scalar in azure core
- [#242](https://github.com/Azure/typespec-azure/pull/242) add flattened property onto SdkBodyModelPropertyType
- [#315](https://github.com/Azure/typespec-azure/pull/315) add validation on import of tcgc and remove duplicate validation warnings
- [#350](https://github.com/Azure/typespec-azure/pull/350) add helper function getCrossLanguagePackageId. getCrossLanguagePackageId returns a package id that is consistent across languages, allowing emitters to identify that they are generating from the same service tsp
- [#306](https://github.com/Azure/typespec-azure/pull/306) add getClientTypeWithDiagnostics and getAllModelsWithDiagnostics to get values back with diagnostics

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

- [#287](https://github.com/Azure/typespec-azure/pull/287) adding new decorator called `@promotion` and adding validation rule for `@about.LearnMoreDocs`

## Bug Fixes

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

- [#231](https://github.com/Azure/typespec-azure/pull/231) Azure `Page` type `nextLink` properties are now marked as `readonly`

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

- [#323](https://github.com/Azure/typespec-azure/pull/323) Adding `@visibility("read")` & optional linting rules linting rules for ARM `provisioningState`
- [#366](https://github.com/Azure/typespec-azure/pull/366) Fix for issue #254 cannot customize response in ARM PUT templates

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

- [#305](https://github.com/Azure/typespec-azure/pull/305) getAllModels will return models only used as final envelope results in non-ARM definitions
- [#335](https://github.com/Azure/typespec-azure/pull/335) unions with only null and another type will not be converted to union
- [#362](https://github.com/Azure/typespec-azure/pull/362) enhance logic for value type of enum and union as enum
- [#314](https://github.com/Azure/typespec-azure/pull/314) support @clientName for extensible enum variant
- [#328](https://github.com/Azure/typespec-azure/pull/328) add support for anonymous union as enum and fix union as enum variant discriminator typing problem
- [#301](https://github.com/Azure/typespec-azure/pull/301) Add usage calculation for additional properties with model type
- [#327](https://github.com/Azure/typespec-azure/pull/327) rollback some of the breaking changes for common model types method
- [#260](https://github.com/Azure/typespec-azure/pull/260) allow models to have a union variant as a discriminator
- [#286](https://github.com/Azure/typespec-azure/pull/286) don't throw for unknown format
- [#274](https://github.com/Azure/typespec-azure/pull/274) Update doc for `@access` and `@usage`
