---
title: "Data types"
description: "Data types exported by @azure-tools/typespec-azure-resource-manager"
llmstxt: true
---

## Azure.ResourceManager

### `ArmAcceptedLroResponse` {#Azure.ResourceManager.ArmAcceptedLroResponse}

The standard Azure Resource Manager response for asynchronous PATCH, POST, and DELETE operations

```typespec
model Azure.ResourceManager.ArmAcceptedLroResponse<Description, LroHeaders>
```

#### Template Parameters

| Name        | Description                                                                        |
| ----------- | ---------------------------------------------------------------------------------- |
| Description | The description of the response status (defaults to `Resource operation accepted`) |
| LroHeaders  | Optional. The lro headers that appear in the Accepted response                     |

#### Examples

```typespec
@post
op post(...ResourceInstanceParameters<Employee>):
  | ArmAcceptedLroResponse<LroHeaders = ArmLroLocationHeader<FinalResult = Employee> &
      Azure.Core.Foundations.RetryAfterHeader>
  | ErrorResponse;
```

#### Properties

| Name       | Type  | Description      |
| ---------- | ----- | ---------------- |
| statusCode | `202` | The status code. |

### `ArmAcceptedResponse` {#Azure.ResourceManager.ArmAcceptedResponse}

The standard ACCEPTED response

```typespec
model Azure.ResourceManager.ArmAcceptedResponse<Message, ExtraHeaders>
```

#### Template Parameters

| Name         | Description                                                                        |
| ------------ | ---------------------------------------------------------------------------------- |
| Message      | The description of the response status (defaults to `Resource operation accepted`) |
| ExtraHeaders | Additional headers in the response. Default includes Retry-After header            |

#### Examples

```typespec
op post is ArmProviderActionSync<
  Request = Employee,
  Response = ArmAcceptedResponse<ExtraHeaders = ArmLroLocationHeader>,
  Scope = SubscriptionActionScope
>;
```

#### Properties

| Name       | Type  | Description      |
| ---------- | ----- | ---------------- |
| statusCode | `202` | The status code. |

### `ArmAsyncOperationHeader` {#Azure.ResourceManager.ArmAsyncOperationHeader}

The standard header for asynchronous operation polling

```typespec
model Azure.ResourceManager.ArmAsyncOperationHeader<StatusMonitor, UrlValue, FinalResult>
```

#### Template Parameters

| Name          | Description                                       |
| ------------- | ------------------------------------------------- |
| StatusMonitor | The status monitor type for lro polling           |
| UrlValue      | The value type of the Azure-AsyncOperation header |
| FinalResult   | The logical final result of the operation         |

#### Examples

```typespec
op changeWidget is ArmResourceActionAsync<
  WidgetResource,
  WidgetResourceRequest,
  WidgetResourceResponse,
  LroHeaders = ArmAsyncOperationHeader<FinalResult = WidgetResource>
>;
```

#### Properties

| Name                 | Type       | Description                  |
| -------------------- | ---------- | ---------------------------- |
| azureAsyncOperation? | `UrlValue` | A link to the status monitor |

### `ArmCombinedLroHeaders` {#Azure.ResourceManager.ArmCombinedLroHeaders}

Provide Both Azure-AsyncOperation and Location headers

```typespec
model Azure.ResourceManager.ArmCombinedLroHeaders<StatusMonitor, FinalResult, PollingUrlValue, FinalUrlValue>
```

#### Template Parameters

| Name            | Description                                                                       |
| --------------- | --------------------------------------------------------------------------------- |
| StatusMonitor   | The type of the polling StatusMonitor when following the Azure-AsyncOperation url |
| FinalResult     | The type of the logical result when following the location header                 |
| PollingUrlValue | The value type of the link to the status monitor                                  |
| FinalUrlValue   | The value type of the link to the final result                                    |

#### Examples

```typespec
op delete is ArmResourceDeleteWithoutOkAsync<
  Employee,
  LroHeaders = ArmCombinedLroHeaders<ArmOperationStatus, Employee>
>;
```

#### Properties

| Name                 | Type              | Description                                                                                         |
| -------------------- | ----------------- | --------------------------------------------------------------------------------------------------- |
| azureAsyncOperation? | `PollingUrlValue` | A link to the status monitor                                                                        |
| location?            | `FinalUrlValue`   | The Location header contains the URL where the status of the long running operation can be checked. |

### `ArmCreatedResponse` {#Azure.ResourceManager.ArmCreatedResponse}

The Azure Resource Manager 201 response for a resource

```typespec
model Azure.ResourceManager.ArmCreatedResponse<ResponseBody, ExtraHeaders>
```

#### Template Parameters

| Name         | Description                                                             |
| ------------ | ----------------------------------------------------------------------- |
| ResponseBody | The contents of the response body                                       |
| ExtraHeaders | Additional headers in the response. Default includes Retry-After header |

#### Examples

```typespec
@post
op post(...ResourceInstanceParameters<Employee>): ArmCreatedResponse<
  Employee,
  ExtraHeaders = {
    @header("x-ms-client-request-id") clientRequestId: string;
  }
>;
```

#### Properties

| Name       | Type           | Description      |
| ---------- | -------------- | ---------------- |
| statusCode | `201`          | The status code. |
| body       | `ResponseBody` |                  |

### `ArmDeleteAcceptedLroResponse` {#Azure.ResourceManager.ArmDeleteAcceptedLroResponse}

The response for asynchronous Azure Resource Manager delete ACCEPTED

```typespec
model Azure.ResourceManager.ArmDeleteAcceptedLroResponse<LroHeaders>
```

#### Template Parameters

| Name       | Description                                                           |
| ---------- | --------------------------------------------------------------------- |
| LroHeaders | Optional. Allows overriding the Lro headers returned in the response. |

#### Examples

```typespec
op delete is ArmResourceDeleteWithoutOkAsync<
  Employee,
  Response = ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse
>;
```

#### Properties

| Name       | Type  | Description      |
| ---------- | ----- | ---------------- |
| statusCode | `202` | The status code. |

### `ArmDeleteAcceptedResponse` {#Azure.ResourceManager.ArmDeleteAcceptedResponse}

The response for synchronous Azure Resource Manager delete ACCEPTED

```typespec
model Azure.ResourceManager.ArmDeleteAcceptedResponse
```

#### Properties

| Name        | Type    | Description                                                                                              |
| ----------- | ------- | -------------------------------------------------------------------------------------------------------- |
| statusCode  | `202`   | The status code.                                                                                         |
| retryAfter? | `int32` | The Retry-After header can indicate how long the client should wait before polling the operation status. |

### `ArmDeletedNoContentResponse` {#Azure.ResourceManager.ArmDeletedNoContentResponse}

Azure Resource Manager response for a properly formed delete request, with no resource found

```typespec
model Azure.ResourceManager.ArmDeletedNoContentResponse
```

#### Examples

```typespec
op delete is ArmResourceDeleteWithoutOkAsync<
  Employee,
  Response = ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse
>;
```

#### Properties

| Name       | Type  | Description      |
| ---------- | ----- | ---------------- |
| statusCode | `204` | The status code. |

### `ArmDeletedResponse` {#Azure.ResourceManager.ArmDeletedResponse}

The response for synchronous delete of a resource

```typespec
model Azure.ResourceManager.ArmDeletedResponse
```

#### Examples

```typespec
@delete
@armResourceDelete(Employee)
op delete(...ResourceInstanceParameters<Employee>):
  | ArmDeletedResponse
  | ArmDeletedNoContentResponse
  | ErrorResponse;
```

#### Properties

| Name       | Type  | Description      |
| ---------- | ----- | ---------------- |
| statusCode | `200` | The status code. |

### `ArmFeatureFileOptions` {#Azure.ResourceManager.ArmFeatureFileOptions}

Options for defining a feature file and its associated output

```typespec
model Azure.ResourceManager.ArmFeatureFileOptions
```

#### Properties

| Name            | Type     | Description                               |
| --------------- | -------- | ----------------------------------------- |
| featureName     | `string` | The feature name                          |
| fileName        | `string` | The associated file name for the features |
| description     | `string` | The feature description in Swagger        |
| title?          | `string` | The feature title in Swagger              |
| termsOfService? | `string` | The feature terms of service in Swagger   |

### `ArmFilterParameter` {#Azure.ResourceManager.ArmFilterParameter}

Standard list parameter $filter, allows the user to filter the results of a list operation.

```typespec
model Azure.ResourceManager.ArmFilterParameter
```

#### Properties

| Name    | Type     | Description                                                 |
| ------- | -------- | ----------------------------------------------------------- |
| filter? | `string` | The OData filter expression to apply to the list operation. |

### `ArmLocationResource` {#Azure.ResourceManager.ArmLocationResource}

Template for ARM location resources. Use the parameter to specify
the parent of the location resource.

```typespec
model Azure.ResourceManager.ArmLocationResource<BaseType>
```

#### Template Parameters

| Name     | Description                                                                                   |
| -------- | --------------------------------------------------------------------------------------------- |
| BaseType | The parent of the location, one of "Subscription", "Tenant", "ResourceGroup", or "Extension". |

#### Examples

```typespec
@parentResource(ArmLocationResource<"ResourceGroup">)
model Employee is TrackedResource<EmployeeProperties> {
  ...ResourceNameParameter<Employee>;
}
```

#### Properties

| Name     | Type                       | Description                   |
| -------- | -------------------------- | ----------------------------- |
| location | `Azure.Core.azureLocation` | The name of the Azure region. |

### `ArmLroLocationHeader` {#Azure.ResourceManager.ArmLroLocationHeader}

The default header for lro PUT and DELETE polling

```typespec
model Azure.ResourceManager.ArmLroLocationHeader<LroPollingOptions, FinalResult, UrlValue>
```

#### Template Parameters

| Name              | Description                                                     |
| ----------------- | --------------------------------------------------------------- |
| LroPollingOptions | The polling options when polling the url in the location header |
| FinalResult       | The ultimate final result of the logical operation              |
| UrlValue          | The value type for the location header                          |

#### Examples

```typespec
op update is ArmResourceActionAsync<
  Employee,
  Employee,
  OkResponse,
  LroHeaders = ArmLroLocationHeader<
    Azure.Core.StatusMonitorPollingOptions<ArmOperationStatus>,
    Employee
  >
>;
```

#### Properties

| Name      | Type       | Description                                                                                         |
| --------- | ---------- | --------------------------------------------------------------------------------------------------- |
| location? | `UrlValue` | The Location header contains the URL where the status of the long running operation can be checked. |

### `ArmNoContentResponse` {#Azure.ResourceManager.ArmNoContentResponse}

Standard Azure Resource Manager NoContent (204) response

```typespec
model Azure.ResourceManager.ArmNoContentResponse<Message>
```

#### Template Parameters

| Name    | Description                                                                             |
| ------- | --------------------------------------------------------------------------------------- |
| Message | The description of the response status (defaults to `Operation completed successfully`) |

#### Examples

```typespec
@delete
op delete(@path id: string): ArmNoContentResponse;
```

#### Properties

| Name       | Type  | Description      |
| ---------- | ----- | ---------------- |
| statusCode | `204` | The status code. |

### `ArmOperationStatus` {#Azure.ResourceManager.ArmOperationStatus}

Standard Azure Resource Manager operation status response, used as the response
body for `GetResourceOperationStatus`.

```typespec
model Azure.ResourceManager.ArmOperationStatus<Properties, StatusValues>
```

#### Template Parameters

| Name         | Description                                    |
| ------------ | ---------------------------------------------- |
| Properties   | Optional resource-specific properties          |
| StatusValues | The set of allowed values for operation status |

#### Properties

| Name             | Type                                                                           | Description                                                                                                      |
| ---------------- | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| properties?      | `Properties`                                                                   | RP-specific properties for the operationStatus resource, only appears when operation ended with Succeeded status |
| status           | `StatusValues`                                                                 | The operation status                                                                                             |
| id               | `string`                                                                       | The unique identifier for the operationStatus resource                                                           |
| name?            | `string`                                                                       | The name of the operationStatus resource                                                                         |
| startTime?       | `utcDateTime`                                                                  | Operation start time                                                                                             |
| endTime?         | `utcDateTime`                                                                  | Operation complete time                                                                                          |
| percentComplete? | `float64`                                                                      | The progress made toward completing the operation                                                                |
| error?           | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorDetail) | Errors that occurred if the operation ended with Canceled or Failed status                                       |

### `ArmResourceCreatedResponse` {#Azure.ResourceManager.ArmResourceCreatedResponse}

Resource create operation succeeded

```typespec
model Azure.ResourceManager.ArmResourceCreatedResponse<Resource, LroHeaders>
```

#### Template Parameters

| Name       | Description                                                |
| ---------- | ---------------------------------------------------------- |
| Resource   | The resource being created                                 |
| LroHeaders | Optional. The lro headers returned with a Created response |

#### Examples

```typespec
op createOrUpdate is ArmResourceCreateOrReplaceAsync<
  Employee,
  Response =
    | ArmResponse<Employee>
    | ArmResourceCreatedResponse<
        Employee,
        LroHeaders = ArmLroLocationHeader<FinalResult = Employee> &
          Azure.Core.Foundations.RetryAfterHeader
      >
>;
```

#### Properties

| Name       | Type       | Description      |
| ---------- | ---------- | ---------------- |
| statusCode | `201`      | The status code. |
| body       | `Resource` |                  |

### `ArmResourceCreatedSyncResponse` {#Azure.ResourceManager.ArmResourceCreatedSyncResponse}

Resource synchronous create operation succeeded

```typespec
model Azure.ResourceManager.ArmResourceCreatedSyncResponse<Resource>
```

#### Template Parameters

| Name     | Description                |
| -------- | -------------------------- |
| Resource | The resource being created |

#### Examples

```typespec
op createOrUpdate is ArmResourceCreateOrReplaceSync<
  Employee,
  Response = ArmResponse<Employee> | ArmResourceCreatedSyncResponse<Employee>
>;
```

#### Properties

| Name       | Type       | Description      |
| ---------- | ---------- | ---------------- |
| statusCode | `201`      | The status code. |
| body       | `Resource` |                  |

### `ArmResourceExistsResponse` {#Azure.ResourceManager.ArmResourceExistsResponse}

Resource exists response

```typespec
model Azure.ResourceManager.ArmResourceExistsResponse
```

#### Examples

```typespec
@head
op head(...ResourceInstanceParameters<Employee>): ArmResourceExistsResponse;
```

#### Properties

| Name       | Type  | Description      |
| ---------- | ----- | ---------------- |
| statusCode | `204` | The status code. |

### `ArmResourceNotFoundResponse` {#Azure.ResourceManager.ArmResourceNotFoundResponse}

Resource is not found response

```typespec
@head
op head(...ResourceInstanceParameters<Employee>):
  | ArmResponse<Employee>
  | ArmResourceNotFoundResponse;
```

```typespec
model Azure.ResourceManager.ArmResourceNotFoundResponse
```

#### Properties

| Name       | Type  | Description      |
| ---------- | ----- | ---------------- |
| statusCode | `404` | The status code. |

### `ArmResourceUpdatedResponse` {#Azure.ResourceManager.ArmResourceUpdatedResponse}

Resource update operation succeeded

```typespec
model Azure.ResourceManager.ArmResourceUpdatedResponse<Resource>
```

#### Template Parameters

| Name     | Description                |
| -------- | -------------------------- |
| Resource | The resource being updated |

#### Examples

```typespec
@put
op update(...ResourceInstanceParameters<Employee>): ArmResourceUpdatedResponse<Employee>;
```

#### Properties

| Name       | Type       | Description      |
| ---------- | ---------- | ---------------- |
| statusCode | `200`      | The status code. |
| body       | `Resource` |                  |

### `ArmResponse` {#Azure.ResourceManager.ArmResponse}

The Azure Resource Manager synchronous OK response

```typespec
model Azure.ResourceManager.ArmResponse<ResponseBody>
```

#### Template Parameters

| Name         | Description                       |
| ------------ | --------------------------------- |
| ResponseBody | The contents of the response body |

#### Examples

```typespec
op get is ArmResourceRead<Employee, Response = ArmResponse<Employee>>;
```

#### Properties

| Name       | Type           | Description      |
| ---------- | -------------- | ---------------- |
| statusCode | `200`          | The status code. |
| body       | `ResponseBody` |                  |

### `ArmSkipParameter` {#Azure.ResourceManager.ArmSkipParameter}

List parameter $skip, allows the user to control the offset of returned items.

```typespec
model Azure.ResourceManager.ArmSkipParameter
```

#### Properties

| Name  | Type    | Description                                                            |
| ----- | ------- | ---------------------------------------------------------------------- |
| skip? | `int64` | The number of items to skip before starting to collect the result set. |

### `ArmTopParameter` {#Azure.ResourceManager.ArmTopParameter}

Standard list parameter $top, allows the user to control the total number of returned items.

```typespec
model Azure.ResourceManager.ArmTopParameter
```

#### Properties

| Name | Type    | Description                          |
| ---- | ------- | ------------------------------------ |
| top? | `int64` | The total number of items to return. |

### `AvailabilityZonesProperty` {#Azure.ResourceManager.AvailabilityZonesProperty}

Model representing the standard `zones` envelope property for a resource.
Spread this model into a resource Model if the resource supports ARM `zones`.

```typespec
model Azure.ResourceManager.AvailabilityZonesProperty
```

#### Examples

```typespec
model Foo is TrackedResource<FooProperties> {
  ...AvailabilityZonesProperty;
}
```

#### Properties

| Name   | Type       | Description             |
| ------ | ---------- | ----------------------- |
| zones? | `string[]` | The availability zones. |

### `BillingDataProperty` {#Azure.ResourceManager.BillingDataProperty}

Standard resource billing data property to represent the resource's current billing state.
Spread this model directly into your resource property model when modeling e.g. prepaid resources.

```typespec
model Azure.ResourceManager.BillingDataProperty
```

#### Examples

```typespec
model FooProperties {
  ...BillingDataProperty;
}
```

#### Properties

| Name        | Type                                                                           | Description                       |
| ----------- | ------------------------------------------------------------------------------ | --------------------------------- |
| billingData | [`BillingData`](./data-types.md#Azure.ResourceManager.CommonTypes.BillingData) | The billing data of the resource. |

### `DefaultProvisioningStateProperty` {#Azure.ResourceManager.DefaultProvisioningStateProperty}

Standard resource provisioning state model. If you do not have any custom provisioning state,
you can spread this model directly into your resource property model.

```typespec
model Azure.ResourceManager.DefaultProvisioningStateProperty
```

#### Examples

```typespec
model FooProperties {
  // Only have standard Succeeded, Failed, Cancelled states
  ...DefaultProvisioningStateProperty;
}
```

#### Properties

| Name               | Type                                                                                           | Description                             |
| ------------------ | ---------------------------------------------------------------------------------------------- | --------------------------------------- |
| provisioningState? | [`ResourceProvisioningState`](./data-types.md#Azure.ResourceManager.ResourceProvisioningState) | The provisioning state of the resource. |

### `EncryptionProperty` {#Azure.ResourceManager.EncryptionProperty}

Model used only to spread in the `encryption` envelope property for a resource.
All encryption configuration for a resource.

```typespec
model Azure.ResourceManager.EncryptionProperty
```

#### Examples

```typespec
model Foo is TrackedResource<FooProperties> {
  ...Encryption;
}
```

#### Properties

| Name       | Type                                                                         | Description                                  |
| ---------- | ---------------------------------------------------------------------------- | -------------------------------------------- |
| encryption | [`Encryption`](./data-types.md#Azure.ResourceManager.CommonTypes.Encryption) | All encryption configuration for a resource. |

### `EntityTagProperty` {#Azure.ResourceManager.EntityTagProperty}

Model used only to spread in the standard `eTag` envelope property for a resource

```typespec
model Azure.ResourceManager.EntityTagProperty
```

#### Examples

```typespec
model Foo is TrackedResource<FooProperties> {
  // Only have standard Succeeded, Failed, Cancelled states
  ...EntityTagProperty;
}
```

#### Properties

| Name  | Type     | Description                                                                                                                                                                                                                                                                                                                                                         |
| ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| eTag? | `string` | If eTag is provided in the response body, it may also be provided as a header per the normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. |

### `ExtendedLocationProperty` {#Azure.ResourceManager.ExtendedLocationProperty}

Model representing the standard `extendedLocation` envelope property for a resource.
Spread this model into a Resource Model, if the resource supports extended locations

```typespec
model Azure.ResourceManager.ExtendedLocationProperty
```

#### Examples

```typespec
model Employee is TrackedResource<EmployeeProperties> {
  ...ResourceNameParameter<Employee>;
  ...ExtendedLocationProperty;
}
```

#### Properties

| Name              | Type                                                                                     | Description                            |
| ----------------- | ---------------------------------------------------------------------------------------- | -------------------------------------- |
| extendedLocation? | [`ExtendedLocation`](./data-types.md#Azure.ResourceManager.CommonTypes.ExtendedLocation) | The extended location of the resource. |

### `ExtensionActionScope` {#Azure.ResourceManager.ExtensionActionScope}

Template used by ArmProviderAction templates. This produces following action route:
`/{scope}/providers/Microsoft.SomeRP/someAction`

```typespec
model Azure.ResourceManager.ExtensionActionScope<StringType>
```

#### Template Parameters

| Name       | Description                                               |
| ---------- | --------------------------------------------------------- |
| StringType | The type of the scope name parameter, defaults to string. |

#### Properties

| Name  | Type         | Description |
| ----- | ------------ | ----------- |
| scope | `StringType` |             |

### `ExtensionResource` {#Azure.ResourceManager.ExtensionResource}

Concrete extension resource types can be created by aliasing this type using a specific property type.

See more details on [different Azure Resource Manager resource type here.](https://azure.github.io/typespec-azure/docs/howtos/ARM/resource-type)

```typespec
model Azure.ResourceManager.ExtensionResource<Properties, PropertiesOptional>
```

#### Template Parameters

| Name               | Description                                                                                                                                    |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Properties         | A model containing the provider-specific properties for this resource                                                                          |
| PropertiesOptional | A boolean flag indicating whether the resource `Properties` field is marked as optional or required. Default true is optional and recommended. |

#### Examples

```typespec
model PetInstance is ExtensionResource<PetProperties> {
  @key
  @path
  @segment("petInstances")
  @pattern("^[a-zA-Z0-9-]{3,24}$")
  @visibility(Lifecycle.Read)
  name: string;
}
```

#### Properties

| Name        | Type         | Description |
| ----------- | ------------ | ----------- |
| properties? | `Properties` |             |

### `ExtensionResourceActionScope` {#Azure.ResourceManager.ExtensionResourceActionScope}

Template used by ArmProviderAction templates. This produces following action route:
`/{resourceUri}/providers/Microsoft.SomeRP/someAction`

```typespec
model Azure.ResourceManager.ExtensionResourceActionScope
```

#### Properties

| Name | Type     | Description            |
| ---- | -------- | ---------------------- |
| name | `string` | Symbolic name of scope |

### `KeysOf` {#Azure.ResourceManager.KeysOf}

Extracts the key (path) parameters from a resource and its parents

```typespec
model Azure.ResourceManager.KeysOf<Resource>
```

#### Template Parameters

| Name     | Description                             |
| -------- | --------------------------------------- |
| Resource | The resource to extract properties from |

#### Properties

None

### `LocationParameter` {#Azure.ResourceManager.LocationParameter}

DEPRECATED - DO NOT USE
The default location parameter type.

```typespec
model Azure.ResourceManager.LocationParameter
```

#### Properties

| Name     | Type     | Description        |
| -------- | -------- | ------------------ |
| location | `string` | The location name. |

### `LocationResourceParameter` {#Azure.ResourceManager.LocationResourceParameter}

The default location parameter type.

```typespec
model Azure.ResourceManager.LocationResourceParameter
```

#### Properties

| Name     | Type                       | Description                   |
| -------- | -------------------------- | ----------------------------- |
| location | `Azure.Core.azureLocation` | The name of the Azure region. |

### `ManagedByProperty` {#Azure.ResourceManager.ManagedByProperty}

Model representing the standard `managedBy` envelope property for a resource.
Spread this model into a resource model if the resource is managed by another entity.

```typespec
model Azure.ResourceManager.ManagedByProperty
```

#### Examples

```typespec
model Foo is TrackedResource<FooProperties> {
  // Only have standard Succeeded, Failed, Cancelled states
  ...ManagedByProperty;
}
```

#### Properties

| Name       | Type     | Description                                                                                                                                                                                                                                                                                        |
| ---------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| managedBy? | `string` | The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. |

### `ManagedServiceIdentityProperty` {#Azure.ResourceManager.ManagedServiceIdentityProperty}

Model representing the standard `ManagedServiceIdentity` envelope property for a resource.
Spread this model into a resource model if the resource supports both system-assigned and user-assigned managed identities.

```typespec
model Azure.ResourceManager.ManagedServiceIdentityProperty
```

#### Examples

```typespec
model Foo is TrackedResource<FooProperties> {
  ...ResourceNameParameter<Foo>;
  ...ManagedServiceIdentityProperty;
}
```

#### Properties

| Name      | Type                                                                                                 | Description                                               |
| --------- | ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| identity? | [`ManagedServiceIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.ManagedServiceIdentity) | The managed service identities assigned to this resource. |

### `ManagedSystemAssignedIdentityProperty` {#Azure.ResourceManager.ManagedSystemAssignedIdentityProperty}

Model representing the standard `SystemAssignedServiceIdentity` envelope property for a resource.
Spread this model into a resource model if the resource supports system-assigned managed identities
but does not support user-assigned managed identities.

```typespec
model Azure.ResourceManager.ManagedSystemAssignedIdentityProperty
```

#### Examples

```typespec
model Foo is TrackedResource<FooProperties> {
  ...ResourceNameParameter<Foo>;
  ...ManagedSystemAssignedIdentityProperty;
}
```

#### Properties

| Name      | Type                                                                                                               | Description                                               |
| --------- | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------- |
| identity? | [`SystemAssignedServiceIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity) | The managed service identities assigned to this resource. |

### `ParentKeysOf` {#Azure.ResourceManager.ParentKeysOf}

Extracts the key (path) parameters from the parent(s) of the given resource

```typespec
model Azure.ResourceManager.ParentKeysOf<Resource>
```

#### Template Parameters

| Name     | Description                             |
| -------- | --------------------------------------- |
| Resource | The resource to extract properties from |

#### Properties

None

### `PrivateEndpointConnectionResource` {#Azure.ResourceManager.PrivateEndpointConnectionResource}

A private endpoint connection resource.
Resource providers must declare a private endpoint connection resource type in their provider namespace if
they support private endpoint connections

```typespec
model Azure.ResourceManager.PrivateEndpointConnectionResource<Description>
```

#### Template Parameters

| Name        | Description                                                                                       |
| ----------- | ------------------------------------------------------------------------------------------------- |
| Description | Optional. The documentary description of the private endpoint connection resource name parameter. |

#### Examples

```ts
namespace Microsoft.Contoso;
model PrivateEndpointConnection is PrivateEndpointConnectionResource {}
alias EmployeeConnectionOps is PrivateEndpoints<PrivateEndpointConnection>;
@armResourceOperations
interface Employees {
 @doc("get a private endpoint connection for resource employee")
 getPrivateEndpointConnection is EmployeeConnectionOps.Read<Employee>;
}
```

#### Properties

| Name        | Type                                                                                                                           | Description                                |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------ |
| properties? | [`PrivateEndpointConnectionProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties) | The private endpoint connection properties |

### `PrivateEndpointConnectionUpdate` {#Azure.ResourceManager.PrivateEndpointConnectionUpdate}

PATCH model for private endpoint connections

```typespec
model Azure.ResourceManager.PrivateEndpointConnectionUpdate
```

#### Properties

| Name        | Type                                                                                                              | Description                                |
| ----------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
| properties? | `OptionalProperties<UpdateableProperties<Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties>>` | The private endpoint connection properties |

### `PrivateLink` {#Azure.ResourceManager.PrivateLink}

A private link resource.
Resource providers must declare a private link resource type in their provider namespace if
they support private link resources

```typespec
model Azure.ResourceManager.PrivateLink<Description>
```

#### Template Parameters

| Name        | Description                                                                        |
| ----------- | ---------------------------------------------------------------------------------- |
| Description | Optional. The documentary description of the private link resource name parameter. |

#### Examples

```ts
namespace Microsoft.Contoso;
model PrivateLink is PrivateLinkResource {}
alias EmployeeConnectionOps is PrivateLinks<PrivateLink>;
@armResourceOperations
interface Employees {
 @doc("get a private endpoint connection for resource employee")
 getPrivateEndpointConnection is EmployeeConnectionOps.Read<Employee>;
}
```

#### Properties

| Name        | Type                                                                                                               | Description          |
| ----------- | ------------------------------------------------------------------------------------------------------------------ | -------------------- |
| properties? | [`PrivateLinkResourceProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkResourceProperties) | Resource properties. |

### `ProviderNamespace` {#Azure.ResourceManager.ProviderNamespace}

Model describing the provider namespace.

```typespec
model Azure.ResourceManager.ProviderNamespace<Resource>
```

#### Template Parameters

| Name     | Description                             |
| -------- | --------------------------------------- |
| Resource | The resource provided by the namespace. |

#### Properties

| Name     | Type                             | Description |
| -------- | -------------------------------- | ----------- |
| provider | `"Microsoft.ThisWillBeReplaced"` |             |

### `ProxyResource` {#Azure.ResourceManager.ProxyResource}

Concrete proxy resource types can be created by aliasing this type using a specific property type.

See more details on [different Azure Resource Manager resource type here.](https://azure.github.io/typespec-azure/docs/howtos/ARM/resource-type)

```typespec
model Azure.ResourceManager.ProxyResource<Properties, PropertiesOptional>
```

#### Template Parameters

| Name               | Description                                                                                                                                    |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Properties         | A model containing the provider-specific properties for this resource                                                                          |
| PropertiesOptional | A boolean flag indicating whether the resource `Properties` field is marked as optional or required. Default true is optional and recommended. |

#### Examples

```typespec
model Employee is ProxyResource<EmployeeProperties> {
  ...ResourceNameParameter<Employee>;
}
```

#### Properties

| Name        | Type         | Description |
| ----------- | ------------ | ----------- |
| properties? | `Properties` |             |

### `ResourceGroupLocationResource` {#Azure.ResourceManager.ResourceGroupLocationResource}

The location resource for resourceGroup-based locations. This can be used as a parent
resource for resource types that are homed in a resourceGroup-based location.

```typespec
model Azure.ResourceManager.ResourceGroupLocationResource
```

#### Properties

| Name     | Type                       | Description                   |
| -------- | -------------------------- | ----------------------------- |
| location | `Azure.Core.azureLocation` | The name of the Azure region. |

### `ResourceInstanceParameters` {#Azure.ResourceManager.ResourceInstanceParameters}

The dynamic parameters of a resource instance - pass in the proper base type to indicate
where the resource is based. The default is in a resource group

```typespec
model Azure.ResourceManager.ResourceInstanceParameters<Resource, BaseParameters, Provider>
```

#### Template Parameters

| Name           | Description                                              |
| -------------- | -------------------------------------------------------- |
| Resource       | The resource to get parameters for                       |
| BaseParameters | The parameters representing the base Uri of the resource |
| Provider       | Optional. The provider namespace model for the resource. |

#### Examples

```typespec
op get(...ResourceInstanceParameters<Employee>): ArmResponse<EmployeeResponse> | ErrorResponse;
```

#### Properties

None

### `ResourceKindProperty` {#Azure.ResourceManager.ResourceKindProperty}

Model representing the standard `kind` envelope property for a resource.
Spread this model into a resource model if the resource support ARM `kind`.

```typespec
model Azure.ResourceManager.ResourceKindProperty<Type>
```

#### Template Parameters

| Name | Description                                                                                        |
| ---- | -------------------------------------------------------------------------------------------------- |
| Type | The type of the kind property. Default is string. However you can pass a union with string values. |

#### Examples

```typespec
model Foo is TrackedResource<FooProperties> {
  // Only have standard Succeeded, Failed, Cancelled states
  ...ResourceKindProperty;
}
```

#### Properties

| Name  | Type   | Description |
| ----- | ------ | ----------- |
| kind? | `Type` |             |

### `ResourceListCustomResult` {#Azure.ResourceManager.ResourceListCustomResult}

Paged response containing custom result types.

```typespec
model Azure.ResourceManager.ResourceListCustomResult<Result>
```

#### Template Parameters

| Name   | Description                                           |
| ------ | ----------------------------------------------------- |
| Result | The type of the values returned in the paged response |

#### Properties

| Name      | Type             | Description                        |
| --------- | ---------------- | ---------------------------------- |
| value     | `Array<Element>` | The items on this page             |
| nextLink? | `string`         | The link to the next page of items |

### `ResourceListResult` {#Azure.ResourceManager.ResourceListResult}

Paged response containing resources

```typespec
model Azure.ResourceManager.ResourceListResult<Resource>
```

#### Template Parameters

| Name     | Description                                                                |
| -------- | -------------------------------------------------------------------------- |
| Resource | The type of the values returned in the paged response (must be a resource) |

#### Examples

```typespec
op list is ArmResourceActionSync<
  Resource = Employee,
  Request = void,
  Response = ResourceListResult<Employee>
>;
```

#### Properties

| Name      | Type                             | Description |
| --------- | -------------------------------- | ----------- |
| value     | `Array<Element>`                 |             |
| nextLink? | `TypeSpec.Rest.ResourceLocation` |             |

### `ResourceNameParameter` {#Azure.ResourceManager.ResourceNameParameter}

Spread this model into ARM resource models to specify resource name parameter for its operations. If `Resource` parameter
is specified, the resource name will be properly camel cased and pluralized for `@key` and `@segment`
automatically. You can also apply explicit override with `KeyName` and `SegmentName` template parameters.

For additional decorators such as `@minLength`, you can use either augment decorator on `[Resource].name` or passing in a scalar string type with decorators.

```typespec
model Azure.ResourceManager.ResourceNameParameter<Resource, KeyName, SegmentName, NamePattern, Type>
```

#### Template Parameters

| Name        | Description                                                                                              |
| ----------- | -------------------------------------------------------------------------------------------------------- |
| Resource    | The ARM resource this name parameter is applying to.                                                     |
| KeyName     | Override default key name of the resource.                                                               |
| SegmentName | Override default segment name of the resource.                                                           |
| NamePattern | The RegEx pattern of the name. Default is `^[a-zA-Z0-9-]{3,24}$`.                                        |
| Type        | The type of the name property. Default type is string. However you can pass an union with string values. |

#### Examples

```typespec
model Employee is TrackedResource<EmployeeProperties> {
  ...ResourceNameParameter<
    Resource = Employee,
    KeyName = "employeeName",
    SegmentName = "employees",
    NamePattern = "^[^<>%&:?#/\\\\]+$"
  >;
}
```

#### Properties

| Name | Type   | Description |
| ---- | ------ | ----------- |
| name | `Type` |             |

### `ResourceOperationOptions` {#Azure.ResourceManager.ResourceOperationOptions}

Interface-level operation options

```typespec
model Azure.ResourceManager.ResourceOperationOptions
```

#### Properties

| Name               | Type      | Description                                                                                                                                |
| ------------------ | --------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| resourceType?      | `Model`   | The resource type for the operations in the interface                                                                                      |
| allowStaticRoutes? | `boolean` | If true, turns off autoRoute for the interface, so individual operations can choose static (`@route`) or automatic (`@autoRoute`) routing. |
| omitTags?          | `boolean` | If true, turns off the default tagging of operations in the interface, so that individual operations must be individually tagged           |

### `ResourceParentParameters` {#Azure.ResourceManager.ResourceParentParameters}

The dynamic parameters of a list call for a resource instance - pass in the proper base type to indicate
where the list should take place. The default is in a resource group

```typespec
model Azure.ResourceManager.ResourceParentParameters<Resource, BaseParameters, Provider>
```

#### Template Parameters

| Name           | Description                                              |
| -------------- | -------------------------------------------------------- |
| Resource       | The resource to get parameters for                       |
| BaseParameters | The parameters representing the base Uri of the resource |
| Provider       | Optional. The provider namespace model for the resource. |

#### Properties

None

### `ResourcePlanProperty` {#Azure.ResourceManager.ResourcePlanProperty}

Model representing the standard `plan` envelope property for a resource.
Spread this model into a resource Model if the resource supports ARM `plan`.

```typespec
model Azure.ResourceManager.ResourcePlanProperty
```

#### Examples

```typespec
model Foo is TrackedResource<FooProperties> {
  // Only have standard Succeeded, Failed, Cancelled states
  ...ResourcePlanProperty;
}
```

#### Properties

| Name  | Type                                                             | Description                   |
| ----- | ---------------------------------------------------------------- | ----------------------------- |
| plan? | [`Plan`](./data-types.md#Azure.ResourceManager.CommonTypes.Plan) | Details of the resource plan. |

### `ResourceSkuProperty` {#Azure.ResourceManager.ResourceSkuProperty}

Model representing the standard `sku` envelope property for a resource.
Spread this model into a resource model if the resource supports standard ARM `sku`.

```typespec
model Azure.ResourceManager.ResourceSkuProperty
```

#### Examples

```typespec
model Foo is TrackedResource<FooProperties> {
  // Only have standard Succeeded, Failed, Cancelled states
  ...ResourceSkuProperty;
}
```

#### Properties

| Name | Type                                                           | Description                                             |
| ---- | -------------------------------------------------------------- | ------------------------------------------------------- |
| sku? | [`Sku`](./data-types.md#Azure.ResourceManager.CommonTypes.Sku) | The SKU (Stock Keeping Unit) assigned to this resource. |

### `ResourceUriParameter` {#Azure.ResourceManager.ResourceUriParameter}

The default resourceUri parameter type.

```typespec
model Azure.ResourceManager.ResourceUriParameter
```

#### Examples

```typespec
model Employee {
  ...ResourceUriParameter;
}
```

#### Properties

| Name        | Type     | Description                                                            |
| ----------- | -------- | ---------------------------------------------------------------------- |
| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. |

### `SkipTokenParameter` {#Azure.ResourceManager.SkipTokenParameter}

Standard list parameter $skiptoken, normally returned in the `nextLink` url of a page of items

```typespec
model Azure.ResourceManager.SkipTokenParameter
```

#### Properties

| Name      | Type     | Description                            |
| --------- | -------- | -------------------------------------- |
| skipToken | `string` | An opaque value to use for pagination. |

### `SubscriptionActionScope` {#Azure.ResourceManager.SubscriptionActionScope}

Template used by ArmProviderAction templates.

```typespec
model Azure.ResourceManager.SubscriptionActionScope
```

#### Examples

```typespec
op action is ArmProviderActionSync<Response = Employee, Scope = SubscriptionActionScope>;
```

#### Properties

| Name | Type     | Description            |
| ---- | -------- | ---------------------- |
| name | `string` | Symbolic name of scope |

### `SubscriptionLocationActionScope` {#Azure.ResourceManager.SubscriptionLocationActionScope}

Scope for operation status endpoints at the subscription level with a location path segment.
Use with `GetResourceOperationStatus` to produce:
`GET /subscriptions/{subscriptionId}/providers/{providerNamespace}/locations/{location}/operationStatuses/{operationId}`

```typespec
model Azure.ResourceManager.SubscriptionLocationActionScope
```

#### Examples

```typespec
op getStatus is GetResourceOperationStatus<ArmOperationStatus, SubscriptionLocationActionScope>;
```

#### Properties

| Name     | Type                       | Description                   |
| -------- | -------------------------- | ----------------------------- |
| location | `Azure.Core.azureLocation` | The name of the Azure region. |

### `SubscriptionLocationResource` {#Azure.ResourceManager.SubscriptionLocationResource}

The location resource for subscription-based locations. This can be used as a parent
resource for resource types that are homed in a subscription-based location.

```typespec
model Azure.ResourceManager.SubscriptionLocationResource
```

#### Examples

```typespec
@parentResource(SubscriptionLocationResource)
model Employee is TrackedResource<EmployeeProperties> {
  ...ResourceNameParameter<Employee>;
}
```

#### Properties

| Name     | Type                       | Description                   |
| -------- | -------------------------- | ----------------------------- |
| location | `Azure.Core.azureLocation` | The name of the Azure region. |

### `TenantActionScope` {#Azure.ResourceManager.TenantActionScope}

Template used by ArmTenantAction templates.

```typespec
model Azure.ResourceManager.TenantActionScope
```

#### Examples

```typespec
op action is ArmProviderActionSync<Response = Employee, Scope = TenantActionScope>;
```

#### Properties

| Name | Type     | Description            |
| ---- | -------- | ---------------------- |
| name | `string` | Symbolic name of scope |

### `TenantLocationActionScope` {#Azure.ResourceManager.TenantLocationActionScope}

Scope for operation status endpoints at the tenant level with a location path segment.
Use with `GetResourceOperationStatus` to produce:
`GET /providers/{providerNamespace}/locations/{location}/operationStatuses/{operationId}`

```typespec
model Azure.ResourceManager.TenantLocationActionScope
```

#### Examples

```typespec
op getStatus is GetResourceOperationStatus<ArmOperationStatus, TenantLocationActionScope>;
```

#### Properties

| Name     | Type                       | Description                   |
| -------- | -------------------------- | ----------------------------- |
| location | `Azure.Core.azureLocation` | The name of the Azure region. |

### `TenantLocationResource` {#Azure.ResourceManager.TenantLocationResource}

The location resource for tenant-based locations. This can be used as a parent
resource for resource types that are homed in a tenant-based location.

```typespec
model Azure.ResourceManager.TenantLocationResource
```

#### Examples

```typespec
@parentResource(TenantLocationResource)
model Employee is TrackedResource<EmployeeProperties> {
  ...ResourceNameParameter<Employee>;
}
```

#### Properties

| Name     | Type                       | Description                   |
| -------- | -------------------------- | ----------------------------- |
| location | `Azure.Core.azureLocation` | The name of the Azure region. |

### `TrackedResource` {#Azure.ResourceManager.TrackedResource}

Concrete tracked resource types can be created by aliasing this type using a specific property type.

See more details on [different Azure Resource Manager resource type here.](https://azure.github.io/typespec-azure/docs/howtos/ARM/resource-type)

```typespec
model Azure.ResourceManager.TrackedResource<Properties, PropertiesOptional>
```

#### Template Parameters

| Name               | Description                                                                                                                                    |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Properties         | A model containing the provider-specific properties for this resource                                                                          |
| PropertiesOptional | A boolean flag indicating whether the resource `Properties` field is marked as optional or required. Default true is optional and recommended. |

#### Examples

```typespec
model Employee is TrackedResource<EmployeeProperties> {
  ...ResourceNameParameter<Employee>;
}
```

#### Properties

| Name        | Type         | Description |
| ----------- | ------------ | ----------- |
| properties? | `Properties` |             |

### `ResourceProvisioningState` {#Azure.ResourceManager.ResourceProvisioningState}

Standard terminal provisioning state of resource type. You can include in your
custom provision state to avoid duplication and ensure consistency

```typespec
union Azure.ResourceManager.ResourceProvisioningState
```

#### Variants

| Name      | Type          | Description                     |
| --------- | ------------- | ------------------------------- |
| Succeeded | `"Succeeded"` | Resource has been created.      |
| Failed    | `"Failed"`    | Resource creation failed.       |
| Canceled  | `"Canceled"`  | Resource creation was canceled. |

#### Examples

```typespec
union FooProvisioningState {
  ResourceProvisioningState, // include standard provisioning states
  starting: "starting",
  started: "started",
  stopping: "stopping",
  stopped: "stopped",
}
```

## Azure.ResourceManager.BaseTypes

### `BaseTypeInfo` {#Azure.ResourceManager.BaseTypes.BaseTypeInfo}

An ARM-managed base type descriptor identifying the schema contract a resource conforms to.
Used as a parameter to the `@azureBaseType` decorator to indicate which
base types a resource conforms to.

```typespec
model Azure.ResourceManager.BaseTypes.BaseTypeInfo
```

#### Properties

| Name     | Type                                                                   | Description                          |
| -------- | ---------------------------------------------------------------------- | ------------------------------------ |
| baseType | [`BaseType`](./data-types.md#Azure.ResourceManager.BaseTypes.BaseType) | The base type identifier.            |
| version  | `string`                                                               | The schema version of the base type. |

### `BaseType` {#Azure.ResourceManager.BaseTypes.BaseType}

The set of Azure base types a resource may declare conformance to via the
`@azureBaseType` decorator. Modeled as an extensible (open) enum so additional
base types can be introduced without a breaking change.

```typespec
union Azure.ResourceManager.BaseTypes.BaseType
```

#### Variants

| Name         | Type             | Description                 |
| ------------ | ---------------- | --------------------------- |
| Agent        | `"Agent"`        | The Agent base type.        |
| Relationship | `"Relationship"` | The Relationship base type. |

## Azure.ResourceManager.BaseTypes.Agents

### `Agent` {#Azure.ResourceManager.BaseTypes.Agents.Agent}

Model template for an Agent tracked resource.
Applies the Agent base type decorator automatically.

```typespec
model Azure.ResourceManager.BaseTypes.Agents.Agent<Properties>
```

#### Template Parameters

| Name       | Description                                                        |
| ---------- | ------------------------------------------------------------------ |
| Properties | RP-specific properties for the agent (must extend AgentProperties) |

#### Properties

| Name        | Type         | Description |
| ----------- | ------------ | ----------- |
| properties? | `Properties` |             |

### `AgentConversation` {#Azure.ResourceManager.BaseTypes.Agents.AgentConversation}

Model template for a Conversation child resource of an Agent.

```typespec
model Azure.ResourceManager.BaseTypes.Agents.AgentConversation<Properties, AgentResource>
```

#### Template Parameters

| Name          | Description                                                                      |
| ------------- | -------------------------------------------------------------------------------- |
| Properties    | RP-specific properties for the conversation (must extend ConversationProperties) |
| AgentResource | The parent Agent resource type                                                   |

#### Properties

| Name        | Type         | Description |
| ----------- | ------------ | ----------- |
| properties? | `Properties` |             |

### `AgentDefinitionAppliance` {#Azure.ResourceManager.BaseTypes.Agents.AgentDefinitionAppliance}

Appliance deployment model of AgentDefinition.
Properties controlled by `@baseTypeOptional` are invisible when the corresponding
template parameter is false. When present, `instructions` is read-only while
`modelDeploymentRef` stays writable so the client can point the agent at a model deployment.

```typespec
model Azure.ResourceManager.BaseTypes.Agents.AgentDefinitionAppliance<HasModelDeploymentRef, HasInstructions>
```

#### Template Parameters

| Name                  | Description                                         |
| --------------------- | --------------------------------------------------- |
| HasModelDeploymentRef | Whether the modelDeploymentRef property is present. |
| HasInstructions       | Whether the instructions property is present.       |

#### Properties

| Name                | Type     | Description                                                                                           |
| ------------------- | -------- | ----------------------------------------------------------------------------------------------------- |
| model               | `string` | Model identifier (RP-defined).                                                                        |
| instructions        | `string` | System prompt / behavioral instructions for the agent.                                                |
| modelDeploymentRef? | `string` | Optional RP-specific reference to an underlying model deployment. Writable in both deployment models. |

### `AgentDefinitionPlatform` {#Azure.ResourceManager.BaseTypes.Agents.AgentDefinitionPlatform}

Platform deployment model of AgentDefinition.
Properties controlled by `@baseTypeOptional` are invisible when the corresponding
template parameter is false, or have default visibility when present.

```typespec
model Azure.ResourceManager.BaseTypes.Agents.AgentDefinitionPlatform<HasModelDeploymentRef, HasInstructions>
```

#### Template Parameters

| Name                  | Description                                         |
| --------------------- | --------------------------------------------------- |
| HasModelDeploymentRef | Whether the modelDeploymentRef property is present. |
| HasInstructions       | Whether the instructions property is present.       |

#### Properties

| Name                | Type     | Description                                                       |
| ------------------- | -------- | ----------------------------------------------------------------- |
| model               | `string` | Model identifier (RP-defined).                                    |
| instructions        | `string` | System prompt / behavioral instructions for the agent.            |
| modelDeploymentRef? | `string` | Optional RP-specific reference to an underlying model deployment. |

### `AgentPropertiesAppliance` {#Azure.ResourceManager.BaseTypes.Agents.AgentPropertiesAppliance}

Appliance deployment model of AgentProperties.
All properties are read-only (the appliance owns and reports state), except the `definition`
container itself: it stays writable so the client can send the fields the agent definition
marks as writable, such as `modelDeploymentRef`. Every service-owned field inside the
definition remains read-only.

```typespec
model Azure.ResourceManager.BaseTypes.Agents.AgentPropertiesAppliance<AgentDefinitionType>
```

#### Template Parameters

| Name                | Description                                                            |
| ------------------- | ---------------------------------------------------------------------- |
| AgentDefinitionType | The user-defined agent definition model (must extend AgentDefinition). |

#### Properties

| Name        | Type                                                              | Description                                                                                                                |
| ----------- | ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| baseTypes   | `Azure.ResourceManager.BaseTypes.BaseTypeInfo[]`                  | ARM-managed. Must include the base type descriptor for this resource.                                                      |
| displayName | `string`                                                          | Human-friendly name.                                                                                                       |
| description | `string`                                                          | Purpose/behavior summary.                                                                                                  |
| definition  | `AgentDefinitionType`                                             | Inline agent definition. The container is writable so the client can set the definition fields that are not service-owned. |
| tools?      | `Azure.ResourceManager.BaseTypes.Agents.AgentToolTypeAppliance[]` | Tool bindings. Read-only in the Appliance deployment model.                                                                |

### `AgentPropertiesPlatform` {#Azure.ResourceManager.BaseTypes.Agents.AgentPropertiesPlatform}

Platform deployment model of AgentProperties.
Properties have default visibility (the client owns these fields).
baseTypes remains ARM-managed and read-only.

```typespec
model Azure.ResourceManager.BaseTypes.Agents.AgentPropertiesPlatform<AgentDefinitionType>
```

#### Template Parameters

| Name                | Description                                                            |
| ------------------- | ---------------------------------------------------------------------- |
| AgentDefinitionType | The user-defined agent definition model (must extend AgentDefinition). |

#### Properties

| Name        | Type                                                             | Description                                                           |
| ----------- | ---------------------------------------------------------------- | --------------------------------------------------------------------- |
| baseTypes   | `Azure.ResourceManager.BaseTypes.BaseTypeInfo[]`                 | ARM-managed. Must include the base type descriptor for this resource. |
| displayName | `string`                                                         | Human-friendly name.                                                  |
| description | `string`                                                         | Purpose/behavior summary.                                             |
| definition  | `AgentDefinitionType`                                            | Inline agent definition.                                              |
| tools?      | `Azure.ResourceManager.BaseTypes.Agents.AgentToolTypePlatform[]` | Tool bindings. Writable in the Platform deployment model.             |

### `AgentResponse` {#Azure.ResourceManager.BaseTypes.Agents.AgentResponse}

Model template for a Response child resource of an Agent.

```typespec
model Azure.ResourceManager.BaseTypes.Agents.AgentResponse<Properties, AgentResource>
```

#### Template Parameters

| Name          | Description                                                              |
| ------------- | ------------------------------------------------------------------------ |
| Properties    | RP-specific properties for the response (must extend ResponseProperties) |
| AgentResource | The parent Agent resource type                                           |

#### Properties

| Name        | Type         | Description |
| ----------- | ------------ | ----------- |
| properties? | `Properties` |             |

### `AgentToolTypeAppliance` {#Azure.ResourceManager.BaseTypes.Agents.AgentToolTypeAppliance}

A tool binding for an agent (Appliance deployment model).
All properties are read-only (the appliance owns and reports state).

```typespec
model Azure.ResourceManager.BaseTypes.Agents.AgentToolTypeAppliance
```

#### Properties

| Name | Type     | Description                                                                                  |
| ---- | -------- | -------------------------------------------------------------------------------------------- |
| type | `string` | Tool type discriminator. Must be one of the publicly documented Azure AI Foundry tool types. |
| name | `string` | Tool name/identifier.                                                                        |

### `AgentToolTypePlatform` {#Azure.ResourceManager.BaseTypes.Agents.AgentToolTypePlatform}

A tool binding for an agent (Platform deployment model).
All properties have default visibility (the client owns these fields).

```typespec
model Azure.ResourceManager.BaseTypes.Agents.AgentToolTypePlatform
```

#### Properties

| Name | Type     | Description                                                                                  |
| ---- | -------- | -------------------------------------------------------------------------------------------- |
| type | `string` | Tool type discriminator. Must be one of the publicly documented Azure AI Foundry tool types. |
| name | `string` | Tool name/identifier.                                                                        |

### `ConversationProperties` {#Azure.ResourceManager.BaseTypes.Agents.ConversationProperties}

Properties for a conversation resource holding the items and metadata
exchanged between a client and an agent.

```typespec
model Azure.ResourceManager.BaseTypes.Agents.ConversationProperties
```

#### Properties

| Name       | Type                                                                            | Description                                                |
| ---------- | ------------------------------------------------------------------------------- | ---------------------------------------------------------- |
| createdAt? | `utcDateTime`                                                                   | Timestamp of when the conversation was created. Read-only. |
| input      | [`InputItem`](./data-types.md#Azure.ResourceManager.BaseTypes.Agents.InputItem) | Content input to the conversation. Required on create.     |

### `InputItem` {#Azure.ResourceManager.BaseTypes.Agents.InputItem}

A single item exchanged within a conversation.

The `type` discriminator selects the item variant. Only the fields relevant to
that variant are populated, so all variant-specific fields are optional:

- `Message`: `role`, `content`
- `FunctionCall`: `callId`, `name`, `arguments`
- `FunctionCallOutput`: `callId`, `output`
- `Compaction`: `summary`

```typespec
model Azure.ResourceManager.BaseTypes.Agents.InputItem
```

#### Properties

| Name       | Type                                                                                      | Description                                                                                                       |
| ---------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| id?        | `string`                                                                                  | Unique identifier of the item. Read-only (assigned by the service).                                               |
| type       | [`ItemType`](./data-types.md#Azure.ResourceManager.BaseTypes.Agents.ItemType)             | The item type discriminator. Determines which variant this item represents.                                       |
| role?      | [`MessageRole`](./data-types.md#Azure.ResourceManager.BaseTypes.Agents.MessageRole)       | The role of the message author. Applies to `Message` items. Read-only.                                            |
| content?   | `Record<unknown>`                                                                         | The content of the message. Applies to `Message` items.                                                           |
| callId?    | `string`                                                                                  | Identifier correlating a function call with its output. Applies to `FunctionCall` and `FunctionCallOutput` items. |
| name?      | `string`                                                                                  | The name of the function (tool) to invoke. Applies to `FunctionCall` items.                                       |
| arguments? | `Record<unknown>`                                                                         | Named arguments passed to the function (tool), keyed by parameter name. Applies to `FunctionCall` items.          |
| output?    | `string`                                                                                  | The output produced by the function (tool) call. Applies to `FunctionCallOutput` items.                           |
| summary?   | `string`                                                                                  | Summary of the compacted conversation history. Applies to `Compaction` items.                                     |
| status?    | [`ResponseStatus`](./data-types.md#Azure.ResourceManager.BaseTypes.Agents.ResponseStatus) | The status of the item. Read-only.                                                                                |

### `PreviousResponseProperty` {#Azure.ResourceManager.BaseTypes.Agents.PreviousResponseProperty}

Mix-in for the previousResponseId property.

```typespec
model Azure.ResourceManager.BaseTypes.Agents.PreviousResponseProperty
```

#### Properties

| Name                | Type     | Description                                                            |
| ------------------- | -------- | ---------------------------------------------------------------------- |
| previousResponseId? | `string` | ID of a previous response for multi-turn chaining. Writable on create. |

### `ResponseInstructionsProperty` {#Azure.ResourceManager.BaseTypes.Agents.ResponseInstructionsProperty}

Mix-in for response instructions.

```typespec
model Azure.ResourceManager.BaseTypes.Agents.ResponseInstructionsProperty
```

#### Properties

| Name          | Type     | Description                                                                                                             |
| ------------- | -------- | ----------------------------------------------------------------------------------------------------------------------- |
| instructions? | `string` | System/developer message for this response. Writable on create; overrides agent-level instructions for this invocation. |

### `ResponseItem` {#Azure.ResourceManager.BaseTypes.Agents.ResponseItem}

An item produced in the response output, such as a message or tool call.

The `type` discriminator selects the item variant. Only the fields relevant to
that variant are populated, so all variant-specific fields are optional:

- `Message`: `role`, `content`
- `FunctionCall`: `callId`, `name`, `arguments`
- `FunctionCallOutput`: `callId`, `output`
- `Compaction`: `summary`

```typespec
model Azure.ResourceManager.BaseTypes.Agents.ResponseItem
```

#### Properties

| Name       | Type                                                                                      | Description                                                                                                                  |
| ---------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| id?        | `string`                                                                                  | Unique identifier of the output item. Read-only.                                                                             |
| type?      | [`ItemType`](./data-types.md#Azure.ResourceManager.BaseTypes.Agents.ItemType)             | The item type discriminator. Read-only.                                                                                      |
| role?      | [`MessageRole`](./data-types.md#Azure.ResourceManager.BaseTypes.Agents.MessageRole)       | The role of the message author. Applies to `Message` items. Read-only.                                                       |
| content?   | `Record<unknown>`                                                                         | The content of the message. Applies to `Message` items. Read-only.                                                           |
| callId?    | `string`                                                                                  | Identifier correlating a function call with its output. Applies to `FunctionCall` and `FunctionCallOutput` items. Read-only. |
| name?      | `string`                                                                                  | The name of the function (tool) invoked. Applies to `FunctionCall` items. Read-only.                                         |
| arguments? | `Record<unknown>`                                                                         | Named arguments passed to the function (tool), keyed by parameter name. Applies to `FunctionCall` items. Read-only.          |
| output?    | `string`                                                                                  | The output produced by the function (tool) call. Applies to `FunctionCallOutput` items. Read-only.                           |
| summary?   | `string`                                                                                  | Summary of the compacted conversation history. Applies to `Compaction` items. Read-only.                                     |
| status?    | [`ResponseStatus`](./data-types.md#Azure.ResourceManager.BaseTypes.Agents.ResponseStatus) | The status of the output item. Read-only.                                                                                    |

### `ResponseOutputProperty` {#Azure.ResourceManager.BaseTypes.Agents.ResponseOutputProperty}

Mix-in for the output property.

```typespec
model Azure.ResourceManager.BaseTypes.Agents.ResponseOutputProperty
```

#### Properties

| Name   | Type                                                    | Description                                           |
| ------ | ------------------------------------------------------- | ----------------------------------------------------- |
| output | `Azure.ResourceManager.BaseTypes.Agents.ResponseItem[]` | Output items (messages, tool calls, etc.). Read-only. |

### `ResponseProperties` {#Azure.ResourceManager.BaseTypes.Agents.ResponseProperties}

Properties for a response generated by an agent for a given input,
including its output, status, and usage.

```typespec
model Azure.ResourceManager.BaseTypes.Agents.ResponseProperties
```

#### Properties

| Name       | Type                                                                                      | Description                                                                                                          |
| ---------- | ----------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| createdAt? | `utcDateTime`                                                                             | Timestamp of when the response was created. Read-only.                                                               |
| model?     | `string`                                                                                  | Model ID used to generate the response. May be specified on request to override the agent default; read-only in GET. |
| status?    | [`ResponseStatus`](./data-types.md#Azure.ResourceManager.BaseTypes.Agents.ResponseStatus) | The status of the response. Read-only.                                                                               |
| input      | [`InputItem`](./data-types.md#Azure.ResourceManager.BaseTypes.Agents.InputItem)           | Content input to the model. Required on create.                                                                      |

### `ItemType` {#Azure.ResourceManager.BaseTypes.Agents.ItemType}

The type of an item exchanged within a conversation or produced in a response.

```typespec
enum Azure.ResourceManager.BaseTypes.Agents.ItemType
```

| Name               | Value | Description                                                  |
| ------------------ | ----- | ------------------------------------------------------------ |
| Message            |       | A message authored by a developer, user, assistant, or tool. |
| FunctionCall       |       | A function (tool) call requested by the model.               |
| FunctionCallOutput |       | The output produced by a function (tool) call.               |
| Compaction         |       | A compaction item summarizing earlier conversation history.  |

### `MessageRole` {#Azure.ResourceManager.BaseTypes.Agents.MessageRole}

The role of the author of a message item.

```typespec
enum Azure.ResourceManager.BaseTypes.Agents.MessageRole
```

| Name      | Value | Description                                   |
| --------- | ----- | --------------------------------------------- |
| Developer |       | A developer-authored instruction message.     |
| User      |       | A message authored by the end user.           |
| Assistant |       | A message generated by the assistant (agent). |
| Tool      |       | A message representing the output of a tool.  |

### `ResponseStatus` {#Azure.ResourceManager.BaseTypes.Agents.ResponseStatus}

The status of a response.

```typespec
union Azure.ResourceManager.BaseTypes.Agents.ResponseStatus
```

#### Variants

| Name       | Type           | Description                           |
| ---------- | -------------- | ------------------------------------- |
| Completed  | `"Completed"`  | The response completed successfully.  |
| Failed     | `"Failed"`     | The response failed.                  |
| Cancelled  | `"Cancelled"`  | The response was cancelled.           |
| Incomplete | `"Incomplete"` | The response is incomplete.           |
| Queued     | `"Queued"`     | The response is queued for execution. |
| InProgress | `"InProgress"` | The response is in progress.          |

## Azure.ResourceManager.BaseTypes.Relationships

### `Relationship` {#Azure.ResourceManager.BaseTypes.Relationships.Relationship}

Model template for a Relationship extension resource.
Applies the Relationship base type decorator automatically.

```typespec
model Azure.ResourceManager.BaseTypes.Relationships.Relationship<Properties>
```

#### Template Parameters

| Name       | Description                                                                      |
| ---------- | -------------------------------------------------------------------------------- |
| Properties | RP-specific properties for the relationship (must extend RelationshipProperties) |

#### Properties

| Name        | Type         | Description |
| ----------- | ------------ | ----------- |
| properties? | `Properties` |             |

### `RelationshipProperties` {#Azure.ResourceManager.BaseTypes.Relationships.RelationshipProperties}

Required properties for a relationship resource.

```typespec
model Azure.ResourceManager.BaseTypes.Relationships.RelationshipProperties<ProvisioningState>
```

#### Template Parameters

| Name              | Description                                 |
| ----------------- | ------------------------------------------- |
| ProvisioningState | The relationship provisioning state values. |

#### Properties

| Name               | Type                                             | Description                                                           |
| ------------------ | ------------------------------------------------ | --------------------------------------------------------------------- |
| baseTypes          | `Azure.ResourceManager.BaseTypes.BaseTypeInfo[]` | ARM-managed. Must include the base type descriptor for this resource. |
| sourceId           | `string`                                         | The relationship source identifier.                                   |
| sourceTenant       | `string`                                         | The tenant identifier of the relationship source.                     |
| targetId           | `string`                                         | The relationship target identifier.                                   |
| targetTenant       | `string`                                         | The tenant identifier of the relationship target.                     |
| provisioningState? | `ProvisioningState`                              | The provisioning state of the relationship.                           |

## Azure.ResourceManager.CommonTypes

### `AccessRule` {#Azure.ResourceManager.CommonTypes.AccessRule}

Access rule in a network security perimeter configuration profile

```typespec
model Azure.ResourceManager.CommonTypes.AccessRule
```

#### Properties

| Name        | Type                                                                                             | Description                   |
| ----------- | ------------------------------------------------------------------------------------------------ | ----------------------------- |
| name?       | `string`                                                                                         | Name of the access rule       |
| properties? | [`AccessRuleProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.AccessRuleProperties) | Properties of the access rule |

### `AccessRuleProperties` {#Azure.ResourceManager.CommonTypes.AccessRuleProperties}

Properties of Access Rule

```typespec
model Azure.ResourceManager.CommonTypes.AccessRuleProperties
```

#### Properties

| Name                       | Type                                                                                           | Description                                            |
| -------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| direction?                 | [`AccessRuleDirection`](./data-types.md#Azure.ResourceManager.CommonTypes.AccessRuleDirection) | Direction of the access rule                           |
| addressPrefixes?           | `string[]`                                                                                     | Address prefixes in the CIDR format for inbound rules  |
| subscriptions?             | `Azure.ResourceManager.CommonTypes.{ id: Azure.Core.armResourceIdentifier }[]`                 | Subscriptions for inbound rules                        |
| networkSecurityPerimeters? | `Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeter[]`                                 | Network security perimeters for inbound rules          |
| fullyQualifiedDomainNames? | `string[]`                                                                                     | Fully qualified domain names (FQDN) for outbound rules |
| emailAddresses?            | `string[]`                                                                                     | Email addresses for outbound rules                     |
| phoneNumbers?              | `string[]`                                                                                     | Phone numbers for outbound rules                       |

### `ApiVersionParameter` {#Azure.ResourceManager.CommonTypes.ApiVersionParameter}

The default api-version parameter type.

```typespec
model Azure.ResourceManager.CommonTypes.ApiVersionParameter
```

#### Examples

```typespec
model Employee is TrackedResource<EmployeeProperties> {
  ...ResourceNameParameter<Employee>;
}
```

#### Properties

| Name       | Type     | Description                                |
| ---------- | -------- | ------------------------------------------ |
| apiVersion | `string` | The API version to use for this operation. |

### `AzureEntityResource` {#Azure.ResourceManager.CommonTypes.AzureEntityResource}

The resource model definition for an Azure Resource Manager resource with an etag.

```typespec
model Azure.ResourceManager.CommonTypes.AzureEntityResource
```

#### Properties

| Name  | Type     | Description    |
| ----- | -------- | -------------- |
| etag? | `string` | Resource Etag. |

### `BillingData` {#Azure.ResourceManager.CommonTypes.BillingData}

Billing Data

```typespec
model Azure.ResourceManager.CommonTypes.BillingData
```

#### Properties

| Name          | Type                                                                                   | Description                                                                          |
| ------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| systemId?     | `Azure.Core.uuid`                                                                      | The system ID of the resource. Globally unique per cloud.                            |
| state?        | [`BillingState`](./data-types.md#Azure.ResourceManager.CommonTypes.BillingState)       | Indicates the billing state of the resource.                                         |
| reasons?      | `Azure.ResourceManager.CommonTypes.BillingStateReason[]`                               | Indicates reason(s) for the current billing state of the resource.                   |
| productCode   | `Azure.Core.uuid`                                                                      | The product identifier referencing a product in the catalog.                         |
| productToken? | `string`                                                                               | Product token (JWT) identifying a specific version of the product.                   |
| quantity      | `int64`                                                                                | The number of instances of the product.                                              |
| startDate?    | `utcDateTime`                                                                          | Start date indicating the beginning of the term for which the resource is committed. |
| endDate?      | `utcDateTime`                                                                          | End date indicating the end of the term for which the resource is committed.         |
| billingToken? | `string`                                                                               | Billing token (JWT) representing additional billing context.                         |
| schedule?     | [`BillingSchedule`](./data-types.md#Azure.ResourceManager.CommonTypes.BillingSchedule) | The resource's billing schedule.                                                     |

### `BillingSchedule` {#Azure.ResourceManager.CommonTypes.BillingSchedule}

Billing schedule.

```typespec
model Azure.ResourceManager.CommonTypes.BillingSchedule
```

#### Properties

| Name     | Type                                                                                         | Description                                      |
| -------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| renewal  | [`BillingRenewalType`](./data-types.md#Azure.ResourceManager.CommonTypes.BillingRenewalType) | Indicates the renewal behavior of this resource. |
| changes? | `Azure.ResourceManager.CommonTypes.BillingScheduleChange[]`                                  | Schedules billing changes for this resource.     |

### `BillingScheduleChange` {#Azure.ResourceManager.CommonTypes.BillingScheduleChange}

Billing schedule change.

```typespec
model Azure.ResourceManager.CommonTypes.BillingScheduleChange
```

#### Properties

| Name           | Type                                                                                                                         | Description                                                                                                                                                                                                                   |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| effective      | [`BillingScheduleChangeEffectiveType`](./data-types.md#Azure.ResourceManager.CommonTypes.BillingScheduleChangeEffectiveType) | Indicates when the change is expected to become effective.                                                                                                                                                                    |
| effectiveDate? | `utcDateTime`                                                                                                                | The absolute date when the change is expected to become effective. Required when `effective` = `AbsoluteDate`.                                                                                                                |
| kind           | [`BillingScheduleChangeKind`](./data-types.md#Azure.ResourceManager.CommonTypes.BillingScheduleChangeKind)                   | The kind of change.                                                                                                                                                                                                           |
| productCode?   | `Azure.Core.uuid`                                                                                                            | The new product identifier. When not specified, the resource's product code remains unchanged.                                                                                                                                |
| productToken?  | `string`                                                                                                                     | Product token (JWT) identifying a specific version of the scheduled product. Can only be<br />specified when productCode is specified also.                                                                                   |
| quantity?      | `int64`                                                                                                                      | The new number of instances of the product. When not specified, the resource's quantity remains unchanged.                                                                                                                    |
| endDate?       | `utcDateTime`                                                                                                                | The new (coterminous) end date of the product. Can only be specified when effective = renewal.<br />When not specified, the resource's end date is calculated based on the renewal date and the<br />product's term duration. |
| billingToken?  | `string`                                                                                                                     | Billing token (JWT) representing additional billing context.                                                                                                                                                                  |

### `CheckNameAvailabilityRequest` {#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityRequest}

The check availability request body.

```typespec
model Azure.ResourceManager.CommonTypes.CheckNameAvailabilityRequest
```

#### Properties

| Name  | Type     | Description                                                          |
| ----- | -------- | -------------------------------------------------------------------- |
| name? | `string` | The name of the resource for which availability needs to be checked. |
| type? | `string` | The resource type.                                                   |

### `CheckNameAvailabilityResponse` {#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityResponse}

The check availability result.

```typespec
model Azure.ResourceManager.CommonTypes.CheckNameAvailabilityResponse
```

#### Properties

| Name           | Type                                                                                                           | Description                                          |
| -------------- | -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| nameAvailable? | `boolean`                                                                                                      | Indicates if the resource name is available.         |
| reason?        | [`CheckNameAvailabilityReason`](./data-types.md#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityReason) | The reason why the given name is not available.      |
| message?       | `string`                                                                                                       | Detailed reason why the given name is not available. |

### `CustomerManagedKeyEncryption` {#Azure.ResourceManager.CommonTypes.CustomerManagedKeyEncryption}

Customer-managed key encryption properties for the resource.

```typespec
model Azure.ResourceManager.CommonTypes.CustomerManagedKeyEncryption
```

#### Properties

| Name                      | Type                                                                                                     | Description                                                                                                                                                                                            |
| ------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| keyEncryptionKeyIdentity? | [`KeyEncryptionKeyIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentity) | All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault.                                                                              |
| keyEncryptionKeyUrl?      | `string`                                                                                                 | key encryption key Url, versioned or non-versioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek. |

### `DelegatedResource` {#Azure.ResourceManager.CommonTypes.DelegatedResource}

Delegated resource properties - internal use only.

```typespec
model Azure.ResourceManager.CommonTypes.DelegatedResource
```

#### Properties

| Name              | Type              | Description                                                                  |
| ----------------- | ----------------- | ---------------------------------------------------------------------------- |
| resourceId?       | `string`          | The ARM resource id of the delegated resource - internal use only.           |
| tenantId?         | `Azure.Core.uuid` | The tenant id of the delegated resource - internal use only.                 |
| referralResource? | `string`          | The delegation id of the referral delegation (optional) - internal use only. |
| location?         | `string`          | The source resource location - internal use only.                            |

### `DelegatedResources` {#Azure.ResourceManager.CommonTypes.DelegatedResources}

The set of delegated resources. The delegated resources dictionary keys will be source resource internal ids - internal use only.

```typespec
model Azure.ResourceManager.CommonTypes.DelegatedResources
```

#### Properties

| Name | Type                                                                                       | Description           |
| ---- | ------------------------------------------------------------------------------------------ | --------------------- |
|      | [`DelegatedResource`](./data-types.md#Azure.ResourceManager.CommonTypes.DelegatedResource) | Additional properties |

### `Encryption` {#Azure.ResourceManager.CommonTypes.Encryption}

(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled.

```typespec
model Azure.ResourceManager.CommonTypes.Encryption
```

#### Properties

| Name                          | Type                                                                                                             | Description                                                      |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| infrastructureEncryption?     | [`InfrastructureEncryption`](./data-types.md#Azure.ResourceManager.CommonTypes.InfrastructureEncryption)         | Values are enabled and disabled.                                 |
| customerManagedKeyEncryption? | [`CustomerManagedKeyEncryption`](./data-types.md#Azure.ResourceManager.CommonTypes.CustomerManagedKeyEncryption) | All Customer-managed key encryption properties for the resource. |

### `EncryptionProperties` {#Azure.ResourceManager.CommonTypes.EncryptionProperties}

Configuration of key for data encryption

```typespec
model Azure.ResourceManager.CommonTypes.EncryptionProperties
```

#### Properties

| Name                | Type                                                                                         | Description                                                                |
| ------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| status?             | [`EncryptionStatus`](./data-types.md#Azure.ResourceManager.CommonTypes.EncryptionStatus)     | Indicates whether or not the encryption is enabled for container registry. |
| keyVaultProperties? | [`KeyVaultProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.KeyVaultProperties) | Key vault properties.                                                      |

### `ErrorAdditionalInfo` {#Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo}

The resource management error additional info.

```typespec
model Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo
```

#### Properties

| Name  | Type      | Description               |
| ----- | --------- | ------------------------- |
| type? | `string`  | The additional info type. |
| info? | `unknown` | The additional info.      |

### `ErrorDetail` {#Azure.ResourceManager.CommonTypes.ErrorDetail}

The error detail.

```typespec
model Azure.ResourceManager.CommonTypes.ErrorDetail
```

#### Properties

| Name            | Type                                                      | Description                |
| --------------- | --------------------------------------------------------- | -------------------------- |
| code?           | `string`                                                  | The error code.            |
| message?        | `string`                                                  | The error message.         |
| target?         | `string`                                                  | The error target.          |
| details?        | `Azure.ResourceManager.CommonTypes.ErrorDetail[]`         | The error details.         |
| additionalInfo? | `Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo[]` | The error additional info. |

### `ErrorResponse` {#Azure.ResourceManager.CommonTypes.ErrorResponse}

Common error response for all Azure Resource Manager APIs to return error details for failed operations.

```typespec
model Azure.ResourceManager.CommonTypes.ErrorResponse
```

#### Properties

| Name   | Type                                                                           | Description       |
| ------ | ------------------------------------------------------------------------------ | ----------------- |
| error? | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorDetail) | The error object. |

### `ExtendedLocation` {#Azure.ResourceManager.CommonTypes.ExtendedLocation}

The complex type of the extended location.

```typespec
model Azure.ResourceManager.CommonTypes.ExtendedLocation
```

#### Properties

| Name | Type                                                                                             | Description                        |
| ---- | ------------------------------------------------------------------------------------------------ | ---------------------------------- |
| name | `string`                                                                                         | The name of the extended location. |
| type | [`ExtendedLocationType`](./data-types.md#Azure.ResourceManager.CommonTypes.ExtendedLocationType) | The type of the extended location. |

### `ExtensionResource` {#Azure.ResourceManager.CommonTypes.ExtensionResource}

The base extension resource.

```typespec
model Azure.ResourceManager.CommonTypes.ExtensionResource
```

#### Properties

None

### `Identity` {#Azure.ResourceManager.CommonTypes.Identity}

Identity for the resource.

```typespec
model Azure.ResourceManager.CommonTypes.Identity
```

#### Properties

| Name         | Type                                                                                             | Description                                                       |
| ------------ | ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------- |
| principalId? | `Azure.Core.uuid`                                                                                | The principal ID of resource identity. The value must be an UUID. |
| tenantId?    | `Azure.Core.uuid`                                                                                | The tenant ID of resource. The value must be an UUID.             |
| type?        | [`ResourceIdentityType`](./data-types.md#Azure.ResourceManager.CommonTypes.ResourceIdentityType) | The identity type.                                                |

### `IfMatchHeader` {#Azure.ResourceManager.CommonTypes.IfMatchHeader}

The default ARM If-Match header type.

```typespec
model Azure.ResourceManager.CommonTypes.IfMatchHeader
```

#### Properties

| Name    | Type     | Description                                           |
| ------- | -------- | ----------------------------------------------------- |
| ifMatch | `string` | The If-Match header that makes a request conditional. |

### `IfNoneMatchHeader` {#Azure.ResourceManager.CommonTypes.IfNoneMatchHeader}

The default ARM If-None-Match header type.

```typespec
model Azure.ResourceManager.CommonTypes.IfNoneMatchHeader
```

#### Properties

| Name        | Type     | Description                                                |
| ----------- | -------- | ---------------------------------------------------------- |
| ifNoneMatch | `string` | The If-None-Match header that makes a request conditional. |

### `KeyEncryptionKeyIdentity` {#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentity}

All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault.

```typespec
model Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentity
```

#### Properties

| Name                            | Type                                                                                                             | Description                                                                                                                                                                                                                                                                                                                        |
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| identityType?                   | [`KeyEncryptionKeyIdentityType`](./data-types.md#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentityType) | The type of identity to use. Values can be systemAssignedIdentity, userAssignedIdentity, or delegatedResourceIdentity.                                                                                                                                                                                                             |
| userAssignedIdentityResourceId? | `Azure.Core.armResourceIdentifier`                                                                               | User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity.                                          |
| federatedClientId?              | `Azure.Core.uuid`                                                                                                | application client identity to use for accessing key encryption key Url in a different tenant. Ex: f83c6b1b-4d34-47e4-bb34-9d83df58b540                                                                                                                                                                                            |
| delegatedIdentityClientId?      | `Azure.Core.uuid`                                                                                                | delegated identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal use only. |

### `KeyVaultProperties` {#Azure.ResourceManager.CommonTypes.KeyVaultProperties}

Properties of a KeyVault

```typespec
model Azure.ResourceManager.CommonTypes.KeyVaultProperties
```

#### Properties

| Name           | Type     | Description                                                           |
| -------------- | -------- | --------------------------------------------------------------------- |
| keyIdentifier? | `string` | Key vault uri to access the encryption key.                           |
| identity?      | `string` | The client ID of the identity which will be used to access key vault. |

### `LocationData` {#Azure.ResourceManager.CommonTypes.LocationData}

Metadata pertaining to the geographic location of the resource.

```typespec
model Azure.ResourceManager.CommonTypes.LocationData
```

#### Properties

| Name             | Type     | Description                                                     |
| ---------------- | -------- | --------------------------------------------------------------- |
| name             | `string` | A canonical name for the geographic or physical location.       |
| city?            | `string` | The city or locality where the resource is located.             |
| district?        | `string` | The district, state, or province where the resource is located. |
| countryOrRegion? | `string` | The country or region where the resource is located             |

### `LocationParameter` {#Azure.ResourceManager.CommonTypes.LocationParameter}

The default location parameter type.

```typespec
model Azure.ResourceManager.CommonTypes.LocationParameter
```

#### Examples

```typespec
op employee is ArmProviderActionSync<
  Request = Employee,
  Response = Employee,
  Scope = SubscriptionActionScope,
  Parameters = LocationParameter
>;
```

#### Properties

| Name     | Type     | Description               |
| -------- | -------- | ------------------------- |
| location | `string` | The name of Azure region. |

### `ManagedOnBehalfOfConfiguration` {#Azure.ResourceManager.CommonTypes.ManagedOnBehalfOfConfiguration}

Managed-On-Behalf-Of configuration properties. This configuration exists for the resources where a resource provider manages those resources on behalf of the resource owner.

```typespec
model Azure.ResourceManager.CommonTypes.ManagedOnBehalfOfConfiguration
```

#### Properties

| Name                 | Type                                                     | Description                           |
| -------------------- | -------------------------------------------------------- | ------------------------------------- |
| moboBrokerResources? | `Azure.ResourceManager.CommonTypes.MoboBrokerResource[]` | Managed-On-Behalf-Of broker resources |

### `ManagedServiceIdentity` {#Azure.ResourceManager.CommonTypes.ManagedServiceIdentity}

Managed service identity (system assigned and/or user assigned identities)

```typespec
model Azure.ResourceManager.CommonTypes.ManagedServiceIdentity
```

#### Properties

| Name                    | Type                                                                                                         | Description                                                                                                                   |
| ----------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- |
| principalId?            | `Azure.Core.uuid`                                                                                            | The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. |
| tenantId?               | `Azure.Core.uuid`                                                                                            | The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.            |
| type                    | [`ManagedServiceIdentityType`](./data-types.md#Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType) | The type of managed identity assigned to this resource.                                                                       |
| userAssignedIdentities? | `Record<Azure.ResourceManager.CommonTypes.UserAssignedIdentity \| null>`                                     | The identities assigned to this resource by the user.                                                                         |

### `ManagedServiceIdentityWithDelegation` {#Azure.ResourceManager.CommonTypes.ManagedServiceIdentityWithDelegation}

Managed service identity (system assigned and/or user assigned identities and/or delegated identities) - internal use only.

```typespec
model Azure.ResourceManager.CommonTypes.ManagedServiceIdentityWithDelegation
```

#### Properties

| Name                | Type                                                                                         | Description                                                  |
| ------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| delegatedResources? | [`DelegatedResources`](./data-types.md#Azure.ResourceManager.CommonTypes.DelegatedResources) | The delegated resources of the identity - internal use only. |

### `ManagementGroupNameParameter` {#Azure.ResourceManager.CommonTypes.ManagementGroupNameParameter}

The default ManagementGroupName parameter type.

```typespec
model Azure.ResourceManager.CommonTypes.ManagementGroupNameParameter
```

#### Properties

| Name                | Type     | Description                                                     |
| ------------------- | -------- | --------------------------------------------------------------- |
| managementGroupName | `string` | The name of the management group. The name is case insensitive. |

### `MoboBrokerResource` {#Azure.ResourceManager.CommonTypes.MoboBrokerResource}

Managed-On-Behalf-Of broker resource. This resource is created by the Resource Provider to manage some resources on behalf of the user.

```typespec
model Azure.ResourceManager.CommonTypes.MoboBrokerResource
```

#### Properties

| Name | Type                               | Description                                                   |
| ---- | ---------------------------------- | ------------------------------------------------------------- |
| id?  | `Azure.Core.armResourceIdentifier` | Resource identifier of a Managed-On-Behalf-Of broker resource |

### `NetworkSecurityPerimeter` {#Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeter}

Information about a network security perimeter (NSP)

```typespec
model Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeter
```

#### Properties

| Name           | Type                               | Description                                                  |
| -------------- | ---------------------------------- | ------------------------------------------------------------ |
| id?            | `Azure.Core.armResourceIdentifier` | Fully qualified Azure resource ID of the NSP resource        |
| perimeterGuid? | `Azure.Core.uuid`                  | Universal unique ID (UUID) of the network security perimeter |
| location?      | `string`                           | Location of the network security perimeter                   |

### `NetworkSecurityPerimeterConfiguration` {#Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfiguration}

Network security perimeter (NSP) configuration resource

```typespec
model Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfiguration
```

#### Properties

| Name        | Type                                                                                                                                                   | Description                                |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------ |
| properties? | [`NetworkSecurityPerimeterConfigurationProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfigurationProperties) | Network security configuration properties. |

### `NetworkSecurityPerimeterConfigurationListResult` {#Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfigurationListResult}

Result of a list NSP (network security perimeter) configurations request.

```typespec
model Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfigurationListResult
```

#### Properties

| Name      | Type                                                                        | Description                                    |
| --------- | --------------------------------------------------------------------------- | ---------------------------------------------- |
| value?    | `Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfiguration[]` | Array of network security perimeter results.   |
| nextLink? | `url`                                                                       | The link used to get the next page of results. |

### `NetworkSecurityPerimeterConfigurationNameParameter` {#Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfigurationNameParameter}

The name for a network security perimeter configuration

```typespec
model Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfigurationNameParameter
```

#### Properties

| Name                                      | Type     | Description                                             |
| ----------------------------------------- | -------- | ------------------------------------------------------- |
| networkSecurityPerimeterConfigurationName | `string` | The name for a network security perimeter configuration |

### `NetworkSecurityPerimeterConfigurationProperties` {#Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfigurationProperties}

Network security configuration properties.

```typespec
model Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfigurationProperties
```

#### Properties

| Name                      | Type                                                                                                                                                                 | Description                                                        |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| provisioningState?        | [`NetworkSecurityPerimeterConfigurationProvisioningState`](./data-types.md#Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfigurationProvisioningState) | Provisioning state of the network security perimeter configuration |
| provisioningIssues?       | `Azure.ResourceManager.CommonTypes.ProvisioningIssue[]`                                                                                                              | List of provisioning issues, if any                                |
| networkSecurityPerimeter? | [`NetworkSecurityPerimeter`](./data-types.md#Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeter)                                                             | Information about the network security perimeter (NSP)             |
| resourceAssociation?      | [`ResourceAssociation`](./data-types.md#Azure.ResourceManager.CommonTypes.ResourceAssociation)                                                                       | Information about the resource association                         |
| profile?                  | [`NetworkSecurityProfile`](./data-types.md#Azure.ResourceManager.CommonTypes.NetworkSecurityProfile)                                                                 | Network security perimeter configuration profile                   |

### `NetworkSecurityProfile` {#Azure.ResourceManager.CommonTypes.NetworkSecurityProfile}

Network security perimeter configuration profile

```typespec
model Azure.ResourceManager.CommonTypes.NetworkSecurityProfile
```

#### Properties

| Name                       | Type                                             | Description                             |
| -------------------------- | ------------------------------------------------ | --------------------------------------- |
| name?                      | `string`                                         | Name of the profile                     |
| accessRulesVersion?        | `int32`                                          | Current access rules version            |
| accessRules?               | `Azure.ResourceManager.CommonTypes.AccessRule[]` | List of Access Rules                    |
| diagnosticSettingsVersion? | `int32`                                          | Current diagnostic settings version     |
| enabledLogCategories?      | `string[]`                                       | List of log categories that are enabled |

### `NspConfigurationNameParameter` {#Azure.ResourceManager.CommonTypes.NspConfigurationNameParameter}

The name parameter for a network security perimeter configuration.

```typespec
model Azure.ResourceManager.CommonTypes.NspConfigurationNameParameter<KeyName, ResourceNamePattern, MinLength, MaxLength>
```

#### Template Parameters

| Name                | Description                                                                                                         |
| ------------------- | ------------------------------------------------------------------------------------------------------------------- |
| KeyName             | The name of the network security perimeter configuration resource name parameter.                                   |
| ResourceNamePattern | The regex pattern for the network security perimeter configuration resource name (default is "^[a-z][a-zA-Z0-9]*$") |
| MinLength           | The minimum length for the network security perimeter configuration resource name (default is 1)                    |
| MaxLength           | The maximum length for the network security perimeter configuration resource name (default is 512)                  |

#### Properties

| Name                                      | Type     | Description                                             |
| ----------------------------------------- | -------- | ------------------------------------------------------- |
| networkSecurityPerimeterConfigurationName | `string` | The name for a network security perimeter configuration |

### `NspConfigurationResource` {#Azure.ResourceManager.CommonTypes.NspConfigurationResource}

Network security perimeter (NSP) configuration resource. Providers must instantiate an instance of this resource in their
provider namespace to enable NSP capabilities for their resources.

```typespec
model Azure.ResourceManager.CommonTypes.NspConfigurationResource<KeyName, Description>
```

#### Template Parameters

| Name        | Description                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| KeyName     | Optional. The name of the NSP configuration resource name parameter. By default, this is `networkSecurityPerimeterConfigurationName`. |
| Description | Optional. The documentary description of the NSP configuration resource name parameter.                                               |

#### Examples

```ts
namespace Microsoft.Contoso;
model NspConfiguration is NspConfigurationResource {}
alias EmployeeConfigOps is NspConfigurations<NspConfiguration>;
@armResourceOperations
interface Employees {
 @doc("get a network security perimeter configuration for resource employee")
 getNspConfiguration is EmployeeConfigOps.Read<Employee>;
}
```

#### Properties

| Name        | Type                                                                                                                                                   | Description                                |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------ |
| properties? | [`NetworkSecurityPerimeterConfigurationProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfigurationProperties) | Network security configuration properties. |

### `Operation` {#Azure.ResourceManager.CommonTypes.Operation}

Details of a REST API operation, returned from the Resource Provider Operations API

```typespec
model Azure.ResourceManager.CommonTypes.Operation
```

#### Properties

| Name          | Type                                                                                     | Description                                                                                                                                                                     |
| ------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name?         | `string`                                                                                 | The name of the operation, as per Resource-Based Access Control (RBAC). Examples: "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action" |
| isDataAction? | `boolean`                                                                                | Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for Azure Resource Manager/control-plane operations.                          |
| display?      | [`OperationDisplay`](./data-types.md#Azure.ResourceManager.CommonTypes.OperationDisplay) | Localized display information for this particular operation.                                                                                                                    |
| origin?       | [`Origin`](./data-types.md#Azure.ResourceManager.CommonTypes.Origin)                     | The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system"                                            |
| actionType?   | [`ActionType`](./data-types.md#Azure.ResourceManager.CommonTypes.ActionType)             | Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs.                                                                       |

### `OperationDisplay` {#Azure.ResourceManager.CommonTypes.OperationDisplay}

Localized display information for an operation.

```typespec
model Azure.ResourceManager.CommonTypes.OperationDisplay
```

#### Properties

| Name         | Type     | Description                                                                                                                                         |
| ------------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| provider?    | `string` | The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft Compute".                             |
| resource?    | `string` | The localized friendly name of the resource type related to this operation. E.g. "Virtual Machines" or "Job Schedule Collections".                  |
| operation?   | `string` | The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual Machine", "Restart Virtual Machine". |
| description? | `string` | The short, localized friendly description of the operation; suitable for tool tips and detailed views.                                              |

### `OperationIdParameter` {#Azure.ResourceManager.CommonTypes.OperationIdParameter}

The default operationId parameter type.

```typespec
model Azure.ResourceManager.CommonTypes.OperationIdParameter
```

#### Properties

| Name        | Type     | Description                           |
| ----------- | -------- | ------------------------------------- |
| operationId | `string` | The ID of an ongoing async operation. |

### `OperationListResult` {#Azure.ResourceManager.CommonTypes.OperationListResult}

A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results.

```typespec
model Azure.ResourceManager.CommonTypes.OperationListResult
```

#### Properties

| Name      | Type                                            | Description                        |
| --------- | ----------------------------------------------- | ---------------------------------- |
| value     | `Azure.ResourceManager.CommonTypes.Operation[]` | The Operation items on this page   |
| nextLink? | `TypeSpec.Rest.ResourceLocation`                | The link to the next page of items |

### `OperationStatusResult` {#Azure.ResourceManager.CommonTypes.OperationStatusResult}

The current status of an async operation.

```typespec
model Azure.ResourceManager.CommonTypes.OperationStatusResult
```

#### Properties

| Name             | Type                                                                           | Description                                                                                |
| ---------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
| id?              | `Azure.Core.armResourceIdentifier`                                             | Fully qualified ID for the async operation.                                                |
| name?            | `string`                                                                       | Name of the async operation.                                                               |
| status           | `string`                                                                       | Operation status.                                                                          |
| percentComplete? | `float64`                                                                      | Percent of the operation that is complete.                                                 |
| startTime?       | `utcDateTime`                                                                  | The start time of the operation.                                                           |
| endTime?         | `utcDateTime`                                                                  | The end time of the operation.                                                             |
| operations?      | `Azure.ResourceManager.CommonTypes.OperationStatusResult[]`                    | The operations list.                                                                       |
| error?           | [`ErrorDetail`](./data-types.md#Azure.ResourceManager.CommonTypes.ErrorDetail) | If present, details of the operation error.                                                |
| resourceId?      | `Azure.Core.armResourceIdentifier`                                             | Fully qualified ID of the resource against which the original async operation was started. |

### `Plan` {#Azure.ResourceManager.CommonTypes.Plan}

Plan for the resource.

```typespec
model Azure.ResourceManager.CommonTypes.Plan
```

#### Properties

| Name           | Type     | Description                                                                                                                                                 |
| -------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name           | `string` | A user defined name of the 3rd Party Artifact that is being procured.                                                                                       |
| publisher      | `string` | The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic                                                                                 |
| product        | `string` | The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. |
| promotionCode? | `string` | A publisher provided promotion code as provisioned in Data Market for the said product/artifact.                                                            |
| version?       | `string` | The version of the desired product/artifact.                                                                                                                |

### `PrivateEndpoint` {#Azure.ResourceManager.CommonTypes.PrivateEndpoint}

The private endpoint resource.

```typespec
model Azure.ResourceManager.CommonTypes.PrivateEndpoint
```

#### Properties

| Name | Type                               | Description                                     |
| ---- | ---------------------------------- | ----------------------------------------------- |
| id?  | `Azure.Core.armResourceIdentifier` | The resource identifier of the private endpoint |

### `PrivateEndpointConnection` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnection}

The private endpoint connection resource

```typespec
model Azure.ResourceManager.CommonTypes.PrivateEndpointConnection
```

#### Properties

| Name        | Type                                                                                                                           | Description                                |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------ |
| properties? | [`PrivateEndpointConnectionProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties) | The private endpoint connection properties |

### `PrivateEndpointConnectionListResult` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResult}

List of private endpoint connections associated with the specified resource.

```typespec
model Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResult
```

#### Properties

| Name      | Type                                                            | Description                                                           |
| --------- | --------------------------------------------------------------- | --------------------------------------------------------------------- |
| value?    | `Azure.ResourceManager.CommonTypes.PrivateEndpointConnection[]` | Array of private endpoint connections.                                |
| nextLink? | `url`                                                           | URL to get the next set of operation list results (if there are any). |

### `PrivateEndpointConnectionListResultV5` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResultV5}

:::caution
**Deprecated**: Avoid using this model. Instead, use PrivateEndpointConnectionResourceListResult available in CommonTypes.Version.v6 or beyond.
:::

List of private endpoint connections associated with the specified resource before version v6.

This model represents the standard `PrivateEndpointConnectionResourceListResult` envelope for versions v3, v4, and v5. It has been deprecated for v6 and beyond.

Note: This is only intended for use with versions before v6. Do not use this if you are already on CommonTypes.Version.v6 or beyond.

If you are migrating to v6 or above, use `PrivateEndpointConnectionResourceListResult` directly.

```typespec
model Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResultV5
```

#### Examples

Version: v3,v4,v5

```typespec
@armResourceOperations
interface Employees {
  createConnection is ArmResourceActionAsync<
    Employee,
    PrivateEndpointConnection,
    PrivateEndpointConnectionResourceListResultV5
  >;
}
```

Version: v6

```typespec
@armResourceOperations
interface Employees {
  createConnection is ArmResourceActionAsync<
    Employee,
    PrivateEndpointConnection,
    PrivateEndpointConnectionResourceListResult
  >;
}
```

#### Properties

| Name   | Type                                                            | Description                            |
| ------ | --------------------------------------------------------------- | -------------------------------------- |
| value? | `Azure.ResourceManager.CommonTypes.PrivateEndpointConnection[]` | Array of private endpoint connections. |

### `PrivateEndpointConnectionNameParameter` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionNameParameter}

The name of the private endpoint connection associated with the Azure resource.

```typespec
model Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionNameParameter<KeyName, ResourceNamePattern, MinLength, MaxLength>
```

#### Template Parameters

| Name                | Description                                                                                             |
| ------------------- | ------------------------------------------------------------------------------------------------------- |
| KeyName             | The name of the private endpoint connection name parameter (default is "privateEndpointConnectionName") |
| ResourceNamePattern | The regex pattern for the private endpoint connection name (default is "^[a-z][a-zA-Z0-9]*$")           |
| MinLength           | The minimum length for the private endpoint connection name (default is 3)                              |
| MaxLength           | The maximum length for the private endpoint connection name (default is 63                              |

#### Properties

| Name | Type     | Description                                                                     |
| ---- | -------- | ------------------------------------------------------------------------------- |
| name | `string` | The name of the private endpoint connection associated with the Azure resource. |

### `PrivateEndpointConnectionParameter` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionParameter}

The name of the private endpoint connection associated with the Azure resource.

```typespec
model Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionParameter
```

#### Properties

| Name | Type     | Description                                                                     |
| ---- | -------- | ------------------------------------------------------------------------------- |
| name | `string` | The name of the private endpoint connection associated with the Azure resource. |

### `PrivateEndpointConnectionProperties` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties}

Properties of the private endpoint connection.

```typespec
model Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties
```

#### Properties

| Name                              | Type                                                                                                                                         | Description                                                                                          |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| groupIds?                         | `string[]`                                                                                                                                   | The group ids for the private endpoint resource.                                                     |
| privateEndpoint?                  | [`PrivateEndpoint`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpoint)                                                       | The private endpoint resource.                                                                       |
| privateLinkServiceConnectionState | [`PrivateLinkServiceConnectionState`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkServiceConnectionState)                   | A collection of information about the state of the connection between service consumer and provider. |
| provisioningState?                | [`PrivateEndpointConnectionProvisioningState`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProvisioningState) | The provisioning state of the private endpoint connection resource.                                  |

### `PrivateLinkResource` {#Azure.ResourceManager.CommonTypes.PrivateLinkResource}

A private link resource.

```typespec
model Azure.ResourceManager.CommonTypes.PrivateLinkResource
```

#### Properties

| Name        | Type                                                                                                               | Description          |
| ----------- | ------------------------------------------------------------------------------------------------------------------ | -------------------- |
| properties? | [`PrivateLinkResourceProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateLinkResourceProperties) | Resource properties. |

### `PrivateLinkResourceListResult` {#Azure.ResourceManager.CommonTypes.PrivateLinkResourceListResult}

A list of private link resources.

```typespec
model Azure.ResourceManager.CommonTypes.PrivateLinkResourceListResult
```

#### Properties

| Name      | Type                                                      | Description                                                           |
| --------- | --------------------------------------------------------- | --------------------------------------------------------------------- |
| value?    | `Azure.ResourceManager.CommonTypes.PrivateLinkResource[]` | Array of private link resources                                       |
| nextLink? | `url`                                                     | URL to get the next set of operation list results (if there are any). |

### `PrivateLinkResourceListResultV5` {#Azure.ResourceManager.CommonTypes.PrivateLinkResourceListResultV5}

:::caution
**Deprecated**: Avoid using this model. Instead, use PrivateLinkResourceListResult available in CommonTypes.Version.v6 or beyond.
:::

A list of private link resources for versions before v6.

This model represents the standard `PrivateLinkResourceListResult` envelope for versions v3, v4, and v5. It has been deprecated for v6 and beyond.

Note: This is only intended for use with versions before v6. Do not use this if you are already on CommonTypes.Version.v6 or beyond.

If you are migrating to v6 or above, use `PrivateLinkResourceListResult` directly.

```typespec
model Azure.ResourceManager.CommonTypes.PrivateLinkResourceListResultV5
```

#### Examples

Version: v3,v4,v5

```typespec
@armResourceOperations
interface Employees {
  listConnections is ArmResourceActionAsync<Employee, {}, PrivateLinkResourceListResultV5>;
}
```

Version: v6

```typespec
@armResourceOperations
interface Employees {
  listConnections is ArmResourceActionAsync<Employee, {}, PrivateLinkResourceListResult>;
}
```

#### Properties

| Name   | Type                                                      | Description                     |
| ------ | --------------------------------------------------------- | ------------------------------- |
| value? | `Azure.ResourceManager.CommonTypes.PrivateLinkResource[]` | Array of private link resources |

### `PrivateLinkResourceNameParameter` {#Azure.ResourceManager.CommonTypes.PrivateLinkResourceNameParameter}

The name of the private link associated with the Azure resource.

```typespec
model Azure.ResourceManager.CommonTypes.PrivateLinkResourceNameParameter<Segment, ResourceNamePattern, MinLength, MaxLength>
```

#### Template Parameters

| Name                | Description                                                                             |
| ------------------- | --------------------------------------------------------------------------------------- |
| Segment             | The resource type name for private links (default is privateLinkResources)              |
| ResourceNamePattern | The regex pattern for the private link resource name (default is "^[a-z][a-zA-Z0-9]*$") |
| MinLength           | The minimum length for the private link resource name (default is 3)                    |
| MaxLength           | The maximum length for the private link resource name (default is 63                    |

#### Properties

| Name | Type     | Description                                                      |
| ---- | -------- | ---------------------------------------------------------------- |
| name | `string` | The name of the private link associated with the Azure resource. |

### `PrivateLinkResourceParameter` {#Azure.ResourceManager.CommonTypes.PrivateLinkResourceParameter}

The name of the private link associated with the Azure resource.

```typespec
model Azure.ResourceManager.CommonTypes.PrivateLinkResourceParameter<Segment>
```

#### Template Parameters

| Name    | Description                                                                |
| ------- | -------------------------------------------------------------------------- |
| Segment | The resource type name for private links (default is privateLinkResources) |

#### Properties

| Name | Type     | Description                                                      |
| ---- | -------- | ---------------------------------------------------------------- |
| name | `string` | The name of the private link associated with the Azure resource. |

### `PrivateLinkResourceProperties` {#Azure.ResourceManager.CommonTypes.PrivateLinkResourceProperties}

Properties of a private link resource.

```typespec
model Azure.ResourceManager.CommonTypes.PrivateLinkResourceProperties
```

#### Properties

| Name               | Type       | Description                                           |
| ------------------ | ---------- | ----------------------------------------------------- |
| groupId?           | `string`   | The private link resource group id.                   |
| requiredMembers?   | `string[]` | The private link resource required member names.      |
| requiredZoneNames? | `string[]` | The private link resource private link DNS zone name. |

### `PrivateLinkServiceConnectionState` {#Azure.ResourceManager.CommonTypes.PrivateLinkServiceConnectionState}

A collection of information about the state of the connection between service consumer and provider.

```typespec
model Azure.ResourceManager.CommonTypes.PrivateLinkServiceConnectionState
```

#### Properties

| Name             | Type                                                                                                                                 | Description                                                                                      |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
| status?          | [`PrivateEndpointServiceConnectionStatus`](./data-types.md#Azure.ResourceManager.CommonTypes.PrivateEndpointServiceConnectionStatus) | Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. |
| description?     | `string`                                                                                                                             | The reason for approval/rejection of the connection.                                             |
| actionsRequired? | `string`                                                                                                                             | A message indicating if changes on the service provider require any updates on the consumer.     |

### `ProvisioningIssue` {#Azure.ResourceManager.CommonTypes.ProvisioningIssue}

Describes a provisioning issue for a network security perimeter configuration

```typespec
model Azure.ResourceManager.CommonTypes.ProvisioningIssue
```

#### Properties

| Name        | Type                                                                                                           | Description                       |
| ----------- | -------------------------------------------------------------------------------------------------------------- | --------------------------------- |
| name?       | `string`                                                                                                       | Name of the issue                 |
| properties? | [`ProvisioningIssueProperties`](./data-types.md#Azure.ResourceManager.CommonTypes.ProvisioningIssueProperties) | Details of the provisioning issue |

### `ProvisioningIssueProperties` {#Azure.ResourceManager.CommonTypes.ProvisioningIssueProperties}

Details of a provisioning issue for a network security perimeter (NSP) configuration. Resource providers should generate separate provisioning issue elements for each separate issue detected, and include a meaningful and distinctive description, as well as any appropriate suggestedResourceIds and suggestedAccessRules

```typespec
model Azure.ResourceManager.CommonTypes.ProvisioningIssueProperties
```

#### Properties

| Name                  | Type                                                                       | Description                                                                                                                                |
| --------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| issueType?            | [`IssueType`](./data-types.md#Azure.ResourceManager.CommonTypes.IssueType) | Type of issue                                                                                                                              |
| severity?             | [`Severity`](./data-types.md#Azure.ResourceManager.CommonTypes.Severity)   | Severity of the issue.                                                                                                                     |
| description?          | `string`                                                                   | Description of the issue                                                                                                                   |
| suggestedResourceIds? | `Azure.Core.armResourceIdentifier[]`                                       | Fully qualified resource IDs of suggested resources that can be associated to the network security perimeter (NSP) to remediate the issue. |
| suggestedAccessRules? | `Azure.ResourceManager.CommonTypes.AccessRule[]`                           | Access rules that can be added to the network security profile (NSP) to remediate the issue.                                               |

### `ProxyResource` {#Azure.ResourceManager.CommonTypes.ProxyResource}

The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location

```typespec
model Azure.ResourceManager.CommonTypes.ProxyResource
```

#### Properties

None

### `Resource` {#Azure.ResourceManager.CommonTypes.Resource}

Common fields that are returned in the response for all Azure Resource Manager resources

```typespec
model Azure.ResourceManager.CommonTypes.Resource
```

#### Properties

| Name        | Type                                                                         | Description                                                                                                                                                                               |
| ----------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id?         | `Azure.Core.armResourceIdentifier`                                           | Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} |
| name?       | `string`                                                                     | The name of the resource                                                                                                                                                                  |
| type?       | `Azure.Core.armResourceType`                                                 | The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"                                                                                 |
| systemData? | [`SystemData`](./data-types.md#Azure.ResourceManager.CommonTypes.SystemData) | Azure Resource Manager metadata containing createdBy and modifiedBy information.                                                                                                          |

### `ResourceAssociation` {#Azure.ResourceManager.CommonTypes.ResourceAssociation}

Information about resource association

```typespec
model Azure.ResourceManager.CommonTypes.ResourceAssociation
```

#### Properties

| Name        | Type                                                                                                               | Description                             |
| ----------- | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------- |
| name?       | `string`                                                                                                           | Name of the resource association        |
| accessMode? | [`ResourceAssociationAccessMode`](./data-types.md#Azure.ResourceManager.CommonTypes.ResourceAssociationAccessMode) | Access mode of the resource association |

### `ResourceGroupNameParameter` {#Azure.ResourceManager.CommonTypes.ResourceGroupNameParameter}

The default resource group parameter type.

```typespec
model Azure.ResourceManager.CommonTypes.ResourceGroupNameParameter
```

#### Properties

| Name              | Type     | Description                                                   |
| ----------------- | -------- | ------------------------------------------------------------- |
| resourceGroupName | `string` | The name of the resource group. The name is case insensitive. |

### `ResourceModelWithAllowedPropertySet` {#Azure.ResourceManager.CommonTypes.ResourceModelWithAllowedPropertySet}

The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there cannot be a top level property outside of this set.

```typespec
model Azure.ResourceManager.CommonTypes.ResourceModelWithAllowedPropertySet
```

#### Properties

| Name       | Type                                                                                                 | Description                                                                                                                                                                                                                                                                                                                                                                                                    |
| ---------- | ---------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| managedBy? | `string`                                                                                             | The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource.<br />If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.                                                                                                        |
| kind?      | `string`                                                                                             | Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type.<br />If supported, the resource provider must validate and persist this value.                                                                                                                                                                     |
| etag?      | `string`                                                                                             | The etag field is _not_ required. If it is provided in the response body, it must also be provided as a header per the normal etag convention.<br />Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19),<br />If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. |
| identity?  | [`ManagedServiceIdentity`](./data-types.md#Azure.ResourceManager.CommonTypes.ManagedServiceIdentity) | The identity of the resource.                                                                                                                                                                                                                                                                                                                                                                                  |
| sku?       | [`Sku`](./data-types.md#Azure.ResourceManager.CommonTypes.Sku)                                       | The SKU of the resource.                                                                                                                                                                                                                                                                                                                                                                                       |
| plan?      | [`Plan`](./data-types.md#Azure.ResourceManager.CommonTypes.Plan)                                     | The plan of the resource.                                                                                                                                                                                                                                                                                                                                                                                      |

### `ScopeParameter` {#Azure.ResourceManager.CommonTypes.ScopeParameter}

The default Scope parameter type.

```typespec
model Azure.ResourceManager.CommonTypes.ScopeParameter
```

#### Properties

| Name  | Type     | Description                                    |
| ----- | -------- | ---------------------------------------------- |
| scope | `string` | The scope at which the operation is performed. |

### `Sku` {#Azure.ResourceManager.CommonTypes.Sku}

The resource model definition representing SKU

```typespec
model Azure.ResourceManager.CommonTypes.Sku
```

#### Properties

| Name      | Type                                                                   | Description                                                                                                                                          |
| --------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| name      | `string`                                                               | The name of the SKU. Ex - P3. It is typically a letter+number code                                                                                   |
| tier?     | [`SkuTier`](./data-types.md#Azure.ResourceManager.CommonTypes.SkuTier) | This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.               |
| size?     | `string`                                                               | The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.                                |
| family?   | `string`                                                               | If the service has different generations of hardware, for the same SKU, then that can be captured here.                                              |
| capacity? | `int32`                                                                | If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted. |

### `SubscriptionIdParameter` {#Azure.ResourceManager.CommonTypes.SubscriptionIdParameter}

The default subscriptionId parameter type.

```typespec
model Azure.ResourceManager.CommonTypes.SubscriptionIdParameter
```

#### Properties

| Name           | Type              | Description                                                   |
| -------------- | ----------------- | ------------------------------------------------------------- |
| subscriptionId | `Azure.Core.uuid` | The ID of the target subscription. The value must be an UUID. |

### `SystemAssignedServiceIdentity` {#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity}

Managed service identity (either system assigned, or none)

```typespec
model Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity
```

#### Properties

| Name         | Type                                                                                                                       | Description                                                                                                                   |
| ------------ | -------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| principalId? | `Azure.Core.uuid`                                                                                                          | The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. |
| tenantId?    | `Azure.Core.uuid`                                                                                                          | The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.            |
| type         | [`SystemAssignedServiceIdentityType`](./data-types.md#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType) | The type of managed identity assigned to this resource.                                                                       |

### `SystemData` {#Azure.ResourceManager.CommonTypes.SystemData}

Metadata pertaining to creation and last modification of the resource.

```typespec
model Azure.ResourceManager.CommonTypes.SystemData
```

#### Properties

| Name                | Type                                                                               | Description                                           |
| ------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------- |
| createdBy?          | `string`                                                                           | The identity that created the resource.               |
| createdByType?      | [`createdByType`](./data-types.md#Azure.ResourceManager.CommonTypes.createdByType) | The type of identity that created the resource.       |
| createdAt?          | `utcDateTime`                                                                      | The timestamp of resource creation (UTC).             |
| lastModifiedBy?     | `string`                                                                           | The identity that last modified the resource.         |
| lastModifiedByType? | [`createdByType`](./data-types.md#Azure.ResourceManager.CommonTypes.createdByType) | The type of identity that last modified the resource. |
| lastModifiedAt?     | `utcDateTime`                                                                      | The timestamp of resource last modification (UTC)     |

### `TenantIdParameter` {#Azure.ResourceManager.CommonTypes.TenantIdParameter}

The default TenantIdParameter type.

```typespec
model Azure.ResourceManager.CommonTypes.TenantIdParameter
```

#### Properties

| Name     | Type              | Description                                                                                      |
| -------- | ----------------- | ------------------------------------------------------------------------------------------------ |
| tenantId | `Azure.Core.uuid` | The Azure tenant ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000) |

### `TrackedResource` {#Azure.ResourceManager.CommonTypes.TrackedResource}

The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'

```typespec
model Azure.ResourceManager.CommonTypes.TrackedResource
```

#### Properties

| Name     | Type                       | Description                               |
| -------- | -------------------------- | ----------------------------------------- |
| tags?    | `Record<string>`           | Resource tags.                            |
| location | `Azure.Core.azureLocation` | The geo-location where the resource lives |

### `UserAssignedIdentities` {#Azure.ResourceManager.CommonTypes.UserAssignedIdentities}

:::caution
**Deprecated**: Do not use this model. Instead, use Record<UserAssignedIdentity | null> directly. Using this model will result in a different client SDK when generated from TypeSpec compared to the Swagger.
:::

The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.

```typespec
model Azure.ResourceManager.CommonTypes.UserAssignedIdentities
```

#### Properties

| Name | Type                                                             | Description           |
| ---- | ---------------------------------------------------------------- | --------------------- |
|      | `Azure.ResourceManager.CommonTypes.UserAssignedIdentity \| null` | Additional properties |

### `UserAssignedIdentity` {#Azure.ResourceManager.CommonTypes.UserAssignedIdentity}

User assigned identity properties

```typespec
model Azure.ResourceManager.CommonTypes.UserAssignedIdentity
```

#### Properties

| Name         | Type              | Description                                |
| ------------ | ----------------- | ------------------------------------------ |
| principalId? | `Azure.Core.uuid` | The principal ID of the assigned identity. |
| clientId?    | `Azure.Core.uuid` | The client ID of the assigned identity.    |

### `ResourceHome` {#Azure.ResourceManager.CommonTypes.ResourceHome}

An internal enum to indicate the resource support for various path types

```typespec
enum Azure.ResourceManager.CommonTypes.ResourceHome
```

| Name                 | Value | Description                                        |
| -------------------- | ----- | -------------------------------------------------- |
| Tenant               |       | The resource is bound to a tenant                  |
| Subscription         |       | The resource is bound to a subscription            |
| Location             |       | The resource is bound to a location                |
| ResourceGroup        |       | The resource is bound to a resource group          |
| Extension            |       | The resource is bound to an extension              |
| BuiltIn              |       | The resource is a built in tenant resource         |
| BuiltInSubscription  |       | The resource is a built in subscription resource   |
| BuiltInResourceGroup |       | The resource is a built in resource group resource |

### `Versions` {#Azure.ResourceManager.CommonTypes.Versions}

The Azure Resource Manager common-types versions.

```typespec
enum Azure.ResourceManager.CommonTypes.Versions
```

| Name | Value | Description                                 |
| ---- | ----- | ------------------------------------------- |
| v3   |       | The Azure Resource Manager v3 common types. |
| v4   |       | The Azure Resource Manager v4 common types. |
| v5   |       | The Azure Resource Manager v5 common types. |
| v6   |       | The Azure Resource Manager v6 common types. |

### `AccessRuleDirection` {#Azure.ResourceManager.CommonTypes.AccessRuleDirection}

Direction of Access Rule

```typespec
union Azure.ResourceManager.CommonTypes.AccessRuleDirection
```

#### Variants

| Name     | Type         | Description                                                    |
| -------- | ------------ | -------------------------------------------------------------- |
| Inbound  | `"Inbound"`  | Applies to inbound network traffic to the secured resources.   |
| Outbound | `"Outbound"` | Applies to outbound network traffic from the secured resources |

### `ActionType` {#Azure.ResourceManager.CommonTypes.ActionType}

Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs.

```typespec
union Azure.ResourceManager.CommonTypes.ActionType
```

#### Variants

| Name     | Type         | Description                         |
| -------- | ------------ | ----------------------------------- |
| Internal | `"Internal"` | Actions are for internal-only APIs. |

### `BillingRenewalType` {#Azure.ResourceManager.CommonTypes.BillingRenewalType}

Type of renewal.

```typespec
union Azure.ResourceManager.CommonTypes.BillingRenewalType
```

#### Variants

| Name      | Type          | Description                                         |
| --------- | ------------- | --------------------------------------------------- |
| Automatic | `"Automatic"` | Automatically renew the product when its term ends. |
| None      | `"None"`      | Don't automatically renew the product.              |

### `BillingScheduleChangeEffectiveType` {#Azure.ResourceManager.CommonTypes.BillingScheduleChangeEffectiveType}

When a scheduled change is expected to become effective.

```typespec
union Azure.ResourceManager.CommonTypes.BillingScheduleChangeEffectiveType
```

#### Variants

| Name         | Type             | Description              |
| ------------ | ---------------- | ------------------------ |
| AbsoluteDate | `"AbsoluteDate"` | At a specified date.     |
| Renewal      | `"Renewal"`      | At time of term renewal. |

### `BillingScheduleChangeKind` {#Azure.ResourceManager.CommonTypes.BillingScheduleChangeKind}

Type of scheduled change.

```typespec
union Azure.ResourceManager.CommonTypes.BillingScheduleChangeKind
```

#### Variants

| Name   | Type       | Description          |
| ------ | ---------- | -------------------- |
| Update | `"Update"` | Update the resource. |
| Cancel | `"Cancel"` | Cancel the resource. |

### `BillingState` {#Azure.ResourceManager.CommonTypes.BillingState}

Billing state.

```typespec
union Azure.ResourceManager.CommonTypes.BillingState
```

#### Variants

| Name     | Type         | Description                               |
| -------- | ------------ | ----------------------------------------- |
| Pending  | `"Pending"`  | Resource's billing has not yet started.   |
| Active   | `"Active"`   | Resource's billing is activate.           |
| Warned   | `"Warned"`   | Resource's billing is in a warning state. |
| Inactive | `"Inactive"` | Resource's billing is inactive.           |

### `BillingStateReason` {#Azure.ResourceManager.CommonTypes.BillingStateReason}

Billing state reason.

```typespec
union Azure.ResourceManager.CommonTypes.BillingStateReason
```

#### Variants

| Name      | Type          | Description                                         |
| --------- | ------------- | --------------------------------------------------- |
| Suspended | `"Suspended"` | Resource's billing has been suspended by Microsoft. |
| Canceled  | `"Canceled"`  | Resource has been canceled by the customer.         |
| Expired   | `"Expired"`   | Resource's billing has expired.                     |

### `CheckNameAvailabilityReason` {#Azure.ResourceManager.CommonTypes.CheckNameAvailabilityReason}

Possible reasons for a name not being available.

```typespec
union Azure.ResourceManager.CommonTypes.CheckNameAvailabilityReason
```

#### Variants

| Name          | Type              | Description          |
| ------------- | ----------------- | -------------------- |
| Invalid       | `"Invalid"`       | Name is invalid.     |
| AlreadyExists | `"AlreadyExists"` | Name already exists. |

### `createdByType` {#Azure.ResourceManager.CommonTypes.createdByType}

The kind of entity that created the resource.

```typespec
union Azure.ResourceManager.CommonTypes.createdByType
```

#### Variants

| Name            | Type                | Description                                   |
| --------------- | ------------------- | --------------------------------------------- |
| User            | `"User"`            | The entity was created by a user.             |
| Application     | `"Application"`     | The entity was created by an application.     |
| ManagedIdentity | `"ManagedIdentity"` | The entity was created by a managed identity. |
| Key             | `"Key"`             | The entity was created by a key.              |

### `EncryptionStatus` {#Azure.ResourceManager.CommonTypes.EncryptionStatus}

Indicates whether or not the encryption is enabled for container registry.

```typespec
union Azure.ResourceManager.CommonTypes.EncryptionStatus
```

#### Variants

| Name     | Type         | Description             |
| -------- | ------------ | ----------------------- |
| enabled  | `"enabled"`  | Encryption is enabled.  |
| disabled | `"disabled"` | Encryption is disabled. |

### `ExtendedLocationType` {#Azure.ResourceManager.CommonTypes.ExtendedLocationType}

The supported ExtendedLocation types.

```typespec
union Azure.ResourceManager.CommonTypes.ExtendedLocationType
```

#### Variants

| Name           | Type               | Description                    |
| -------------- | ------------------ | ------------------------------ |
| EdgeZone       | `"EdgeZone"`       | Azure Edge Zones location type |
| CustomLocation | `"CustomLocation"` | Azure Custom Locations type    |

### `InfrastructureEncryption` {#Azure.ResourceManager.CommonTypes.InfrastructureEncryption}

(Optional) Discouraged to include in resource definition. Only needed where it is possible to disable platform (AKA infrastructure) encryption. Azure SQL TDE is an example of this. Values are enabled and disabled.

```typespec
union Azure.ResourceManager.CommonTypes.InfrastructureEncryption
```

#### Variants

| Name     | Type         | Description            |
| -------- | ------------ | ---------------------- |
| Enabled  | `"enabled"`  | Encryption is enabled  |
| Disabled | `"disabled"` | Encryption is disabled |

### `IssueType` {#Azure.ResourceManager.CommonTypes.IssueType}

Type of issue

```typespec
union Azure.ResourceManager.CommonTypes.IssueType
```

#### Variants

| Name                            | Type                                | Description                                                                                                                                                                                                                                                                   |
| ------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Unknown                         | `"Unknown"`                         | Unknown issue type                                                                                                                                                                                                                                                            |
| ConfigurationPropagationFailure | `"ConfigurationPropagationFailure"` | An error occurred while applying the network security perimeter (NSP) configuration.                                                                                                                                                                                          |
| MissingPerimeterConfiguration   | `"MissingPerimeterConfiguration"`   | A network connectivity issue is happening on the resource which could be addressed either by adding new resources to the network security perimeter (NSP) or by modifying access rules.                                                                                       |
| MissingIdentityConfiguration    | `"MissingIdentityConfiguration"`    | An managed identity hasn't been associated with the resource. The resource will still be able to validate inbound traffic from the network security perimeter (NSP) or matching inbound access rules, but it won't be able to perform outbound access as a member of the NSP. |

### `KeyEncryptionKeyIdentityType` {#Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentityType}

The type of identity to use.

```typespec
union Azure.ResourceManager.CommonTypes.KeyEncryptionKeyIdentityType
```

#### Variants

| Name                      | Type                          | Description              |
| ------------------------- | ----------------------------- | ------------------------ |
| SystemAssignedIdentity    | `"systemAssignedIdentity"`    | System assigned identity |
| UserAssignedIdentity      | `"userAssignedIdentity"`      | User assigned identity   |
| DelegatedResourceIdentity | `"delegatedResourceIdentity"` | Delegated identity       |

### `ManagedServiceIdentityType` {#Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType}

Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).

```typespec
union Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType
```

### `NetworkSecurityPerimeterConfigurationProvisioningState` {#Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfigurationProvisioningState}

Provisioning state of a network security perimeter configuration that is being created or updated.

```typespec
union Azure.ResourceManager.CommonTypes.NetworkSecurityPerimeterConfigurationProvisioningState
```

#### Variants

| Name      | Type          | Description                                                                  |
| --------- | ------------- | ---------------------------------------------------------------------------- |
| Succeeded | `"Succeeded"` | The configuration was provisioned successfully.                              |
| Creating  | `"Creating"`  | The configuration is being created.                                          |
| Updating  | `"Updating"`  | The configuration is being updated.                                          |
| Deleting  | `"Deleting"`  | The configuration is being deleted.                                          |
| Accepted  | `"Accepted"`  | The configuration request was accepted and provisioning has not started yet. |
| Failed    | `"Failed"`    | The configuration failed to provision.                                       |
| Canceled  | `"Canceled"`  | The configuration provisioning was canceled.                                 |

### `Origin` {#Azure.ResourceManager.CommonTypes.Origin}

The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system"

```typespec
union Azure.ResourceManager.CommonTypes.Origin
```

#### Variants

| Name        | Type            | Description                                               |
| ----------- | --------------- | --------------------------------------------------------- |
| user        | `"user"`        | Indicates the operation is initiated by a user.           |
| system      | `"system"`      | Indicates the operation is initiated by a system.         |
| user,system | `"user,system"` | Indicates the operation is initiated by a user or system. |

### `PrivateEndpointConnectionProvisioningState` {#Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProvisioningState}

The current provisioning state.

```typespec
union Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProvisioningState
```

#### Variants

| Name      | Type          | Description                        |
| --------- | ------------- | ---------------------------------- |
| Succeeded | `"Succeeded"` | Connection has been provisioned    |
| Creating  | `"Creating"`  | Connection is being created        |
| Deleting  | `"Deleting"`  | Connection is being deleted        |
| Failed    | `"Failed"`    | Connection provisioning has failed |

### `PrivateEndpointServiceConnectionStatus` {#Azure.ResourceManager.CommonTypes.PrivateEndpointServiceConnectionStatus}

The private endpoint connection status.

```typespec
union Azure.ResourceManager.CommonTypes.PrivateEndpointServiceConnectionStatus
```

#### Variants

| Name     | Type         | Description                                  |
| -------- | ------------ | -------------------------------------------- |
| Pending  | `"Pending"`  | Connection waiting for approval or rejection |
| Approved | `"Approved"` | Connection approved                          |
| Rejected | `"Rejected"` | Connection Rejected                          |

### `PublicNetworkAccess` {#Azure.ResourceManager.CommonTypes.PublicNetworkAccess}

Allow, disallow, or let network security perimeter configuration control public network access to the protected resource. Value is optional but if passed in, it must be 'Enabled', 'Disabled' or 'SecuredByPerimeter'.

```typespec
union Azure.ResourceManager.CommonTypes.PublicNetworkAccess
```

#### Variants

| Name               | Type                   | Description                                                                                                                                                    |
| ------------------ | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Enabled            | `"Enabled"`            | Allows public network access to the resource                                                                                                                   |
| Disabled           | `"Disabled"`           | Disallows public network access to the resource                                                                                                                |
| SecuredByPerimeter | `"SecuredByPerimeter"` | The network security perimeter configuration rules allow or disallow public network access to the resource. Requires an associated network security perimeter. |

### `ResourceAssociationAccessMode` {#Azure.ResourceManager.CommonTypes.ResourceAssociationAccessMode}

Access mode of the resource association

```typespec
union Azure.ResourceManager.CommonTypes.ResourceAssociationAccessMode
```

#### Variants

| Name     | Type         | Description                                                                                    |
| -------- | ------------ | ---------------------------------------------------------------------------------------------- |
| Enforced | `"Enforced"` | Enforced access mode - traffic to the resource that failed access checks is blocked            |
| Learning | `"Learning"` | Learning access mode - traffic to the resource is enabled for analysis but not blocked         |
| Audit    | `"Audit"`    | Audit access mode - traffic to the resource that fails access checks is logged but not blocked |

### `ResourceIdentityType` {#Azure.ResourceManager.CommonTypes.ResourceIdentityType}

Resource Identity Type

```typespec
union Azure.ResourceManager.CommonTypes.ResourceIdentityType
```

#### Variants

| Name           | Type               | Description                             |
| -------------- | ------------------ | --------------------------------------- |
| SystemAssigned | `"SystemAssigned"` | The identity is assigned by the system. |

### `Severity` {#Azure.ResourceManager.CommonTypes.Severity}

Severity of the issue.

```typespec
union Azure.ResourceManager.CommonTypes.Severity
```

#### Variants

| Name    | Type        | Description                                                                       |
| ------- | ----------- | --------------------------------------------------------------------------------- |
| Warning | `"Warning"` | The issue is a warning and does not prevent the configuration from being applied. |
| Error   | `"Error"`   | The issue is an error and prevents the configuration from being applied.          |

### `SkuTier` {#Azure.ResourceManager.CommonTypes.SkuTier}

This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.

```typespec
union Azure.ResourceManager.CommonTypes.SkuTier
```

#### Variants

| Name     | Type         | Description                |
| -------- | ------------ | -------------------------- |
| Free     | `"Free"`     | The Free service tier.     |
| Basic    | `"Basic"`    | The Basic service tier.    |
| Standard | `"Standard"` | The Standard service tier. |
| Premium  | `"Premium"`  | The Premium service tier.  |

### `SystemAssignedServiceIdentityType` {#Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType}

Type of managed service identity (either system assigned, or none).

```typespec
union Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType
```

#### Variants

| Name           | Type               | Description                              |
| -------------- | ------------------ | ---------------------------------------- |
| None           | `"None"`           | No managed system identity.              |
| SystemAssigned | `"SystemAssigned"` | System assigned managed system identity. |

## Azure.ResourceManager.Extension

### `ExtensionInstanceParameters` {#Azure.ResourceManager.Extension.ExtensionInstanceParameters}

The path parameters for an extension resource at the given target

```typespec
model Azure.ResourceManager.Extension.ExtensionInstanceParameters<TargetResource, Resource>
```

#### Template Parameters

| Name           | Description                                                                                                                                                                                       |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| TargetResource | The target of the extension resource (Extension.Tenant, Extension.Subscription, Extension.ResourceGroup, Extension.Scope, Extension.ManagementGroup, Extension.ServiceGroup or another resource). |
| Resource       | The extension resource.                                                                                                                                                                           |

#### Properties

| Name              | Type                                     | Description                                                   |
| ----------------- | ---------------------------------------- | ------------------------------------------------------------- |
| apiVersion        | `string`                                 | The API version to use for this operation.                    |
| subscriptionId    | `Azure.Core.uuid`                        | The ID of the target subscription. The value must be an UUID. |
| resourceGroupName | `string`                                 | The name of the resource group. The name is case insensitive. |
| provider          | `"Microsoft.TargetProviderNamespace"`    |                                                               |
| extensionProvider | `"Microsoft.ExtensionProviderNamespace"` |                                                               |

### `ExtensionParentParameters` {#Azure.ResourceManager.Extension.ExtensionParentParameters}

The path parameters for a collection of extension resources at the given target

```typespec
model Azure.ResourceManager.Extension.ExtensionParentParameters<TargetResource, ExtensionResource>
```

#### Template Parameters

| Name              | Description                                                                                                                                                                                       |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| TargetResource    | The target of the extension resource (Extension.Tenant, Extension.Subscription, Extension.ResourceGroup, Extension.Scope, Extension.ManagementGroup, Extension.ServiceGroup or another resource). |
| ExtensionResource | The extension resource.                                                                                                                                                                           |

#### Properties

| Name              | Type                                     | Description                                                   |
| ----------------- | ---------------------------------------- | ------------------------------------------------------------- |
| apiVersion        | `string`                                 | The API version to use for this operation.                    |
| subscriptionId    | `Azure.Core.uuid`                        | The ID of the target subscription. The value must be an UUID. |
| resourceGroupName | `string`                                 | The name of the resource group. The name is case insensitive. |
| provider          | `"Microsoft.TargetProviderNamespace"`    |                                                               |
| extensionProvider | `"Microsoft.ExtensionProviderNamespace"` |                                                               |

### `ExtensionProviderNamespace` {#Azure.ResourceManager.Extension.ExtensionProviderNamespace}

The provider namespace for an extension resource

```typespec
model Azure.ResourceManager.Extension.ExtensionProviderNamespace<Resource>
```

#### Template Parameters

| Name     | Description                  |
| -------- | ---------------------------- |
| Resource | The extension resource model |

#### Properties

| Name              | Type                                     | Description |
| ----------------- | ---------------------------------------- | ----------- |
| extensionProvider | `"Microsoft.ExtensionProviderNamespace"` |             |

### `ExternalChildResource` {#Azure.ResourceManager.Extension.ExternalChildResource}

An external child resource target, used when an extension targets a child resource from another provider namespace

```typespec
model Azure.ResourceManager.Extension.ExternalChildResource<ParentModel, ResourceType, ResourceParameterName, NamePattern, NameType, Description>
```

#### Template Parameters

| Name                  | Description                                                                                     |
| --------------------- | ----------------------------------------------------------------------------------------------- |
| ParentModel           | The parent of this resource.                                                                    |
| ResourceType          | The type of this resource.                                                                      |
| ResourceParameterName | The name of the 'name' parameter of this resource.                                              |
| NamePattern           | The pattern restriction for the name of this resource (default is none).                        |
| NameType              | The type of the name parameter of this resource (default is string).                            |
| Description           | The description of the name parameter of this resource (default is "The name of the resource"). |

#### Examples

```typespec
alias VirtualMachine = ExternalResource<"Microsoft.Compute", "virtualMachines", "vmName">;
```

```typespec
alias Scaleset = Extension.ExternalResource<
  "Microsoft.Compute",
  "virtualMachineScaleSets",
  "scaleSetName"
>;

alias VirtualMachineScaleSetVm = Extension.ExternalChildResource<
  Scaleset,
  "virtualMachineScaleSetVms",
  "scaleSetVmName"
>;
```

#### Properties

| Name | Type       | Description               |
| ---- | ---------- | ------------------------- |
| name | `NameType` | The name of the resource. |

### `ExternalResource` {#Azure.ResourceManager.Extension.ExternalResource}

An external resource target, used when an extension targets a resource from another provider namespace

```typespec
model Azure.ResourceManager.Extension.ExternalResource<TargetNamespace, ResourceType, ResourceParameterName, NamePattern, NameType, Description, ParentType>
```

#### Template Parameters

| Name                  | Description                                                                                                           |
| --------------------- | --------------------------------------------------------------------------------------------------------------------- |
| TargetNamespace       | The provider namespace for the external resource.                                                                     |
| ResourceType          | The type of the external resource.                                                                                    |
| ResourceParameterName | The name of the 'name' parameter of the external resource.                                                            |
| NamePattern           | The pattern restriction for the name of the external resource (default is none).                                      |
| NameType              | The type of the name parameter of the external resource (default is string).                                          |
| Description           | The description of the name parameter of the external resource (default is "The name of the resource").               |
| ParentType            | The parent type of the external resource (default is "ResourceGroup", other options are "Tenant" and "Subscription"). |

#### Examples

```typespec
alias VirtualMachine = ExternalResource<"Microsoft.Compute", "virtualMachines", "vmName">;
```

```typespec
alias Scaleset = Extension.ExternalResource<
  "Microsoft.Compute",
  "virtualMachineScaleSets",
  "scaleSetName"
>;
```

#### Properties

| Name | Type       | Description               |
| ---- | ---------- | ------------------------- |
| name | `NameType` | The name of the resource. |

### `ManagementGroup` {#Azure.ResourceManager.Extension.ManagementGroup}

A management group

```typespec
model Azure.ResourceManager.Extension.ManagementGroup<ParameterName>
```

#### Template Parameters

| Name          | Description                                                                                                  |
| ------------- | ------------------------------------------------------------------------------------------------------------ |
| ParameterName | The name of the 'name' parameter of the management group (usually managementGroupName or managementGroupId). |

#### Properties

| Name | Type     | Description |
| ---- | -------- | ----------- |
| name | `string` |             |

### `ResourceGroup` {#Azure.ResourceManager.Extension.ResourceGroup}

A resource group target for an extension resource

```typespec
model Azure.ResourceManager.Extension.ResourceGroup
```

#### Properties

None

### `ScopeParameter` {#Azure.ResourceManager.Extension.ScopeParameter}

The default scope parameter for an extension resource.

```typespec
model Azure.ResourceManager.Extension.ScopeParameter<Type>
```

#### Template Parameters

| Name | Description                                                                                                                                        |
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| Type | The type of the scope parameter (default is string). This can be used to specify `Azure.Core.armResourceIdentifier` type or other constrained type |

#### Examples

```typespec
model Employee {
  ...ResourceUriParameter;
}
```

#### Properties

| Name  | Type   | Description |
| ----- | ------ | ----------- |
| scope | `Type` |             |

### `ServiceGroup` {#Azure.ResourceManager.Extension.ServiceGroup}

A service group

```typespec
model Azure.ResourceManager.Extension.ServiceGroup<ParameterName>
```

#### Template Parameters

| Name          | Description                                                                                         |
| ------------- | --------------------------------------------------------------------------------------------------- |
| ParameterName | The name of the 'name' parameter of the service group (usually serviceGroupName or serviceGroupId). |

#### Properties

| Name | Type     | Description |
| ---- | -------- | ----------- |
| name | `string` |             |

### `Subscription` {#Azure.ResourceManager.Extension.Subscription}

A subscription target for an extension resource

```typespec
model Azure.ResourceManager.Extension.Subscription
```

#### Properties

None

### `TargetBaseParameters` {#Azure.ResourceManager.Extension.TargetBaseParameters}

Base parameters for an extension target.

```typespec
model Azure.ResourceManager.Extension.TargetBaseParameters<Resource>
```

#### Template Parameters

| Name     | Description                                                                                                                                                                                                         |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Resource | The resource model for an extension target (usually Extension.Tenant, Extension.Subscription, Extension.ResourceGroup, Extension.Scope, Extension.ManagementGroup, Extension.ServiceGroup or an external resource). |

#### Properties

| Name              | Type                                  | Description                                                   |
| ----------------- | ------------------------------------- | ------------------------------------------------------------- |
| apiVersion        | `string`                              | The API version to use for this operation.                    |
| subscriptionId    | `Azure.Core.uuid`                     | The ID of the target subscription. The value must be an UUID. |
| resourceGroupName | `string`                              | The name of the resource group. The name is case insensitive. |
| provider          | `"Microsoft.TargetProviderNamespace"` |                                                               |

### `TargetParameters` {#Azure.ResourceManager.Extension.TargetParameters}

The path parameters for a target resource for an extension

```typespec
model Azure.ResourceManager.Extension.TargetParameters<Resource>
```

#### Template Parameters

| Name     | Description                                                                                                                                                                                                         |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Resource | The resource model for an extension target (usually Extension.Tenant, Extension.Subscription, Extension.ResourceGroup, Extension.Scope, Extension.ManagementGroup, Extension.ServiceGroup or an external resource). |

#### Properties

| Name              | Type                                  | Description                                                   |
| ----------------- | ------------------------------------- | ------------------------------------------------------------- |
| apiVersion        | `string`                              | The API version to use for this operation.                    |
| subscriptionId    | `Azure.Core.uuid`                     | The ID of the target subscription. The value must be an UUID. |
| resourceGroupName | `string`                              | The name of the resource group. The name is case insensitive. |
| provider          | `"Microsoft.TargetProviderNamespace"` |                                                               |

### `TargetProviderNamespace` {#Azure.ResourceManager.Extension.TargetProviderNamespace}

The provider namespace (if any) for a target resource for an extension

```typespec
model Azure.ResourceManager.Extension.TargetProviderNamespace<Resource>
```

#### Template Parameters

| Name     | Description                                                                                                                                                                                                        |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Resource | The resource model for an extension target (usually Extension.Tenant, Extension.Subscription, Extension.ResourceGroup, Extension.Scope, Extension.ManagementGroup, Extension.ServiceGroup or an external resource) |

#### Properties

| Name     | Type                                  | Description |
| -------- | ------------------------------------- | ----------- |
| provider | `"Microsoft.TargetProviderNamespace"` |             |

### `Tenant` {#Azure.ResourceManager.Extension.Tenant}

A tenant target for the extension resource

```typespec
model Azure.ResourceManager.Extension.Tenant
```

#### Properties

None

## Azure.ResourceManager.Foundations

### `ArmTagsProperty` {#Azure.ResourceManager.Foundations.ArmTagsProperty}

Standard type definition for Azure Resource Manager Tags property.

It is included in the TrackedResource template definition.
The Azure Resource Manager Resource tags.

```typespec
model Azure.ResourceManager.Foundations.ArmTagsProperty
```

#### Properties

| Name  | Type             | Description    |
| ----- | ---------------- | -------------- |
| tags? | `Record<string>` | Resource tags. |

### `DefaultBaseParameters` {#Azure.ResourceManager.Foundations.DefaultBaseParameters}

Base parameters for a resource.

```typespec
model Azure.ResourceManager.Foundations.DefaultBaseParameters<Resource>
```

#### Template Parameters

| Name     | Description               |
| -------- | ------------------------- |
| Resource | The type of the resource. |

#### Properties

| Name              | Type              | Description                                                            |
| ----------------- | ----------------- | ---------------------------------------------------------------------- |
| apiVersion        | `string`          | The API version to use for this operation.                             |
| subscriptionId    | `Azure.Core.uuid` | The ID of the target subscription. The value must be an UUID.          |
| location          | `string`          | The name of Azure region.                                              |
| resourceGroupName | `string`          | The name of the resource group. The name is case insensitive.          |
| resourceUri       | `string`          | The fully qualified Azure Resource manager identifier of the resource. |

### `ExtensionBaseParameters` {#Azure.ResourceManager.Foundations.ExtensionBaseParameters}

The static parameters for an extension resource

```typespec
model Azure.ResourceManager.Foundations.ExtensionBaseParameters
```

#### Properties

| Name        | Type     | Description                                                            |
| ----------- | -------- | ---------------------------------------------------------------------- |
| apiVersion  | `string` | The API version to use for this operation.                             |
| resourceUri | `string` | The fully qualified Azure Resource manager identifier of the resource. |

### `ExtensionScope` {#Azure.ResourceManager.Foundations.ExtensionScope}

Parameter model for listing an extension resource

```typespec
model Azure.ResourceManager.Foundations.ExtensionScope<Resource>
```

#### Template Parameters

| Name     | Description               |
| -------- | ------------------------- |
| Resource | The type of the resource. |

#### Properties

| Name        | Type                             | Description                                                            |
| ----------- | -------------------------------- | ---------------------------------------------------------------------- |
| apiVersion  | `string`                         | The API version to use for this operation.                             |
| resourceUri | `string`                         | The fully qualified Azure Resource manager identifier of the resource. |
| provider    | `"Microsoft.ThisWillBeReplaced"` |                                                                        |

### `LocationBaseParameters` {#Azure.ResourceManager.Foundations.LocationBaseParameters}

The static parameters for a location-based resource

```typespec
model Azure.ResourceManager.Foundations.LocationBaseParameters
```

#### Properties

| Name           | Type              | Description                                                   |
| -------------- | ----------------- | ------------------------------------------------------------- |
| apiVersion     | `string`          | The API version to use for this operation.                    |
| subscriptionId | `Azure.Core.uuid` | The ID of the target subscription. The value must be an UUID. |
| location       | `string`          | The location name.                                            |

### `LocationScope` {#Azure.ResourceManager.Foundations.LocationScope}

Parameter model for listing a resource at the location scope

```typespec
model Azure.ResourceManager.Foundations.LocationScope<Resource>
```

#### Template Parameters

| Name     | Description               |
| -------- | ------------------------- |
| Resource | The type of the resource. |

#### Properties

| Name           | Type                             | Description                                                   |
| -------------- | -------------------------------- | ------------------------------------------------------------- |
| apiVersion     | `string`                         | The API version to use for this operation.                    |
| subscriptionId | `Azure.Core.uuid`                | The ID of the target subscription. The value must be an UUID. |
| location       | `string`                         | The location name.                                            |
| provider       | `"Microsoft.ThisWillBeReplaced"` |                                                               |

### `ProxyResourceUpdateModel` {#Azure.ResourceManager.Foundations.ProxyResourceUpdateModel}

The type used for update operations of the resource.

```typespec
model Azure.ResourceManager.Foundations.ProxyResourceUpdateModel<Resource, Properties>
```

#### Template Parameters

| Name       | Description                 |
| ---------- | --------------------------- |
| Resource   | The type of the resource.   |
| Properties | The type of the properties. |

#### Properties

| Name        | Type                                                                                    | Description                                         |
| ----------- | --------------------------------------------------------------------------------------- | --------------------------------------------------- |
| properties? | `Azure.ResourceManager.Foundations.ResourceUpdateModelProperties<Resource, Properties>` | The resource-specific properties for this resource. |

### `ResourceGroupBaseParameters` {#Azure.ResourceManager.Foundations.ResourceGroupBaseParameters}

The static parameters for a resource-group based resource

```typespec
model Azure.ResourceManager.Foundations.ResourceGroupBaseParameters
```

#### Properties

| Name              | Type              | Description                                                   |
| ----------------- | ----------------- | ------------------------------------------------------------- |
| apiVersion        | `string`          | The API version to use for this operation.                    |
| subscriptionId    | `Azure.Core.uuid` | The ID of the target subscription. The value must be an UUID. |
| resourceGroupName | `string`          | The name of the resource group. The name is case insensitive. |

### `ResourceGroupScope` {#Azure.ResourceManager.Foundations.ResourceGroupScope}

Parameter model for listing a resource at the resource group scope

```typespec
model Azure.ResourceManager.Foundations.ResourceGroupScope<Resource>
```

#### Template Parameters

| Name     | Description               |
| -------- | ------------------------- |
| Resource | The type of the resource. |

#### Properties

| Name              | Type                             | Description                                                            |
| ----------------- | -------------------------------- | ---------------------------------------------------------------------- |
| apiVersion        | `string`                         | The API version to use for this operation.                             |
| subscriptionId    | `Azure.Core.uuid`                | The ID of the target subscription. The value must be an UUID.          |
| location          | `string`                         | The name of Azure region.                                              |
| resourceGroupName | `string`                         | The name of the resource group. The name is case insensitive.          |
| resourceUri       | `string`                         | The fully qualified Azure Resource manager identifier of the resource. |
| provider          | `"Microsoft.ThisWillBeReplaced"` |                                                                        |

### `ResourceUpdateModel` {#Azure.ResourceManager.Foundations.ResourceUpdateModel}

Defines a model type used to create named resource update models
e.g. `model MyResourceUpdate is ResourceUpdate<MyResourceProperties> {}`

```typespec
model Azure.ResourceManager.Foundations.ResourceUpdateModel<Resource, Properties>
```

#### Template Parameters

| Name       | Description                 |
| ---------- | --------------------------- |
| Resource   | The type of the resource.   |
| Properties | The type of the properties. |

#### Properties

| Name        | Type                                                                                    | Description                                         |
| ----------- | --------------------------------------------------------------------------------------- | --------------------------------------------------- |
| properties? | `Azure.ResourceManager.Foundations.ResourceUpdateModelProperties<Resource, Properties>` | The resource-specific properties for this resource. |

### `ResourceUpdateModelProperties` {#Azure.ResourceManager.Foundations.ResourceUpdateModelProperties}

Defines a properties type used to create named resource update models.
This type is not used directly, it is referenced by ResourceUpdateModel.

```typespec
model Azure.ResourceManager.Foundations.ResourceUpdateModelProperties<Resource, Properties>
```

#### Template Parameters

| Name       | Description                 |
| ---------- | --------------------------- |
| Resource   | The type of the resource.   |
| Properties | The type of the properties. |

#### Properties

None

### `SimpleResource` {#Azure.ResourceManager.Foundations.SimpleResource}

A base definition of a resource using simple types. This
model should only be used as a constraint for other models.

```typespec
model Azure.ResourceManager.Foundations.SimpleResource
```

#### Properties

| Name        | Type      | Description                      |
| ----------- | --------- | -------------------------------- |
| id?         | `string`  | The resource identifier          |
| name?       | `string`  | The resource name                |
| type?       | `string`  | The resource type                |
| systemData? | `unknown` | readonly data about the resource |

### `SubscriptionBaseParameters` {#Azure.ResourceManager.Foundations.SubscriptionBaseParameters}

The static parameters for a subscription based resource

```typespec
model Azure.ResourceManager.Foundations.SubscriptionBaseParameters
```

#### Properties

| Name           | Type              | Description                                                   |
| -------------- | ----------------- | ------------------------------------------------------------- |
| apiVersion     | `string`          | The API version to use for this operation.                    |
| subscriptionId | `Azure.Core.uuid` | The ID of the target subscription. The value must be an UUID. |

### `SubscriptionScope` {#Azure.ResourceManager.Foundations.SubscriptionScope}

Parameter model for listing a resource at the subscription scope

```typespec
model Azure.ResourceManager.Foundations.SubscriptionScope<Resource>
```

#### Template Parameters

| Name     | Description               |
| -------- | ------------------------- |
| Resource | The type of the resource. |

#### Properties

| Name           | Type                             | Description                                                   |
| -------------- | -------------------------------- | ------------------------------------------------------------- |
| apiVersion     | `string`                         | The API version to use for this operation.                    |
| subscriptionId | `Azure.Core.uuid`                | The ID of the target subscription. The value must be an UUID. |
| provider       | `"Microsoft.ThisWillBeReplaced"` |                                                               |

### `TagsUpdateModel` {#Azure.ResourceManager.Foundations.TagsUpdateModel}

The type used for updating tags in resources.

```typespec
model Azure.ResourceManager.Foundations.TagsUpdateModel<Resource>
```

#### Template Parameters

| Name     | Description               |
| -------- | ------------------------- |
| Resource | The type of the resource. |

#### Properties

| Name  | Type             | Description    |
| ----- | ---------------- | -------------- |
| tags? | `Record<string>` | Resource tags. |

### `TenantBaseParameters` {#Azure.ResourceManager.Foundations.TenantBaseParameters}

The static parameters for a tenant-based resource

```typespec
model Azure.ResourceManager.Foundations.TenantBaseParameters
```

#### Properties

| Name       | Type     | Description                                |
| ---------- | -------- | ------------------------------------------ |
| apiVersion | `string` | The API version to use for this operation. |

### `TenantScope` {#Azure.ResourceManager.Foundations.TenantScope}

Parameter model for listing a resource at the tenant scope

```typespec
model Azure.ResourceManager.Foundations.TenantScope<Resource>
```

#### Template Parameters

| Name     | Description               |
| -------- | ------------------------- |
| Resource | The type of the resource. |

#### Properties

| Name       | Type                             | Description                                |
| ---------- | -------------------------------- | ------------------------------------------ |
| apiVersion | `string`                         | The API version to use for this operation. |
| provider   | `"Microsoft.ThisWillBeReplaced"` |                                            |

## Azure.ResourceManager.Legacy

### `ArmFeatureOptions` {#Azure.ResourceManager.Legacy.ArmFeatureOptions}

Options for defining a feature and the associated file

```typespec
model Azure.ResourceManager.Legacy.ArmFeatureOptions
```

#### Properties

| Name            | Type     | Description                               |
| --------------- | -------- | ----------------------------------------- |
| featureName     | `string` | The feature name                          |
| fileName        | `string` | The associated file name for the features |
| description     | `string` | The feature description in Swagger        |
| title?          | `string` | The feature title in Swagger              |
| termsOfService? | `string` | The feature terms of service in Swagger   |

### `ArmOperationOptions` {#Azure.ResourceManager.Legacy.ArmOperationOptions}

Route options for an operation

```typespec
model Azure.ResourceManager.Legacy.ArmOperationOptions
```

#### Properties

| Name            | Type      | Description                            |
| --------------- | --------- | -------------------------------------- |
| useStaticRoute? | `boolean` | Should a static route be used          |
| route?          | `string`  | The status route for operations to use |

### `CustomAzureProxyResource` {#Azure.ResourceManager.Legacy.CustomAzureProxyResource}

Model representing a custom resource that extends ProxyResource.
Use this template with 'is' to create a custom proxy resource.

```typespec
model Azure.ResourceManager.Legacy.CustomAzureProxyResource<isResource>
```

#### Template Parameters

| Name       | Description                                                                                                    |
| ---------- | -------------------------------------------------------------------------------------------------------------- |
| isResource | Optional. A boolean flag indicating whether the resource should be marked as an Azure resource. Default false. |

#### Properties

None

### `CustomAzureResource` {#Azure.ResourceManager.Legacy.CustomAzureResource}

Model representing a custom Azure Resource Manager Resource.
Use this template with 'is' to create a custom resource.

```typespec
model Azure.ResourceManager.Legacy.CustomAzureResource<isResource>
```

#### Template Parameters

| Name       | Description                                                                                                   |
| ---------- | ------------------------------------------------------------------------------------------------------------- |
| isResource | Optional. A boolean flag indicating whether the resource should be marked as an Azure resource. Default true. |

#### Properties

None

### `CustomResourceOptions` {#Azure.ResourceManager.Legacy.CustomResourceOptions}

Options for customizing the behavior of a custom azure resource

```typespec
model Azure.ResourceManager.Legacy.CustomResourceOptions
```

#### Properties

| Name             | Type      | Description                                        |
| ---------------- | --------- | -------------------------------------------------- |
| isAzureResource? | `boolean` | Should the resource be marked as an Azure resource |

### `DiscriminatedExtensionResource` {#Azure.ResourceManager.Legacy.DiscriminatedExtensionResource}

Polymorphic extension resources can be instantiated using this type, using 'kind' as the discriminator property.

See more details on [different Azure Resource Manager resource type here.](https://azure.github.io/typespec-azure/docs/howtos/ARM/resource-type)

```typespec
model Azure.ResourceManager.Legacy.DiscriminatedExtensionResource<KindType, Description>
```

#### Template Parameters

| Name        | Description                                                       |
| ----------- | ----------------------------------------------------------------- |
| KindType    | The type of the discriminator property `kind`. Default is string. |
| Description | A description of the resource                                     |

#### Examples

```typespec
model Pet is DiscriminatedExtensionResource;

model Dog extends Pet {
  kind: "dog";
  properties: DogProperties;
}
```

#### Properties

| Name | Type       | Description |
| ---- | ---------- | ----------- |
| kind | `KindType` |             |

### `DiscriminatedProxyResource` {#Azure.ResourceManager.Legacy.DiscriminatedProxyResource}

Discriminated proxy resource types can be created by instantiating using this type, with 'kind' as the discriminator property.

See more details on [different Azure Resource Manager resource type here.](https://azure.github.io/typespec-azure/docs/howtos/ARM/resource-type)

```typespec
model Azure.ResourceManager.Legacy.DiscriminatedProxyResource<KindType, Description>
```

#### Template Parameters

| Name        | Description                                                       |
| ----------- | ----------------------------------------------------------------- |
| KindType    | The type of the discriminator property `kind`. Default is string. |
| Description | A description of the resource                                     |

#### Examples

```typespec
model Pet is DiscriminatedProxyResource;

model Dog extends Pet {
  kind: "dog";
  properties: DogProperties;
}
```

#### Properties

| Name | Type       | Description |
| ---- | ---------- | ----------- |
| kind | `KindType` |             |

### `DiscriminatedTrackedResource` {#Azure.ResourceManager.Legacy.DiscriminatedTrackedResource}

Discriminated tracked resource types can be created by instantiating this type, with 'kind' as the discriminator property.

See more details on [different Azure Resource Manager resource type here.](https://azure.github.io/typespec-azure/docs/howtos/ARM/resource-type)

```typespec
model Azure.ResourceManager.Legacy.DiscriminatedTrackedResource<KindType, Description>
```

#### Template Parameters

| Name        | Description                                                       |
| ----------- | ----------------------------------------------------------------- |
| KindType    | The type of the discriminator property `kind`. Default is string. |
| Description | A description of the resource                                     |

#### Examples

```typespec
model Pet is DiscriminatedTrackedResource;

model Dog extends Pet {
  kind: "dog";
  properties: DogProperties;
}
```

#### Properties

| Name | Type       | Description |
| ---- | ---------- | ----------- |
| kind | `KindType` |             |

### `ExtendedLocationOptional` {#Azure.ResourceManager.Legacy.ExtendedLocationOptional}

The complex type of the extended location.

```typespec
model Azure.ResourceManager.Legacy.ExtendedLocationOptional
```

#### Properties

| Name  | Type                                                                                             | Description                        |
| ----- | ------------------------------------------------------------------------------------------------ | ---------------------------------- |
| name? | `string`                                                                                         | The name of the extended location. |
| type? | [`ExtendedLocationType`](./data-types.md#Azure.ResourceManager.CommonTypes.ExtendedLocationType) | The type of the extended location. |

### `ExtendedLocationOptionalProperty` {#Azure.ResourceManager.Legacy.ExtendedLocationOptionalProperty}

Legacy. Model representing a non-standard `extendedLocation` envelope property with all properties optional.
Spread this model into a Resource Model, if you are converting a BrownField API with extended location that has optional properties

```typespec
model Azure.ResourceManager.Legacy.ExtendedLocationOptionalProperty
```

#### Examples

```typespec
model Employee is TrackedResource<EmployeeProperties> {
  ...ResourceNameParameter<Employee>;
  ...ExtendedLocationOptionalProperty;
}
```

#### Properties

| Name              | Type                                                                                                | Description                            |
| ----------------- | --------------------------------------------------------------------------------------------------- | -------------------------------------- |
| extendedLocation? | [`ExtendedLocationOptional`](./data-types.md#Azure.ResourceManager.Legacy.ExtendedLocationOptional) | The extended location of the resource. |

### `GenericResource` {#Azure.ResourceManager.Legacy.GenericResource}

A generic Azure Resource Manager resource type that does not require name, key,
or segment properties on the model itself. The resource type and path information
comes from the operations (e.g. RoutedOperations).

See more details on [different Azure Resource Manager resource type here.](https://azure.github.io/typespec-azure/docs/howtos/ARM/resource-type)

```typespec
model Azure.ResourceManager.Legacy.GenericResource<Properties, PropertiesOptional>
```

#### Template Parameters

| Name               | Description                                                                                                                                    |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Properties         | A model containing the provider-specific properties for this resource                                                                          |
| PropertiesOptional | A boolean flag indicating whether the resource `Properties` field is marked as optional or required. Default true is optional and recommended. |

#### Examples

```typespec
model MyResource is GenericResource<{}>;
```

#### Properties

| Name        | Type         | Description |
| ----------- | ------------ | ----------- |
| properties? | `Properties` |             |

### `ManagedServiceIdentityV4` {#Azure.ResourceManager.Legacy.ManagedServiceIdentityV4}

Managed service identity (system assigned and/or user assigned identities)

```typespec
model Azure.ResourceManager.Legacy.ManagedServiceIdentityV4
```

#### Properties

| Name                    | Type                                                                                                    | Description                                                                                                                   |
| ----------------------- | ------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| principalId?            | `Azure.Core.uuid`                                                                                       | The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. |
| tenantId?               | `Azure.Core.uuid`                                                                                       | The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.            |
| type                    | [`ManagedServiceIdentityType`](./data-types.md#Azure.ResourceManager.Legacy.ManagedServiceIdentityType) | The type of managed identity assigned to this resource.                                                                       |
| userAssignedIdentities? | `Record<Azure.ResourceManager.CommonTypes.UserAssignedIdentity>`                                        | The identities assigned to this resource by the user.                                                                         |

### `ManagedServiceIdentityV4Property` {#Azure.ResourceManager.Legacy.ManagedServiceIdentityV4Property}

Model representing the standard `ManagedServiceIdentity` envelope property from V4 of common type.

Please note that this is only included for legacy specs with mixed v3 and v4 types, which would cause
breaking changes due to the ManagedServiceIdentityType.SystemAndUserAssigned value changes.

Do not use this if you are already on CommonTypes.Version.v4 or beyond.

```typespec
model Azure.ResourceManager.Legacy.ManagedServiceIdentityV4Property
```

#### Examples

```typespec
model Foo is TrackedResource<FooProperties> {
  ...ResourceNameParameter<Foo>;
  ...Legacy.ManagedServiceIdentityV4Property;
}
```

#### Properties

| Name      | Type                                                                                                | Description                                               |
| --------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| identity? | [`ManagedServiceIdentityV4`](./data-types.md#Azure.ResourceManager.Legacy.ManagedServiceIdentityV4) | The managed service identities assigned to this resource. |

### `PolymorphicResourceKindProperty` {#Azure.ResourceManager.Legacy.PolymorphicResourceKindProperty}

Model representing the `kind` envelope property only for use with a polymorphic resource..
Spread this model into a resource model if the resource support ARM `kind`.

```typespec
model Azure.ResourceManager.Legacy.PolymorphicResourceKindProperty<Type>
```

#### Template Parameters

| Name | Description                                                                                        |
| ---- | -------------------------------------------------------------------------------------------------- |
| Type | The type of the kind property. Default is string. However you can pass a union with string values. |

#### Examples

```typespec
model Foo is TrackedResource<FooProperties> {
  // Only have standard Succeeded, Failed, Cancelled states
  ...PolymorphicResourceKindProperty;
}
```

#### Properties

| Name | Type   | Description |
| ---- | ------ | ----------- |
| kind | `Type` |             |

### `Provider` {#Azure.ResourceManager.Legacy.Provider}

DEPRECATED: Use ProviderParameter instead. Get the provider namespace key-value pair

```typespec
model Azure.ResourceManager.Legacy.Provider<Resource>
```

#### Template Parameters

| Name     | Description                                               |
| -------- | --------------------------------------------------------- |
| Resource | Optional. The resource to get the provider namespace for. |

#### Properties

| Name     | Type                             | Description |
| -------- | -------------------------------- | ----------- |
| provider | `"Microsoft.ThisWillBeReplaced"` |             |

### `ProviderParameter` {#Azure.ResourceManager.Legacy.ProviderParameter}

Get the provider namespace key-value pair

```typespec
model Azure.ResourceManager.Legacy.ProviderParameter<Resource>
```

#### Template Parameters

| Name     | Description                                     |
| -------- | ----------------------------------------------- |
| Resource | The resource to get the provider namespace for. |

#### Properties

| Name     | Type                             | Description |
| -------- | -------------------------------- | ----------- |
| provider | `"Microsoft.ThisWillBeReplaced"` |             |

### `ResourceWithPathParameter` {#Azure.ResourceManager.Legacy.ResourceWithPathParameter}

Template that allows a model to include a path parameter property without adding the property to a request body

```typespec
model Azure.ResourceManager.Legacy.ResourceWithPathParameter
```

#### Properties

None

### `TrackedResourceWithOptionalLocation` {#Azure.ResourceManager.Legacy.TrackedResourceWithOptionalLocation}

This type uses an optional location property, only used by legacy APIs.
Concrete tracked resource types can be created by aliasing this type using a specific property type.

See more details on [different Azure Resource Manager resource type here.](https://azure.github.io/typespec-azure/docs/howtos/ARM/resource-type)

```typespec
model Azure.ResourceManager.Legacy.TrackedResourceWithOptionalLocation<Properties, PropertiesOptional>
```

#### Template Parameters

| Name               | Description                                                                                                                                    |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Properties         | A model containing the provider-specific properties for this resource                                                                          |
| PropertiesOptional | A boolean flag indicating whether the resource `Properties` field is marked as optional or required. Default true is optional and recommended. |

#### Examples

```typespec
model Employee is TrackedResourceWithOptionalLocation<EmployeeProperties> {
  ...ResourceNameParameter<Employee>;
}
```

#### Properties

| Name        | Type             | Description                               |
| ----------- | ---------------- | ----------------------------------------- |
| properties? | `Properties`     |                                           |
| tags?       | `Record<string>` | Resource tags.                            |
| location?   | `string`         | The geo-location where the resource lives |

### `ManagedServiceIdentityType` {#Azure.ResourceManager.Legacy.ManagedServiceIdentityType}

Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).

```typespec
union Azure.ResourceManager.Legacy.ManagedServiceIdentityType
```

#### Variants

| Name                  | Type                             | Description                                |
| --------------------- | -------------------------------- | ------------------------------------------ |
| None                  | `"None"`                         | No managed identity.                       |
| SystemAssigned        | `"SystemAssigned"`               | System assigned managed identity.          |
| UserAssigned          | `"UserAssigned"`                 | User assigned managed identity.            |
| SystemAndUserAssigned | `"SystemAssigned, UserAssigned"` | System and user assigned managed identity. |
