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

## 0.70.0

### Features

- [#4842](https://github.com/Azure/typespec-azure/pull/4842) Add `no-reserved-resource-property` linter rule that flags reserved property names (matched case-insensitively, e.g. `billingData`) present in an ARM resource's property bag. The reserved-name list and diagnostic reason are extensible.
- [#4664](https://github.com/Azure/typespec-azure/pull/4664) Add `@featureFile`, `@featureFiles`, and `@featureFileOptions` decorators in `Azure.ResourceManager` namespace as alternatives to the Legacy `@feature`, `@features`, and `@featureOptions` decorators. Add `arm-feature-file-usage-discourage` linting rule. Fix `arm-custom-resource-usage-discourage` rule to propagate suppressions from model templates to their instantiations.

### Bug Fixes

- [#4884](https://github.com/Azure/typespec-azure/pull/4884) Refine the experimental Agent base type conversation and response items: remove the redundant `conversationId` and `responseId` properties (inferred from the resource `name`), model the message author `role` as a `MessageRole` enum (`Developer`, `User`, `Assistant`, `Tool`), and extend `ConversationItem` and `ResponseItem` with a `type` discriminator (`message`, `function_call`, `function_call_output`, `compaction`) whose variant-specific fields are all optional.
- [#4855](https://github.com/Azure/typespec-azure/pull/4855) Align the experimental Agent base type with ARM naming and datatype guidelines: use PascalCase values for the `ResponseStatus` enum (for example `Completed`, `InProgress`), and use `utcDateTime` instead of `unixTimestamp32` for the `createdAt` timestamp properties (on `ConversationProperties` and `ResponseProperties`) to match other ARM datetime properties.
- [#4857](https://github.com/Azure/typespec-azure/pull/4857) Make `ArmTopParameter`, `ArmFilterParameter`, and `ArmSkipParameter` properties optional as query parameters should be.


## 0.69.2

### Bug Fixes

- [#4627](https://github.com/Azure/typespec-azure/pull/4627) Remove `@armCommonDefinition` decorators from `CustomerManagedKeyEncryption` and `Encryption` types so they are emitted inline rather than as common-types `$ref` entries in OpenAPI output.
  
  ```tsp
  // These types are now emitted inline in specs that reference them:
  model MyEncryptionConfig {
    customerManagedKeyEncryption?: Azure.ResourceManager.CommonTypes.CustomerManagedKeyEncryption;
  }
  ```


## 0.69.1

### Bug Fixes

- [#4621](https://github.com/Azure/typespec-azure/pull/4621) Adding Azure Resource Manager Base Types, including the Agent base type.
  
  Base types provide structured constraints for resources including required and optional
  properties in their RP-specific property bags. The `@azureBaseType` decorator attaches
  base type metadata to resource models for validation.
  
  Example of creating an Agent resource:
  
  ```typespec
  using Azure.ResourceManager;
  using Azure.ResourceManager.BaseTypes;
  using Azure.ResourceManager.BaseTypes.Agents;
  
  model MyDefinition is AgentDefinitionPlatform<true, true> {}
  
  model MyAgentProperties is AgentPropertiesPlatform<MyDefinition> {
    ...DefaultProvisioningStateProperty;
  }
  
  model MyAgent is Agent<MyAgentProperties> {
    ...ResourceNameParameter<MyAgent>;
  }
  
  model MyConversationProperties is ConversationProperties {
    ...DefaultProvisioningStateProperty;
  }
  
  model MyConversation is AgentConversation<MyConversationProperties, MyAgent> {
    ...ResourceNameParameter<MyConversation>;
  }
  
  model MyResponseProperties is ResponseProperties {
    ...DefaultProvisioningStateProperty;
  }
  
  model MyResponse is AgentResponse<MyResponseProperties, MyAgent> {
    ...ResourceNameParameter<MyResponse>;
  }
  ```


## 0.69.0

### Features

- [#4384](https://github.com/Azure/typespec-azure/pull/4384) Add new linting rule `no-override-props` that warns when a model redefines a property that is already defined in one of its base models. The 'name' property of an ARM resource and properties redefined as part of a model marked with `@discriminator` are not flagged by this rule.
- [#4530](https://github.com/Azure/typespec-azure/pull/4530) Add optional `Tag` template parameter to `Azure.ResourceManager.Legacy.Operations` to allow overriding the openapi tag value.

### Bug Fixes

- [#4433](https://github.com/Azure/typespec-azure/pull/4433) Fix doc comment typos in ARM library: list operations incorrectly said "patched", CreateOrReplace operations said "createOrUpdate", extension operations had `>` instead of `.`, and @doc tag had malformed string interpolation.


## 0.68.0

### Features

- [#4185](https://github.com/Azure/typespec-azure/pull/4185) Add `ArmListBySubscriptionScope` operation 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](https://github.com/Azure/typespec-azure/pull/4347) Add new `version-progression` linter rule that validates ARM service versions all use unique dates and are declared in strictly increasing chronological order. Two api-versions sharing the same `YYYY-MM-DD` date (for example, `2026-04-28` and `2026-04-28-preview`) are not allowed.
- [#4379](https://github.com/Azure/typespec-azure/pull/4379) Add new linter rule `arm-no-path-casing-conflicts` that flags ARM operation paths which differ only by character casing. The rule is enabled in the `@azure-tools/typespec-azure-rulesets` resource-manager ruleset.

### Bug Fixes

- [#4322](https://github.com/Azure/typespec-azure/pull/4322) Fix `@armProviderNamespace` to inject the canonical absolute ARM scope `https://management.azure.com/.default` as the default OAuth2 scope instead of the bare relative `user_impersonation` value. For backwards compatibility with existing ARM Swagger, the `@azure-tools/typespec-autorest` emitter now rewrites this scope back to `user_impersonation` when emitting OpenAPI v2 for namespaces decorated with `@armProviderNamespace`.
- [#4369](https://github.com/Azure/typespec-azure/pull/4369) Fix doc comment typos and errors in ARM foundations library.
- [#4357](https://github.com/Azure/typespec-azure/pull/4357) Fix `AzureEntityResource` emitting `TrackedResource` reference in OpenAPI. It now correctly references the `AzureEntityResource` definition in the ARM common-types schema.


## 0.67.1

### Bug Fixes

- [#4252](https://github.com/Azure/typespec-azure/pull/4252) Remove the type constraint on the `Properties` parameter in `Azure.ResourceManager.Legacy.GenericResource`, allowing `unknown` and `Record<unknown>` as property types.


## 0.67.0

### Deprecations

- [#4132](https://github.com/Azure/typespec-azure/pull/4132) Updated `@locationResource` documentation to mark it as deprecated and recommend using `@parentResource(ArmLocationResource<...>)` instead.

### Features

- [#4188](https://github.com/Azure/typespec-azure/pull/4188) Add GenericResource template in Azure.ResourceManager.Legacy with new "Generic" resource kind
- [#4004](https://github.com/Azure/typespec-azure/pull/4004) Add new templates to support operationStatus endpoints
- [#4184](https://github.com/Azure/typespec-azure/pull/4184) Support singleton resources in `resolveArmResources`

### Bug Fixes

- [#4005](https://github.com/Azure/typespec-azure/pull/4005) Fix `resolveArmResources` returning duplicate resources for versioned specs.
- [#4072](https://github.com/Azure/typespec-azure/pull/4072) Fix `resolveArmResources` incorrectly merging cross-scope `LegacyOperations` into a single resource. Operations at different scopes (e.g., subscription vs tenant) with the same model but no explicit resource name are now resolved as separate resources.
- [#4183](https://github.com/Azure/typespec-azure/pull/4183) Fix default resource name for extension resources using `Extension.ScopeParameter` scope. Previously the name was incorrectly prefixed with "ScopeParameter", now it uses just the extension resource name.


## 0.66.1

### Bug Fixes

- [#4131](https://github.com/Azure/typespec-azure/pull/4131) Add `CustomAzureProxyResource` template to `Azure.ResourceManager.Legacy` namespace for custom proxy resources that extend `Foundations.ProxyResource`.
- [#4116](https://github.com/Azure/typespec-azure/pull/4116) Allow `unknown` type for Request and Response parameters in `ArmProviderActionSync` and `ArmProviderActionAsync` templates
- [#4130](https://github.com/Azure/typespec-azure/pull/4130) Add settable provider to standard templates


## 0.66.0

### Bump dependencies

- [#3986](https://github.com/Azure/typespec-azure/pull/3986) Upgrade dependencies


## 0.65.0

### Features

- [#3907](https://github.com/Azure/typespec-azure/pull/3907) Add new template for Async Action and standard list query parameters
- [#3906](https://github.com/Azure/typespec-azure/pull/3906) #3818 Add overrides for built-in resource operations path name constraints


## 0.64.1

### Bug Fixes

- [#3830](https://github.com/Azure/typespec-azure/pull/3830) Fix #3829 Allow `@feature` to apply to Operations
- [#3787](https://github.com/Azure/typespec-azure/pull/3787) Fix arm provider namespace custom name not respected in multi service scenario
- [#3828](https://github.com/Azure/typespec-azure/pull/3828) Fix #3821 `@renamePathParameter` reorders parameters


## 0.64.0

### Features

- [#3622](https://github.com/Azure/typespec-azure/pull/3622) Add support for multiple output files in typespec-autorest
- [#3746](https://github.com/Azure/typespec-azure/pull/3746) #3693 Allow array and unknown result for async operations

### Bump dependencies

- [#3677](https://github.com/Azure/typespec-azure/pull/3677) Upgrade dependencies

### Bug Fixes

- [#3748](https://github.com/Azure/typespec-azure/pull/3748) Fix #3430 Allow using customAzureResource in operation templates
- [#3591](https://github.com/Azure/typespec-azure/pull/3591) Corrected spelling of 'for an operation' from 'for and operation'.
- [#3747](https://github.com/Azure/typespec-azure/pull/3747) Allow final-state-via: original-uri for PATCH operations
- [#3736](https://github.com/Azure/typespec-azure/pull/3736) Fix #3692 override parameter name and add actions for Nsp


## 0.63.0

### Breaking Changes

- [#3522](https://github.com/Azure/typespec-azure/pull/3522) - Remove Private decorator `@Azure.ResourceManager.Private.conditionalClientFlatten`
  
    ```diff lang=tsp
    @Azure.ResourceManager.Private.conditionalClientFlatten
    ```
  
    ```diff lang=tsp title=MyResource.tsp
    +@Azure.ClientGenerator.Core.Legacy.flattenProperty
    ```

### Features

- [#3572](https://github.com/Azure/typespec-azure/pull/3572) Remove single service restriction for ARM specs

### Bump dependencies

- [#3546](https://github.com/Azure/typespec-azure/pull/3546) Upgrade dependencies


## 0.62.1

### Features

- [#3544](https://github.com/Azure/typespec-azure/pull/3544) Add standard operations for NetworkSecurityPerimeter

### Bug Fixes

- [#3525](https://github.com/Azure/typespec-azure/pull/3525) Fix `missing-x-ms-identifiers` rule message pointing to legacy `@extension` decorator instead of `@identifiers`.
- [#3559](https://github.com/Azure/typespec-azure/pull/3559) Fix #3437 Provide consistent return values for parent and scope in resolveArmResources


## 0.62.0

### Deprecations

- [#3465](https://github.com/Azure/typespec-azure/pull/3465) Deprecate `arm-resource-flattening` option to reduce confusion with new flattening mechanisms.
  
    ```diff lang=yaml title=tspconfig.yaml
    options:
      @azure-tools/typespec-autoprest:
    -   arm-resource-flattening: true
    ```
  
    ```diff lang=tsp title=MyResource.tsp
    +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(MyResource.properties, "autorest");
    ```

### Features

- [#3411](https://github.com/Azure/typespec-azure/pull/3411) Add new `secret-prop` rule scanning for property looking like they might contain sensitive information but not marked with `@secret`
- [#3350](https://github.com/Azure/typespec-azure/pull/3350) Remove dependency on OpenAPI

### Bump dependencies

- [#3447](https://github.com/Azure/typespec-azure/pull/3447) Upgrade dependencies october 2025

### Bug Fixes

- [#3399](https://github.com/Azure/typespec-azure/pull/3399) `arm-resource-operation` do not flag template instances
- [#3492](https://github.com/Azure/typespec-azure/pull/3492) Fix #3404 changes to resolveArmResources
- [#3410](https://github.com/Azure/typespec-azure/pull/3410) Fix invalid syntax causing error with PrivateLinks


## 0.61.1

### Bug Fixes

- [#3442](https://github.com/Azure/typespec-azure/pull/3442) Fix #3420 make kind property required in polymorphic resources
- [#3396](https://github.com/Azure/typespec-azure/pull/3396) Update resolveArmResources to allow grouping #3252


## 0.61.0

### Features

- [#3356](https://github.com/Azure/typespec-azure/pull/3356) Support `@identifiers` on array model

### Bug Fixes

- [#3268](https://github.com/Azure/typespec-azure/pull/3268) Remove versioning
  
  ```diff lang=tsp
  -@useDependency(Azure.ResourceManager.Versions.v1_preview2)
  ```


## 0.60.1

### Bug Fixes

- [#3330](https://github.com/Azure/typespec-azure/pull/3330) Fix #3294 Add model and operation templates for private link
- [#3337](https://github.com/Azure/typespec-azure/pull/3337) Fix #3243 Allow polymorphic legacy resources
- [#3332](https://github.com/Azure/typespec-azure/pull/3332) Fix #3295 Allow tenant-level external resources


## 0.60.0

### Bump dependencies

- [#3207](https://github.com/Azure/typespec-azure/pull/3207) Upgrade dependencies

### Bug Fixes

- [#3240](https://github.com/Azure/typespec-azure/pull/3240) Add request parameters to legacy operations list
- [#3242](https://github.com/Azure/typespec-azure/pull/3242) Fix #3201 Remove duplicate TrackedResource type
- [#3196](https://github.com/Azure/typespec-azure/pull/3196) Fix optionality for ArmCustomPatch templates
- [#3178](https://github.com/Azure/typespec-azure/pull/3178) Allow renaming parameters in an operation


## 0.59.2

### Bug Fixes

- [#3147](https://github.com/Azure/typespec-azure/pull/3147) Add support for x-ms-external through armExternalResource decorator
- [#3154](https://github.com/Azure/typespec-azure/pull/3154) Add single page list and correct put template names
- [#3172](https://github.com/Azure/typespec-azure/pull/3172) Add single page list and legacy put and patch operations


## 0.59.1

### Bug Fixes

- [#3142](https://github.com/Azure/typespec-azure/pull/3142) Relax constraints for Action request and synchronous response parameters
- [#3143](https://github.com/Azure/typespec-azure/pull/3143) Add templates for optional location and etags
- [#3141](https://github.com/Azure/typespec-azure/pull/3141) Add operations for Private Endpoints


## 0.59.0

### Deprecations

- [#2974](https://github.com/Azure/typespec-azure/pull/2974) Deprecate pageable decorators `@Azure.Core.items` and `@Azure.Core.pagedResult`. Use `@TypeSpec.pageItems` and `@TypeSpec.list` instead.

### Features

- [#3096](https://github.com/Azure/typespec-azure/pull/3096) Enable void and optional request body for extension put and patch operations
- [#3098](https://github.com/Azure/typespec-azure/pull/3098) Allow using Scope parameter with Provider Action templates
- [#3085](https://github.com/Azure/typespec-azure/pull/3085) Add support for optional and missing request body in PUT and PATCH legacy operations

### Bump dependencies

- [#3029](https://github.com/Azure/typespec-azure/pull/3029) Upgrade dependencies

### Bug Fixes

- [#3085](https://github.com/Azure/typespec-azure/pull/3085) Fix implicitOptionality setting in Legacy PATCH operations


## 0.58.1

### Bug Fixes

- [#3030](https://github.com/Azure/typespec-azure/pull/3030) Use OverrideErrorType parameter in legacy list operation
- [#3026](https://github.com/Azure/typespec-azure/pull/3026) Fix #1876 Add ResolveArmOperations method


## 0.58.0

### Bump dependencies

- [#2867](https://github.com/Azure/typespec-azure/pull/2867) Upgrade dependencies

### Bug Fixes

- [#2945](https://github.com/Azure/typespec-azure/pull/2945) Fix inconsistent `OverrideErrorType` parameter name across templates
- [#2959](https://github.com/Azure/typespec-azure/pull/2959) Improve `no-resource-delete-operation` message
- [#2820](https://github.com/Azure/typespec-azure/pull/2820) Add the `@items` and `@nextLink` decorators to the common types `PrivateEndpointConnectionListResult` and `PrivateLinkResourceListResult` to support the @`pagedResult` feature.


## 0.57.2

### Bug Fixes

- [#2772](https://github.com/Azure/typespec-azure/pull/2772) Allow toggling `@autoRoute` in legacy operations


## 0.57.1

### Bug Fixes

- [#2896](https://github.com/Azure/typespec-azure/pull/2896) Add a legacy operation template for `Operations_List` that enables customization of both the response and error response types. This provides flexibility to specify custom response or error as needed.
  
  For example:
  ```tsp
  interface Operations
    extends Azure.ResourceManager.Legacy.Operations<Response = ArmResponse<Azure.Core.Page<CustomResponse>> {}
  ```
- [#2897](https://github.com/Azure/typespec-azure/pull/2897) Added a linter rule to warn when a `@Azure.ResourceManager.Legacy.customAzureResource` does not contain a `@key` property, as this can cause duplicate operations.
- [#2892](https://github.com/Azure/typespec-azure/pull/2892) Fix #2764 Add advanced extension resource support


## 0.57.0

### Features

- [#2621](https://github.com/Azure/typespec-azure/pull/2621) Adding a new `ExtensionResourceActionScope`. You can use it in `ArmProviderAction` operation template to describe an action operation for extension resource provider.
- [#2763](https://github.com/Azure/typespec-azure/pull/2763) Add support for external resources #1428

### Bug Fixes

- [#2536](https://github.com/Azure/typespec-azure/pull/2536) Fix the `arm-resource-operation` rule to exclude `ArmProviderActionAsync` and `ArmProviderActionSync` operations, as they are not considered resource operations.
- [#2691](https://github.com/Azure/typespec-azure/pull/2691) Fix `@key` decorator resolution for `x-ms-identifiers`: when `@key` is applied to a property named `id` or `name`, it will no longer add an identifier.
- [#2749](https://github.com/Azure/typespec-azure/pull/2749) Relax constraints to allow resources that override properties of Foundations.Resource


## 0.56.2

### Bug Fixes

- [#2724](https://github.com/Azure/typespec-azure/pull/2724) Fix `ErrorAdditionalInfo.info` in common types by changing its type from `{}` to `unknown`.
- [#2727](https://github.com/Azure/typespec-azure/pull/2727) Change the body name of legacy operations
- [#2722](https://github.com/Azure/typespec-azure/pull/2722) Support singleton key replacement in auto route for reusing case.


## 0.56.1

### Bug Fixes

- [#2676](https://github.com/Azure/typespec-azure/pull/2676) Corrected the references for `PrivateEndpointConnectionListResultV5` and `PrivateLinkResourceListResultV5` in `common-types`.
- [#2675](https://github.com/Azure/typespec-azure/pull/2675) Add support for resources with multiple operation paths
- [#2674](https://github.com/Azure/typespec-azure/pull/2674) Allow optional request bodies in Resource actions templates


## 0.56.0

### Bug Fixes

- [#2250](https://github.com/Azure/typespec-azure/pull/2250) Addressing common type differences with common types in azure-rest-api-specs, such as ordering of elements, lower/upper case in definition names, typos, and incorrect format on the next link.
- [#2538](https://github.com/Azure/typespec-azure/pull/2538) Fixing gaps in the `@identifiers` decorator functionality:
  - The `@identifier` decorator should take priority when present, and its value should be respected.
  - The value of the `@identifier` decorator is determined by the `ModelProperty`, not the array type.
  - The `@armProviderNamespace` is correctly identified in both scenarios: when applied to the array type or the model property.
- [#2625](https://github.com/Azure/typespec-azure/pull/2625) Make Patch templates specify implicitOptionality


## 0.55.0

### Bug Fixes

- [#2435](https://github.com/Azure/typespec-azure/pull/2435) Change OperationStatusResult.resourceId to armResourceIdentifier
- [#2564](https://github.com/Azure/typespec-azure/pull/2564) Handle types without nodes


## 0.54.0

### Features

- [#2470](https://github.com/Azure/typespec-azure/pull/2470) Relax `@enforceConstraint` to allow validation to pass when a resource is identified using the `@legacy.armCustomResource` decorator.
- [#2428](https://github.com/Azure/typespec-azure/pull/2428) Add support for new core HTTP bodyKind: "file".

### Bump dependencies

- [#2433](https://github.com/Azure/typespec-azure/pull/2433) Upgrade dependencies


## 0.53.0

### Breaking Changes

- [#2309](https://github.com/Azure/typespec-azure/pull/2309) Minimum node version is now 20

### Bump dependencies

- [#2308](https://github.com/Azure/typespec-azure/pull/2308) Update dependencies

### Bug Fixes

- [#2297](https://github.com/Azure/typespec-azure/pull/2297) Fix using `@identifiers` on array of model with id not respected
- [#2328](https://github.com/Azure/typespec-azure/pull/2328) Fix `ArmProviderActionAsync` and `ArmProviderActionSync` operations as both operations were returning `ErrorResponse` and not accepting changes to the error response type.
- [#2357](https://github.com/Azure/typespec-azure/pull/2357) Cleanup use of typespec compiler internal apis.


## 0.52.0

### Features

- [#2263](https://github.com/Azure/typespec-azure/pull/2263) Update azure core libraries to use Enum-based visibility modifiers instead of strings.


## 0.51.0

### Bug Fixes

- [#2178](https://github.com/Azure/typespec-azure/pull/2178) Fixing `etag` property name on common-types from `eTag` to `etag`.
- [#2077](https://github.com/Azure/typespec-azure/pull/2077) Fix provider name not being replaced in the route when using `ArmProviderActionSync` or `ArmProviderActionAsync` operation.
- [#2085](https://github.com/Azure/typespec-azure/pull/2085) Exclude template instances from the `no-response-body` rule.
- [#2185](https://github.com/Azure/typespec-azure/pull/2185) Fix common-types privatelink typo in `@key("privateLinkResourcenName") from privateLinkResourcenName to privateLinkResourceName`

### Bump dependencies

- [#2109](https://github.com/Azure/typespec-azure/pull/2109) Upgrade dependencies

### Features

- [#2091](https://github.com/Azure/typespec-azure/pull/2091) Add `@externalTypeRef` decorator, to been able to specify an external reference that should be used when emitting.
- [#2173](https://github.com/Azure/typespec-azure/pull/2173) Update versioning handling to use new mutator approach
- [#2094](https://github.com/Azure/typespec-azure/pull/2094) Use the `@identifiers` decorator to identify and utilize identifiers for `x-ms-identifiers`. Additionally, use the `@key` decorator to identify identifiers.


## 0.50.0

No changes, version bump only.

## 0.49.0

### Bug Fixes

- [#1866](https://github.com/Azure/typespec-azure/pull/1866) Fix the `no-empty-model` rule to prevent it from being triggered for Records, as this is already covered by another rule.
- [#1886](https://github.com/Azure/typespec-azure/pull/1886) Replace usage of  `Azure.Core.nextLink`  to `TypeSpec.nextLink`.
- [#1950](https://github.com/Azure/typespec-azure/pull/1950) Update lockfile for core changes

### Features

- [#1689](https://github.com/Azure/typespec-azure/pull/1689) Add common-types v6 with changes in managed identity, private links, and types.
- [#1272](https://github.com/Azure/typespec-azure/pull/1272) Add `armResourceType` scalar, and changed some properties to be `armResourceType` instead of string
- [#1881](https://github.com/Azure/typespec-azure/pull/1881) common-types consistency with original swagger
- [#1923](https://github.com/Azure/typespec-azure/pull/1923) Add the `@Azure.ResourceManager.Legacy.customAzureResource` decorator to identify ARM resources that do not use the base resource types.
- [#1740](https://github.com/Azure/typespec-azure/pull/1740) Update the `arm no-response-body` rule to behave similarly to the core rule, but with the additional requirement that the 202 response can and should also be empty


## 0.48.0

### Bug Fixes

- [#1759](https://github.com/Azure/typespec-azure/pull/1759) Fix the `ArmOperationStatus` model to match the Azure-AsyncOperation Resource format, where the `id` is of type `string` instead of `Core.uuid`.
- [#1741](https://github.com/Azure/typespec-azure/pull/1741) Fix the `arm-resource-invalid-action-verb` rule. The rule should only allow `@post` and `@get` verbs, but it wasn't flagging other verbs.
- [#1744](https://github.com/Azure/typespec-azure/pull/1744) Fix the `x-ms-identifier` rule. The `x-ms-identifier` supports indexing into inner properties, but the linter does not support that and reports a warning.

### Bump dependencies

- [#1663](https://github.com/Azure/typespec-azure/pull/1663) Upgrade dependencies

### Features

- [#1670](https://github.com/Azure/typespec-azure/pull/1670) Add an envelope model for a standard availability zones API contract.
- [#1674](https://github.com/Azure/typespec-azure/pull/1674) Remove restrictions requiring Foundation.Resource in ArmResourceListByParent. This will allow using the template for non-standard resources / collection actions that return a list.
As part of the change, the response can now return any type. This will be specified in the response section using a new  `ResourceListCustomResult<type>` model.


## 0.47.1

### Bug Fixes

- [#1673](https://github.com/Azure/typespec-azure/pull/1673) Fix `ArmProviderActionAsync` to correctly return 202 responses.


## 0.47.0

### Bug Fixes

- [#1416](https://github.com/Azure/typespec-azure/pull/1416) Fix #1180 Return StatusMonitor result field for non-resource PUT operations in getLroMetadata.finalResult
- [#1551](https://github.com/Azure/typespec-azure/pull/1551) Correct ManagedServiceIdentityType versioning issue
- [#1537](https://github.com/Azure/typespec-azure/pull/1537) Fix missing-x-ms-identifier rule not checking base class for properties

### Bump dependencies

- [#1534](https://github.com/Azure/typespec-azure/pull/1534) Bump dependencies

### Features

- [#1639](https://github.com/Azure/typespec-azure/pull/1639) Adding `ArmProviderActionSync` and `ArmProviderActionAsync` templates to the ARM library to perform actions at the subscription and tenant levels.
- [#1512](https://github.com/Azure/typespec-azure/pull/1512) `x-ms-skip-url-encoding` should be replaced with `allowReserved`
- [#1505](https://github.com/Azure/typespec-azure/pull/1505) Added common-types managed identity with delegation and network security perimeter
- [#1555](https://github.com/Azure/typespec-azure/pull/1555) Add `no-empty-model` rule


## 0.46.1

### Bug Fixes

- [#1512](https://github.com/Azure/typespec-azure/pull/1512) `x-ms-skip-url-encoding` should be replaced with `allowReserved`


## 0.46.0

### Bug Fixes

- [#1359](https://github.com/Azure/typespec-azure/pull/1359) `arm-no-record` rule should warn about any use of `Record<X>` not just when inside resource properties

### Features

- [#1482](https://github.com/Azure/typespec-azure/pull/1482) Add mobo type to TypeSpec-Azure common types


## 0.45.0

### Bug Fixes

- [#1187](https://github.com/Azure/typespec-azure/pull/1187) Replace deprecated LocationParameter with LocationResourceParameter

### Bump dependencies

- [#1219](https://github.com/Azure/typespec-azure/pull/1219) Update dependencies


## 0.44.0

### Bug Fixes

- [#1166](https://github.com/Azure/typespec-azure/pull/1166) Fix #1048 Allow void in final result for Azure-AsyncOperation header
- [#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

### Bump dependencies

- [#1104](https://github.com/Azure/typespec-azure/pull/1104) Dependency updates July 2024

### Features

- [#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.

### Breaking Changes

- [#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.


## 0.43.0

### Bug Fixes

- [#998](https://github.com/Azure/typespec-azure/pull/998) Adding legacy v4 ManagedServiceIdentity model to avoid breaking changes in specs with mixed v3 and v4 common type reference
- [#955](https://github.com/Azure/typespec-azure/pull/955) Remove OpenAPI dependencies from ARM LRO templates and test LRO overrides
- [#929](https://github.com/Azure/typespec-azure/pull/929) Adding an overload parameter to ResourceNameParameter that allows `name` type to be set to string union type.
- [#860](https://github.com/Azure/typespec-azure/pull/860) Fix `percentComplete` property on `OperationStatus` should be a float not an int
- [#979](https://github.com/Azure/typespec-azure/pull/979) Make Resource Properties Bag Updatable

### Bump dependencies

- [#867](https://github.com/Azure/typespec-azure/pull/867) Update dependencies - May 2024

### Features

- [#811](https://github.com/Azure/typespec-azure/pull/811) Remove dependency on `typespec-autorest` emitter
- [#432](https://github.com/Azure/typespec-azure/pull/432) Add support for values

## 0.42.1

### Bug Fixes

- [#868](https://github.com/Azure/typespec-azure/pull/868) Changing back `ManagedServiceIdentity.userAssignedIdentities` back to `Record<UserAssignedIdentity`. Adding ARM common-type references for on all Managed Identity models.

## 0.42.0

### Bug Fixes

- [#605](https://github.com/Azure/typespec-azure/pull/605) Specify the fully qualified name of `@OpenAPI.extension` decorator in `missing-x-ms-identifiers` linter warning.
- [#400](https://github.com/Azure/typespec-azure/pull/400) Updated `ManagedIndentity` and `CustomerManagedKey` TypeSpec model definition to be consistent with Swagger commont-types
- [#567](https://github.com/Azure/typespec-azure/pull/567) Enable `arm-common-types-version` rule by default.
- [#751](https://github.com/Azure/typespec-azure/pull/751) Allow `@pattern` to be provided on a scalar
- [#702](https://github.com/Azure/typespec-azure/pull/702) Fix `arm-resource-name-pattern` rule codefix producing invalid syntax
- [#293](https://github.com/Azure/typespec-azure/pull/293) Update to support new meaning of `@body`

### Bump dependencies

- [#663](https://github.com/Azure/typespec-azure/pull/663) Upgrade dependencies

### Features

- [#661](https://github.com/Azure/typespec-azure/pull/661) Fixing ArmResource base model and add an easier way to define Resource Name parameter
- [#736](https://github.com/Azure/typespec-azure/pull/736) Adding standard ExtendedLocation definition for ARM library

### Deprecations

- [#762](https://github.com/Azure/typespec-azure/pull/762) Renaming internal TypeSpec ARM foundation model names to be consistent with ARM common-type definitions.
  However, these are `Azure.Resource.Manager.Foundations` models that would not normally be used directly in service specs.

- Deprecate `Foundations.ArmResource`. `Foundations.Resource` should be used instead.

- Deprecate `Foundations.ResourceSkuType`. `Foundations.Sku` should be used instead.

- Deprecate `Foundations.ResourcePlanType`. `Foundations.Plan` should be used instead.

- Deprecate `Foundations.TrackedResourceBase`. `Foundations.TrackedResource` should be used instead.

- Deprecate `Foundations.ProxyResourceBase`. `Foundations.ProxyResource` should be used instead.

- Deprecate `Foundations.ExtensionResourceBase`. `Foundations.ExtensionResource` should be used instead.
- [#768](https://github.com/Azure/typespec-azure/pull/768) Standardizing mix-in model names with consistent `Property` suffix.

- Deprecate `ManagedServiceIdentity`. `ManagedServiceIdentityProperty` should be used instead.

  Example:

  ```diff
  -...ManagedServiceIdentity;
  +...ManagedServiceIdentityProperty;
  ```

- Deprecate `ManagedSystemAssignedIdentity`. `ManagedSystemAssignedIdentityProperty` should be used instead.

  Example:

  ```diff
  -...ManagedSystemAssignedIdentity;
  +...ManagedSystemAssignedIdentityProperty;
  ```

- Deprecate `EntityTag`. `EntityTagProperty` should be used instead.

  Example:

  ```diff
  -...EntityTag;
  +...EntityTagProperty;
  ```

- Deprecate `ResourceKind`. `ResourceKindProperty` should be used instead.

  Example:

  ```diff
  -...ResourceKind;
  +...ResourceKindProperty;
  ```

- Deprecate `ResourcePlan`. `ResourcePlanProperty` should be used instead.

  Example:

  ```diff
  -...ResourcePlan;
  +...ResourcePlanProperty;
  ```

- Deprecate `ResourceSku`. `ResourceSkuProperty` should be used instead.

  Example:

  ```diff
  -...ResourceSku;
  +...ResourceSkuProperty;
  ```

- Deprecate `ManagedBy`. `ManagedByProperty` should be used instead.

  Example:

  ```diff
  -...ManagedBy;
  +...ManagedByProperty;
  ```

### Breaking Changes

- [#521](https://github.com/Azure/typespec-azure/pull/521) Switching ProvisioningState from enum to Open union

## 0.41.0

### Bug Fixes

- [#410](https://github.com/Azure/typespec-azure/pull/410) Fixing ArmDeleteLroResponse missing Retry-After header

### Bump dependencies

- [#437](https://github.com/Azure/typespec-azure/pull/437) Update dependencies

### Features

- [376](https://github.com/Azure/typespec-azure/pull/376) `RetryAfter` header was moved to be in the default `LroHeaders` for LRO operations. If you were overriding the `LroHeaders` template parmater previously you might need to add `& Azure.Core.FoundationsRetryAfterHeader`
- [#495](https://github.com/Azure/typespec-azure/pull/495) Made `delegatedIdentityClientId` optional `CustomerManagedKeyEncryption` to align with the common types definition.
- [#514](https://github.com/Azure/typespec-azure/pull/514) Add `lro-location-header` rule.
- [#369](https://github.com/Azure/typespec-azure/pull/369) Add `arm-put-operation-response-codes` and `arm-post-operation-response-codes` rules.
- [#359](https://github.com/Azure/typespec-azure/pull/359) ARM: add `arm-resource-name-pattern` rule to allow disabling LintDiff `ResourceNamePattern` rule

### Deprecations

- [#407](https://github.com/Azure/typespec-azure/pull/407) Deprecate `ResourceIdentifier` in favor of new `Azure.Core.armResourceIdentifier`

## 0.40.0

### Bug Fixes

- [#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

### Bump dependencies

- [#243](https://github.com/Azure/typespec-azure/pull/243) Update dependencies

### Features

- [#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.

## 0.39.1

### Patch Changes

- `arm-resource-provisioning-state` works with unions

## 0.39.0

### Patch Changes

- ebfe639: Fix Location resource issue, add mechanism for additional path segments
- 148eee4: Update references to ARM, Add template customization parameters, add migration docs

## 0.38.0

Wed, 24 Jan 2024 05:47:19 GMT

### Minor changes

- Update dependencies.

### Updates

- Fix: Resolve selected arm common version when used on version enum members
- Renamed template parameters for clarity and consistency.
- Update dependencies

## 0.37.1

Wed, 20 Dec 2023 05:29:22 GMT

### Patches

- Add types to support lro scenarios

## 0.37.0

Wed, 06 Dec 2023 19:47:28 GMT

### Minor changes

- Update dependencies.

### Updates

- Added support for the SubscriptionLifeCycleNotification endpoint

## 0.36.1

Tue, 14 Nov 2023 20:35:54 GMT

### Patches

- Adding allowing void on ARM action templates to specify no request body.

## 0.36.0

Wed, 08 Nov 2023 00:11:02 GMT

### Minor changes

- Update dependencies.

### Updates

- ARM `common-types` versions can now be selected for each service specification version using the `Azure.ResourceManager.CommonTypes.Versions` enum with the new `@armCommonTypesVersion` decorator
- Add support for Private Links v5 common types
- Add ARM v5 common-types for Customer Managed Keys
- `TypeScript` use `types` entry under `exports` of `package.json` instead of legacy `typesVersions` to provide the definition files
- **BREAKING CHANGE** Minimum node version increased to 18

## 0.35.0

Wed, 11 Oct 2023 23:51:36 GMT

### Updates

- Update dependencies
- Uptake changes to http libraries with status code ranges

## 0.34.0

Tue, 12 Sep 2023 21:49:08 GMT

### Minor changes

- Update dependencies.

### Updates

- Soft deprecation of ArmResourceActionNoCOntentAsync in favor of ArmResourceActionNoResponseCOntentAsync
- Migrating linter rules to new system. Linter rules will NOT be automatically enabled anymore.
  Add the following to your `tspconfig.yaml` to get the same behavior:

```yaml
linter:
  extends: ["@azure-tools/typespec-azure-resource-manager/all"]
```

- Add Private links common types to Azure.ResourceManager

## 0.33.0

Tue, 08 Aug 2023 22:32:23 GMT

### Minor changes

- Update dependencies.

### Updates

- Allow shared ARM type libraries and override of arm provider namespace
- Fix #3243 issues with ArmTagsPatch template parameters
- Fix #3316, #3325, arm template issues
- Add fix and tests for ArmTagsPatchAsync

## 0.32.0

Tue, 11 Jul 2023 22:06:14 GMT

### Minor changes

- Update dependencies.

### Patches

- Updated LocationParameter to reference Common Types

### Updates

- Add ArmResourceDeleteWithoutOkAsync operation signature to comply with updated ARM guidelines
- Add ArmResourceActionNoResponseContentAsync operation signature
- Add `@dev` on doc comment to prevent it overriding template doc
- Fix generated route for localCheckNameAvailability.
- Update dependencies

## 0.31.0

Tue, 06 Jun 2023 22:44:32 GMT

### Minor changes

- Update dependencies.

### Updates

- **Potential breaking change** Add missing decorators signature
- **Potential breaking change** Moved many decorators in the private namespace. Those are decorators that were not documented and should NOT have been used directly. See `lib/private.decorators.tsp` for list.
- Remove reference to `object` in decorators and templates
- Updated decorators to use `valueof`

## 0.30.0

Wed, 10 May 2023 21:24:14 GMT

### Minor changes

- Update dependencies.

### Updates

- Added templates for checkNameAVailability
- Fix issue where a decorator renames operations in a way that is contrary to guidelines.
- **Added** Support for the new autorest `arm-types-dir` option
- Fix issue with overriding interface lifecycle operations
- Cleanup deprecated items
- Uptake change in template operations

## 0.29.0

Tue, 11 Apr 2023 18:49:21 GMT

### Minor changes

- Update dependencies.

### Updates

- Fix invalid default for ResourceIdentifier Allowed resources
- Uptake changes to datetime types

## 0.28.0

Mon, 13 Mar 2023 21:30:57 GMT

### Minor changes

- Update dependencies.

### Updates

- Correct lro templates for correct generation

## 0.27.0

Fri, 03 Mar 2023 19:59:30 GMT

### Minor changes

- Update dependencies.

### Updates

- Fix arm-resource-invalid-version-format lint rule
- Update package homepage link to github.io page
- Revert back changelog
- Adopted the new `@typespec/http` library
- update entrypoint to tspMain
- Rename to TypeSpec

## 0.26.0

Tue, 07 Feb 2023 21:56:32 GMT

### Minor changes

- Update dependencies.

### Updates

- Deprecating ResourceOperations to avoid name clash #2476
- Removed `@armNamespace` decorator. Removed `TenantResourceList`, `ResourceCommonParameters`, `ExtensionResourceCommonParameters` and `CommonTenantScope` Cadl models.
- Fix issues when multiple copies of library are loaded.

## 0.25.0

Fri, 13 Jan 2023 00:05:37 GMT

### Minor changes

- Update dependencies.

### Updates

- Internal: Update TS module resolution to node16

## 0.24.0

Wed, 07 Dec 2022 17:21:54 GMT

### Breaking changes

- Update linter rule to account for new pattern of extensible enums.

### Minor changes

- Add lego bricks and linting rules, refactor for operation templates
- Uptake new `getNamespaceFullName`
- Add linter rule to discourage use of `@segment` with `@armResourceAction`.
- Update dependencies.
- Add validation to prevent multiple `@armProviderNamespace`
- Uptake change to compiler for new `scalar` type

### Patches

- Refactor non-direct used ARM library artifacts into Foundations namespace
- Fix api-version query parameter casing style
- add arm lint rule to check armResource<Op> decorator
- add arm lint rule to check response schema consistency
- Update dependencies

## 0.12.0

Sat, 12 Nov 2022 00:14:23 GMT

### Minor changes

- Update dependencies.
- Update templates TResource to constraint to object
- Uptake changes to linter engine

### Patches

- Adding ResourceIdentifier model definition
- Moved `casing` linter rule to `cadl-azure-core`
- Added lint rule to check empty updateable properties
- Opt out of inapplicable metadata to payload on resource types

### Updates

- Consolidate ExtensionResourceOperation to Instance and Collection sub-interface.

## 0.11.0

Wed, 12 Oct 2022 21:12:48 GMT

### Minor changes

- Update linter rules to use new linter system
- Update dependencies.
- **Breaking** `Azure.ResourceManager.Operations` must now be explicitly included.
- Apply changes to rest library

## 0.10.0

Thu, 08 Sep 2022 01:05:13 GMT

### Minor changes

- Rename @armNamespace to @armProviderNamespace, subscriptionId->subscriptionIdParameter, resourceGroup->ResourceGroupParameter, all operations to camelCase, Moving @armCommonDefinition, @armCommonParameter, @assignProviderNamespace, @armUpdateProviderNamespace to internal private namespace
- Internals: Uptake change to `@autoRoute` decorator
- Update dependencies.
- React to Type suffix removal
- Added RPC linting rules and made properties bag optional
- Uptake change to enum members map type
- Uptake changes to compiler with current projection

### Patches

- Fix: service authentication contains correct description for `user_impersonation` scope
- Temporarily disable the use-standard-operations linting rule for ARM specs

## 0.9.0

Thu, 11 Aug 2022 19:05:47 GMT

### Minor changes

- Add initial versioning support for Azure.Core library and use versioned Azure.Core library
- Support set of unannotated parameters as request body
- Add additional unsupported types to linter.
- Reach to OkResponse becomeing non-generic
- Update dependencies.
- Add versioning support for Azure.ResourceManager library and use versioned Azure.Core library
- Uptake changes to type relations

### Patches

- React to changes in Azure.Core namespace organization
- Remove deprecation suppressions and @pageable annotations.
- Suppress deprecation warnings.
- Fix ordering of templated types in ResourceUpdateModel to resolve duplicate model property issues

## 0.8.0

Fri, 08 Jul 2022 23:23:14 GMT

### Minor changes

- Update dependencies.
- Add tenant resource support and tests
- Use new emitter options syntax

## 0.7.0

Mon, 13 Jun 2022 23:42:46 GMT

### Minor changes

- Uptake changes to accessor diagnostics
- Update `ListBy<Parent>` operation name to use parent model name instead of collection name.
- Update dependencies.
- Use @server decorator to set host instead of @serviceHost
- Uptake changes to decorator context

### Patches

- Fix common type error and update to v3 and v4 common types
- add lint rules to apply ARM guideline
- resource name should be marked with @path and visibility("read")

### Updates

- Upgrade to TS4.7

## 0.6.0

Fri, 06 May 2022 17:20:15 GMT

### Minor changes

- Add new `@singleton` decorator to mark an ARM resource type as a singleton resource
- Uptake `mixes` -> `extends` rename
- Add validation to prevent usage of `int8`
- Update dependencies.
- Remove node 14 support
- Rename ResourceListByResourceGroup<T> to ResourceListByParent<T> and automatically rename the contained operation to include the parent type name, if any
- Include updateable resource envelope properties in ResourceUpdateModel

### Patches

- Add a corrected diagnostic for when @armResourceInternal is used on a non-resource type

### Updates

- Adding test cases

## 0.5.0

Thu, 31 Mar 2022 17:11:06 GMT

### Minor changes

- Update dependencies.

### Patches

- Add APIs for requesting all ARM resource types and operations, new decorators for marking ARM operations

## 0.4.0

Wed, 09 Mar 2022 17:42:26 GMT

### Minor changes

- Add interface-based ARM resource modelling pattern
- Use new Azure.Core library and adapt to Page<T> moving over to it
- React to @key decorator move to core
- Update dependencies.

### Patches

- Remove redundant `@visibility` decorators in arm.cadl

## 0.3.0

Tue, 15 Feb 2022 22:35:13 GMT

### Minor changes

- Update dependencies.

### Patches

- Use `@error` instead of no-longer-supported "default" `@statusCode`

## 0.2.0

Fri, 11 Feb 2022 06:13:30 GMT

### Minor changes

- Update decorators with new interface
- Create @azure-tools/cadl-azure-resource-manager library for new interface-based resource modelling design
