---
title: February 2023
---

# Release Notes February 2023 (2023-02-07)

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

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

## New Features

### typespec-autorest

- Added reference docs for `typespec-autorest` emitter to the website

### typespec-azure-core

- Allow customization of error types in the second parameter to the `Azure.Core.ResourceOperations` interface.
- Added documentation to the website

### typespec-client-generator-core

- Add abstractions for client and json naming `getClientName` and `getJsonName`
- Add `@include` and `exclude` decorators to control type emission
- Use `DPGContext` instead of `Program`
- Add usage and reference documentation to the website

## Breaking Changes

### typespec-autorest breaking changes

- Removed deprecated `@pageable` decorator, use `Azure.Core.Page<T>` instead
- Removed deprecated `@asyncOperationOptions` decorator. Use `@extension("x-ms-long-running-operation-options", {options})` directly instead

### typespec-azure-core breaking changes

#### Client sidecar types and decortors move to `typespec-client-generator-core` library

- Removed `@client`, `@clientDefinition` and `@returnsSubclient` decorators. Use `@client` from the `typespec-client-generator-core` library instead.
- Removed `getClientItems`, `getClientDefinition`, `getClientDefinitions`, `getReturnedSubclient`, `gatherOperations` and `getClientOperations` functions. Use the `getClient` operation from `typespec-client-generator-core` instead
- Removed `ClientDefinition` interface.
- Removed `Subclient` operation template.

### typespec-azure-resource-maneger breaking changes

- Removed deprecated `@armNamespace` decorator. Use `@armProviderNamespace` instead.
- Removed deprecated `TenantResourceList` model. Use `ResourceListByParent` or `ResourceListAtScope` instead.
- Removed deprecated `ResourceCommonParameters` model. Use `BaseParameters<TResource>` instead.
- Removed `ExtensionResourceCommonParameters` model. Use `ExtensionBaseParameters` or `Baseparameters<TResource>` instead.
- Removed `CommonTenantScope` model. Use `TenantBaseParameters` or `BaseParameters<TResource>` instead.

### typespec-client-generator-core breaking changes

- Removed `@convenienceAPI` decorator. Use `@convenientAPI` and `@protocolAPI` instead.
- Removed `getConvenienceAPIName` function. Use `shouldGenerateProtocol` and `shouldGenerateConvenient` functions instead.

## Deprecations

### typespec-azure-resource-manager deprecations

#### `Azure.ResourceManager` ResourceOperations interface will be changed to TrackedResourceOperations

The standard interface template for resource operations was called `ResourceOperations<T, TProperties>`. This has changed to
`TrackedResourceOperations<T, TProperties>` to avoid name clashes with similar resource operations interfaces in `@typespec/rest` and `@azure-tools/typespec-azure-core`.

##### Migrating to the new model

Change references to `ResourceOperations<T, TProperties>` to `TrackedResourceOperations<T, TProperties>`:

```typespec
interface Widgets extends ResourceOperations<Widget, WidgetProperties> {}
```

should be changed to:

```typespec
interface Widgets extends TrackedResourceOperations<Widget, WidgetProperties> {}
```
