# IAWSPublishTarget Methods

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

## ApplyReferenceSecurityGroup(AWSLinkedObjectsAnnotation, ISecurityGroup)

- Name: `ApplyReferenceSecurityGroup(AWSLinkedObjectsAnnotation, ISecurityGroup)`
- Modifiers: `abstract`

```csharp
public interface IAWSPublishTarget
{
    public abstract void ApplyReferenceSecurityGroup(
        AWSLinkedObjectsAnnotation linkedAnnotation,
        ISecurityGroup securityGroup)
    {
        // ...
    }
}
```

## Parameters

- `linkedAnnotation` ([AWSLinkedObjectsAnnotation](/reference/api/csharp/aspire.hosting.aws/awslinkedobjectsannotation.md))
- `securityGroup` (`ISecurityGroup`)

## GenerateConstructAsync(AWSCDKEnvironmentResource, IResource, IAWSPublishTargetAnnotation, CancellationToken)

- Name: `GenerateConstructAsync(AWSCDKEnvironmentResource, IResource, IAWSPublishTargetAnnotation, CancellationToken)`
- Modifiers: `abstract`
- Returns: `Task`

```csharp
public interface IAWSPublishTarget
{
    public abstract Task GenerateConstructAsync(
        AWSCDKEnvironmentResource environment,
        IResource resource,
        IAWSPublishTargetAnnotation publishAnnotation,
        CancellationToken cancellationToken)
    {
        // ...
    }
}
```

## Parameters

- `environment` ([AWSCDKEnvironmentResource](/reference/api/csharp/aspire.hosting.aws/awscdkenvironmentresource.md))
- `resource` (`IResource`)
- `publishAnnotation` ([IAWSPublishTargetAnnotation](/reference/api/csharp/aspire.hosting.aws/iawspublishtargetannotation.md))
- `cancellationToken` (`CancellationToken`)

## GetReferenceConnectionInfo(AWSLinkedObjectsAnnotation)

- Name: `GetReferenceConnectionInfo(AWSLinkedObjectsAnnotation)`
- Modifiers: `abstract`
- Returns: [ReferenceConnectionInfo](/reference/api/csharp/aspire.hosting.aws/referenceconnectioninfo.md)

```csharp
public interface IAWSPublishTarget
{
    public abstract ReferenceConnectionInfo GetReferenceConnectionInfo(
        AWSLinkedObjectsAnnotation linkedAnnotation)
    {
        // ...
    }
}
```

## Parameters

- `linkedAnnotation` ([AWSLinkedObjectsAnnotation](/reference/api/csharp/aspire.hosting.aws/awslinkedobjectsannotation.md))

## IsDefaultPublishTargetMatch(CDKDefaultsProvider, IResource)

- Name: `IsDefaultPublishTargetMatch(CDKDefaultsProvider, IResource)`
- Modifiers: `abstract`
- Returns: [IsDefaultPublishTargetMatchResult](/reference/api/csharp/aspire.hosting.aws/isdefaultpublishtargetmatchresult.md)

```csharp
public interface IAWSPublishTarget
{
    public abstract IsDefaultPublishTargetMatchResult IsDefaultPublishTargetMatch(
        CDKDefaultsProvider cdkDefaultsProvider,
        IResource resource)
    {
        // ...
    }
}
```

## Parameters

- `cdkDefaultsProvider` ([CDKDefaultsProvider](/reference/api/csharp/aspire.hosting.aws/cdkdefaultsprovider.md))
- `resource` (`IResource`)

## ReferenceRequiresSecurityGroup

- Name: `ReferenceRequiresSecurityGroup`
- Modifiers: `abstract`
- Returns: `bool`

```csharp
public interface IAWSPublishTarget
{
    public abstract bool ReferenceRequiresSecurityGroup()
    {
        // ...
    }
}
```

## ReferenceRequiresVPC

- Name: `ReferenceRequiresVPC`
- Modifiers: `abstract`
- Returns: `bool`

```csharp
public interface IAWSPublishTarget
{
    public abstract bool ReferenceRequiresVPC()
    {
        // ...
    }
}
```
