# AzureProvisionableAspireResource<T>

- Kind: `class`
- Package: [Aspire.Hosting.Foundry](/reference/api/csharp/aspire.hosting.foundry.md)
- Version: `13.4.0-preview.1.26281.18`
- Namespace: `Aspire.Hosting.Foundry`
- Target framework: `net8.0`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/becb48e2d61099e35ae336d527d3875e928d6594/src/Aspire.Hosting.Foundry/Project/AzureCognitiveServicesBase.cs)
- Inherits: `AzureProvisioningResource`

An Aspire wrapper around an Azure.Provisioning.ProvisionableResource.

## Definition

```csharp
namespace Aspire.Hosting.Foundry;

public abstract class AzureProvisionableAspireResource<T>
    : Aspire.Hosting.Azure.AzureProvisioningResource
    where T : ProvisionableResource
{
    // ...
}
```

## Properties

- [NameOutputReference](/reference/api/csharp/aspire.hosting.foundry/azureprovisionableaspireresource-1/properties.md#nameoutputreference) : `BicepOutputReference` `get` -- Provide the (usually unique) name of the resource

## Methods

- [AddAsExistingResource(AzureResourceInfrastructure)](/reference/api/csharp/aspire.hosting.foundry/azureprovisionableaspireresource-1/methods.md#addasexistingresource-azureresourceinfrastructure) : `T` `virtual`
- [FromExisting(string)](/reference/api/csharp/aspire.hosting.foundry/azureprovisionableaspireresource-1/methods.md#fromexisting-string) : `T` `abstract` -- Gets the Azure.Provisioning resource from an existing Bicep identifier. Because static methods can't be abstract, this is an instance method.
- [GetProvisionableResource(AzureResourceInfrastructure, string)](/reference/api/csharp/aspire.hosting.foundry/azureprovisionableaspireresource-1/methods.md#getprovisionableresource-azureresourceinfrastructure-string) : `T?` `static` -- Get the underlying provisionable resource of type T for the given AzureProvisioningResource.
- [SetName(T, BicepValue<string>)](/reference/api/csharp/aspire.hosting.foundry/azureprovisionableaspireresource-1/methods.md#setname-t-bicepvalue-string) `abstract` -- Sets the name of the provisionable resource. This is needed because not all ProvisionableResource classes have a name property with a setter, and we can't put a type bound on T to require it.
