Class: Aws::SNS::Topic
- Inherits:
-
Object
- Object
- Aws::SNS::Topic
- Defined in:
- gems/aws-sdk-sns/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
Instance Method Summary collapse
-
#client ⇒ Client
-
#data ⇒ Types::GetTopicAttributesResponse
Returns the data for this Topic.
-
#data_loaded? ⇒ Boolean
Returns
trueif 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 'gems/aws-sdk-sns/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
203 204 205 206 207 208 209 |
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/topic.rb', line 203 def ( = {}) = .merge(topic_arn: @arn) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.() end resp.data end |
#arn ⇒ String
33 34 35 |
# File 'gems/aws-sdk-sns/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 theFromfield for notifications toemailandemail-jsonendpoints. For subscription confirmation and unsubscribe confirmation emails, the sender name is always "Amazon Web Services Notifications" regardless of this attribute.EffectiveDeliveryPolicy– The JSON serialization of the effective delivery policy, taking system defaults into account.MaximumMessageSize– The maximum size, in bytes, of a message that can be published to the topic. Amazon SNS returns this attribute only if you explicitly set it. If Amazon SNS doesn't return it, the topic uses the default of262144(256 KiB).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,
SignatureVersionis set to 1. The signature is a Base64-encoded SHA1withRSA signature.When you set
SignatureVersionto 2. Amazon SNS uses a Base64-encoded SHA256withRSA signature.If the API response does not include the SignatureVersionattribute, it means that theSignatureVersionfor the topic has value 1.
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 defaultTracingConfigis set toPassThrough, and the topic passes through the tracing header it receives from an Amazon SNS publisher to its subscriptions. If set toActive, 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,
ContentBasedDeduplicationis set tofalse. If you create a FIFO topic and this attribute isfalse, you must specify a value for theMessageDeduplicationIdparameter for the Publish action.When you set
ContentBasedDeduplicationtotrue, Amazon SNS uses a SHA-256 hash to generate theMessageDeduplicationIdusing 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
MessageDeduplicationIdparameter for thePublishaction.
FifoTopic– When this is set totrue, a FIFO topic is created.
140 141 142 |
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/topic.rb', line 140 def attributes data[:attributes] end |
#client ⇒ Client
147 148 149 |
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/topic.rb', line 147 def client @client end |
#confirm_subscription(options = {}) ⇒ Subscription
227 228 229 230 231 232 233 234 235 236 |
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/topic.rb', line 227 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.
169 170 171 172 |
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/topic.rb', line 169 def data load unless @data @data end |
#data_loaded? ⇒ Boolean
177 178 179 |
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/topic.rb', line 177 def data_loaded? !!@data end |
#delete(options = {}) ⇒ EmptyStructure
243 244 245 246 247 248 249 |
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/topic.rb', line 243 def delete( = {}) = .merge(topic_arn: @arn) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.delete_topic() end resp.data 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
157 158 159 160 161 162 163 |
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/topic.rb', line 157 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
439 440 441 442 443 444 445 |
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/topic.rb', line 439 def publish( = {}) = .merge(topic_arn: @arn) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.publish() end resp.data end |
#remove_permission(options = {}) ⇒ EmptyStructure
456 457 458 459 460 461 462 |
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/topic.rb', line 456 def ( = {}) = .merge(topic_arn: @arn) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.() end resp.data end |
#set_attributes(options = {}) ⇒ EmptyStructure
662 663 664 665 666 667 668 |
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/topic.rb', line 662 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
816 817 818 819 820 821 822 823 824 825 |
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/topic.rb', line 816 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
834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 |
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/topic.rb', line 834 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 |