# CloudFormationExtensions Methods

- Package: [Aspire.Hosting.AWS](/reference/api/csharp/aspire.hosting.aws.md)
- Type: [CloudFormationExtensions](/reference/api/csharp/aspire.hosting.aws/cloudformationextensions.md)
- Kind: `Methods`
- Members: `9`

Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.

## AddAWSCloudFormationStack(IDistributedApplicationBuilder, string, string?)

- Name: `AddAWSCloudFormationStack(IDistributedApplicationBuilder, string, string?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ICloudFormationStackResource>`

```csharp
public static class CloudFormationExtensions
{
    public static IResourceBuilder<ICloudFormationStackResource> AddAWSCloudFormationStack(
        this IDistributedApplicationBuilder builder,
        string name,
        string? stackName = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
- `name` (`string`)
- `stackName` (`string?`) `optional`

## AddAWSCloudFormationTemplate(IDistributedApplicationBuilder, string, string, string?)

- Name: `AddAWSCloudFormationTemplate(IDistributedApplicationBuilder, string, string, string?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ICloudFormationTemplateResource>`

```csharp
public static class CloudFormationExtensions
{
    public static IResourceBuilder<ICloudFormationTemplateResource> AddAWSCloudFormationTemplate(
        this IDistributedApplicationBuilder builder,
        string name,
        string templatePath,
        string? stackName = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
- `name` (`string`)
- `templatePath` (`string`)
- `stackName` (`string?`) `optional`

## GetOutput(IResourceBuilder<ICloudFormationResource>, string)

- Name: `GetOutput(IResourceBuilder<ICloudFormationResource>, string)`
- Modifiers: `extension`
- Returns: [StackOutputReference](/reference/api/csharp/aspire.hosting.aws/stackoutputreference.md)

```csharp
public static class CloudFormationExtensions
{
    public static StackOutputReference GetOutput(
        this IResourceBuilder<ICloudFormationResource> builder,
        string name)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<ICloudFormationResource>`)
- `name` (`string`)

## WithEnvironment(IResourceBuilder<T>, string, StackOutputReference)

- Name: `WithEnvironment(IResourceBuilder<T>, string, StackOutputReference)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<T>`

```csharp
public static class CloudFormationExtensions
{
    public static IResourceBuilder<T> WithEnvironment<T>(
        this IResourceBuilder<T> builder,
        string name,
        StackOutputReference stackOutputReference)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<T>`)
- `name` (`string`)
- `stackOutputReference` ([StackOutputReference](/reference/api/csharp/aspire.hosting.aws/stackoutputreference.md))

## WithParameter(IResourceBuilder<ICloudFormationTemplateResource>, string, string)

- Name: `WithParameter(IResourceBuilder<ICloudFormationTemplateResource>, string, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ICloudFormationTemplateResource>`

```csharp
public static class CloudFormationExtensions
{
    public static IResourceBuilder<ICloudFormationTemplateResource> WithParameter(
        this IResourceBuilder<ICloudFormationTemplateResource> builder,
        string parameterName,
        string parameterValue)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<ICloudFormationTemplateResource>`)
- `parameterName` (`string`)
- `parameterValue` (`string`)

## WithReference(IResourceBuilder<TDestination>, IAWSSDKConfig)

- Name: `WithReference(IResourceBuilder<TDestination>, IAWSSDKConfig)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<TDestination>`

```csharp
public static class CloudFormationExtensions
{
    public static IResourceBuilder<TDestination> WithReference<TDestination>(
        this IResourceBuilder<TDestination> builder,
        IAWSSDKConfig awsSdkConfig)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<TDestination>`)
- `awsSdkConfig` ([IAWSSDKConfig](/reference/api/csharp/aspire.hosting.aws/iawssdkconfig.md))

## WithReference(IResourceBuilder<TDestination>, IAmazonCloudFormation)

- Name: `WithReference(IResourceBuilder<TDestination>, IAmazonCloudFormation)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<TDestination>`

```csharp
public static class CloudFormationExtensions
{
    public static IResourceBuilder<TDestination> WithReference<TDestination>(
        this IResourceBuilder<TDestination> builder,
        IAmazonCloudFormation cloudFormationClient)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<TDestination>`)
- `cloudFormationClient` (`IAmazonCloudFormation`)

## WithReference(IResourceBuilder<TDestination>, IResourceBuilder<ICloudFormationResource>, string)

- Name: `WithReference(IResourceBuilder<TDestination>, IResourceBuilder<ICloudFormationResource>, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<TDestination>`

```csharp
public static class CloudFormationExtensions
{
    public static IResourceBuilder<TDestination> WithReference<TDestination>(
        this IResourceBuilder<TDestination> builder,
        IResourceBuilder<ICloudFormationResource> cloudFormationResourceBuilder,
        string configSection = "AWS:Resources")
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<TDestination>`)
- `cloudFormationResourceBuilder` (`IResourceBuilder<ICloudFormationResource>`)
- `configSection` (`string`) `optional`

## WithTag(IResourceBuilder<ICloudFormationResource>, string, string)

- Name: `WithTag(IResourceBuilder<ICloudFormationResource>, string, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ICloudFormationResource>`

```csharp
public static class CloudFormationExtensions
{
    public static IResourceBuilder<ICloudFormationResource> WithTag(
        this IResourceBuilder<ICloudFormationResource> builder,
        string tagKey,
        string tagValue)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<ICloudFormationResource>`)
- `tagKey` (`string`)
- `tagValue` (`string`)
