---
title: December 2023
---

# Release Notes December 2023 (2023-12-06)

:::danger
This release contains **breaking changes**
:::

See TypeSpec Core [release notes](https://typespec.io/docs/release-notes/release-2023-12-06)

## New Features

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

- Add validation of formats emitted by the `@format` decorator - emit a warning and do not emit formats that are not understood by autorest.
- Support `EmbeddingVector` types from Azure.Core by emitting `x-ms-embedding-vector` extension.
- Add support for representing unions of literals as fixed and open enumerations, using `enum []` and `x-ms-enum`.
- Support string interpolation through new `StringTemplate` types.

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

- Add `no-enum` linting rule to discourage the use of enumerations in favor of unions, but do not add to the default ruleset.
- Add model template and supporting decorator to implement `EmbeddingVector` types.
- Add new helper `getUnionAsEnum` to try to convert a union of literals to a fixed or extensible enum.
- Add additional fields to `LroMetadata` to support long-running operations with no logical response (void):
  - `finalResult: Model | "void"`: The intended result of the logical operation on successful completion.
  - `finalEnvelopeResult: Model | "void"`: The Http response body returned in the last request in the logical operation on successful completion.
  - `finalResultPath: string`: The path to the final result in the final envelope result.

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

- Add support for `SubscriptionLifecycleNotification` endpoint in generated RP code.

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

- Generate names for anonymous models and unions
- Support `scope` parameter for `@client`, `@operationGroup`, `@convenientApi` and `@protocolApi` decorators.
- Support core `decimal` types.
- Support unbranded client and operation group detection

### `@azure-tools/typespec-providerhub-controller` New Features

- Add generated endpoints for SubscriptionLifecycleNotification extension for subscription-based resources.
- Generate versioning classes regardless the number of API versions defined in the spec.
- Add `CancellationToken` parameter to generated controller methods for resource operations.
- Allow enums as discriminator values for polymorphic classes.

### `@azure-tools/typespec-providerhub-templates` New Features

- Enable new features for `SubscriptionLifecycleNotification`, `CancellationToken`, and always generating versioning classes.
- Use Operation templates instead of interface templates to define resource operations.

## Bug Fixes

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

- Fix inconsistent `logicalPath` in `getLroMetadata` results (#3725).
- Fix incorrect `final-state-via` in `getLroMetadata` results for custom PUT operations (#3724).

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

- Fix corner cases for anonymous models.

## Breaking Changes

- There are breaking changes in the TypeSpec core libraries, see [the release notes](https://typespec.io/docs/release-notes/release-2023-12-06) for details.
