You are viewing documentation for version 3 of the AWS SDK for Ruby. Version 2 documentation can be found here.

Class: Aws::SNS::Subscription

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

Defined Under Namespace

Classes: Collection

Actions collapse

Read-Only Attributes 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 'gems/aws-sdk-sns/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 'gems/aws-sdk-sns/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:

  • SubscriptionArn -- the subscription's ARN

  • TopicArn -- the topic ARN that the subscription is associated with

  • Owner -- the AWS account ID of the subscription's owner

  • 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

Returns:

  • (Hash<String,String>)


52
53
54
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/subscription.rb', line 52

def attributes
  data[:attributes]
end

#clientClient

Returns:



59
60
61
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/subscription.rb', line 59

def client
  @client
end

#dataTypes::GetSubscriptionAttributesResponse

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



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

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.



87
88
89
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/subscription.rb', line 87

def data_loaded?
  !!@data
end

#delete(options = {}) ⇒ EmptyStructure

Examples:

Request syntax with placeholder values


subscription.delete()

Parameters:

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

    ({})

Returns:

  • (EmptyStructure)


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

def delete(options = {})
  options = options.merge(subscription_arn: @arn)
  resp = @client.unsubscribe(options)
  resp.data
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)


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

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)

    The name of the attribute you want to set. Only a subset of the subscriptions attributes are mutable.

    Valid values: DeliveryPolicy | RawMessageDelivery

  • :attribute_value (String)

    The new value for the attribute in JSON format.

Returns:

  • (EmptyStructure)


119
120
121
122
123
# File 'gems/aws-sdk-sns/lib/aws-sdk-sns/subscription.rb', line 119

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