# SNSResourceExtensions Methods

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

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.

## AddSNSTopic(IResourceBuilder<IStackResource>, string, ITopicProps?)

- Name: `AddSNSTopic(IResourceBuilder<IStackResource>, string, ITopicProps?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<IConstructResource<Topic>>`

```csharp
public static class SNSResourceExtensions
{
    public static IResourceBuilder<IConstructResource<Topic>> AddSNSTopic(
        this IResourceBuilder<IStackResource> builder,
        string name,
        ITopicProps? props = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<IStackResource>`)
- `name` (`string`)
- `props` (`ITopicProps?`) `optional`

## AddSubscription(IResourceBuilder<IConstructResource<Topic>>, IResourceBuilder<IConstructResource<IQueue>>, SqsSubscriptionProps?)

- Name: `AddSubscription(IResourceBuilder<IConstructResource<Topic>>, IResourceBuilder<IConstructResource<IQueue>>, SqsSubscriptionProps?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<IConstructResource<Topic>>`

```csharp
public static class SNSResourceExtensions
{
    public static IResourceBuilder<IConstructResource<Topic>> AddSubscription(
        this IResourceBuilder<IConstructResource<Topic>> builder,
        IResourceBuilder<IConstructResource<IQueue>> destination,
        SqsSubscriptionProps? props = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<IConstructResource<Topic>>`)
- `destination` (`IResourceBuilder<IConstructResource<IQueue>>`)
- `props` (`SqsSubscriptionProps?`) `optional`

## WithReference(IResourceBuilder<TDestination>, IResourceBuilder<IConstructResource<Topic>>, string?)

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

```csharp
public static class SNSResourceExtensions
{
    public static IResourceBuilder<TDestination> WithReference<TDestination>(
        this IResourceBuilder<TDestination> builder,
        IResourceBuilder<IConstructResource<Topic>> topic,
        string? configSection = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<TDestination>`)
- `topic` (`IResourceBuilder<IConstructResource<Topic>>`)
- `configSection` (`string?`) `optional`
