# S3ResourceExtensions Methods

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

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.

## AddEventNotification(IResourceBuilder<IConstructResource<Bucket>>, IResourceBuilder<IConstructResource<IQueue>>, EventType, INotificationKeyFilter[])

- Name: `AddEventNotification(IResourceBuilder<IConstructResource<Bucket>>, IResourceBuilder<IConstructResource<IQueue>>, EventType, INotificationKeyFilter[])`
- Modifiers: `extension`
- Returns: `IResourceBuilder<IConstructResource<Bucket>>`

```csharp
public static class S3ResourceExtensions
{
    public static IResourceBuilder<IConstructResource<Bucket>> AddEventNotification(
        this IResourceBuilder<IConstructResource<Bucket>> builder,
        IResourceBuilder<IConstructResource<IQueue>> destination,
        EventType eventType,
        params INotificationKeyFilter[] filters)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<IConstructResource<Bucket>>`)
- `destination` (`IResourceBuilder<IConstructResource<IQueue>>`)
- `eventType` (`EventType`)
- `filters` (`INotificationKeyFilter[]`)

## AddObjectCreatedNotification(IResourceBuilder<IConstructResource<Bucket>>, IResourceBuilder<IConstructResource<IQueue>>, INotificationKeyFilter[])

- Name: `AddObjectCreatedNotification(IResourceBuilder<IConstructResource<Bucket>>, IResourceBuilder<IConstructResource<IQueue>>, INotificationKeyFilter[])`
- Modifiers: `extension`
- Returns: `IResourceBuilder<IConstructResource<Bucket>>`

```csharp
public static class S3ResourceExtensions
{
    public static IResourceBuilder<IConstructResource<Bucket>> AddObjectCreatedNotification(
        this IResourceBuilder<IConstructResource<Bucket>> builder,
        IResourceBuilder<IConstructResource<IQueue>> destination,
        params INotificationKeyFilter[] filters)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<IConstructResource<Bucket>>`)
- `destination` (`IResourceBuilder<IConstructResource<IQueue>>`)
- `filters` (`INotificationKeyFilter[]`)

## AddObjectCreatedNotification(IResourceBuilder<IConstructResource<Bucket>>, IResourceBuilder<IConstructResource<ITopic>>, INotificationKeyFilter[])

- Name: `AddObjectCreatedNotification(IResourceBuilder<IConstructResource<Bucket>>, IResourceBuilder<IConstructResource<ITopic>>, INotificationKeyFilter[])`
- Modifiers: `extension`
- Returns: `IResourceBuilder<IConstructResource<Bucket>>`

```csharp
public static class S3ResourceExtensions
{
    public static IResourceBuilder<IConstructResource<Bucket>> AddObjectCreatedNotification(
        this IResourceBuilder<IConstructResource<Bucket>> builder,
        IResourceBuilder<IConstructResource<ITopic>> destination,
        params INotificationKeyFilter[] filters)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<IConstructResource<Bucket>>`)
- `destination` (`IResourceBuilder<IConstructResource<ITopic>>`)
- `filters` (`INotificationKeyFilter[]`)

## AddObjectRemovedNotification(IResourceBuilder<IConstructResource<Bucket>>, IResourceBuilder<IConstructResource<IQueue>>, INotificationKeyFilter[])

- Name: `AddObjectRemovedNotification(IResourceBuilder<IConstructResource<Bucket>>, IResourceBuilder<IConstructResource<IQueue>>, INotificationKeyFilter[])`
- Modifiers: `extension`
- Returns: `IResourceBuilder<IConstructResource<Bucket>>`

```csharp
public static class S3ResourceExtensions
{
    public static IResourceBuilder<IConstructResource<Bucket>> AddObjectRemovedNotification(
        this IResourceBuilder<IConstructResource<Bucket>> builder,
        IResourceBuilder<IConstructResource<IQueue>> destination,
        params INotificationKeyFilter[] filters)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<IConstructResource<Bucket>>`)
- `destination` (`IResourceBuilder<IConstructResource<IQueue>>`)
- `filters` (`INotificationKeyFilter[]`)

## AddObjectRemovedNotification(IResourceBuilder<IConstructResource<Bucket>>, IResourceBuilder<IConstructResource<ITopic>>, INotificationKeyFilter[])

- Name: `AddObjectRemovedNotification(IResourceBuilder<IConstructResource<Bucket>>, IResourceBuilder<IConstructResource<ITopic>>, INotificationKeyFilter[])`
- Modifiers: `extension`
- Returns: `IResourceBuilder<IConstructResource<Bucket>>`

```csharp
public static class S3ResourceExtensions
{
    public static IResourceBuilder<IConstructResource<Bucket>> AddObjectRemovedNotification(
        this IResourceBuilder<IConstructResource<Bucket>> builder,
        IResourceBuilder<IConstructResource<ITopic>> destination,
        params INotificationKeyFilter[] filters)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<IConstructResource<Bucket>>`)
- `destination` (`IResourceBuilder<IConstructResource<ITopic>>`)
- `filters` (`INotificationKeyFilter[]`)

## AddS3Bucket(IResourceBuilder<IStackResource>, string, IBucketProps?)

- Name: `AddS3Bucket(IResourceBuilder<IStackResource>, string, IBucketProps?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<IConstructResource<Bucket>>`

```csharp
public static class S3ResourceExtensions
{
    public static IResourceBuilder<IConstructResource<Bucket>> AddS3Bucket(
        this IResourceBuilder<IStackResource> builder,
        string name,
        IBucketProps? props = null)
    {
        // ...
    }
}
```

## Parameters

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

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

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

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

## Parameters

- `builder` (`IResourceBuilder<TDestination>`)
- `bucket` (`IResourceBuilder<IConstructResource<Bucket>>`)
- `configSection` (`string?`) `optional`
