Class: Aws::SNS::Topic
- Inherits:
-
Object
- Object
- Aws::SNS::Topic
- Extended by:
- Deprecations
- Defined in:
- lib/aws-sdk-sns/topic.rb
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
- #arn ⇒ String
-
#attributes ⇒ Hash<String,String>
A map of the topic’s attributes.
Actions collapse
- #add_permission(options = {}) ⇒ EmptyStructure
- #confirm_subscription(options = {}) ⇒ Subscription
- #delete(options = {}) ⇒ EmptyStructure
- #publish(options = {}) ⇒ Types::PublishResponse
- #remove_permission(options = {}) ⇒ EmptyStructure
- #set_attributes(options = {}) ⇒ EmptyStructure
- #subscribe(options = {}) ⇒ Subscription
Associations collapse
- #identifiers ⇒ Object deprecated private Deprecated.
- #subscriptions(options = {}) ⇒ Subscription::Collection
Instance Method Summary collapse
- #client ⇒ Client
-
#data ⇒ Types::GetTopicAttributesResponse
Returns the data for this Topic.
-
#data_loaded? ⇒ Boolean
Returns ‘true` if this resource is loaded.
-
#initialize(*args) ⇒ Topic
constructor
A new instance of Topic.
- #load ⇒ self (also: #reload)
Constructor Details
#initialize(arn, options = {}) ⇒ Topic #initialize(options = {}) ⇒ Topic
Returns a new instance of Topic.
22 23 24 25 26 27 28 |
# File 'lib/aws-sdk-sns/topic.rb', line 22 def initialize(*args) = Hash === args.last ? args.pop.dup : {} @arn = extract_arn(args, ) @data = .delete(:data) @client = .delete(:client) || Client.new() @waiter_block_warned = false end |
Instance Method Details
#add_permission(options = {}) ⇒ EmptyStructure
195 196 197 198 199 200 201 |
# File 'lib/aws-sdk-sns/topic.rb', line 195 def ( = {}) = .merge(topic_arn: @arn) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.() end resp.data end |
#arn ⇒ String
33 34 35 |
# File 'lib/aws-sdk-sns/topic.rb', line 33 def arn @arn end |
#attributes ⇒ Hash<String,String>
A map of the topic’s attributes. Attributes in this map include the following:
-
‘DeliveryPolicy` – The JSON serialization of the topic’s delivery policy.
-
‘DisplayName` – The human-readable name used in the `From` field for notifications to `email` and `email-json` endpoints.
-
‘EffectiveDeliveryPolicy` – The JSON serialization of the effective delivery policy, taking system defaults into account.
-
‘Owner` – The Amazon Web Services account ID of the topic’s owner.
-
‘Policy` – The JSON serialization of the topic’s access control policy.
-
‘SignatureVersion` – 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.
-
By default, ‘SignatureVersion` is set to 1. The signature is a Base64-encoded SHA1withRSA signature.
-
When you set ‘SignatureVersion` to 2. Amazon SNS uses a Base64-encoded SHA256withRSA signature.
<note markdown=“1”> If the API response does not include the ‘SignatureVersion` attribute, it means that the `SignatureVersion` for the topic has value 1.
</note>
-
-
‘SubscriptionsConfirmed` – The number of confirmed subscriptions for the topic.
-
‘SubscriptionsDeleted` – The number of deleted subscriptions for the topic.
-
‘SubscriptionsPending` – The number of subscriptions pending confirmation for the topic.
-
‘TopicArn` – The topic’s ARN.
-
‘TracingConfig` – Tracing mode of an Amazon SNS topic. By default `TracingConfig` is set to `PassThrough`, and the topic passes through the tracing header it receives from an Amazon SNS publisher to its subscriptions. If set to `Active`, Amazon SNS will vend X-Ray segment data to topic owner account if the sampled flag in the tracing header is true. This is only supported on standard topics.
The following attribute applies only to [server-side-encryption]:
-
‘KmsMasterKeyId` - The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see [Key Terms]. For more examples, see [KeyId] in the *Key Management Service API Reference*.
^
The following attributes apply only to [FIFO topics]:
-
‘ArchivePolicy` – The policy that sets the retention period for messages stored in the message archive of an Amazon SNS FIFO topic.
-
‘BeginningArchiveTime` – The earliest starting point at which a message in the topic’s archive can be replayed from. This point in time is based on the configured message retention period set by the topic’s message archiving policy.
-
‘ContentBasedDeduplication` – Enables content-based deduplication for FIFO topics.
-
By default, ‘ContentBasedDeduplication` is set to `false`. If you create a FIFO topic and this attribute is `false`, you must specify a value for the `MessageDeduplicationId` parameter for the
- Publish][5
-
action.
-
When you set ‘ContentBasedDeduplication` to `true`, Amazon SNS uses a SHA-256 hash to generate the `MessageDeduplicationId` using the body of the message (but not the attributes of the message).
(Optional) To override the generated value, you can specify a value for the ‘MessageDeduplicationId` parameter for the `Publish` action.
-
-
‘FifoTopic` – When this is set to `true`, a FIFO topic is created.
[1]: docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html [2]: docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms [3]: docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters [4]: docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html [5]: docs.aws.amazon.com/sns/latest/api/API_Publish.html
132 133 134 |
# File 'lib/aws-sdk-sns/topic.rb', line 132 def attributes data[:attributes] end |
#confirm_subscription(options = {}) ⇒ Subscription
219 220 221 222 223 224 225 226 227 228 |
# File 'lib/aws-sdk-sns/topic.rb', line 219 def confirm_subscription( = {}) = .merge(topic_arn: @arn) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.confirm_subscription() end Subscription.new( arn: resp.data.subscription_arn, client: @client ) end |
#data ⇒ Types::GetTopicAttributesResponse
Returns the data for this Aws::SNS::Topic. Calls Client#get_topic_attributes if #data_loaded? is ‘false`.
161 162 163 164 |
# File 'lib/aws-sdk-sns/topic.rb', line 161 def data load unless @data @data end |
#data_loaded? ⇒ Boolean
169 170 171 |
# File 'lib/aws-sdk-sns/topic.rb', line 169 def data_loaded? !!@data end |
#delete(options = {}) ⇒ EmptyStructure
235 236 237 238 239 240 241 |
# File 'lib/aws-sdk-sns/topic.rb', line 235 def delete( = {}) = .merge(topic_arn: @arn) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.delete_topic() end resp.data end |
#identifiers ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
762 763 764 |
# File 'lib/aws-sdk-sns/topic.rb', line 762 def identifiers { arn: @arn } end |
#load ⇒ self Also known as: reload
Loads, or reloads #data for the current Aws::SNS::Topic. Returns ‘self` making it possible to chain methods.
topic.reload.data
149 150 151 152 153 154 155 |
# File 'lib/aws-sdk-sns/topic.rb', line 149 def load resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.get_topic_attributes(topic_arn: @arn) end @data = resp.data self end |
#publish(options = {}) ⇒ Types::PublishResponse
377 378 379 380 381 382 383 |
# File 'lib/aws-sdk-sns/topic.rb', line 377 def publish( = {}) = .merge(topic_arn: @arn) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.publish() end resp.data end |
#remove_permission(options = {}) ⇒ EmptyStructure
394 395 396 397 398 399 400 |
# File 'lib/aws-sdk-sns/topic.rb', line 394 def ( = {}) = .merge(topic_arn: @arn) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.() end resp.data end |
#set_attributes(options = {}) ⇒ EmptyStructure
568 569 570 571 572 573 574 |
# File 'lib/aws-sdk-sns/topic.rb', line 568 def set_attributes( = {}) = .merge(topic_arn: @arn) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.set_topic_attributes() end resp.data end |
#subscribe(options = {}) ⇒ Subscription
722 723 724 725 726 727 728 729 730 731 |
# File 'lib/aws-sdk-sns/topic.rb', line 722 def subscribe( = {}) = .merge(topic_arn: @arn) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.subscribe() end Subscription.new( arn: resp.data.subscription_arn, client: @client ) end |
#subscriptions(options = {}) ⇒ Subscription::Collection
740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 |
# File 'lib/aws-sdk-sns/topic.rb', line 740 def subscriptions( = {}) batches = Enumerator.new do |y| = .merge(topic_arn: @arn) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.list_subscriptions_by_topic() end resp.each_page do |page| batch = [] page.data.subscriptions.each do |s| batch << Subscription.new( arn: s.subscription_arn, client: @client ) end y.yield(batch) end end Subscription::Collection.new(batches) end |