awssnssubscriptions

package
v1.154.0-devpreview Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2022 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewEmailSubscription_Override

func NewEmailSubscription_Override(e EmailSubscription, emailAddress *string, props *EmailSubscriptionProps)

Experimental.

func NewLambdaSubscription_Override

func NewLambdaSubscription_Override(l LambdaSubscription, fn awslambda.IFunction, props *LambdaSubscriptionProps)

Experimental.

func NewSmsSubscription_Override

func NewSmsSubscription_Override(s SmsSubscription, phoneNumber *string, props *SmsSubscriptionProps)

Experimental.

func NewSqsSubscription_Override

func NewSqsSubscription_Override(s SqsSubscription, queue awssqs.IQueue, props *SqsSubscriptionProps)

Experimental.

func NewUrlSubscription_Override

func NewUrlSubscription_Override(u UrlSubscription, url *string, props *UrlSubscriptionProps)

Experimental.

Types

type EmailSubscription

type EmailSubscription interface {
	awssns.ITopicSubscription
	// Returns a configuration for an email address to subscribe to an SNS topic.
	// Experimental.
	Bind(_topic awssns.ITopic) *awssns.TopicSubscriptionConfig
}

Use an email address as a subscription target.

Email subscriptions require confirmation.

Example:

myTopic := sns.NewTopic(this, jsii.String("Topic"))
emailAddress := NewCfnParameter(this, jsii.String("email-param"))

myTopic.addSubscription(subscriptions.NewEmailSubscription(emailAddress.valueAsString))

Experimental.

func NewEmailSubscription

func NewEmailSubscription(emailAddress *string, props *EmailSubscriptionProps) EmailSubscription

Experimental.

type EmailSubscriptionProps

type EmailSubscriptionProps struct {
	// Queue to be used as dead letter queue.
	//
	// If not passed no dead letter queue is enabled.
	// Experimental.
	DeadLetterQueue awssqs.IQueue `json:"deadLetterQueue" yaml:"deadLetterQueue"`
	// The filter policy.
	// Experimental.
	FilterPolicy *map[string]awssns.SubscriptionFilter `json:"filterPolicy" yaml:"filterPolicy"`
	// Indicates if the full notification JSON should be sent to the email address or just the message text.
	// Experimental.
	Json *bool `json:"json" yaml:"json"`
}

Options for email subscriptions.

Example:

import awscdk "github.com/aws/aws-cdk-go/awscdk"import sns "github.com/aws/aws-cdk-go/awscdk/aws_sns"import awscdk "github.com/aws/aws-cdk-go/awscdk"import sns_subscriptions "github.com/aws/aws-cdk-go/awscdk/aws_sns_subscriptions"import awscdk "github.com/aws/aws-cdk-go/awscdk"import sqs "github.com/aws/aws-cdk-go/awscdk/aws_sqs"

var queue queue
var subscriptionFilter subscriptionFilter
emailSubscriptionProps := &emailSubscriptionProps{
	deadLetterQueue: queue,
	filterPolicy: map[string]*subscriptionFilter{
		"filterPolicyKey": subscriptionFilter,
	},
	json: jsii.Boolean(false),
}

Experimental.

type LambdaSubscription

type LambdaSubscription interface {
	awssns.ITopicSubscription
	// Returns a configuration for a Lambda function to subscribe to an SNS topic.
	// Experimental.
	Bind(topic awssns.ITopic) *awssns.TopicSubscriptionConfig
}

Use a Lambda function as a subscription target.

Example:

import lambda "github.com/aws/aws-cdk-go/awscdk"
var fn function

myTopic := sns.NewTopic(this, jsii.String("MyTopic"))

// Lambda should receive only message matching the following conditions on attributes:
// color: 'red' or 'orange' or begins with 'bl'
// size: anything but 'small' or 'medium'
// price: between 100 and 200 or greater than 300
// store: attribute must be present
myTopic.addSubscription(subscriptions.NewLambdaSubscription(fn, &lambdaSubscriptionProps{
	filterPolicy: map[string]subscriptionFilter{
		"color": sns.*subscriptionFilter.stringFilter(&StringConditions{
			"allowlist": []*string{
				jsii.String("red"),
				jsii.String("orange"),
			},
			"matchPrefixes": []*string{
				jsii.String("bl"),
			},
		}),
		"size": sns.*subscriptionFilter.stringFilter(&StringConditions{
			"denylist": []*string{
				jsii.String("small"),
				jsii.String("medium"),
			},
		}),
		"price": sns.*subscriptionFilter.numericFilter(&NumericConditions{
			"between": &BetweenCondition{
				"start": jsii.Number(100),
				"stop": jsii.Number(200),
			},
			"greaterThan": jsii.Number(300),
		}),
		"store": sns.*subscriptionFilter.existsFilter(),
	},
}))

Experimental.

func NewLambdaSubscription

func NewLambdaSubscription(fn awslambda.IFunction, props *LambdaSubscriptionProps) LambdaSubscription

Experimental.

type LambdaSubscriptionProps

type LambdaSubscriptionProps struct {
	// Queue to be used as dead letter queue.
	//
	// If not passed no dead letter queue is enabled.
	// Experimental.
	DeadLetterQueue awssqs.IQueue `json:"deadLetterQueue" yaml:"deadLetterQueue"`
	// The filter policy.
	// Experimental.
	FilterPolicy *map[string]awssns.SubscriptionFilter `json:"filterPolicy" yaml:"filterPolicy"`
}

Properties for a Lambda subscription.

Example:

import lambda "github.com/aws/aws-cdk-go/awscdk"
var fn function

myTopic := sns.NewTopic(this, jsii.String("MyTopic"))

// Lambda should receive only message matching the following conditions on attributes:
// color: 'red' or 'orange' or begins with 'bl'
// size: anything but 'small' or 'medium'
// price: between 100 and 200 or greater than 300
// store: attribute must be present
myTopic.addSubscription(subscriptions.NewLambdaSubscription(fn, &lambdaSubscriptionProps{
	filterPolicy: map[string]subscriptionFilter{
		"color": sns.*subscriptionFilter.stringFilter(&StringConditions{
			"allowlist": []*string{
				jsii.String("red"),
				jsii.String("orange"),
			},
			"matchPrefixes": []*string{
				jsii.String("bl"),
			},
		}),
		"size": sns.*subscriptionFilter.stringFilter(&StringConditions{
			"denylist": []*string{
				jsii.String("small"),
				jsii.String("medium"),
			},
		}),
		"price": sns.*subscriptionFilter.numericFilter(&NumericConditions{
			"between": &BetweenCondition{
				"start": jsii.Number(100),
				"stop": jsii.Number(200),
			},
			"greaterThan": jsii.Number(300),
		}),
		"store": sns.*subscriptionFilter.existsFilter(),
	},
}))

Experimental.

type SmsSubscription

type SmsSubscription interface {
	awssns.ITopicSubscription
	// Returns a configuration used to subscribe to an SNS topic.
	// Experimental.
	Bind(_topic awssns.ITopic) *awssns.TopicSubscriptionConfig
}

Use an sms address as a subscription target.

Example:

myTopic := sns.NewTopic(this, jsii.String("Topic"))

myTopic.addSubscription(subscriptions.NewSmsSubscription(jsii.String("+15551231234")))

Experimental.

func NewSmsSubscription

func NewSmsSubscription(phoneNumber *string, props *SmsSubscriptionProps) SmsSubscription

Experimental.

type SmsSubscriptionProps

type SmsSubscriptionProps struct {
	// Queue to be used as dead letter queue.
	//
	// If not passed no dead letter queue is enabled.
	// Experimental.
	DeadLetterQueue awssqs.IQueue `json:"deadLetterQueue" yaml:"deadLetterQueue"`
	// The filter policy.
	// Experimental.
	FilterPolicy *map[string]awssns.SubscriptionFilter `json:"filterPolicy" yaml:"filterPolicy"`
}

Options for SMS subscriptions.

Example:

import awscdk "github.com/aws/aws-cdk-go/awscdk"import sns "github.com/aws/aws-cdk-go/awscdk/aws_sns"import awscdk "github.com/aws/aws-cdk-go/awscdk"import sns_subscriptions "github.com/aws/aws-cdk-go/awscdk/aws_sns_subscriptions"import awscdk "github.com/aws/aws-cdk-go/awscdk"import sqs "github.com/aws/aws-cdk-go/awscdk/aws_sqs"

var queue queue
var subscriptionFilter subscriptionFilter
smsSubscriptionProps := &smsSubscriptionProps{
	deadLetterQueue: queue,
	filterPolicy: map[string]*subscriptionFilter{
		"filterPolicyKey": subscriptionFilter,
	},
}

Experimental.

type SqsSubscription

type SqsSubscription interface {
	awssns.ITopicSubscription
	// Returns a configuration for an SQS queue to subscribe to an SNS topic.
	// Experimental.
	Bind(topic awssns.ITopic) *awssns.TopicSubscriptionConfig
}

Use an SQS queue as a subscription target.

Example:

var queue queue
myTopic := sns.NewTopic(this, jsii.String("MyTopic"))

myTopic.addSubscription(subscriptions.NewSqsSubscription(queue))

Experimental.

func NewSqsSubscription

func NewSqsSubscription(queue awssqs.IQueue, props *SqsSubscriptionProps) SqsSubscription

Experimental.

type SqsSubscriptionProps

type SqsSubscriptionProps struct {
	// Queue to be used as dead letter queue.
	//
	// If not passed no dead letter queue is enabled.
	// Experimental.
	DeadLetterQueue awssqs.IQueue `json:"deadLetterQueue" yaml:"deadLetterQueue"`
	// The filter policy.
	// Experimental.
	FilterPolicy *map[string]awssns.SubscriptionFilter `json:"filterPolicy" yaml:"filterPolicy"`
	// The message to the queue is the same as it was sent to the topic.
	//
	// If false, the message will be wrapped in an SNS envelope.
	// Experimental.
	RawMessageDelivery *bool `json:"rawMessageDelivery" yaml:"rawMessageDelivery"`
}

Properties for an SQS subscription.

Example:

import awscdk "github.com/aws/aws-cdk-go/awscdk"import sns "github.com/aws/aws-cdk-go/awscdk/aws_sns"import awscdk "github.com/aws/aws-cdk-go/awscdk"import sns_subscriptions "github.com/aws/aws-cdk-go/awscdk/aws_sns_subscriptions"import awscdk "github.com/aws/aws-cdk-go/awscdk"import sqs "github.com/aws/aws-cdk-go/awscdk/aws_sqs"

var queue queue
var subscriptionFilter subscriptionFilter
sqsSubscriptionProps := &sqsSubscriptionProps{
	deadLetterQueue: queue,
	filterPolicy: map[string]*subscriptionFilter{
		"filterPolicyKey": subscriptionFilter,
	},
	rawMessageDelivery: jsii.Boolean(false),
}

Experimental.

type SubscriptionProps

type SubscriptionProps struct {
	// Queue to be used as dead letter queue.
	//
	// If not passed no dead letter queue is enabled.
	// Experimental.
	DeadLetterQueue awssqs.IQueue `json:"deadLetterQueue" yaml:"deadLetterQueue"`
	// The filter policy.
	// Experimental.
	FilterPolicy *map[string]awssns.SubscriptionFilter `json:"filterPolicy" yaml:"filterPolicy"`
}

Options to subscribing to an SNS topic.

Example:

import awscdk "github.com/aws/aws-cdk-go/awscdk"import sns "github.com/aws/aws-cdk-go/awscdk/aws_sns"import awscdk "github.com/aws/aws-cdk-go/awscdk"import sns_subscriptions "github.com/aws/aws-cdk-go/awscdk/aws_sns_subscriptions"import awscdk "github.com/aws/aws-cdk-go/awscdk"import sqs "github.com/aws/aws-cdk-go/awscdk/aws_sqs"

var queue queue
var subscriptionFilter subscriptionFilter
subscriptionProps := &subscriptionProps{
	deadLetterQueue: queue,
	filterPolicy: map[string]*subscriptionFilter{
		"filterPolicyKey": subscriptionFilter,
	},
}

Experimental.

type UrlSubscription

type UrlSubscription interface {
	awssns.ITopicSubscription
	// Returns a configuration for a URL to subscribe to an SNS topic.
	// Experimental.
	Bind(_topic awssns.ITopic) *awssns.TopicSubscriptionConfig
}

Use a URL as a subscription target.

The message will be POSTed to the given URL.

Example:

myTopic := sns.NewTopic(this, jsii.String("MyTopic"))

myTopic.addSubscription(subscriptions.NewUrlSubscription(jsii.String("https://foobar.com/")))

See: https://docs.aws.amazon.com/sns/latest/dg/sns-http-https-endpoint-as-subscriber.html

Experimental.

func NewUrlSubscription

func NewUrlSubscription(url *string, props *UrlSubscriptionProps) UrlSubscription

Experimental.

type UrlSubscriptionProps

type UrlSubscriptionProps struct {
	// Queue to be used as dead letter queue.
	//
	// If not passed no dead letter queue is enabled.
	// Experimental.
	DeadLetterQueue awssqs.IQueue `json:"deadLetterQueue" yaml:"deadLetterQueue"`
	// The filter policy.
	// Experimental.
	FilterPolicy *map[string]awssns.SubscriptionFilter `json:"filterPolicy" yaml:"filterPolicy"`
	// The subscription's protocol.
	// Experimental.
	Protocol awssns.SubscriptionProtocol `json:"protocol" yaml:"protocol"`
	// The message to the queue is the same as it was sent to the topic.
	//
	// If false, the message will be wrapped in an SNS envelope.
	// Experimental.
	RawMessageDelivery *bool `json:"rawMessageDelivery" yaml:"rawMessageDelivery"`
}

Options for URL subscriptions.

Example:

import awscdk "github.com/aws/aws-cdk-go/awscdk"import sns "github.com/aws/aws-cdk-go/awscdk/aws_sns"import awscdk "github.com/aws/aws-cdk-go/awscdk"import sns_subscriptions "github.com/aws/aws-cdk-go/awscdk/aws_sns_subscriptions"import awscdk "github.com/aws/aws-cdk-go/awscdk"import sqs "github.com/aws/aws-cdk-go/awscdk/aws_sqs"

var queue queue
var subscriptionFilter subscriptionFilter
urlSubscriptionProps := &urlSubscriptionProps{
	deadLetterQueue: queue,
	filterPolicy: map[string]*subscriptionFilter{
		"filterPolicyKey": subscriptionFilter,
	},
	protocol: sns.subscriptionProtocol_HTTP,
	rawMessageDelivery: jsii.Boolean(false),
}

Experimental.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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