Class: Aws::SNS::Subscription

Inherits:
Object
  • Object
show all
Extended by:
Deprecations
Defined in:
lib/aws-sdk-sns/subscription.rb

Defined Under Namespace

Classes: Collection

Read-Only Attributes collapse

Actions collapse

Instance Method Summary collapse

Constructor Details

#initialize(arn, options = {}) ⇒ Subscription #initialize(options = {}) ⇒ Subscription

Returns a new instance of Subscription.

Overloads:

  • #initialize(arn, options = {}) ⇒ Subscription

    Parameters:

    • arn (String)

    Options Hash (options):

  • #initialize(options = {}) ⇒ Subscription

    Options Hash (options):

    • :arn (required, String)
    • :client (Client)


19
20
21
22
23
24
# File 'lib/aws-sdk-sns/subscription.rb', line 19

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)
end

Instance Method Details

#arnString

Returns:

  • (String)


29
30
31
# File 'lib/aws-sdk-sns/subscription.rb', line 29

def arn
  @arn
end

#attributesHash<String,String>

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.

  • ‘Owner` – The AWS 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.

  • ‘SubscriptionArn` – The subscription’s ARN.

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

Returns:

  • (Hash<String,String>)


63
64
65
# File 'lib/aws-sdk-sns/subscription.rb', line 63

def attributes
  data[:attributes]
end

#clientClient

Returns:



70
71
72
# File 'lib/aws-sdk-sns/subscription.rb', line 70

def client
  @client
end

#dataTypes::GetSubscriptionAttributesResponse

Returns the data for this Aws::SNS::Subscription. Calls Client#get_subscription_attributes if #data_loaded? is ‘false`.



90
91
92
93
# File 'lib/aws-sdk-sns/subscription.rb', line 90

def data
  load unless @data
  @data
end

#data_loaded?Boolean

Returns ‘true` if this resource is loaded. Accessing attributes or #data on an unloaded resource will trigger a call to #load.

Returns:

  • (Boolean)

    Returns ‘true` if this resource is loaded. Accessing attributes or #data on an unloaded resource will trigger a call to #load.



98
99
100
# File 'lib/aws-sdk-sns/subscription.rb', line 98

def data_loaded?
  !!@data
end

#delete(options = {}) ⇒ EmptyStructure

Examples:

Request syntax with placeholder values


subscription.delete()

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Returns:

  • (EmptyStructure)


109
110
111
112
113
# File 'lib/aws-sdk-sns/subscription.rb', line 109

def delete(options = {})
  options = options.merge(subscription_arn: @arn)
  resp = @client.unsubscribe(options)
  resp.data
end

#identifiersObject

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.

Deprecated.


150
151
152
# File 'lib/aws-sdk-sns/subscription.rb', line 150

def identifiers
  { arn: @arn }
end

#loadself Also known as: reload

Loads, or reloads #data for the current Aws::SNS::Subscription. Returns ‘self` making it possible to chain methods.

subscription.reload.data

Returns:

  • (self)


80
81
82
83
84
# File 'lib/aws-sdk-sns/subscription.rb', line 80

def load
  resp = @client.get_subscription_attributes(subscription_arn: @arn)
  @data = resp.data
  self
end

#set_attributes(options = {}) ⇒ EmptyStructure

Examples:

Request syntax with placeholder values


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

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :attribute_name (required, String)

    A map of attributes with their corresponding values.

    The following lists the names, descriptions, and values of the special request parameters that the ‘SetTopicAttributes` 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.

  • :attribute_value (String)

    The new value for the attribute in JSON format.

Returns:

  • (EmptyStructure)


142
143
144
145
146
# File 'lib/aws-sdk-sns/subscription.rb', line 142

def set_attributes(options = {})
  options = options.merge(subscription_arn: @arn)
  resp = @client.set_subscription_attributes(options)
  resp.data
end