class Aws::SNS::Subscription

Public Class Methods

new(*args) click to toggle source

@overload def initialize(arn, options = {})

@param [String] arn
@option options [Client] :client

@overload def initialize(options = {})

@option options [required, String] :arn
@option options [Client] :client
# File lib/aws-sdk-sns/subscription.rb, line 22
def initialize(*args)
  options = Hash === args.last ? args.pop.dup : {}
  @arn = extract_arn(args, options)
  @data = options.delete(:data)
  @client = options.delete(:client) || Client.new(options)
  @waiter_block_warned = false
end

Public Instance Methods

arn() click to toggle source

@return [String]

# File lib/aws-sdk-sns/subscription.rb, line 33
def arn
  @arn
end
attributes() click to toggle source

A map of the subscription's attributes. Attributes in this map include the following:

  • `ConfirmationWasAuthenticated` – `true` if the subscription confirmation request was authenticated.

  • `DeliveryPolicy` – The JSON serialization of the subscription's delivery policy.

  • `EffectiveDeliveryPolicy` – The JSON serialization of the effective delivery policy that takes into account the topic delivery policy and account system defaults.

  • `FilterPolicy` – The filter policy JSON that is assigned to the subscription. For more information, see [Amazon SNS Message Filtering] in the *Amazon SNS Developer Guide*.

  • `Owner` – The account ID of the subscription's owner.

  • `PendingConfirmation` – `true` if the subscription hasn't been confirmed. To confirm a pending subscription, call the `ConfirmSubscription` action with a confirmation token.

  • `RawMessageDelivery` – `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.

  • `RedrivePolicy` – When specified, sends undeliverable messages to the specified Amazon SQS dead-letter queue. Messages that can't be delivered due to client errors (for example, when the subscribed endpoint is unreachable) or server errors (for example, when the service that powers the subscribed endpoint becomes unavailable) are held in the dead-letter queue for further analysis or reprocessing.

  • `SubscriptionArn` – The subscription's ARN.

  • `TopicArn` – The topic ARN that the subscription is associated with.

The following attribute applies only to Amazon Kinesis Data Firehose delivery stream subscriptions:

  • `SubscriptionRoleArn` – The ARN of the IAM role that has the following:

    • Permission to write to the Kinesis Data Firehose delivery stream

    • Amazon SNS listed as a trusted entity

    Specifying a valid ARN for this attribute is required for Kinesis Data Firehose delivery stream subscriptions. For more information, see [Fanout to Kinesis Data Firehose delivery streams] in the *Amazon SNS Developer Guide*.

[1]: docs.aws.amazon.com/sns/latest/dg/sns-message-filtering.html [2]: docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html @return [Hash<String,String>]

# File lib/aws-sdk-sns/subscription.rb, line 95
def attributes
  data[:attributes]
end
client() click to toggle source

@return [Client]

# File lib/aws-sdk-sns/subscription.rb, line 102
def client
  @client
end
data() click to toggle source

@return [Types::GetSubscriptionAttributesResponse]

Returns the data for this {Subscription}. Calls
{Client#get_subscription_attributes} if {#data_loaded?} is `false`.
# File lib/aws-sdk-sns/subscription.rb, line 122
def data
  load unless @data
  @data
end
data_loaded?() click to toggle source

@return [Boolean]

Returns `true` if this resource is loaded.  Accessing attributes or
{#data} on an unloaded resource will trigger a call to {#load}.
# File lib/aws-sdk-sns/subscription.rb, line 130
def data_loaded?
  !!@data
end
delete(options = {}) click to toggle source

@example Request syntax with placeholder values

subscription.delete()

@param [Hash] options ({}) @return [EmptyStructure]

# File lib/aws-sdk-sns/subscription.rb, line 141
def delete(options = {})
  options = options.merge(subscription_arn: @arn)
  resp = @client.unsubscribe(options)
  resp.data
end
identifiers() click to toggle source

@deprecated @api private

# File lib/aws-sdk-sns/subscription.rb, line 208
def identifiers
  { arn: @arn }
end
load() click to toggle source

Loads, or reloads {#data} for the current {Subscription}. Returns `self` making it possible to chain methods.

subscription.reload.data

@return [self]

# File lib/aws-sdk-sns/subscription.rb, line 112
def load
  resp = @client.get_subscription_attributes(subscription_arn: @arn)
  @data = resp.data
  self
end
Also aliased as: reload
reload()
Alias for: load
set_attributes(options = {}) click to toggle source

@example Request syntax with placeholder values

subscription.set_attributes({
  attribute_name: "attributeName", # required
  attribute_value: "attributeValue",
})

@param [Hash] options ({}) @option options [required, String] :attribute_name

A map of attributes with their corresponding values.

The following lists the names, descriptions, and values of the special
request parameters that this action uses:

* `DeliveryPolicy` – The policy that defines how Amazon SNS retries
  failed deliveries to HTTP/S endpoints.

* `FilterPolicy` – The simple JSON object that lets your subscriber
  receive only a subset of messages, rather than receiving every
  message published to the topic.

* `RawMessageDelivery` – When set to `true`, enables raw message
  delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need
  for the endpoints to process JSON formatting, which is otherwise
  created for Amazon SNS metadata.

* `RedrivePolicy` – When specified, sends undeliverable messages to
  the specified Amazon SQS dead-letter queue. Messages that can't be
  delivered due to client errors (for example, when the subscribed
  endpoint is unreachable) or server errors (for example, when the
  service that powers the subscribed endpoint becomes unavailable) are
  held in the dead-letter queue for further analysis or reprocessing.

The following attribute applies only to Amazon Kinesis Data Firehose
delivery stream subscriptions:

* `SubscriptionRoleArn` – The ARN of the IAM role that has the
  following:

  * Permission to write to the Kinesis Data Firehose delivery stream

  * Amazon SNS listed as a trusted entity

  Specifying a valid ARN for this attribute is required for Kinesis
  Data Firehose delivery stream subscriptions. For more information,
  see [Fanout to Kinesis Data Firehose delivery streams][1] in the
  *Amazon SNS Developer Guide*.

[1]: https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html

@option options [String] :attribute_value

The new value for the attribute in JSON format.

@return [EmptyStructure]

# File lib/aws-sdk-sns/subscription.rb, line 200
def set_attributes(options = {})
  options = options.merge(subscription_arn: @arn)
  resp = @client.set_subscription_attributes(options)
  resp.data
end

Private Instance Methods

extract_arn(args, options) click to toggle source
# File lib/aws-sdk-sns/subscription.rb, line 215
def extract_arn(args, options)
  value = args[0] || options.delete(:arn)
  case value
  when String then value
  when nil then raise ArgumentError, "missing required option :arn"
  else
    msg = "expected :arn to be a String, got #{value.class}"
    raise ArgumentError, msg
  end
end