Class: AWSCDK::SNS::TopicSubscriptionConfig
- Inherits:
-
SubscriptionOptions
- Object
- SubscriptionOptions
- AWSCDK::SNS::TopicSubscriptionConfig
- Defined in:
- sns/topic_subscription_config.rb
Overview
Subscription configuration.
Instance Attribute Summary collapse
-
#dead_letter_queue ⇒ AWSCDK::SQS::IQueue?
readonly
Queue to be used as dead letter queue.
-
#delivery_policy ⇒ AWSCDK::SNS::DeliveryPolicy?
readonly
The delivery policy.
-
#endpoint ⇒ String
readonly
The subscription endpoint.
-
#filter_policy ⇒ Hash{String => AWSCDK::SNS::SubscriptionFilter}?
readonly
The filter policy.
-
#filter_policy_with_message_body ⇒ Hash{String => AWSCDK::SNS::FilterOrPolicy}?
readonly
The filter policy that is applied on the message body.
-
#protocol ⇒ AWSCDK::SNS::SubscriptionProtocol
readonly
What type of subscription to add.
-
#raw_message_delivery ⇒ Boolean?
readonly
true if raw message delivery is enabled for the subscription.
-
#region ⇒ String?
readonly
The region where the topic resides, in the case of cross-region subscriptions.
-
#subscriber_id ⇒ String
readonly
The id of the SNS subscription resource created under
scope. -
#subscriber_scope ⇒ Constructs::Construct?
readonly
The scope in which to create the SNS subscription resource.
-
#subscription_dependency ⇒ Constructs::IDependable?
readonly
The resources that need to be created before the subscription can be safely created.
-
#subscription_role_arn ⇒ String?
readonly
Arn of role allowing access to firehose delivery stream.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(endpoint:, protocol:, dead_letter_queue: nil, delivery_policy: nil, filter_policy: nil, filter_policy_with_message_body: nil, raw_message_delivery: nil, region: nil, subscription_role_arn: nil, subscriber_id:, subscriber_scope: nil, subscription_dependency: nil) ⇒ TopicSubscriptionConfig
constructor
A new instance of TopicSubscriptionConfig.
- #to_jsii ⇒ Object
Constructor Details
#initialize(endpoint:, protocol:, dead_letter_queue: nil, delivery_policy: nil, filter_policy: nil, filter_policy_with_message_body: nil, raw_message_delivery: nil, region: nil, subscription_role_arn: nil, subscriber_id:, subscriber_scope: nil, subscription_dependency: nil) ⇒ TopicSubscriptionConfig
Returns a new instance of TopicSubscriptionConfig.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'sns/topic_subscription_config.rb', line 19 def initialize(endpoint:, protocol:, dead_letter_queue: nil, delivery_policy: nil, filter_policy: nil, filter_policy_with_message_body: nil, raw_message_delivery: nil, region: nil, subscription_role_arn: nil, subscriber_id:, subscriber_scope: nil, subscription_dependency: nil) @endpoint = endpoint Jsii::Type.check_type(@endpoint, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "endpoint") @protocol = protocol Jsii::Type.check_type(@protocol, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfc25zLlN1YnNjcmlwdGlvblByb3RvY29sIn0=")), "protocol") @dead_letter_queue = dead_letter_queue Jsii::Type.check_type(@dead_letter_queue, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfc3FzLklRdWV1ZSJ9")), "deadLetterQueue") unless @dead_letter_queue.nil? @delivery_policy = delivery_policy.is_a?(Hash) ? ::AWSCDK::SNS::DeliveryPolicy.new(**delivery_policy.transform_keys(&:to_sym)) : delivery_policy Jsii::Type.check_type(@delivery_policy, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfc25zLkRlbGl2ZXJ5UG9saWN5In0=")), "deliveryPolicy") unless @delivery_policy.nil? @filter_policy = filter_policy Jsii::Type.check_type(@filter_policy, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zbnMuU3Vic2NyaXB0aW9uRmlsdGVyIn0sImtpbmQiOiJtYXAifX0=")), "filterPolicy") unless @filter_policy.nil? @filter_policy_with_message_body = Jsii::Type.check_type(@filter_policy_with_message_body, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zbnMuRmlsdGVyT3JQb2xpY3kifSwia2luZCI6Im1hcCJ9fQ==")), "filterPolicyWithMessageBody") unless @filter_policy_with_message_body.nil? @raw_message_delivery = Jsii::Type.check_type(@raw_message_delivery, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "rawMessageDelivery") unless @raw_message_delivery.nil? @region = region Jsii::Type.check_type(@region, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "region") unless @region.nil? @subscription_role_arn = subscription_role_arn Jsii::Type.check_type(@subscription_role_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "subscriptionRoleArn") unless @subscription_role_arn.nil? @subscriber_id = subscriber_id Jsii::Type.check_type(@subscriber_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "subscriberId") @subscriber_scope = subscriber_scope Jsii::Type.check_type(@subscriber_scope, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLkNvbnN0cnVjdCJ9")), "subscriberScope") unless @subscriber_scope.nil? @subscription_dependency = subscription_dependency Jsii::Type.check_type(@subscription_dependency, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLklEZXBlbmRhYmxlIn0=")), "subscriptionDependency") unless @subscription_dependency.nil? end |
Instance Attribute Details
#dead_letter_queue ⇒ AWSCDK::SQS::IQueue? (readonly)
Default: - No dead letter queue enabled.
Queue to be used as dead letter queue.
If not passed no dead letter queue is enabled.
62 63 64 |
# File 'sns/topic_subscription_config.rb', line 62 def dead_letter_queue @dead_letter_queue end |
#delivery_policy ⇒ AWSCDK::SNS::DeliveryPolicy? (readonly)
Default: - if the initial delivery of the message fails, three retries with a delay between failed attempts set at 20 seconds
The delivery policy.
67 68 69 |
# File 'sns/topic_subscription_config.rb', line 67 def delivery_policy @delivery_policy end |
#endpoint ⇒ String (readonly)
The subscription endpoint.
The meaning of this value depends on the value for 'protocol'.
51 52 53 |
# File 'sns/topic_subscription_config.rb', line 51 def endpoint @endpoint end |
#filter_policy ⇒ Hash{String => AWSCDK::SNS::SubscriptionFilter}? (readonly)
Default: - all messages are delivered
The filter policy.
72 73 74 |
# File 'sns/topic_subscription_config.rb', line 72 def filter_policy @filter_policy end |
#filter_policy_with_message_body ⇒ Hash{String => AWSCDK::SNS::FilterOrPolicy}? (readonly)
Default: - all messages are delivered
The filter policy that is applied on the message body.
To apply a filter policy to the message attributes, use filter_policy. A maximum of one of filter_policy_with_message_body and filter_policy may be used.
79 80 81 |
# File 'sns/topic_subscription_config.rb', line 79 def @filter_policy_with_message_body end |
#protocol ⇒ AWSCDK::SNS::SubscriptionProtocol (readonly)
What type of subscription to add.
55 56 57 |
# File 'sns/topic_subscription_config.rb', line 55 def protocol @protocol end |
#raw_message_delivery ⇒ Boolean? (readonly)
Default: false
true if raw message delivery is enabled for the subscription.
Raw messages are free of JSON formatting and can be sent to HTTP/S and Amazon SQS endpoints. For more information, see GetSubscriptionAttributes in the Amazon Simple Notification Service API Reference.
88 89 90 |
# File 'sns/topic_subscription_config.rb', line 88 def @raw_message_delivery end |
#region ⇒ String? (readonly)
Default: - the region where the CloudFormation stack is being deployed.
The region where the topic resides, in the case of cross-region subscriptions.
93 94 95 |
# File 'sns/topic_subscription_config.rb', line 93 def region @region end |
#subscriber_id ⇒ String (readonly)
The id of the SNS subscription resource created under scope.
In most
cases, it is recommended to use the unique_id of the topic you are
subscribing to.
108 109 110 |
# File 'sns/topic_subscription_config.rb', line 108 def subscriber_id @subscriber_id end |
#subscriber_scope ⇒ Constructs::Construct? (readonly)
Default: - use the topic as the scope of the subscription, in which case subscriberId must be defined.
The scope in which to create the SNS subscription resource.
Normally you'd want the subscription to be created on the consuming stack because the topic is usually referenced by the consumer's resource policy (e.g. SQS queue policy). Otherwise, it will cause a cyclic reference.
If this is undefined, the subscription will be created on the topic's stack.
120 121 122 |
# File 'sns/topic_subscription_config.rb', line 120 def subscriber_scope @subscriber_scope end |
#subscription_dependency ⇒ Constructs::IDependable? (readonly)
Default: - empty list
The resources that need to be created before the subscription can be safely created.
For example for SQS subscription, the subscription needs to have a dependency on the SQS queue policy in order for the subscription to successfully deliver messages.
128 129 130 |
# File 'sns/topic_subscription_config.rb', line 128 def subscription_dependency @subscription_dependency end |
#subscription_role_arn ⇒ String? (readonly)
Default: - No subscription role is provided
Arn of role allowing access to firehose delivery stream.
Required for a firehose subscription protocol.
100 101 102 |
# File 'sns/topic_subscription_config.rb', line 100 def subscription_role_arn @subscription_role_arn end |
Class Method Details
.jsii_properties ⇒ Object
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'sns/topic_subscription_config.rb', line 130 def self.jsii_properties { :endpoint => "endpoint", :protocol => "protocol", :dead_letter_queue => "deadLetterQueue", :delivery_policy => "deliveryPolicy", :filter_policy => "filterPolicy", :filter_policy_with_message_body => "filterPolicyWithMessageBody", :raw_message_delivery => "rawMessageDelivery", :region => "region", :subscription_role_arn => "subscriptionRoleArn", :subscriber_id => "subscriberId", :subscriber_scope => "subscriberScope", :subscription_dependency => "subscriptionDependency", } end |
Instance Method Details
#to_jsii ⇒ Object
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'sns/topic_subscription_config.rb', line 147 def to_jsii result = {} result.merge!(super) result.merge!({ "endpoint" => @endpoint, "protocol" => @protocol, "deadLetterQueue" => @dead_letter_queue, "deliveryPolicy" => @delivery_policy, "filterPolicy" => @filter_policy, "filterPolicyWithMessageBody" => @filter_policy_with_message_body, "rawMessageDelivery" => @raw_message_delivery, "region" => @region, "subscriptionRoleArn" => @subscription_role_arn, "subscriberId" => @subscriber_id, "subscriberScope" => @subscriber_scope, "subscriptionDependency" => @subscription_dependency, }) result.compact end |