sns

package
v6.30.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 11, 2024 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DataProtectionPolicy

type DataProtectionPolicy struct {
	pulumi.CustomResourceState

	// The ARN of the SNS topic
	Arn pulumi.StringOutput `pulumi:"arn"`
	// The fully-formed AWS policy as JSON. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide.
	Policy pulumi.StringOutput `pulumi:"policy"`
}

Provides an SNS data protection topic policy resource

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"encoding/json"

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := sns.NewTopic(ctx, "example", &sns.TopicArgs{
			Name: pulumi.String("example"),
		})
		if err != nil {
			return err
		}
		tmpJSON0, err := json.Marshal(map[string]interface{}{
			"Description": "Example data protection policy",
			"Name":        "__example_data_protection_policy",
			"Statement": []map[string]interface{}{
				map[string]interface{}{
					"DataDirection": "Inbound",
					"DataIdentifier": []string{
						"arn:aws:dataprotection::aws:data-identifier/EmailAddress",
					},
					"Operation": map[string]interface{}{
						"Deny": nil,
					},
					"Principal": []string{
						"*",
					},
					"Sid": "__deny_statement_11ba9d96",
				},
			},
			"Version": "2021-06-01",
		})
		if err != nil {
			return err
		}
		json0 := string(tmpJSON0)
		_, err = sns.NewDataProtectionPolicy(ctx, "example", &sns.DataProtectionPolicyArgs{
			Arn:    example.Arn,
			Policy: pulumi.String(json0),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import SNS Data Protection Topic Policy using the topic ARN. For example:

```sh $ pulumi import aws:sns/dataProtectionPolicy:DataProtectionPolicy example arn:aws:sns:us-west-2:0123456789012:example ```

func GetDataProtectionPolicy

func GetDataProtectionPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DataProtectionPolicyState, opts ...pulumi.ResourceOption) (*DataProtectionPolicy, error)

GetDataProtectionPolicy gets an existing DataProtectionPolicy resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDataProtectionPolicy

func NewDataProtectionPolicy(ctx *pulumi.Context,
	name string, args *DataProtectionPolicyArgs, opts ...pulumi.ResourceOption) (*DataProtectionPolicy, error)

NewDataProtectionPolicy registers a new resource with the given unique name, arguments, and options.

func (*DataProtectionPolicy) ElementType

func (*DataProtectionPolicy) ElementType() reflect.Type

func (*DataProtectionPolicy) ToDataProtectionPolicyOutput

func (i *DataProtectionPolicy) ToDataProtectionPolicyOutput() DataProtectionPolicyOutput

func (*DataProtectionPolicy) ToDataProtectionPolicyOutputWithContext

func (i *DataProtectionPolicy) ToDataProtectionPolicyOutputWithContext(ctx context.Context) DataProtectionPolicyOutput

type DataProtectionPolicyArgs

type DataProtectionPolicyArgs struct {
	// The ARN of the SNS topic
	Arn pulumi.StringInput
	// The fully-formed AWS policy as JSON. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide.
	Policy pulumi.StringInput
}

The set of arguments for constructing a DataProtectionPolicy resource.

func (DataProtectionPolicyArgs) ElementType

func (DataProtectionPolicyArgs) ElementType() reflect.Type

type DataProtectionPolicyArray

type DataProtectionPolicyArray []DataProtectionPolicyInput

func (DataProtectionPolicyArray) ElementType

func (DataProtectionPolicyArray) ElementType() reflect.Type

func (DataProtectionPolicyArray) ToDataProtectionPolicyArrayOutput

func (i DataProtectionPolicyArray) ToDataProtectionPolicyArrayOutput() DataProtectionPolicyArrayOutput

func (DataProtectionPolicyArray) ToDataProtectionPolicyArrayOutputWithContext

func (i DataProtectionPolicyArray) ToDataProtectionPolicyArrayOutputWithContext(ctx context.Context) DataProtectionPolicyArrayOutput

type DataProtectionPolicyArrayInput

type DataProtectionPolicyArrayInput interface {
	pulumi.Input

	ToDataProtectionPolicyArrayOutput() DataProtectionPolicyArrayOutput
	ToDataProtectionPolicyArrayOutputWithContext(context.Context) DataProtectionPolicyArrayOutput
}

DataProtectionPolicyArrayInput is an input type that accepts DataProtectionPolicyArray and DataProtectionPolicyArrayOutput values. You can construct a concrete instance of `DataProtectionPolicyArrayInput` via:

DataProtectionPolicyArray{ DataProtectionPolicyArgs{...} }

type DataProtectionPolicyArrayOutput

type DataProtectionPolicyArrayOutput struct{ *pulumi.OutputState }

func (DataProtectionPolicyArrayOutput) ElementType

func (DataProtectionPolicyArrayOutput) Index

func (DataProtectionPolicyArrayOutput) ToDataProtectionPolicyArrayOutput

func (o DataProtectionPolicyArrayOutput) ToDataProtectionPolicyArrayOutput() DataProtectionPolicyArrayOutput

func (DataProtectionPolicyArrayOutput) ToDataProtectionPolicyArrayOutputWithContext

func (o DataProtectionPolicyArrayOutput) ToDataProtectionPolicyArrayOutputWithContext(ctx context.Context) DataProtectionPolicyArrayOutput

type DataProtectionPolicyInput

type DataProtectionPolicyInput interface {
	pulumi.Input

	ToDataProtectionPolicyOutput() DataProtectionPolicyOutput
	ToDataProtectionPolicyOutputWithContext(ctx context.Context) DataProtectionPolicyOutput
}

type DataProtectionPolicyMap

type DataProtectionPolicyMap map[string]DataProtectionPolicyInput

func (DataProtectionPolicyMap) ElementType

func (DataProtectionPolicyMap) ElementType() reflect.Type

func (DataProtectionPolicyMap) ToDataProtectionPolicyMapOutput

func (i DataProtectionPolicyMap) ToDataProtectionPolicyMapOutput() DataProtectionPolicyMapOutput

func (DataProtectionPolicyMap) ToDataProtectionPolicyMapOutputWithContext

func (i DataProtectionPolicyMap) ToDataProtectionPolicyMapOutputWithContext(ctx context.Context) DataProtectionPolicyMapOutput

type DataProtectionPolicyMapInput

type DataProtectionPolicyMapInput interface {
	pulumi.Input

	ToDataProtectionPolicyMapOutput() DataProtectionPolicyMapOutput
	ToDataProtectionPolicyMapOutputWithContext(context.Context) DataProtectionPolicyMapOutput
}

DataProtectionPolicyMapInput is an input type that accepts DataProtectionPolicyMap and DataProtectionPolicyMapOutput values. You can construct a concrete instance of `DataProtectionPolicyMapInput` via:

DataProtectionPolicyMap{ "key": DataProtectionPolicyArgs{...} }

type DataProtectionPolicyMapOutput

type DataProtectionPolicyMapOutput struct{ *pulumi.OutputState }

func (DataProtectionPolicyMapOutput) ElementType

func (DataProtectionPolicyMapOutput) MapIndex

func (DataProtectionPolicyMapOutput) ToDataProtectionPolicyMapOutput

func (o DataProtectionPolicyMapOutput) ToDataProtectionPolicyMapOutput() DataProtectionPolicyMapOutput

func (DataProtectionPolicyMapOutput) ToDataProtectionPolicyMapOutputWithContext

func (o DataProtectionPolicyMapOutput) ToDataProtectionPolicyMapOutputWithContext(ctx context.Context) DataProtectionPolicyMapOutput

type DataProtectionPolicyOutput

type DataProtectionPolicyOutput struct{ *pulumi.OutputState }

func (DataProtectionPolicyOutput) Arn

The ARN of the SNS topic

func (DataProtectionPolicyOutput) ElementType

func (DataProtectionPolicyOutput) ElementType() reflect.Type

func (DataProtectionPolicyOutput) Policy

The fully-formed AWS policy as JSON. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide.

func (DataProtectionPolicyOutput) ToDataProtectionPolicyOutput

func (o DataProtectionPolicyOutput) ToDataProtectionPolicyOutput() DataProtectionPolicyOutput

func (DataProtectionPolicyOutput) ToDataProtectionPolicyOutputWithContext

func (o DataProtectionPolicyOutput) ToDataProtectionPolicyOutputWithContext(ctx context.Context) DataProtectionPolicyOutput

type DataProtectionPolicyState

type DataProtectionPolicyState struct {
	// The ARN of the SNS topic
	Arn pulumi.StringPtrInput
	// The fully-formed AWS policy as JSON. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide.
	Policy pulumi.StringPtrInput
}

func (DataProtectionPolicyState) ElementType

func (DataProtectionPolicyState) ElementType() reflect.Type

type LookupTopicArgs

type LookupTopicArgs struct {
	// Friendly name of the topic to match.
	Name string `pulumi:"name"`
}

A collection of arguments for invoking getTopic.

type LookupTopicOutputArgs

type LookupTopicOutputArgs struct {
	// Friendly name of the topic to match.
	Name pulumi.StringInput `pulumi:"name"`
}

A collection of arguments for invoking getTopic.

func (LookupTopicOutputArgs) ElementType

func (LookupTopicOutputArgs) ElementType() reflect.Type

type LookupTopicResult

type LookupTopicResult struct {
	// ARN of the found topic, suitable for referencing in other resources that support SNS topics.
	Arn string `pulumi:"arn"`
	// The provider-assigned unique ID for this managed resource.
	Id   string `pulumi:"id"`
	Name string `pulumi:"name"`
}

A collection of values returned by getTopic.

func LookupTopic

func LookupTopic(ctx *pulumi.Context, args *LookupTopicArgs, opts ...pulumi.InvokeOption) (*LookupTopicResult, error)

Use this data source to get the ARN of a topic in AWS Simple Notification Service (SNS). By using this data source, you can reference SNS topics without having to hard code the ARNs as input.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := sns.LookupTopic(ctx, &sns.LookupTopicArgs{
			Name: "an_example_topic",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type LookupTopicResultOutput

type LookupTopicResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTopic.

func (LookupTopicResultOutput) Arn

ARN of the found topic, suitable for referencing in other resources that support SNS topics.

func (LookupTopicResultOutput) ElementType

func (LookupTopicResultOutput) ElementType() reflect.Type

func (LookupTopicResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupTopicResultOutput) Name

func (LookupTopicResultOutput) ToLookupTopicResultOutput

func (o LookupTopicResultOutput) ToLookupTopicResultOutput() LookupTopicResultOutput

func (LookupTopicResultOutput) ToLookupTopicResultOutputWithContext

func (o LookupTopicResultOutput) ToLookupTopicResultOutputWithContext(ctx context.Context) LookupTopicResultOutput

type PlatformApplication

type PlatformApplication struct {
	pulumi.CustomResourceState

	// The bundle identifier that's assigned to your iOS app. May only include alphanumeric characters, hyphens (-), and periods (.).
	ApplePlatformBundleId pulumi.StringPtrOutput `pulumi:"applePlatformBundleId"`
	// The identifier that's assigned to your Apple developer account team. Must be 10 alphanumeric characters.
	ApplePlatformTeamId pulumi.StringPtrOutput `pulumi:"applePlatformTeamId"`
	// The ARN of the SNS platform application
	Arn pulumi.StringOutput `pulumi:"arn"`
	// The ARN of the SNS Topic triggered when a delivery to any of the platform endpoints associated with your platform application encounters a permanent failure.
	EventDeliveryFailureTopicArn pulumi.StringPtrOutput `pulumi:"eventDeliveryFailureTopicArn"`
	// The ARN of the SNS Topic triggered when a new platform endpoint is added to your platform application.
	EventEndpointCreatedTopicArn pulumi.StringPtrOutput `pulumi:"eventEndpointCreatedTopicArn"`
	// The ARN of the SNS Topic triggered when an existing platform endpoint is deleted from your platform application.
	EventEndpointDeletedTopicArn pulumi.StringPtrOutput `pulumi:"eventEndpointDeletedTopicArn"`
	// The ARN of the SNS Topic triggered when an existing platform endpoint is changed from your platform application.
	EventEndpointUpdatedTopicArn pulumi.StringPtrOutput `pulumi:"eventEndpointUpdatedTopicArn"`
	// The IAM role ARN permitted to receive failure feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
	FailureFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"failureFeedbackRoleArn"`
	// The friendly name for the SNS platform application
	Name pulumi.StringOutput `pulumi:"name"`
	// The platform that the app is registered with. See [Platform](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for supported platforms.
	Platform pulumi.StringOutput `pulumi:"platform"`
	// Application Platform credential. See [Credential](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for type of credential required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
	PlatformCredential pulumi.StringOutput `pulumi:"platformCredential"`
	// Application Platform principal. See [Principal](http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html) for type of principal required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
	PlatformPrincipal pulumi.StringPtrOutput `pulumi:"platformPrincipal"`
	// The IAM role ARN permitted to receive success feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
	SuccessFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"successFeedbackRoleArn"`
	// The sample rate percentage (0-100) of successfully delivered messages.
	//
	// The following attributes are needed only when using APNS token credentials:
	SuccessFeedbackSampleRate pulumi.StringPtrOutput `pulumi:"successFeedbackSampleRate"`
}

Provides an SNS platform application resource

## Example Usage

### Apple Push Notification Service (APNS) using certificate-based authentication

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := sns.NewPlatformApplication(ctx, "apns_application", &sns.PlatformApplicationArgs{
			Name:               pulumi.String("apns_application"),
			Platform:           pulumi.String("APNS"),
			PlatformCredential: pulumi.String("<APNS PRIVATE KEY>"),
			PlatformPrincipal:  pulumi.String("<APNS CERTIFICATE>"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Apple Push Notification Service (APNS) using token-based authentication

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := sns.NewPlatformApplication(ctx, "apns_application", &sns.PlatformApplicationArgs{
			Name:                  pulumi.String("apns_application"),
			Platform:              pulumi.String("APNS"),
			PlatformCredential:    pulumi.String("<APNS SIGNING KEY>"),
			PlatformPrincipal:     pulumi.String("<APNS SIGNING KEY ID>"),
			ApplePlatformTeamId:   pulumi.String("<APPLE TEAM ID>"),
			ApplePlatformBundleId: pulumi.String("<APPLE BUNDLE ID>"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Google Cloud Messaging (GCM)

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := sns.NewPlatformApplication(ctx, "gcm_application", &sns.PlatformApplicationArgs{
			Name:               pulumi.String("gcm_application"),
			Platform:           pulumi.String("GCM"),
			PlatformCredential: pulumi.String("<GCM API KEY>"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import SNS platform applications using the ARN. For example:

```sh $ pulumi import aws:sns/platformApplication:PlatformApplication gcm_application arn:aws:sns:us-west-2:0123456789012:app/GCM/gcm_application ```

func GetPlatformApplication

func GetPlatformApplication(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *PlatformApplicationState, opts ...pulumi.ResourceOption) (*PlatformApplication, error)

GetPlatformApplication gets an existing PlatformApplication resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewPlatformApplication

func NewPlatformApplication(ctx *pulumi.Context,
	name string, args *PlatformApplicationArgs, opts ...pulumi.ResourceOption) (*PlatformApplication, error)

NewPlatformApplication registers a new resource with the given unique name, arguments, and options.

func (*PlatformApplication) ElementType

func (*PlatformApplication) ElementType() reflect.Type

func (*PlatformApplication) ToPlatformApplicationOutput

func (i *PlatformApplication) ToPlatformApplicationOutput() PlatformApplicationOutput

func (*PlatformApplication) ToPlatformApplicationOutputWithContext

func (i *PlatformApplication) ToPlatformApplicationOutputWithContext(ctx context.Context) PlatformApplicationOutput

type PlatformApplicationArgs

type PlatformApplicationArgs struct {
	// The bundle identifier that's assigned to your iOS app. May only include alphanumeric characters, hyphens (-), and periods (.).
	ApplePlatformBundleId pulumi.StringPtrInput
	// The identifier that's assigned to your Apple developer account team. Must be 10 alphanumeric characters.
	ApplePlatformTeamId pulumi.StringPtrInput
	// The ARN of the SNS Topic triggered when a delivery to any of the platform endpoints associated with your platform application encounters a permanent failure.
	EventDeliveryFailureTopicArn pulumi.StringPtrInput
	// The ARN of the SNS Topic triggered when a new platform endpoint is added to your platform application.
	EventEndpointCreatedTopicArn pulumi.StringPtrInput
	// The ARN of the SNS Topic triggered when an existing platform endpoint is deleted from your platform application.
	EventEndpointDeletedTopicArn pulumi.StringPtrInput
	// The ARN of the SNS Topic triggered when an existing platform endpoint is changed from your platform application.
	EventEndpointUpdatedTopicArn pulumi.StringPtrInput
	// The IAM role ARN permitted to receive failure feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
	FailureFeedbackRoleArn pulumi.StringPtrInput
	// The friendly name for the SNS platform application
	Name pulumi.StringPtrInput
	// The platform that the app is registered with. See [Platform](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for supported platforms.
	Platform pulumi.StringInput
	// Application Platform credential. See [Credential](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for type of credential required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
	PlatformCredential pulumi.StringInput
	// Application Platform principal. See [Principal](http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html) for type of principal required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
	PlatformPrincipal pulumi.StringPtrInput
	// The IAM role ARN permitted to receive success feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
	SuccessFeedbackRoleArn pulumi.StringPtrInput
	// The sample rate percentage (0-100) of successfully delivered messages.
	//
	// The following attributes are needed only when using APNS token credentials:
	SuccessFeedbackSampleRate pulumi.StringPtrInput
}

The set of arguments for constructing a PlatformApplication resource.

func (PlatformApplicationArgs) ElementType

func (PlatformApplicationArgs) ElementType() reflect.Type

type PlatformApplicationArray

type PlatformApplicationArray []PlatformApplicationInput

func (PlatformApplicationArray) ElementType

func (PlatformApplicationArray) ElementType() reflect.Type

func (PlatformApplicationArray) ToPlatformApplicationArrayOutput

func (i PlatformApplicationArray) ToPlatformApplicationArrayOutput() PlatformApplicationArrayOutput

func (PlatformApplicationArray) ToPlatformApplicationArrayOutputWithContext

func (i PlatformApplicationArray) ToPlatformApplicationArrayOutputWithContext(ctx context.Context) PlatformApplicationArrayOutput

type PlatformApplicationArrayInput

type PlatformApplicationArrayInput interface {
	pulumi.Input

	ToPlatformApplicationArrayOutput() PlatformApplicationArrayOutput
	ToPlatformApplicationArrayOutputWithContext(context.Context) PlatformApplicationArrayOutput
}

PlatformApplicationArrayInput is an input type that accepts PlatformApplicationArray and PlatformApplicationArrayOutput values. You can construct a concrete instance of `PlatformApplicationArrayInput` via:

PlatformApplicationArray{ PlatformApplicationArgs{...} }

type PlatformApplicationArrayOutput

type PlatformApplicationArrayOutput struct{ *pulumi.OutputState }

func (PlatformApplicationArrayOutput) ElementType

func (PlatformApplicationArrayOutput) Index

func (PlatformApplicationArrayOutput) ToPlatformApplicationArrayOutput

func (o PlatformApplicationArrayOutput) ToPlatformApplicationArrayOutput() PlatformApplicationArrayOutput

func (PlatformApplicationArrayOutput) ToPlatformApplicationArrayOutputWithContext

func (o PlatformApplicationArrayOutput) ToPlatformApplicationArrayOutputWithContext(ctx context.Context) PlatformApplicationArrayOutput

type PlatformApplicationInput

type PlatformApplicationInput interface {
	pulumi.Input

	ToPlatformApplicationOutput() PlatformApplicationOutput
	ToPlatformApplicationOutputWithContext(ctx context.Context) PlatformApplicationOutput
}

type PlatformApplicationMap

type PlatformApplicationMap map[string]PlatformApplicationInput

func (PlatformApplicationMap) ElementType

func (PlatformApplicationMap) ElementType() reflect.Type

func (PlatformApplicationMap) ToPlatformApplicationMapOutput

func (i PlatformApplicationMap) ToPlatformApplicationMapOutput() PlatformApplicationMapOutput

func (PlatformApplicationMap) ToPlatformApplicationMapOutputWithContext

func (i PlatformApplicationMap) ToPlatformApplicationMapOutputWithContext(ctx context.Context) PlatformApplicationMapOutput

type PlatformApplicationMapInput

type PlatformApplicationMapInput interface {
	pulumi.Input

	ToPlatformApplicationMapOutput() PlatformApplicationMapOutput
	ToPlatformApplicationMapOutputWithContext(context.Context) PlatformApplicationMapOutput
}

PlatformApplicationMapInput is an input type that accepts PlatformApplicationMap and PlatformApplicationMapOutput values. You can construct a concrete instance of `PlatformApplicationMapInput` via:

PlatformApplicationMap{ "key": PlatformApplicationArgs{...} }

type PlatformApplicationMapOutput

type PlatformApplicationMapOutput struct{ *pulumi.OutputState }

func (PlatformApplicationMapOutput) ElementType

func (PlatformApplicationMapOutput) MapIndex

func (PlatformApplicationMapOutput) ToPlatformApplicationMapOutput

func (o PlatformApplicationMapOutput) ToPlatformApplicationMapOutput() PlatformApplicationMapOutput

func (PlatformApplicationMapOutput) ToPlatformApplicationMapOutputWithContext

func (o PlatformApplicationMapOutput) ToPlatformApplicationMapOutputWithContext(ctx context.Context) PlatformApplicationMapOutput

type PlatformApplicationOutput

type PlatformApplicationOutput struct{ *pulumi.OutputState }

func (PlatformApplicationOutput) ApplePlatformBundleId

func (o PlatformApplicationOutput) ApplePlatformBundleId() pulumi.StringPtrOutput

The bundle identifier that's assigned to your iOS app. May only include alphanumeric characters, hyphens (-), and periods (.).

func (PlatformApplicationOutput) ApplePlatformTeamId

func (o PlatformApplicationOutput) ApplePlatformTeamId() pulumi.StringPtrOutput

The identifier that's assigned to your Apple developer account team. Must be 10 alphanumeric characters.

func (PlatformApplicationOutput) Arn

The ARN of the SNS platform application

func (PlatformApplicationOutput) ElementType

func (PlatformApplicationOutput) ElementType() reflect.Type

func (PlatformApplicationOutput) EventDeliveryFailureTopicArn

func (o PlatformApplicationOutput) EventDeliveryFailureTopicArn() pulumi.StringPtrOutput

The ARN of the SNS Topic triggered when a delivery to any of the platform endpoints associated with your platform application encounters a permanent failure.

func (PlatformApplicationOutput) EventEndpointCreatedTopicArn

func (o PlatformApplicationOutput) EventEndpointCreatedTopicArn() pulumi.StringPtrOutput

The ARN of the SNS Topic triggered when a new platform endpoint is added to your platform application.

func (PlatformApplicationOutput) EventEndpointDeletedTopicArn

func (o PlatformApplicationOutput) EventEndpointDeletedTopicArn() pulumi.StringPtrOutput

The ARN of the SNS Topic triggered when an existing platform endpoint is deleted from your platform application.

func (PlatformApplicationOutput) EventEndpointUpdatedTopicArn

func (o PlatformApplicationOutput) EventEndpointUpdatedTopicArn() pulumi.StringPtrOutput

The ARN of the SNS Topic triggered when an existing platform endpoint is changed from your platform application.

func (PlatformApplicationOutput) FailureFeedbackRoleArn

func (o PlatformApplicationOutput) FailureFeedbackRoleArn() pulumi.StringPtrOutput

The IAM role ARN permitted to receive failure feedback for this application and give SNS write access to use CloudWatch logs on your behalf.

func (PlatformApplicationOutput) Name

The friendly name for the SNS platform application

func (PlatformApplicationOutput) Platform

The platform that the app is registered with. See [Platform](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for supported platforms.

func (PlatformApplicationOutput) PlatformCredential

func (o PlatformApplicationOutput) PlatformCredential() pulumi.StringOutput

Application Platform credential. See [Credential](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for type of credential required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.

func (PlatformApplicationOutput) PlatformPrincipal

func (o PlatformApplicationOutput) PlatformPrincipal() pulumi.StringPtrOutput

Application Platform principal. See [Principal](http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html) for type of principal required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.

func (PlatformApplicationOutput) SuccessFeedbackRoleArn

func (o PlatformApplicationOutput) SuccessFeedbackRoleArn() pulumi.StringPtrOutput

The IAM role ARN permitted to receive success feedback for this application and give SNS write access to use CloudWatch logs on your behalf.

func (PlatformApplicationOutput) SuccessFeedbackSampleRate

func (o PlatformApplicationOutput) SuccessFeedbackSampleRate() pulumi.StringPtrOutput

The sample rate percentage (0-100) of successfully delivered messages.

The following attributes are needed only when using APNS token credentials:

func (PlatformApplicationOutput) ToPlatformApplicationOutput

func (o PlatformApplicationOutput) ToPlatformApplicationOutput() PlatformApplicationOutput

func (PlatformApplicationOutput) ToPlatformApplicationOutputWithContext

func (o PlatformApplicationOutput) ToPlatformApplicationOutputWithContext(ctx context.Context) PlatformApplicationOutput

type PlatformApplicationState

type PlatformApplicationState struct {
	// The bundle identifier that's assigned to your iOS app. May only include alphanumeric characters, hyphens (-), and periods (.).
	ApplePlatformBundleId pulumi.StringPtrInput
	// The identifier that's assigned to your Apple developer account team. Must be 10 alphanumeric characters.
	ApplePlatformTeamId pulumi.StringPtrInput
	// The ARN of the SNS platform application
	Arn pulumi.StringPtrInput
	// The ARN of the SNS Topic triggered when a delivery to any of the platform endpoints associated with your platform application encounters a permanent failure.
	EventDeliveryFailureTopicArn pulumi.StringPtrInput
	// The ARN of the SNS Topic triggered when a new platform endpoint is added to your platform application.
	EventEndpointCreatedTopicArn pulumi.StringPtrInput
	// The ARN of the SNS Topic triggered when an existing platform endpoint is deleted from your platform application.
	EventEndpointDeletedTopicArn pulumi.StringPtrInput
	// The ARN of the SNS Topic triggered when an existing platform endpoint is changed from your platform application.
	EventEndpointUpdatedTopicArn pulumi.StringPtrInput
	// The IAM role ARN permitted to receive failure feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
	FailureFeedbackRoleArn pulumi.StringPtrInput
	// The friendly name for the SNS platform application
	Name pulumi.StringPtrInput
	// The platform that the app is registered with. See [Platform](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for supported platforms.
	Platform pulumi.StringPtrInput
	// Application Platform credential. See [Credential](http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-register.html) for type of credential required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
	PlatformCredential pulumi.StringPtrInput
	// Application Platform principal. See [Principal](http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html) for type of principal required for platform. The value of this attribute when stored into the state is only a hash of the real value, so therefore it is not practical to use this as an attribute for other resources.
	PlatformPrincipal pulumi.StringPtrInput
	// The IAM role ARN permitted to receive success feedback for this application and give SNS write access to use CloudWatch logs on your behalf.
	SuccessFeedbackRoleArn pulumi.StringPtrInput
	// The sample rate percentage (0-100) of successfully delivered messages.
	//
	// The following attributes are needed only when using APNS token credentials:
	SuccessFeedbackSampleRate pulumi.StringPtrInput
}

func (PlatformApplicationState) ElementType

func (PlatformApplicationState) ElementType() reflect.Type

type SmsPreferences

type SmsPreferences struct {
	pulumi.CustomResourceState

	// A string, such as your business brand, that is displayed as the sender on the receiving device.
	DefaultSenderId pulumi.StringPtrOutput `pulumi:"defaultSenderId"`
	// The type of SMS message that you will send by default. Possible values are: Promotional, Transactional
	DefaultSmsType pulumi.StringPtrOutput `pulumi:"defaultSmsType"`
	// The ARN of the IAM role that allows Amazon SNS to write logs about SMS deliveries in CloudWatch Logs.
	DeliveryStatusIamRoleArn pulumi.StringPtrOutput `pulumi:"deliveryStatusIamRoleArn"`
	// The percentage of successful SMS deliveries for which Amazon SNS will write logs in CloudWatch Logs. The value must be between 0 and 100.
	DeliveryStatusSuccessSamplingRate pulumi.StringPtrOutput `pulumi:"deliveryStatusSuccessSamplingRate"`
	// The maximum amount in USD that you are willing to spend each month to send SMS messages.
	MonthlySpendLimit pulumi.IntOutput `pulumi:"monthlySpendLimit"`
	// The name of the Amazon S3 bucket to receive daily SMS usage reports from Amazon SNS.
	UsageReportS3Bucket pulumi.StringPtrOutput `pulumi:"usageReportS3Bucket"`
}

Provides a way to set SNS SMS preferences.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := sns.NewSmsPreferences(ctx, "update_sms_prefs", nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

You cannot import the SMS preferences.

func GetSmsPreferences

func GetSmsPreferences(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SmsPreferencesState, opts ...pulumi.ResourceOption) (*SmsPreferences, error)

GetSmsPreferences gets an existing SmsPreferences resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSmsPreferences

func NewSmsPreferences(ctx *pulumi.Context,
	name string, args *SmsPreferencesArgs, opts ...pulumi.ResourceOption) (*SmsPreferences, error)

NewSmsPreferences registers a new resource with the given unique name, arguments, and options.

func (*SmsPreferences) ElementType

func (*SmsPreferences) ElementType() reflect.Type

func (*SmsPreferences) ToSmsPreferencesOutput

func (i *SmsPreferences) ToSmsPreferencesOutput() SmsPreferencesOutput

func (*SmsPreferences) ToSmsPreferencesOutputWithContext

func (i *SmsPreferences) ToSmsPreferencesOutputWithContext(ctx context.Context) SmsPreferencesOutput

type SmsPreferencesArgs

type SmsPreferencesArgs struct {
	// A string, such as your business brand, that is displayed as the sender on the receiving device.
	DefaultSenderId pulumi.StringPtrInput
	// The type of SMS message that you will send by default. Possible values are: Promotional, Transactional
	DefaultSmsType pulumi.StringPtrInput
	// The ARN of the IAM role that allows Amazon SNS to write logs about SMS deliveries in CloudWatch Logs.
	DeliveryStatusIamRoleArn pulumi.StringPtrInput
	// The percentage of successful SMS deliveries for which Amazon SNS will write logs in CloudWatch Logs. The value must be between 0 and 100.
	DeliveryStatusSuccessSamplingRate pulumi.StringPtrInput
	// The maximum amount in USD that you are willing to spend each month to send SMS messages.
	MonthlySpendLimit pulumi.IntPtrInput
	// The name of the Amazon S3 bucket to receive daily SMS usage reports from Amazon SNS.
	UsageReportS3Bucket pulumi.StringPtrInput
}

The set of arguments for constructing a SmsPreferences resource.

func (SmsPreferencesArgs) ElementType

func (SmsPreferencesArgs) ElementType() reflect.Type

type SmsPreferencesArray

type SmsPreferencesArray []SmsPreferencesInput

func (SmsPreferencesArray) ElementType

func (SmsPreferencesArray) ElementType() reflect.Type

func (SmsPreferencesArray) ToSmsPreferencesArrayOutput

func (i SmsPreferencesArray) ToSmsPreferencesArrayOutput() SmsPreferencesArrayOutput

func (SmsPreferencesArray) ToSmsPreferencesArrayOutputWithContext

func (i SmsPreferencesArray) ToSmsPreferencesArrayOutputWithContext(ctx context.Context) SmsPreferencesArrayOutput

type SmsPreferencesArrayInput

type SmsPreferencesArrayInput interface {
	pulumi.Input

	ToSmsPreferencesArrayOutput() SmsPreferencesArrayOutput
	ToSmsPreferencesArrayOutputWithContext(context.Context) SmsPreferencesArrayOutput
}

SmsPreferencesArrayInput is an input type that accepts SmsPreferencesArray and SmsPreferencesArrayOutput values. You can construct a concrete instance of `SmsPreferencesArrayInput` via:

SmsPreferencesArray{ SmsPreferencesArgs{...} }

type SmsPreferencesArrayOutput

type SmsPreferencesArrayOutput struct{ *pulumi.OutputState }

func (SmsPreferencesArrayOutput) ElementType

func (SmsPreferencesArrayOutput) ElementType() reflect.Type

func (SmsPreferencesArrayOutput) Index

func (SmsPreferencesArrayOutput) ToSmsPreferencesArrayOutput

func (o SmsPreferencesArrayOutput) ToSmsPreferencesArrayOutput() SmsPreferencesArrayOutput

func (SmsPreferencesArrayOutput) ToSmsPreferencesArrayOutputWithContext

func (o SmsPreferencesArrayOutput) ToSmsPreferencesArrayOutputWithContext(ctx context.Context) SmsPreferencesArrayOutput

type SmsPreferencesInput

type SmsPreferencesInput interface {
	pulumi.Input

	ToSmsPreferencesOutput() SmsPreferencesOutput
	ToSmsPreferencesOutputWithContext(ctx context.Context) SmsPreferencesOutput
}

type SmsPreferencesMap

type SmsPreferencesMap map[string]SmsPreferencesInput

func (SmsPreferencesMap) ElementType

func (SmsPreferencesMap) ElementType() reflect.Type

func (SmsPreferencesMap) ToSmsPreferencesMapOutput

func (i SmsPreferencesMap) ToSmsPreferencesMapOutput() SmsPreferencesMapOutput

func (SmsPreferencesMap) ToSmsPreferencesMapOutputWithContext

func (i SmsPreferencesMap) ToSmsPreferencesMapOutputWithContext(ctx context.Context) SmsPreferencesMapOutput

type SmsPreferencesMapInput

type SmsPreferencesMapInput interface {
	pulumi.Input

	ToSmsPreferencesMapOutput() SmsPreferencesMapOutput
	ToSmsPreferencesMapOutputWithContext(context.Context) SmsPreferencesMapOutput
}

SmsPreferencesMapInput is an input type that accepts SmsPreferencesMap and SmsPreferencesMapOutput values. You can construct a concrete instance of `SmsPreferencesMapInput` via:

SmsPreferencesMap{ "key": SmsPreferencesArgs{...} }

type SmsPreferencesMapOutput

type SmsPreferencesMapOutput struct{ *pulumi.OutputState }

func (SmsPreferencesMapOutput) ElementType

func (SmsPreferencesMapOutput) ElementType() reflect.Type

func (SmsPreferencesMapOutput) MapIndex

func (SmsPreferencesMapOutput) ToSmsPreferencesMapOutput

func (o SmsPreferencesMapOutput) ToSmsPreferencesMapOutput() SmsPreferencesMapOutput

func (SmsPreferencesMapOutput) ToSmsPreferencesMapOutputWithContext

func (o SmsPreferencesMapOutput) ToSmsPreferencesMapOutputWithContext(ctx context.Context) SmsPreferencesMapOutput

type SmsPreferencesOutput

type SmsPreferencesOutput struct{ *pulumi.OutputState }

func (SmsPreferencesOutput) DefaultSenderId

func (o SmsPreferencesOutput) DefaultSenderId() pulumi.StringPtrOutput

A string, such as your business brand, that is displayed as the sender on the receiving device.

func (SmsPreferencesOutput) DefaultSmsType

func (o SmsPreferencesOutput) DefaultSmsType() pulumi.StringPtrOutput

The type of SMS message that you will send by default. Possible values are: Promotional, Transactional

func (SmsPreferencesOutput) DeliveryStatusIamRoleArn

func (o SmsPreferencesOutput) DeliveryStatusIamRoleArn() pulumi.StringPtrOutput

The ARN of the IAM role that allows Amazon SNS to write logs about SMS deliveries in CloudWatch Logs.

func (SmsPreferencesOutput) DeliveryStatusSuccessSamplingRate

func (o SmsPreferencesOutput) DeliveryStatusSuccessSamplingRate() pulumi.StringPtrOutput

The percentage of successful SMS deliveries for which Amazon SNS will write logs in CloudWatch Logs. The value must be between 0 and 100.

func (SmsPreferencesOutput) ElementType

func (SmsPreferencesOutput) ElementType() reflect.Type

func (SmsPreferencesOutput) MonthlySpendLimit

func (o SmsPreferencesOutput) MonthlySpendLimit() pulumi.IntOutput

The maximum amount in USD that you are willing to spend each month to send SMS messages.

func (SmsPreferencesOutput) ToSmsPreferencesOutput

func (o SmsPreferencesOutput) ToSmsPreferencesOutput() SmsPreferencesOutput

func (SmsPreferencesOutput) ToSmsPreferencesOutputWithContext

func (o SmsPreferencesOutput) ToSmsPreferencesOutputWithContext(ctx context.Context) SmsPreferencesOutput

func (SmsPreferencesOutput) UsageReportS3Bucket

func (o SmsPreferencesOutput) UsageReportS3Bucket() pulumi.StringPtrOutput

The name of the Amazon S3 bucket to receive daily SMS usage reports from Amazon SNS.

type SmsPreferencesState

type SmsPreferencesState struct {
	// A string, such as your business brand, that is displayed as the sender on the receiving device.
	DefaultSenderId pulumi.StringPtrInput
	// The type of SMS message that you will send by default. Possible values are: Promotional, Transactional
	DefaultSmsType pulumi.StringPtrInput
	// The ARN of the IAM role that allows Amazon SNS to write logs about SMS deliveries in CloudWatch Logs.
	DeliveryStatusIamRoleArn pulumi.StringPtrInput
	// The percentage of successful SMS deliveries for which Amazon SNS will write logs in CloudWatch Logs. The value must be between 0 and 100.
	DeliveryStatusSuccessSamplingRate pulumi.StringPtrInput
	// The maximum amount in USD that you are willing to spend each month to send SMS messages.
	MonthlySpendLimit pulumi.IntPtrInput
	// The name of the Amazon S3 bucket to receive daily SMS usage reports from Amazon SNS.
	UsageReportS3Bucket pulumi.StringPtrInput
}

func (SmsPreferencesState) ElementType

func (SmsPreferencesState) ElementType() reflect.Type

type Topic

type Topic struct {
	pulumi.CustomResourceState

	// IAM role for failure feedback
	ApplicationFailureFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"applicationFailureFeedbackRoleArn"`
	// The IAM role permitted to receive success feedback for this topic
	ApplicationSuccessFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"applicationSuccessFeedbackRoleArn"`
	// Percentage of success to sample
	ApplicationSuccessFeedbackSampleRate pulumi.IntPtrOutput `pulumi:"applicationSuccessFeedbackSampleRate"`
	// The message archive policy for FIFO topics. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-topic-owner.html).
	ArchivePolicy pulumi.StringPtrOutput `pulumi:"archivePolicy"`
	// The ARN of the SNS topic, as a more obvious property (clone of id)
	Arn pulumi.StringOutput `pulumi:"arn"`
	// The oldest timestamp at which a FIFO topic subscriber can start a replay.
	BeginningArchiveTime pulumi.StringOutput `pulumi:"beginningArchiveTime"`
	// Enables content-based deduplication for FIFO topics. For more information, see the [related documentation](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html)
	ContentBasedDeduplication pulumi.BoolPtrOutput `pulumi:"contentBasedDeduplication"`
	// The SNS delivery policy. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html).
	DeliveryPolicy pulumi.StringPtrOutput `pulumi:"deliveryPolicy"`
	// The display name for the topic
	DisplayName pulumi.StringPtrOutput `pulumi:"displayName"`
	// Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is `false`).
	FifoTopic pulumi.BoolPtrOutput `pulumi:"fifoTopic"`
	// IAM role for failure feedback
	FirehoseFailureFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"firehoseFailureFeedbackRoleArn"`
	// The IAM role permitted to receive success feedback for this topic
	FirehoseSuccessFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"firehoseSuccessFeedbackRoleArn"`
	// Percentage of success to sample
	FirehoseSuccessFeedbackSampleRate pulumi.IntPtrOutput `pulumi:"firehoseSuccessFeedbackSampleRate"`
	// IAM role for failure feedback
	HttpFailureFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"httpFailureFeedbackRoleArn"`
	// The IAM role permitted to receive success feedback for this topic
	HttpSuccessFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"httpSuccessFeedbackRoleArn"`
	// Percentage of success to sample
	HttpSuccessFeedbackSampleRate pulumi.IntPtrOutput `pulumi:"httpSuccessFeedbackSampleRate"`
	// The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see [Key Terms](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms)
	KmsMasterKeyId pulumi.StringPtrOutput `pulumi:"kmsMasterKeyId"`
	// IAM role for failure feedback
	LambdaFailureFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"lambdaFailureFeedbackRoleArn"`
	// The IAM role permitted to receive success feedback for this topic
	LambdaSuccessFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"lambdaSuccessFeedbackRoleArn"`
	// Percentage of success to sample
	LambdaSuccessFeedbackSampleRate pulumi.IntPtrOutput `pulumi:"lambdaSuccessFeedbackSampleRate"`
	// The name of the topic. Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. For a FIFO (first-in-first-out) topic, the name must end with the `.fifo` suffix. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`
	Name pulumi.StringOutput `pulumi:"name"`
	// Creates a unique name beginning with the specified prefix. Conflicts with `name`
	NamePrefix pulumi.StringOutput `pulumi:"namePrefix"`
	// The AWS Account ID of the SNS topic owner
	Owner pulumi.StringOutput `pulumi:"owner"`
	// The fully-formed AWS policy as JSON.
	Policy pulumi.StringOutput `pulumi:"policy"`
	// If `SignatureVersion` should be [1 (SHA1) or 2 (SHA256)](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html). The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS.
	SignatureVersion pulumi.IntOutput `pulumi:"signatureVersion"`
	// IAM role for failure feedback
	SqsFailureFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"sqsFailureFeedbackRoleArn"`
	// The IAM role permitted to receive success feedback for this topic
	SqsSuccessFeedbackRoleArn pulumi.StringPtrOutput `pulumi:"sqsSuccessFeedbackRoleArn"`
	// Percentage of success to sample
	SqsSuccessFeedbackSampleRate pulumi.IntPtrOutput `pulumi:"sqsSuccessFeedbackSampleRate"`
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
	// Tracing mode of an Amazon SNS topic. Valid values: `"PassThrough"`, `"Active"`.
	TracingConfig pulumi.StringOutput `pulumi:"tracingConfig"`
}

Provides an SNS topic resource

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := sns.NewTopic(ctx, "user_updates", &sns.TopicArgs{
			Name: pulumi.String("user-updates-topic"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Example with Delivery Policy

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := sns.NewTopic(ctx, "user_updates", &sns.TopicArgs{
			Name: pulumi.String("user-updates-topic"),
			DeliveryPolicy: pulumi.String(`{
  "http": {
    "defaultHealthyRetryPolicy": {
      "minDelayTarget": 20,
      "maxDelayTarget": 20,
      "numRetries": 3,
      "numMaxDelayRetries": 0,
      "numNoDelayRetries": 0,
      "numMinDelayRetries": 0,
      "backoffFunction": "linear"
    },
    "disableSubscriptionOverrides": false,
    "defaultThrottlePolicy": {
      "maxReceivesPerSecond": 1
    }
  }
}

`),

		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Example with Server-side encryption (SSE)

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := sns.NewTopic(ctx, "user_updates", &sns.TopicArgs{
			Name:           pulumi.String("user-updates-topic"),
			KmsMasterKeyId: pulumi.String("alias/aws/sns"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Example with First-In-First-Out (FIFO)

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := sns.NewTopic(ctx, "user_updates", &sns.TopicArgs{
			Name:                      pulumi.String("user-updates-topic.fifo"),
			FifoTopic:                 pulumi.Bool(true),
			ContentBasedDeduplication: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Message Delivery Status Arguments

The `<endpoint>_success_feedback_role_arn` and `<endpoint>_failure_feedback_role_arn` arguments are used to give Amazon SNS write access to use CloudWatch Logs on your behalf. The `<endpoint>_success_feedback_sample_rate` argument is for specifying the sample rate percentage (0-100) of successfully delivered messages. After you configure the `<endpoint>_failure_feedback_role_arn` argument, then all failed message deliveries generate CloudWatch Logs.

## Import

Using `pulumi import`, import SNS Topics using the topic `arn`. For example:

```sh $ pulumi import aws:sns/topic:Topic user_updates arn:aws:sns:us-west-2:0123456789012:my-topic ```

func GetTopic

func GetTopic(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TopicState, opts ...pulumi.ResourceOption) (*Topic, error)

GetTopic gets an existing Topic resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTopic

func NewTopic(ctx *pulumi.Context,
	name string, args *TopicArgs, opts ...pulumi.ResourceOption) (*Topic, error)

NewTopic registers a new resource with the given unique name, arguments, and options.

func (*Topic) ElementType

func (*Topic) ElementType() reflect.Type

func (*Topic) ToTopicOutput

func (i *Topic) ToTopicOutput() TopicOutput

func (*Topic) ToTopicOutputWithContext

func (i *Topic) ToTopicOutputWithContext(ctx context.Context) TopicOutput

type TopicArgs

type TopicArgs struct {
	// IAM role for failure feedback
	ApplicationFailureFeedbackRoleArn pulumi.StringPtrInput
	// The IAM role permitted to receive success feedback for this topic
	ApplicationSuccessFeedbackRoleArn pulumi.StringPtrInput
	// Percentage of success to sample
	ApplicationSuccessFeedbackSampleRate pulumi.IntPtrInput
	// The message archive policy for FIFO topics. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-topic-owner.html).
	ArchivePolicy pulumi.StringPtrInput
	// Enables content-based deduplication for FIFO topics. For more information, see the [related documentation](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html)
	ContentBasedDeduplication pulumi.BoolPtrInput
	// The SNS delivery policy. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html).
	DeliveryPolicy pulumi.StringPtrInput
	// The display name for the topic
	DisplayName pulumi.StringPtrInput
	// Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is `false`).
	FifoTopic pulumi.BoolPtrInput
	// IAM role for failure feedback
	FirehoseFailureFeedbackRoleArn pulumi.StringPtrInput
	// The IAM role permitted to receive success feedback for this topic
	FirehoseSuccessFeedbackRoleArn pulumi.StringPtrInput
	// Percentage of success to sample
	FirehoseSuccessFeedbackSampleRate pulumi.IntPtrInput
	// IAM role for failure feedback
	HttpFailureFeedbackRoleArn pulumi.StringPtrInput
	// The IAM role permitted to receive success feedback for this topic
	HttpSuccessFeedbackRoleArn pulumi.StringPtrInput
	// Percentage of success to sample
	HttpSuccessFeedbackSampleRate pulumi.IntPtrInput
	// The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see [Key Terms](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms)
	KmsMasterKeyId pulumi.StringPtrInput
	// IAM role for failure feedback
	LambdaFailureFeedbackRoleArn pulumi.StringPtrInput
	// The IAM role permitted to receive success feedback for this topic
	LambdaSuccessFeedbackRoleArn pulumi.StringPtrInput
	// Percentage of success to sample
	LambdaSuccessFeedbackSampleRate pulumi.IntPtrInput
	// The name of the topic. Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. For a FIFO (first-in-first-out) topic, the name must end with the `.fifo` suffix. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`
	Name pulumi.StringPtrInput
	// Creates a unique name beginning with the specified prefix. Conflicts with `name`
	NamePrefix pulumi.StringPtrInput
	// The fully-formed AWS policy as JSON.
	Policy pulumi.StringPtrInput
	// If `SignatureVersion` should be [1 (SHA1) or 2 (SHA256)](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html). The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS.
	SignatureVersion pulumi.IntPtrInput
	// IAM role for failure feedback
	SqsFailureFeedbackRoleArn pulumi.StringPtrInput
	// The IAM role permitted to receive success feedback for this topic
	SqsSuccessFeedbackRoleArn pulumi.StringPtrInput
	// Percentage of success to sample
	SqsSuccessFeedbackSampleRate pulumi.IntPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// Tracing mode of an Amazon SNS topic. Valid values: `"PassThrough"`, `"Active"`.
	TracingConfig pulumi.StringPtrInput
}

The set of arguments for constructing a Topic resource.

func (TopicArgs) ElementType

func (TopicArgs) ElementType() reflect.Type

type TopicArray

type TopicArray []TopicInput

func (TopicArray) ElementType

func (TopicArray) ElementType() reflect.Type

func (TopicArray) ToTopicArrayOutput

func (i TopicArray) ToTopicArrayOutput() TopicArrayOutput

func (TopicArray) ToTopicArrayOutputWithContext

func (i TopicArray) ToTopicArrayOutputWithContext(ctx context.Context) TopicArrayOutput

type TopicArrayInput

type TopicArrayInput interface {
	pulumi.Input

	ToTopicArrayOutput() TopicArrayOutput
	ToTopicArrayOutputWithContext(context.Context) TopicArrayOutput
}

TopicArrayInput is an input type that accepts TopicArray and TopicArrayOutput values. You can construct a concrete instance of `TopicArrayInput` via:

TopicArray{ TopicArgs{...} }

type TopicArrayOutput

type TopicArrayOutput struct{ *pulumi.OutputState }

func (TopicArrayOutput) ElementType

func (TopicArrayOutput) ElementType() reflect.Type

func (TopicArrayOutput) Index

func (TopicArrayOutput) ToTopicArrayOutput

func (o TopicArrayOutput) ToTopicArrayOutput() TopicArrayOutput

func (TopicArrayOutput) ToTopicArrayOutputWithContext

func (o TopicArrayOutput) ToTopicArrayOutputWithContext(ctx context.Context) TopicArrayOutput

type TopicInput

type TopicInput interface {
	pulumi.Input

	ToTopicOutput() TopicOutput
	ToTopicOutputWithContext(ctx context.Context) TopicOutput
}

type TopicMap

type TopicMap map[string]TopicInput

func (TopicMap) ElementType

func (TopicMap) ElementType() reflect.Type

func (TopicMap) ToTopicMapOutput

func (i TopicMap) ToTopicMapOutput() TopicMapOutput

func (TopicMap) ToTopicMapOutputWithContext

func (i TopicMap) ToTopicMapOutputWithContext(ctx context.Context) TopicMapOutput

type TopicMapInput

type TopicMapInput interface {
	pulumi.Input

	ToTopicMapOutput() TopicMapOutput
	ToTopicMapOutputWithContext(context.Context) TopicMapOutput
}

TopicMapInput is an input type that accepts TopicMap and TopicMapOutput values. You can construct a concrete instance of `TopicMapInput` via:

TopicMap{ "key": TopicArgs{...} }

type TopicMapOutput

type TopicMapOutput struct{ *pulumi.OutputState }

func (TopicMapOutput) ElementType

func (TopicMapOutput) ElementType() reflect.Type

func (TopicMapOutput) MapIndex

func (TopicMapOutput) ToTopicMapOutput

func (o TopicMapOutput) ToTopicMapOutput() TopicMapOutput

func (TopicMapOutput) ToTopicMapOutputWithContext

func (o TopicMapOutput) ToTopicMapOutputWithContext(ctx context.Context) TopicMapOutput

type TopicOutput

type TopicOutput struct{ *pulumi.OutputState }

func (TopicOutput) ApplicationFailureFeedbackRoleArn

func (o TopicOutput) ApplicationFailureFeedbackRoleArn() pulumi.StringPtrOutput

IAM role for failure feedback

func (TopicOutput) ApplicationSuccessFeedbackRoleArn

func (o TopicOutput) ApplicationSuccessFeedbackRoleArn() pulumi.StringPtrOutput

The IAM role permitted to receive success feedback for this topic

func (TopicOutput) ApplicationSuccessFeedbackSampleRate

func (o TopicOutput) ApplicationSuccessFeedbackSampleRate() pulumi.IntPtrOutput

Percentage of success to sample

func (TopicOutput) ArchivePolicy added in v6.9.0

func (o TopicOutput) ArchivePolicy() pulumi.StringPtrOutput

The message archive policy for FIFO topics. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-topic-owner.html).

func (TopicOutput) Arn

The ARN of the SNS topic, as a more obvious property (clone of id)

func (TopicOutput) BeginningArchiveTime added in v6.9.0

func (o TopicOutput) BeginningArchiveTime() pulumi.StringOutput

The oldest timestamp at which a FIFO topic subscriber can start a replay.

func (TopicOutput) ContentBasedDeduplication

func (o TopicOutput) ContentBasedDeduplication() pulumi.BoolPtrOutput

Enables content-based deduplication for FIFO topics. For more information, see the [related documentation](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html)

func (TopicOutput) DeliveryPolicy

func (o TopicOutput) DeliveryPolicy() pulumi.StringPtrOutput

The SNS delivery policy. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html).

func (TopicOutput) DisplayName

func (o TopicOutput) DisplayName() pulumi.StringPtrOutput

The display name for the topic

func (TopicOutput) ElementType

func (TopicOutput) ElementType() reflect.Type

func (TopicOutput) FifoTopic

func (o TopicOutput) FifoTopic() pulumi.BoolPtrOutput

Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is `false`).

func (TopicOutput) FirehoseFailureFeedbackRoleArn

func (o TopicOutput) FirehoseFailureFeedbackRoleArn() pulumi.StringPtrOutput

IAM role for failure feedback

func (TopicOutput) FirehoseSuccessFeedbackRoleArn

func (o TopicOutput) FirehoseSuccessFeedbackRoleArn() pulumi.StringPtrOutput

The IAM role permitted to receive success feedback for this topic

func (TopicOutput) FirehoseSuccessFeedbackSampleRate

func (o TopicOutput) FirehoseSuccessFeedbackSampleRate() pulumi.IntPtrOutput

Percentage of success to sample

func (TopicOutput) HttpFailureFeedbackRoleArn

func (o TopicOutput) HttpFailureFeedbackRoleArn() pulumi.StringPtrOutput

IAM role for failure feedback

func (TopicOutput) HttpSuccessFeedbackRoleArn

func (o TopicOutput) HttpSuccessFeedbackRoleArn() pulumi.StringPtrOutput

The IAM role permitted to receive success feedback for this topic

func (TopicOutput) HttpSuccessFeedbackSampleRate

func (o TopicOutput) HttpSuccessFeedbackSampleRate() pulumi.IntPtrOutput

Percentage of success to sample

func (TopicOutput) KmsMasterKeyId

func (o TopicOutput) KmsMasterKeyId() pulumi.StringPtrOutput

The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see [Key Terms](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms)

func (TopicOutput) LambdaFailureFeedbackRoleArn

func (o TopicOutput) LambdaFailureFeedbackRoleArn() pulumi.StringPtrOutput

IAM role for failure feedback

func (TopicOutput) LambdaSuccessFeedbackRoleArn

func (o TopicOutput) LambdaSuccessFeedbackRoleArn() pulumi.StringPtrOutput

The IAM role permitted to receive success feedback for this topic

func (TopicOutput) LambdaSuccessFeedbackSampleRate

func (o TopicOutput) LambdaSuccessFeedbackSampleRate() pulumi.IntPtrOutput

Percentage of success to sample

func (TopicOutput) Name

func (o TopicOutput) Name() pulumi.StringOutput

The name of the topic. Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. For a FIFO (first-in-first-out) topic, the name must end with the `.fifo` suffix. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`

func (TopicOutput) NamePrefix

func (o TopicOutput) NamePrefix() pulumi.StringOutput

Creates a unique name beginning with the specified prefix. Conflicts with `name`

func (TopicOutput) Owner

func (o TopicOutput) Owner() pulumi.StringOutput

The AWS Account ID of the SNS topic owner

func (TopicOutput) Policy

func (o TopicOutput) Policy() pulumi.StringOutput

The fully-formed AWS policy as JSON.

func (TopicOutput) SignatureVersion

func (o TopicOutput) SignatureVersion() pulumi.IntOutput

If `SignatureVersion` should be [1 (SHA1) or 2 (SHA256)](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html). The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS.

func (TopicOutput) SqsFailureFeedbackRoleArn

func (o TopicOutput) SqsFailureFeedbackRoleArn() pulumi.StringPtrOutput

IAM role for failure feedback

func (TopicOutput) SqsSuccessFeedbackRoleArn

func (o TopicOutput) SqsSuccessFeedbackRoleArn() pulumi.StringPtrOutput

The IAM role permitted to receive success feedback for this topic

func (TopicOutput) SqsSuccessFeedbackSampleRate

func (o TopicOutput) SqsSuccessFeedbackSampleRate() pulumi.IntPtrOutput

Percentage of success to sample

func (TopicOutput) Tags

Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.

func (TopicOutput) TagsAll deprecated

func (o TopicOutput) TagsAll() pulumi.StringMapOutput

A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.

Deprecated: Please use `tags` instead.

func (TopicOutput) ToTopicOutput

func (o TopicOutput) ToTopicOutput() TopicOutput

func (TopicOutput) ToTopicOutputWithContext

func (o TopicOutput) ToTopicOutputWithContext(ctx context.Context) TopicOutput

func (TopicOutput) TracingConfig

func (o TopicOutput) TracingConfig() pulumi.StringOutput

Tracing mode of an Amazon SNS topic. Valid values: `"PassThrough"`, `"Active"`.

type TopicPolicy

type TopicPolicy struct {
	pulumi.CustomResourceState

	// The ARN of the SNS topic
	Arn pulumi.StringOutput `pulumi:"arn"`
	// The AWS Account ID of the SNS topic owner
	Owner pulumi.StringOutput `pulumi:"owner"`
	// The fully-formed AWS policy as JSON.
	Policy pulumi.StringOutput `pulumi:"policy"`
}

Provides an SNS topic policy resource

> **NOTE:** If a Principal is specified as just an AWS account ID rather than an ARN, AWS silently converts it to the ARN for the root user, causing future deployments to differ. To avoid this problem, just specify the full ARN, e.g. `arn:aws:iam::123456789012:root`

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

) func main() { pulumi.Run(func(ctx *pulumi.Context) error { test, err := sns.NewTopic(ctx, "test", &sns.TopicArgs{ Name: pulumi.String("my-topic-with-policy"), }) if err != nil { return err } snsTopicPolicy := test.Arn.ApplyT(func(arn string) (iam.GetPolicyDocumentResult, error) { return iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ PolicyId: "__default_policy_ID", Statements: []iam.GetPolicyDocumentStatement{ { Actions: []string{ "SNS:Subscribe", "SNS:SetTopicAttributes", "SNS:RemovePermission", "SNS:Receive", "SNS:Publish", "SNS:ListSubscriptionsByTopic", "SNS:GetTopicAttributes", "SNS:DeleteTopic", "SNS:AddPermission", }, Conditions: []iam.GetPolicyDocumentStatementCondition{ { Test: "StringEquals", Variable: "AWS:SourceOwner", Values: interface{}{ account_id, }, }, }, Effect: "Allow", Principals: []iam.GetPolicyDocumentStatementPrincipal{ { Type: "AWS", Identifiers: []string{ "*", }, }, }, Resources: interface{}{ arn, }, Sid: "__default_statement_ID", }, }, }, nil), nil }).(iam.GetPolicyDocumentResultOutput) _, err = sns.NewTopicPolicy(ctx, "default", &sns.TopicPolicyArgs{ Arn: test.Arn, Policy: snsTopicPolicy.ApplyT(func(snsTopicPolicy iam.GetPolicyDocumentResult) (*string, error) { return &snsTopicPolicy.Json, nil }).(pulumi.StringPtrOutput), }) if err != nil { return err } return nil }) } ``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import SNS Topic Policy using the topic ARN. For example:

```sh $ pulumi import aws:sns/topicPolicy:TopicPolicy user_updates arn:aws:sns:us-west-2:0123456789012:my-topic ```

func GetTopicPolicy

func GetTopicPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TopicPolicyState, opts ...pulumi.ResourceOption) (*TopicPolicy, error)

GetTopicPolicy gets an existing TopicPolicy resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTopicPolicy

func NewTopicPolicy(ctx *pulumi.Context,
	name string, args *TopicPolicyArgs, opts ...pulumi.ResourceOption) (*TopicPolicy, error)

NewTopicPolicy registers a new resource with the given unique name, arguments, and options.

func (*TopicPolicy) ElementType

func (*TopicPolicy) ElementType() reflect.Type

func (*TopicPolicy) ToTopicPolicyOutput

func (i *TopicPolicy) ToTopicPolicyOutput() TopicPolicyOutput

func (*TopicPolicy) ToTopicPolicyOutputWithContext

func (i *TopicPolicy) ToTopicPolicyOutputWithContext(ctx context.Context) TopicPolicyOutput

type TopicPolicyArgs

type TopicPolicyArgs struct {
	// The ARN of the SNS topic
	Arn pulumi.StringInput
	// The fully-formed AWS policy as JSON.
	Policy pulumi.Input
}

The set of arguments for constructing a TopicPolicy resource.

func (TopicPolicyArgs) ElementType

func (TopicPolicyArgs) ElementType() reflect.Type

type TopicPolicyArray

type TopicPolicyArray []TopicPolicyInput

func (TopicPolicyArray) ElementType

func (TopicPolicyArray) ElementType() reflect.Type

func (TopicPolicyArray) ToTopicPolicyArrayOutput

func (i TopicPolicyArray) ToTopicPolicyArrayOutput() TopicPolicyArrayOutput

func (TopicPolicyArray) ToTopicPolicyArrayOutputWithContext

func (i TopicPolicyArray) ToTopicPolicyArrayOutputWithContext(ctx context.Context) TopicPolicyArrayOutput

type TopicPolicyArrayInput

type TopicPolicyArrayInput interface {
	pulumi.Input

	ToTopicPolicyArrayOutput() TopicPolicyArrayOutput
	ToTopicPolicyArrayOutputWithContext(context.Context) TopicPolicyArrayOutput
}

TopicPolicyArrayInput is an input type that accepts TopicPolicyArray and TopicPolicyArrayOutput values. You can construct a concrete instance of `TopicPolicyArrayInput` via:

TopicPolicyArray{ TopicPolicyArgs{...} }

type TopicPolicyArrayOutput

type TopicPolicyArrayOutput struct{ *pulumi.OutputState }

func (TopicPolicyArrayOutput) ElementType

func (TopicPolicyArrayOutput) ElementType() reflect.Type

func (TopicPolicyArrayOutput) Index

func (TopicPolicyArrayOutput) ToTopicPolicyArrayOutput

func (o TopicPolicyArrayOutput) ToTopicPolicyArrayOutput() TopicPolicyArrayOutput

func (TopicPolicyArrayOutput) ToTopicPolicyArrayOutputWithContext

func (o TopicPolicyArrayOutput) ToTopicPolicyArrayOutputWithContext(ctx context.Context) TopicPolicyArrayOutput

type TopicPolicyInput

type TopicPolicyInput interface {
	pulumi.Input

	ToTopicPolicyOutput() TopicPolicyOutput
	ToTopicPolicyOutputWithContext(ctx context.Context) TopicPolicyOutput
}

type TopicPolicyMap

type TopicPolicyMap map[string]TopicPolicyInput

func (TopicPolicyMap) ElementType

func (TopicPolicyMap) ElementType() reflect.Type

func (TopicPolicyMap) ToTopicPolicyMapOutput

func (i TopicPolicyMap) ToTopicPolicyMapOutput() TopicPolicyMapOutput

func (TopicPolicyMap) ToTopicPolicyMapOutputWithContext

func (i TopicPolicyMap) ToTopicPolicyMapOutputWithContext(ctx context.Context) TopicPolicyMapOutput

type TopicPolicyMapInput

type TopicPolicyMapInput interface {
	pulumi.Input

	ToTopicPolicyMapOutput() TopicPolicyMapOutput
	ToTopicPolicyMapOutputWithContext(context.Context) TopicPolicyMapOutput
}

TopicPolicyMapInput is an input type that accepts TopicPolicyMap and TopicPolicyMapOutput values. You can construct a concrete instance of `TopicPolicyMapInput` via:

TopicPolicyMap{ "key": TopicPolicyArgs{...} }

type TopicPolicyMapOutput

type TopicPolicyMapOutput struct{ *pulumi.OutputState }

func (TopicPolicyMapOutput) ElementType

func (TopicPolicyMapOutput) ElementType() reflect.Type

func (TopicPolicyMapOutput) MapIndex

func (TopicPolicyMapOutput) ToTopicPolicyMapOutput

func (o TopicPolicyMapOutput) ToTopicPolicyMapOutput() TopicPolicyMapOutput

func (TopicPolicyMapOutput) ToTopicPolicyMapOutputWithContext

func (o TopicPolicyMapOutput) ToTopicPolicyMapOutputWithContext(ctx context.Context) TopicPolicyMapOutput

type TopicPolicyOutput

type TopicPolicyOutput struct{ *pulumi.OutputState }

func (TopicPolicyOutput) Arn

The ARN of the SNS topic

func (TopicPolicyOutput) ElementType

func (TopicPolicyOutput) ElementType() reflect.Type

func (TopicPolicyOutput) Owner

The AWS Account ID of the SNS topic owner

func (TopicPolicyOutput) Policy

The fully-formed AWS policy as JSON.

func (TopicPolicyOutput) ToTopicPolicyOutput

func (o TopicPolicyOutput) ToTopicPolicyOutput() TopicPolicyOutput

func (TopicPolicyOutput) ToTopicPolicyOutputWithContext

func (o TopicPolicyOutput) ToTopicPolicyOutputWithContext(ctx context.Context) TopicPolicyOutput

type TopicPolicyState

type TopicPolicyState struct {
	// The ARN of the SNS topic
	Arn pulumi.StringPtrInput
	// The AWS Account ID of the SNS topic owner
	Owner pulumi.StringPtrInput
	// The fully-formed AWS policy as JSON.
	Policy pulumi.Input
}

func (TopicPolicyState) ElementType

func (TopicPolicyState) ElementType() reflect.Type

type TopicState

type TopicState struct {
	// IAM role for failure feedback
	ApplicationFailureFeedbackRoleArn pulumi.StringPtrInput
	// The IAM role permitted to receive success feedback for this topic
	ApplicationSuccessFeedbackRoleArn pulumi.StringPtrInput
	// Percentage of success to sample
	ApplicationSuccessFeedbackSampleRate pulumi.IntPtrInput
	// The message archive policy for FIFO topics. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-topic-owner.html).
	ArchivePolicy pulumi.StringPtrInput
	// The ARN of the SNS topic, as a more obvious property (clone of id)
	Arn pulumi.StringPtrInput
	// The oldest timestamp at which a FIFO topic subscriber can start a replay.
	BeginningArchiveTime pulumi.StringPtrInput
	// Enables content-based deduplication for FIFO topics. For more information, see the [related documentation](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html)
	ContentBasedDeduplication pulumi.BoolPtrInput
	// The SNS delivery policy. More details in the [AWS documentation](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html).
	DeliveryPolicy pulumi.StringPtrInput
	// The display name for the topic
	DisplayName pulumi.StringPtrInput
	// Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is `false`).
	FifoTopic pulumi.BoolPtrInput
	// IAM role for failure feedback
	FirehoseFailureFeedbackRoleArn pulumi.StringPtrInput
	// The IAM role permitted to receive success feedback for this topic
	FirehoseSuccessFeedbackRoleArn pulumi.StringPtrInput
	// Percentage of success to sample
	FirehoseSuccessFeedbackSampleRate pulumi.IntPtrInput
	// IAM role for failure feedback
	HttpFailureFeedbackRoleArn pulumi.StringPtrInput
	// The IAM role permitted to receive success feedback for this topic
	HttpSuccessFeedbackRoleArn pulumi.StringPtrInput
	// Percentage of success to sample
	HttpSuccessFeedbackSampleRate pulumi.IntPtrInput
	// The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see [Key Terms](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms)
	KmsMasterKeyId pulumi.StringPtrInput
	// IAM role for failure feedback
	LambdaFailureFeedbackRoleArn pulumi.StringPtrInput
	// The IAM role permitted to receive success feedback for this topic
	LambdaSuccessFeedbackRoleArn pulumi.StringPtrInput
	// Percentage of success to sample
	LambdaSuccessFeedbackSampleRate pulumi.IntPtrInput
	// The name of the topic. Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. For a FIFO (first-in-first-out) topic, the name must end with the `.fifo` suffix. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`
	Name pulumi.StringPtrInput
	// Creates a unique name beginning with the specified prefix. Conflicts with `name`
	NamePrefix pulumi.StringPtrInput
	// The AWS Account ID of the SNS topic owner
	Owner pulumi.StringPtrInput
	// The fully-formed AWS policy as JSON.
	Policy pulumi.StringPtrInput
	// If `SignatureVersion` should be [1 (SHA1) or 2 (SHA256)](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html). The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS.
	SignatureVersion pulumi.IntPtrInput
	// IAM role for failure feedback
	SqsFailureFeedbackRoleArn pulumi.StringPtrInput
	// The IAM role permitted to receive success feedback for this topic
	SqsSuccessFeedbackRoleArn pulumi.StringPtrInput
	// Percentage of success to sample
	SqsSuccessFeedbackSampleRate pulumi.IntPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapInput
	// Tracing mode of an Amazon SNS topic. Valid values: `"PassThrough"`, `"Active"`.
	TracingConfig pulumi.StringPtrInput
}

func (TopicState) ElementType

func (TopicState) ElementType() reflect.Type

type TopicSubscription

type TopicSubscription struct {
	pulumi.CustomResourceState

	// ARN of the subscription.
	Arn pulumi.StringOutput `pulumi:"arn"`
	// Integer indicating number of minutes to wait in retrying mode for fetching subscription arn before marking it as failure. Only applicable for http and https protocols. Default is `1`.
	ConfirmationTimeoutInMinutes pulumi.IntPtrOutput `pulumi:"confirmationTimeoutInMinutes"`
	// Whether the subscription confirmation request was authenticated.
	ConfirmationWasAuthenticated pulumi.BoolOutput `pulumi:"confirmationWasAuthenticated"`
	// JSON String with the delivery policy (retries, backoff, etc.) that will be used in the subscription - this only applies to HTTP/S subscriptions. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html) for more details.
	DeliveryPolicy pulumi.StringPtrOutput `pulumi:"deliveryPolicy"`
	// Endpoint to send data to. The contents vary with the protocol. See details below.
	Endpoint pulumi.StringOutput `pulumi:"endpoint"`
	// Whether the endpoint is capable of [auto confirming subscription](http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html#SendMessageToHttp.prepare) (e.g., PagerDuty). Default is `false`.
	EndpointAutoConfirms pulumi.BoolPtrOutput `pulumi:"endpointAutoConfirms"`
	// JSON String with the filter policy that will be used in the subscription to filter messages seen by the target resource. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/message-filtering.html) for more details.
	FilterPolicy pulumi.StringPtrOutput `pulumi:"filterPolicy"`
	// Whether the `filterPolicy` applies to `MessageAttributes` (default) or `MessageBody`.
	FilterPolicyScope pulumi.StringOutput `pulumi:"filterPolicyScope"`
	// AWS account ID of the subscription's owner.
	OwnerId pulumi.StringOutput `pulumi:"ownerId"`
	// Whether the subscription has not been confirmed.
	PendingConfirmation pulumi.BoolOutput `pulumi:"pendingConfirmation"`
	// Protocol to use. Valid values are: `sqs`, `sms`, `lambda`, `firehose`, and `application`. Protocols `email`, `email-json`, `http` and `https` are also valid but partially supported. See details below.
	Protocol pulumi.StringOutput `pulumi:"protocol"`
	// Whether to enable raw message delivery (the original message is directly passed, not wrapped in JSON with the original message in the message property). Default is `false`.
	RawMessageDelivery pulumi.BoolPtrOutput `pulumi:"rawMessageDelivery"`
	// JSON String with the redrive policy that will be used in the subscription. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/sns-dead-letter-queues.html#how-messages-moved-into-dead-letter-queue) for more details.
	RedrivePolicy pulumi.StringPtrOutput `pulumi:"redrivePolicy"`
	// JSON String with the archived message replay policy that will be used in the subscription. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-subscriber.html) for more details.
	ReplayPolicy pulumi.StringPtrOutput `pulumi:"replayPolicy"`
	// ARN of the IAM role to publish to Kinesis Data Firehose delivery stream. Refer to [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html).
	SubscriptionRoleArn pulumi.StringPtrOutput `pulumi:"subscriptionRoleArn"`
	// ARN of the SNS topic to subscribe to.
	//
	// The following arguments are optional:
	Topic pulumi.StringOutput `pulumi:"topic"`
}

Provides a resource for subscribing to SNS topics. Requires that an SNS topic exist for the subscription to attach to. This resource allows you to automatically place messages sent to SNS topics in SQS queues, send them as HTTP(S) POST requests to a given endpoint, send SMS messages, or notify devices / applications. The most likely use case for provider users will probably be SQS queues.

> **NOTE:** If the SNS topic and SQS queue are in different AWS regions, the `sns.TopicSubscription` must use an AWS provider that is in the same region as the SNS topic. If the `sns.TopicSubscription` uses a provider with a different region than the SNS topic, this provider will fail to create the subscription.

> **NOTE:** Setup of cross-account subscriptions from SNS topics to SQS queues requires the provider to have access to BOTH accounts.

> **NOTE:** If an SNS topic and SQS queue are in different AWS accounts but the same region, the `sns.TopicSubscription` must use the AWS provider for the account with the SQS queue. If `sns.TopicSubscription` uses a Provider with a different account than the SQS queue, this provider creates the subscription but does not keep state and tries to re-create the subscription at every `apply`.

> **NOTE:** If an SNS topic and SQS queue are in different AWS accounts and different AWS regions, the subscription needs to be initiated from the account with the SQS queue but in the region of the SNS topic.

> **NOTE:** You cannot unsubscribe to a subscription that is pending confirmation. If you use `email`, `email-json`, or `http`/`https` (without auto-confirmation enabled), until the subscription is confirmed (e.g., outside of this provider), AWS does not allow this provider to delete / unsubscribe the subscription. If you `destroy` an unconfirmed subscription, this provider will remove the subscription from its state but the subscription will still exist in AWS. However, if you delete an SNS topic, SNS [deletes all the subscriptions](https://docs.aws.amazon.com/sns/latest/dg/sns-delete-subscription-topic.html) associated with the topic. Also, you can import a subscription after confirmation and then have the capability to delete it.

## Example Usage

You can directly supply a topic and ARN by hand in the `topicArn` property along with the queue ARN:

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := sns.NewTopicSubscription(ctx, "user_updates_sqs_target", &sns.TopicSubscriptionArgs{
			Topic:    pulumi.Any("arn:aws:sns:us-west-2:432981146916:user-updates-topic"),
			Protocol: pulumi.String("sqs"),
			Endpoint: pulumi.String("arn:aws:sqs:us-west-2:432981146916:queue-too"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

Alternatively you can use the ARN properties of a managed SNS topic and SQS queue:

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		userUpdates, err := sns.NewTopic(ctx, "user_updates", &sns.TopicArgs{
			Name: pulumi.String("user-updates-topic"),
		})
		if err != nil {
			return err
		}
		userUpdatesQueue, err := sqs.NewQueue(ctx, "user_updates_queue", &sqs.QueueArgs{
			Name: pulumi.String("user-updates-queue"),
		})
		if err != nil {
			return err
		}
		_, err = sns.NewTopicSubscription(ctx, "user_updates_sqs_target", &sns.TopicSubscriptionArgs{
			Topic:    userUpdates.Arn,
			Protocol: pulumi.String("sqs"),
			Endpoint: userUpdatesQueue.Arn,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

You can subscribe SNS topics to SQS queues in different Amazon accounts and regions:

<!--Start PulumiCodeChooser --> ```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

) func main() { pulumi.Run(func(ctx *pulumi.Context) error { cfg := config.New(ctx, "") sns := map[string]interface{}{ "account-id": "111111111111", "displayName": "example", "name": "example-sns-topic", "region": "us-west-1", "role-name": "service/service", }; if param := cfg.GetObject("sns"); param != nil { sns = param } sqs := map[string]interface{}{ "account-id": "222222222222", "name": "example-sqs-queue", "region": "us-east-1", "role-name": "service/service", }; if param := cfg.GetObject("sqs"); param != nil { sqs = param } sns_topic_policy, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ PolicyId: pulumi.StringRef("__default_policy_ID"), Statements: []iam.GetPolicyDocumentStatement{ { Actions: []string{ "SNS:Subscribe", "SNS:SetTopicAttributes", "SNS:RemovePermission", "SNS:Publish", "SNS:ListSubscriptionsByTopic", "SNS:GetTopicAttributes", "SNS:DeleteTopic", "SNS:AddPermission", }, Conditions: []iam.GetPolicyDocumentStatementCondition{ { Test: "StringEquals", Variable: "AWS:SourceOwner", Values: interface{}{ sns.AccountId, }, }, }, Effect: pulumi.StringRef("Allow"), Principals: []iam.GetPolicyDocumentStatementPrincipal{ { Type: "AWS", Identifiers: []string{ "*", }, }, }, Resources: []string{ fmt.Sprintf("arn:aws:sns:%v:%v:%v", sns.Region, sns.AccountId, sns.Name), }, Sid: pulumi.StringRef("__default_statement_ID"), }, { Actions: []string{ "SNS:Subscribe", "SNS:Receive", }, Conditions: []iam.GetPolicyDocumentStatementCondition{ { Test: "StringLike", Variable: "SNS:Endpoint", Values: []string{ fmt.Sprintf("arn:aws:sqs:%v:%v:%v", sqs.Region, sqs.AccountId, sqs.Name), }, }, }, Effect: pulumi.StringRef("Allow"), Principals: []iam.GetPolicyDocumentStatementPrincipal{ { Type: "AWS", Identifiers: []string{ "*", }, }, }, Resources: []string{ fmt.Sprintf("arn:aws:sns:%v:%v:%v", sns.Region, sns.AccountId, sns.Name), }, Sid: pulumi.StringRef("__console_sub_0"), }, }, }, nil); if err != nil { return err } sqs_queue_policy, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ PolicyId: pulumi.StringRef(fmt.Sprintf("arn:aws:sqs:%v:%v:%v/SQSDefaultPolicy", sqs.Region, sqs.AccountId, sqs.Name)), Statements: []iam.GetPolicyDocumentStatement{ { Sid: pulumi.StringRef("example-sns-topic"), Effect: pulumi.StringRef("Allow"), Principals: []iam.GetPolicyDocumentStatementPrincipal{ { Type: "AWS", Identifiers: []string{ "*", }, }, }, Actions: []string{ "SQS:SendMessage", }, Resources: []string{ fmt.Sprintf("arn:aws:sqs:%v:%v:%v", sqs.Region, sqs.AccountId, sqs.Name), }, Conditions: []iam.GetPolicyDocumentStatementCondition{ { Test: "ArnEquals", Variable: "aws:SourceArn", Values: []string{ fmt.Sprintf("arn:aws:sns:%v:%v:%v", sns.Region, sns.AccountId, sns.Name), }, }, }, }, }, }, nil); if err != nil { return err } _, err = sns.NewTopic(ctx, "sns-topic", &sns.TopicArgs{ Name: pulumi.Any(sns.Name), DisplayName: pulumi.Any(sns.Display_name), Policy: pulumi.String(sns_topic_policy.Json), }) if err != nil { return err } _, err = sqs.NewQueue(ctx, "sqs-queue", &sqs.QueueArgs{ Name: pulumi.Any(sqs.Name), Policy: pulumi.String(sqs_queue_policy.Json), }) if err != nil { return err } _, err = sns.NewTopicSubscription(ctx, "sns-topic", &sns.TopicSubscriptionArgs{ Topic: sns_topic.Arn, Protocol: pulumi.String("sqs"), Endpoint: sqs_queue.Arn, }) if err != nil { return err } return nil }) } ``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import SNS Topic Subscriptions using the subscription `arn`. For example:

```sh $ pulumi import aws:sns/topicSubscription:TopicSubscription user_updates_sqs_target arn:aws:sns:us-west-2:0123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f ```

func GetTopicSubscription

func GetTopicSubscription(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TopicSubscriptionState, opts ...pulumi.ResourceOption) (*TopicSubscription, error)

GetTopicSubscription gets an existing TopicSubscription resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTopicSubscription

func NewTopicSubscription(ctx *pulumi.Context,
	name string, args *TopicSubscriptionArgs, opts ...pulumi.ResourceOption) (*TopicSubscription, error)

NewTopicSubscription registers a new resource with the given unique name, arguments, and options.

func (*TopicSubscription) ElementType

func (*TopicSubscription) ElementType() reflect.Type

func (*TopicSubscription) ToTopicSubscriptionOutput

func (i *TopicSubscription) ToTopicSubscriptionOutput() TopicSubscriptionOutput

func (*TopicSubscription) ToTopicSubscriptionOutputWithContext

func (i *TopicSubscription) ToTopicSubscriptionOutputWithContext(ctx context.Context) TopicSubscriptionOutput

type TopicSubscriptionArgs

type TopicSubscriptionArgs struct {
	// Integer indicating number of minutes to wait in retrying mode for fetching subscription arn before marking it as failure. Only applicable for http and https protocols. Default is `1`.
	ConfirmationTimeoutInMinutes pulumi.IntPtrInput
	// JSON String with the delivery policy (retries, backoff, etc.) that will be used in the subscription - this only applies to HTTP/S subscriptions. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html) for more details.
	DeliveryPolicy pulumi.StringPtrInput
	// Endpoint to send data to. The contents vary with the protocol. See details below.
	Endpoint pulumi.StringInput
	// Whether the endpoint is capable of [auto confirming subscription](http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html#SendMessageToHttp.prepare) (e.g., PagerDuty). Default is `false`.
	EndpointAutoConfirms pulumi.BoolPtrInput
	// JSON String with the filter policy that will be used in the subscription to filter messages seen by the target resource. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/message-filtering.html) for more details.
	FilterPolicy pulumi.StringPtrInput
	// Whether the `filterPolicy` applies to `MessageAttributes` (default) or `MessageBody`.
	FilterPolicyScope pulumi.StringPtrInput
	// Protocol to use. Valid values are: `sqs`, `sms`, `lambda`, `firehose`, and `application`. Protocols `email`, `email-json`, `http` and `https` are also valid but partially supported. See details below.
	Protocol pulumi.StringInput
	// Whether to enable raw message delivery (the original message is directly passed, not wrapped in JSON with the original message in the message property). Default is `false`.
	RawMessageDelivery pulumi.BoolPtrInput
	// JSON String with the redrive policy that will be used in the subscription. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/sns-dead-letter-queues.html#how-messages-moved-into-dead-letter-queue) for more details.
	RedrivePolicy pulumi.StringPtrInput
	// JSON String with the archived message replay policy that will be used in the subscription. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-subscriber.html) for more details.
	ReplayPolicy pulumi.StringPtrInput
	// ARN of the IAM role to publish to Kinesis Data Firehose delivery stream. Refer to [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html).
	SubscriptionRoleArn pulumi.StringPtrInput
	// ARN of the SNS topic to subscribe to.
	//
	// The following arguments are optional:
	Topic pulumi.Input
}

The set of arguments for constructing a TopicSubscription resource.

func (TopicSubscriptionArgs) ElementType

func (TopicSubscriptionArgs) ElementType() reflect.Type

type TopicSubscriptionArray

type TopicSubscriptionArray []TopicSubscriptionInput

func (TopicSubscriptionArray) ElementType

func (TopicSubscriptionArray) ElementType() reflect.Type

func (TopicSubscriptionArray) ToTopicSubscriptionArrayOutput

func (i TopicSubscriptionArray) ToTopicSubscriptionArrayOutput() TopicSubscriptionArrayOutput

func (TopicSubscriptionArray) ToTopicSubscriptionArrayOutputWithContext

func (i TopicSubscriptionArray) ToTopicSubscriptionArrayOutputWithContext(ctx context.Context) TopicSubscriptionArrayOutput

type TopicSubscriptionArrayInput

type TopicSubscriptionArrayInput interface {
	pulumi.Input

	ToTopicSubscriptionArrayOutput() TopicSubscriptionArrayOutput
	ToTopicSubscriptionArrayOutputWithContext(context.Context) TopicSubscriptionArrayOutput
}

TopicSubscriptionArrayInput is an input type that accepts TopicSubscriptionArray and TopicSubscriptionArrayOutput values. You can construct a concrete instance of `TopicSubscriptionArrayInput` via:

TopicSubscriptionArray{ TopicSubscriptionArgs{...} }

type TopicSubscriptionArrayOutput

type TopicSubscriptionArrayOutput struct{ *pulumi.OutputState }

func (TopicSubscriptionArrayOutput) ElementType

func (TopicSubscriptionArrayOutput) Index

func (TopicSubscriptionArrayOutput) ToTopicSubscriptionArrayOutput

func (o TopicSubscriptionArrayOutput) ToTopicSubscriptionArrayOutput() TopicSubscriptionArrayOutput

func (TopicSubscriptionArrayOutput) ToTopicSubscriptionArrayOutputWithContext

func (o TopicSubscriptionArrayOutput) ToTopicSubscriptionArrayOutputWithContext(ctx context.Context) TopicSubscriptionArrayOutput

type TopicSubscriptionInput

type TopicSubscriptionInput interface {
	pulumi.Input

	ToTopicSubscriptionOutput() TopicSubscriptionOutput
	ToTopicSubscriptionOutputWithContext(ctx context.Context) TopicSubscriptionOutput
}

type TopicSubscriptionMap

type TopicSubscriptionMap map[string]TopicSubscriptionInput

func (TopicSubscriptionMap) ElementType

func (TopicSubscriptionMap) ElementType() reflect.Type

func (TopicSubscriptionMap) ToTopicSubscriptionMapOutput

func (i TopicSubscriptionMap) ToTopicSubscriptionMapOutput() TopicSubscriptionMapOutput

func (TopicSubscriptionMap) ToTopicSubscriptionMapOutputWithContext

func (i TopicSubscriptionMap) ToTopicSubscriptionMapOutputWithContext(ctx context.Context) TopicSubscriptionMapOutput

type TopicSubscriptionMapInput

type TopicSubscriptionMapInput interface {
	pulumi.Input

	ToTopicSubscriptionMapOutput() TopicSubscriptionMapOutput
	ToTopicSubscriptionMapOutputWithContext(context.Context) TopicSubscriptionMapOutput
}

TopicSubscriptionMapInput is an input type that accepts TopicSubscriptionMap and TopicSubscriptionMapOutput values. You can construct a concrete instance of `TopicSubscriptionMapInput` via:

TopicSubscriptionMap{ "key": TopicSubscriptionArgs{...} }

type TopicSubscriptionMapOutput

type TopicSubscriptionMapOutput struct{ *pulumi.OutputState }

func (TopicSubscriptionMapOutput) ElementType

func (TopicSubscriptionMapOutput) ElementType() reflect.Type

func (TopicSubscriptionMapOutput) MapIndex

func (TopicSubscriptionMapOutput) ToTopicSubscriptionMapOutput

func (o TopicSubscriptionMapOutput) ToTopicSubscriptionMapOutput() TopicSubscriptionMapOutput

func (TopicSubscriptionMapOutput) ToTopicSubscriptionMapOutputWithContext

func (o TopicSubscriptionMapOutput) ToTopicSubscriptionMapOutputWithContext(ctx context.Context) TopicSubscriptionMapOutput

type TopicSubscriptionOutput

type TopicSubscriptionOutput struct{ *pulumi.OutputState }

func (TopicSubscriptionOutput) Arn

ARN of the subscription.

func (TopicSubscriptionOutput) ConfirmationTimeoutInMinutes

func (o TopicSubscriptionOutput) ConfirmationTimeoutInMinutes() pulumi.IntPtrOutput

Integer indicating number of minutes to wait in retrying mode for fetching subscription arn before marking it as failure. Only applicable for http and https protocols. Default is `1`.

func (TopicSubscriptionOutput) ConfirmationWasAuthenticated

func (o TopicSubscriptionOutput) ConfirmationWasAuthenticated() pulumi.BoolOutput

Whether the subscription confirmation request was authenticated.

func (TopicSubscriptionOutput) DeliveryPolicy

func (o TopicSubscriptionOutput) DeliveryPolicy() pulumi.StringPtrOutput

JSON String with the delivery policy (retries, backoff, etc.) that will be used in the subscription - this only applies to HTTP/S subscriptions. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html) for more details.

func (TopicSubscriptionOutput) ElementType

func (TopicSubscriptionOutput) ElementType() reflect.Type

func (TopicSubscriptionOutput) Endpoint

Endpoint to send data to. The contents vary with the protocol. See details below.

func (TopicSubscriptionOutput) EndpointAutoConfirms

func (o TopicSubscriptionOutput) EndpointAutoConfirms() pulumi.BoolPtrOutput

Whether the endpoint is capable of [auto confirming subscription](http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html#SendMessageToHttp.prepare) (e.g., PagerDuty). Default is `false`.

func (TopicSubscriptionOutput) FilterPolicy

JSON String with the filter policy that will be used in the subscription to filter messages seen by the target resource. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/message-filtering.html) for more details.

func (TopicSubscriptionOutput) FilterPolicyScope

func (o TopicSubscriptionOutput) FilterPolicyScope() pulumi.StringOutput

Whether the `filterPolicy` applies to `MessageAttributes` (default) or `MessageBody`.

func (TopicSubscriptionOutput) OwnerId

AWS account ID of the subscription's owner.

func (TopicSubscriptionOutput) PendingConfirmation

func (o TopicSubscriptionOutput) PendingConfirmation() pulumi.BoolOutput

Whether the subscription has not been confirmed.

func (TopicSubscriptionOutput) Protocol

Protocol to use. Valid values are: `sqs`, `sms`, `lambda`, `firehose`, and `application`. Protocols `email`, `email-json`, `http` and `https` are also valid but partially supported. See details below.

func (TopicSubscriptionOutput) RawMessageDelivery

func (o TopicSubscriptionOutput) RawMessageDelivery() pulumi.BoolPtrOutput

Whether to enable raw message delivery (the original message is directly passed, not wrapped in JSON with the original message in the message property). Default is `false`.

func (TopicSubscriptionOutput) RedrivePolicy

JSON String with the redrive policy that will be used in the subscription. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/sns-dead-letter-queues.html#how-messages-moved-into-dead-letter-queue) for more details.

func (TopicSubscriptionOutput) ReplayPolicy added in v6.9.0

JSON String with the archived message replay policy that will be used in the subscription. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-subscriber.html) for more details.

func (TopicSubscriptionOutput) SubscriptionRoleArn

func (o TopicSubscriptionOutput) SubscriptionRoleArn() pulumi.StringPtrOutput

ARN of the IAM role to publish to Kinesis Data Firehose delivery stream. Refer to [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html).

func (TopicSubscriptionOutput) ToTopicSubscriptionOutput

func (o TopicSubscriptionOutput) ToTopicSubscriptionOutput() TopicSubscriptionOutput

func (TopicSubscriptionOutput) ToTopicSubscriptionOutputWithContext

func (o TopicSubscriptionOutput) ToTopicSubscriptionOutputWithContext(ctx context.Context) TopicSubscriptionOutput

func (TopicSubscriptionOutput) Topic

ARN of the SNS topic to subscribe to.

The following arguments are optional:

type TopicSubscriptionState

type TopicSubscriptionState struct {
	// ARN of the subscription.
	Arn pulumi.StringPtrInput
	// Integer indicating number of minutes to wait in retrying mode for fetching subscription arn before marking it as failure. Only applicable for http and https protocols. Default is `1`.
	ConfirmationTimeoutInMinutes pulumi.IntPtrInput
	// Whether the subscription confirmation request was authenticated.
	ConfirmationWasAuthenticated pulumi.BoolPtrInput
	// JSON String with the delivery policy (retries, backoff, etc.) that will be used in the subscription - this only applies to HTTP/S subscriptions. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html) for more details.
	DeliveryPolicy pulumi.StringPtrInput
	// Endpoint to send data to. The contents vary with the protocol. See details below.
	Endpoint pulumi.StringPtrInput
	// Whether the endpoint is capable of [auto confirming subscription](http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html#SendMessageToHttp.prepare) (e.g., PagerDuty). Default is `false`.
	EndpointAutoConfirms pulumi.BoolPtrInput
	// JSON String with the filter policy that will be used in the subscription to filter messages seen by the target resource. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/message-filtering.html) for more details.
	FilterPolicy pulumi.StringPtrInput
	// Whether the `filterPolicy` applies to `MessageAttributes` (default) or `MessageBody`.
	FilterPolicyScope pulumi.StringPtrInput
	// AWS account ID of the subscription's owner.
	OwnerId pulumi.StringPtrInput
	// Whether the subscription has not been confirmed.
	PendingConfirmation pulumi.BoolPtrInput
	// Protocol to use. Valid values are: `sqs`, `sms`, `lambda`, `firehose`, and `application`. Protocols `email`, `email-json`, `http` and `https` are also valid but partially supported. See details below.
	Protocol pulumi.StringPtrInput
	// Whether to enable raw message delivery (the original message is directly passed, not wrapped in JSON with the original message in the message property). Default is `false`.
	RawMessageDelivery pulumi.BoolPtrInput
	// JSON String with the redrive policy that will be used in the subscription. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/sns-dead-letter-queues.html#how-messages-moved-into-dead-letter-queue) for more details.
	RedrivePolicy pulumi.StringPtrInput
	// JSON String with the archived message replay policy that will be used in the subscription. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-subscriber.html) for more details.
	ReplayPolicy pulumi.StringPtrInput
	// ARN of the IAM role to publish to Kinesis Data Firehose delivery stream. Refer to [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html).
	SubscriptionRoleArn pulumi.StringPtrInput
	// ARN of the SNS topic to subscribe to.
	//
	// The following arguments are optional:
	Topic pulumi.Input
}

func (TopicSubscriptionState) ElementType

func (TopicSubscriptionState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL