aws-sdk-sns 1.67.0 → 1.92.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,6 +45,13 @@ module Aws::SNS
45
45
  # * `ApplePlatformBundleID` – The app identifier used to configure
46
46
  # token-based authentication.
47
47
  #
48
+ # * `AuthenticationMethod` – Returns the credential type used when
49
+ # sending push notifications from application to APNS/APNS\_Sandbox,
50
+ # or application to GCM.
51
+ #
52
+ # * APNS – Returns the token or certificate.
53
+ #
54
+ # * GCM – Returns the token or key.
48
55
  # * `EventEndpointCreated` – Topic ARN to which EndpointCreated event
49
56
  # notifications should be sent.
50
57
  #
@@ -76,7 +83,7 @@ module Aws::SNS
76
83
  #
77
84
  # @return [self]
78
85
  def load
79
- resp = Aws::Plugins::UserAgent.feature('resource') do
86
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
80
87
  @client.get_platform_application_attributes(platform_application_arn: @arn)
81
88
  end
82
89
  @data = resp.data
@@ -122,7 +129,7 @@ module Aws::SNS
122
129
  # Arbitrary user data to associate with the endpoint. Amazon SNS does
123
130
  # not use this data. The data must be in UTF-8 format and less than 2KB.
124
131
  # @option options [Hash<String,String>] :attributes
125
- # For a list of attributes, see [SetEndpointAttributes][1].
132
+ # For a list of attributes, see [ `SetEndpointAttributes` ][1].
126
133
  #
127
134
  #
128
135
  #
@@ -130,7 +137,7 @@ module Aws::SNS
130
137
  # @return [PlatformEndpoint]
131
138
  def create_platform_endpoint(options = {})
132
139
  options = options.merge(platform_application_arn: @arn)
133
- resp = Aws::Plugins::UserAgent.feature('resource') do
140
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
134
141
  @client.create_platform_endpoint(options)
135
142
  end
136
143
  PlatformEndpoint.new(
@@ -146,7 +153,7 @@ module Aws::SNS
146
153
  # @return [EmptyStructure]
147
154
  def delete(options = {})
148
155
  options = options.merge(platform_application_arn: @arn)
149
- resp = Aws::Plugins::UserAgent.feature('resource') do
156
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
150
157
  @client.delete_platform_application(options)
151
158
  end
152
159
  resp.data
@@ -175,8 +182,16 @@ module Aws::SNS
175
182
  # * For Apple Services using token credentials, `PlatformCredential`
176
183
  # is signing key.
177
184
  #
178
- # * For GCM (Firebase Cloud Messaging), `PlatformCredential` is API
179
- # key.
185
+ # * For GCM (Firebase Cloud Messaging) using key credentials, there is
186
+ # no `PlatformPrincipal`. The `PlatformCredential` is `API key`.
187
+ #
188
+ # * For GCM (Firebase Cloud Messaging) using token credentials, there
189
+ # is no `PlatformPrincipal`. The `PlatformCredential` is a JSON
190
+ # formatted private key file. When using the Amazon Web Services
191
+ # CLI, the file must be in string format and special characters must
192
+ # be ignored. To format the file correctly, Amazon SNS recommends
193
+ # using the following command: `` SERVICE_JSON=`jq @json <<< cat
194
+ # service.json` ``.
180
195
  # ^
181
196
  #
182
197
  # * `PlatformPrincipal` – The principal received from the notification
@@ -227,7 +242,7 @@ module Aws::SNS
227
242
  # @return [EmptyStructure]
228
243
  def set_attributes(options = {})
229
244
  options = options.merge(platform_application_arn: @arn)
230
- resp = Aws::Plugins::UserAgent.feature('resource') do
245
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
231
246
  @client.set_platform_application_attributes(options)
232
247
  end
233
248
  resp.data
@@ -243,7 +258,7 @@ module Aws::SNS
243
258
  def endpoints(options = {})
244
259
  batches = Enumerator.new do |y|
245
260
  options = options.merge(platform_application_arn: @arn)
246
- resp = Aws::Plugins::UserAgent.feature('resource') do
261
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
247
262
  @client.list_endpoints_by_platform_application(options)
248
263
  end
249
264
  resp.each_page do |page|
@@ -72,7 +72,7 @@ module Aws::SNS
72
72
  #
73
73
  # @return [self]
74
74
  def load
75
- resp = Aws::Plugins::UserAgent.feature('resource') do
75
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
76
76
  @client.get_endpoint_attributes(endpoint_arn: @arn)
77
77
  end
78
78
  @data = resp.data
@@ -104,7 +104,7 @@ module Aws::SNS
104
104
  # @return [EmptyStructure]
105
105
  def delete(options = {})
106
106
  options = options.merge(endpoint_arn: @arn)
107
- resp = Aws::Plugins::UserAgent.feature('resource') do
107
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
108
108
  @client.delete_endpoint(options)
109
109
  end
110
110
  resp.data
@@ -114,7 +114,7 @@ module Aws::SNS
114
114
  #
115
115
  # platform_endpoint.publish({
116
116
  # topic_arn: "topicARN",
117
- # phone_number: "String",
117
+ # phone_number: "PhoneNumber",
118
118
  # message: "message", # required
119
119
  # subject: "subject",
120
120
  # message_structure: "messageStructure",
@@ -200,9 +200,8 @@ module Aws::SNS
200
200
  # is delivered to email endpoints. This field will also be included, if
201
201
  # present, in the standard JSON messages delivered to other endpoints.
202
202
  #
203
- # Constraints: Subjects must be ASCII text that begins with a letter,
204
- # number, or punctuation mark; must not include line breaks or control
205
- # characters; and must be less than 100 characters long.
203
+ # Constraints: Subjects must be UTF-8 text with no line breaks or
204
+ # control characters, and less than 100 characters long.
206
205
  # @option options [String] :message_structure
207
206
  # Set `MessageStructure` to `json` if you want to send a different
208
207
  # message for each protocol. For example, using one publish action, you
@@ -225,7 +224,7 @@ module Aws::SNS
225
224
  # This parameter applies only to FIFO (first-in-first-out) topics. The
226
225
  # `MessageDeduplicationId` can contain up to 128 alphanumeric characters
227
226
  # `(a-z, A-Z, 0-9)` and punctuation ``
228
- # (!"#$%&'()*+,-./:;<=>?@[\]^_`\{|\}~) ``.
227
+ # (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~) ``.
229
228
  #
230
229
  # Every message must have a unique `MessageDeduplicationId`, which is a
231
230
  # token used for deduplication of sent messages. If a message with a
@@ -239,7 +238,7 @@ module Aws::SNS
239
238
  # @option options [String] :message_group_id
240
239
  # This parameter applies only to FIFO (first-in-first-out) topics. The
241
240
  # `MessageGroupId` can contain up to 128 alphanumeric characters `(a-z,
242
- # A-Z, 0-9)` and punctuation `` (!"#$%&'()*+,-./:;<=>?@[\]^_`\{|\}~) ``.
241
+ # A-Z, 0-9)` and punctuation `` (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~) ``.
243
242
  #
244
243
  # The `MessageGroupId` is a tag that specifies that a message belongs to
245
244
  # a specific message group. Messages that belong to the same message
@@ -249,7 +248,7 @@ module Aws::SNS
249
248
  # @return [Types::PublishResponse]
250
249
  def publish(options = {})
251
250
  options = options.merge(target_arn: @arn)
252
- resp = Aws::Plugins::UserAgent.feature('resource') do
251
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
253
252
  @client.publish(options)
254
253
  end
255
254
  resp.data
@@ -283,7 +282,7 @@ module Aws::SNS
283
282
  # @return [EmptyStructure]
284
283
  def set_attributes(options = {})
285
284
  options = options.merge(endpoint_arn: @arn)
286
- resp = Aws::Plugins::UserAgent.feature('resource') do
285
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
287
286
  @client.set_endpoint_attributes(options)
288
287
  end
289
288
  resp.data
@@ -14,35 +14,49 @@ module Aws::SNS
14
14
  option(
15
15
  :endpoint_provider,
16
16
  doc_type: 'Aws::SNS::EndpointProvider',
17
- docstring: 'The endpoint provider used to resolve endpoints. Any '\
18
- 'object that responds to `#resolve_endpoint(parameters)` '\
19
- 'where `parameters` is a Struct similar to '\
20
- '`Aws::SNS::EndpointParameters`'
21
- ) do |cfg|
17
+ rbs_type: 'untyped',
18
+ docstring: <<~DOCS) do |_cfg|
19
+ The endpoint provider used to resolve endpoints. Any object that responds to
20
+ `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
21
+ `Aws::SNS::EndpointParameters`.
22
+ DOCS
22
23
  Aws::SNS::EndpointProvider.new
23
24
  end
24
25
 
25
26
  # @api private
26
27
  class Handler < Seahorse::Client::Handler
27
28
  def call(context)
28
- # If endpoint was discovered, do not resolve or apply the endpoint.
29
29
  unless context[:discovered_endpoint]
30
- params = parameters_for_operation(context)
30
+ params = Aws::SNS::Endpoints.parameters_for_operation(context)
31
31
  endpoint = context.config.endpoint_provider.resolve_endpoint(params)
32
32
 
33
33
  context.http_request.endpoint = endpoint.url
34
34
  apply_endpoint_headers(context, endpoint.headers)
35
+
36
+ context[:endpoint_params] = params
37
+ context[:endpoint_properties] = endpoint.properties
35
38
  end
36
39
 
37
- context[:endpoint_params] = params
38
40
  context[:auth_scheme] =
39
41
  Aws::Endpoints.resolve_auth_scheme(context, endpoint)
40
42
 
41
- @handler.call(context)
43
+ with_metrics(context) { @handler.call(context) }
42
44
  end
43
45
 
44
46
  private
45
47
 
48
+ def with_metrics(context, &block)
49
+ metrics = []
50
+ metrics << 'ENDPOINT_OVERRIDE' unless context.config.regional_endpoint
51
+ if context[:auth_scheme] && context[:auth_scheme]['name'] == 'sigv4a'
52
+ metrics << 'SIGV4A_SIGNING'
53
+ end
54
+ if context.config.credentials&.credentials&.account_id
55
+ metrics << 'RESOLVED_ACCOUNT_ID'
56
+ end
57
+ Aws::Plugins::UserAgent.metric(*metrics, &block)
58
+ end
59
+
46
60
  def apply_endpoint_headers(context, headers)
47
61
  headers.each do |key, values|
48
62
  value = values
@@ -53,95 +67,6 @@ module Aws::SNS
53
67
  context.http_request.headers[key] = value
54
68
  end
55
69
  end
56
-
57
- def parameters_for_operation(context)
58
- case context.operation_name
59
- when :add_permission
60
- Aws::SNS::Endpoints::AddPermission.build(context)
61
- when :check_if_phone_number_is_opted_out
62
- Aws::SNS::Endpoints::CheckIfPhoneNumberIsOptedOut.build(context)
63
- when :confirm_subscription
64
- Aws::SNS::Endpoints::ConfirmSubscription.build(context)
65
- when :create_platform_application
66
- Aws::SNS::Endpoints::CreatePlatformApplication.build(context)
67
- when :create_platform_endpoint
68
- Aws::SNS::Endpoints::CreatePlatformEndpoint.build(context)
69
- when :create_sms_sandbox_phone_number
70
- Aws::SNS::Endpoints::CreateSMSSandboxPhoneNumber.build(context)
71
- when :create_topic
72
- Aws::SNS::Endpoints::CreateTopic.build(context)
73
- when :delete_endpoint
74
- Aws::SNS::Endpoints::DeleteEndpoint.build(context)
75
- when :delete_platform_application
76
- Aws::SNS::Endpoints::DeletePlatformApplication.build(context)
77
- when :delete_sms_sandbox_phone_number
78
- Aws::SNS::Endpoints::DeleteSMSSandboxPhoneNumber.build(context)
79
- when :delete_topic
80
- Aws::SNS::Endpoints::DeleteTopic.build(context)
81
- when :get_data_protection_policy
82
- Aws::SNS::Endpoints::GetDataProtectionPolicy.build(context)
83
- when :get_endpoint_attributes
84
- Aws::SNS::Endpoints::GetEndpointAttributes.build(context)
85
- when :get_platform_application_attributes
86
- Aws::SNS::Endpoints::GetPlatformApplicationAttributes.build(context)
87
- when :get_sms_attributes
88
- Aws::SNS::Endpoints::GetSMSAttributes.build(context)
89
- when :get_sms_sandbox_account_status
90
- Aws::SNS::Endpoints::GetSMSSandboxAccountStatus.build(context)
91
- when :get_subscription_attributes
92
- Aws::SNS::Endpoints::GetSubscriptionAttributes.build(context)
93
- when :get_topic_attributes
94
- Aws::SNS::Endpoints::GetTopicAttributes.build(context)
95
- when :list_endpoints_by_platform_application
96
- Aws::SNS::Endpoints::ListEndpointsByPlatformApplication.build(context)
97
- when :list_origination_numbers
98
- Aws::SNS::Endpoints::ListOriginationNumbers.build(context)
99
- when :list_phone_numbers_opted_out
100
- Aws::SNS::Endpoints::ListPhoneNumbersOptedOut.build(context)
101
- when :list_platform_applications
102
- Aws::SNS::Endpoints::ListPlatformApplications.build(context)
103
- when :list_sms_sandbox_phone_numbers
104
- Aws::SNS::Endpoints::ListSMSSandboxPhoneNumbers.build(context)
105
- when :list_subscriptions
106
- Aws::SNS::Endpoints::ListSubscriptions.build(context)
107
- when :list_subscriptions_by_topic
108
- Aws::SNS::Endpoints::ListSubscriptionsByTopic.build(context)
109
- when :list_tags_for_resource
110
- Aws::SNS::Endpoints::ListTagsForResource.build(context)
111
- when :list_topics
112
- Aws::SNS::Endpoints::ListTopics.build(context)
113
- when :opt_in_phone_number
114
- Aws::SNS::Endpoints::OptInPhoneNumber.build(context)
115
- when :publish
116
- Aws::SNS::Endpoints::Publish.build(context)
117
- when :publish_batch
118
- Aws::SNS::Endpoints::PublishBatch.build(context)
119
- when :put_data_protection_policy
120
- Aws::SNS::Endpoints::PutDataProtectionPolicy.build(context)
121
- when :remove_permission
122
- Aws::SNS::Endpoints::RemovePermission.build(context)
123
- when :set_endpoint_attributes
124
- Aws::SNS::Endpoints::SetEndpointAttributes.build(context)
125
- when :set_platform_application_attributes
126
- Aws::SNS::Endpoints::SetPlatformApplicationAttributes.build(context)
127
- when :set_sms_attributes
128
- Aws::SNS::Endpoints::SetSMSAttributes.build(context)
129
- when :set_subscription_attributes
130
- Aws::SNS::Endpoints::SetSubscriptionAttributes.build(context)
131
- when :set_topic_attributes
132
- Aws::SNS::Endpoints::SetTopicAttributes.build(context)
133
- when :subscribe
134
- Aws::SNS::Endpoints::Subscribe.build(context)
135
- when :tag_resource
136
- Aws::SNS::Endpoints::TagResource.build(context)
137
- when :unsubscribe
138
- Aws::SNS::Endpoints::Unsubscribe.build(context)
139
- when :untag_resource
140
- Aws::SNS::Endpoints::UntagResource.build(context)
141
- when :verify_sms_sandbox_phone_number
142
- Aws::SNS::Endpoints::VerifySMSSandboxPhoneNumber.build(context)
143
- end
144
- end
145
70
  end
146
71
 
147
72
  def add_handlers(handlers, _config)
@@ -54,14 +54,15 @@ module Aws::SNS
54
54
  # APNS (Apple Push Notification Service), APNS\_SANDBOX, and GCM
55
55
  # (Firebase Cloud Messaging).
56
56
  # @option options [required, Hash<String,String>] :attributes
57
- # For a list of attributes, see [SetPlatformApplicationAttributes][1].
57
+ # For a list of attributes, see [ `SetPlatformApplicationAttributes`
58
+ # ][1].
58
59
  #
59
60
  #
60
61
  #
61
62
  # [1]: https://docs.aws.amazon.com/sns/latest/api/API_SetPlatformApplicationAttributes.html
62
63
  # @return [PlatformApplication]
63
64
  def create_platform_application(options = {})
64
- resp = Aws::Plugins::UserAgent.feature('resource') do
65
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
65
66
  @client.create_platform_application(options)
66
67
  end
67
68
  PlatformApplication.new(
@@ -98,7 +99,7 @@ module Aws::SNS
98
99
  # @option options [Hash<String,String>] :attributes
99
100
  # A map of attributes with their corresponding values.
100
101
  #
101
- # The following lists the names, descriptions, and values of the special
102
+ # The following lists names, descriptions, and values of the special
102
103
  # request parameters that the `CreateTopic` action uses:
103
104
  #
104
105
  # * `DeliveryPolicy` – The policy that defines how Amazon SNS retries
@@ -136,7 +137,8 @@ module Aws::SNS
136
137
  #
137
138
  # The following attributes apply only to [FIFO topics][4]:
138
139
  #
139
- # * `FifoTopic` – When this is set to `true`, a FIFO topic is created.
140
+ # * `ArchivePolicy` – The policy that sets the retention period for
141
+ # messages stored in the message archive of an Amazon SNS FIFO topic.
140
142
  #
141
143
  # * `ContentBasedDeduplication` – Enables content-based deduplication
142
144
  # for FIFO topics.
@@ -178,7 +180,7 @@ module Aws::SNS
178
180
  # Length Constraints: Maximum length of 30,720.
179
181
  # @return [Topic]
180
182
  def create_topic(options = {})
181
- resp = Aws::Plugins::UserAgent.feature('resource') do
183
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
182
184
  @client.create_topic(options)
183
185
  end
184
186
  Topic.new(
@@ -205,7 +207,7 @@ module Aws::SNS
205
207
  # @return [PlatformApplication::Collection]
206
208
  def platform_applications(options = {})
207
209
  batches = Enumerator.new do |y|
208
- resp = Aws::Plugins::UserAgent.feature('resource') do
210
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
209
211
  @client.list_platform_applications(options)
210
212
  end
211
213
  resp.each_page do |page|
@@ -247,7 +249,7 @@ module Aws::SNS
247
249
  # @return [Subscription::Collection]
248
250
  def subscriptions(options = {})
249
251
  batches = Enumerator.new do |y|
250
- resp = Aws::Plugins::UserAgent.feature('resource') do
252
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
251
253
  @client.list_subscriptions(options)
252
254
  end
253
255
  resp.each_page do |page|
@@ -280,7 +282,7 @@ module Aws::SNS
280
282
  # @return [Topic::Collection]
281
283
  def topics(options = {})
282
284
  batches = Enumerator.new do |y|
283
- resp = Aws::Plugins::UserAgent.feature('resource') do
285
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
284
286
  @client.list_topics(options)
285
287
  end
286
288
  resp.each_page do |page|
@@ -58,7 +58,6 @@ module Aws::SNS
58
58
  # message attributes.
59
59
  #
60
60
  # * `MessageBody` – The filter is applied on the message body.
61
- #
62
61
  # * `Owner` – The Amazon Web Services account ID of the subscription's
63
62
  # owner.
64
63
  #
@@ -81,20 +80,18 @@ module Aws::SNS
81
80
  #
82
81
  # * `TopicArn` – The topic ARN that the subscription is associated with.
83
82
  #
84
- # The following attribute applies only to Amazon Kinesis Data Firehose
85
- # delivery stream subscriptions:
83
+ # The following attribute applies only to Amazon Data Firehose delivery
84
+ # stream subscriptions:
86
85
  #
87
86
  # * `SubscriptionRoleArn` – The ARN of the IAM role that has the
88
87
  # following:
89
88
  #
90
- # * Permission to write to the Kinesis Data Firehose delivery stream
89
+ # * Permission to write to the Firehose delivery stream
91
90
  #
92
91
  # * Amazon SNS listed as a trusted entity
93
- #
94
- # Specifying a valid ARN for this attribute is required for Kinesis
95
- # Data Firehose delivery stream subscriptions. For more information,
96
- # see [Fanout to Kinesis Data Firehose delivery streams][2] in the
97
- # *Amazon SNS Developer Guide*.
92
+ # Specifying a valid ARN for this attribute is required for Firehose
93
+ # delivery stream subscriptions. For more information, see [Fanout to
94
+ # Firehose delivery streams][2] in the *Amazon SNS Developer Guide*.
98
95
  #
99
96
  #
100
97
  #
@@ -119,7 +116,7 @@ module Aws::SNS
119
116
  #
120
117
  # @return [self]
121
118
  def load
122
- resp = Aws::Plugins::UserAgent.feature('resource') do
119
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
123
120
  @client.get_subscription_attributes(subscription_arn: @arn)
124
121
  end
125
122
  @data = resp.data
@@ -151,7 +148,7 @@ module Aws::SNS
151
148
  # @return [EmptyStructure]
152
149
  def delete(options = {})
153
150
  options = options.merge(subscription_arn: @arn)
154
- resp = Aws::Plugins::UserAgent.feature('resource') do
151
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
155
152
  @client.unsubscribe(options)
156
153
  end
157
154
  resp.data
@@ -184,7 +181,6 @@ module Aws::SNS
184
181
  # message attributes.
185
182
  #
186
183
  # * `MessageBody` – The filter is applied on the message body.
187
- #
188
184
  # * `RawMessageDelivery` – When set to `true`, enables raw message
189
185
  # delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need
190
186
  # for the endpoints to process JSON formatting, which is otherwise
@@ -197,20 +193,18 @@ module Aws::SNS
197
193
  # service that powers the subscribed endpoint becomes unavailable) are
198
194
  # held in the dead-letter queue for further analysis or reprocessing.
199
195
  #
200
- # The following attribute applies only to Amazon Kinesis Data Firehose
201
- # delivery stream subscriptions:
196
+ # The following attribute applies only to Amazon Data Firehose delivery
197
+ # stream subscriptions:
202
198
  #
203
199
  # * `SubscriptionRoleArn` – The ARN of the IAM role that has the
204
200
  # following:
205
201
  #
206
- # * Permission to write to the Kinesis Data Firehose delivery stream
202
+ # * Permission to write to the Firehose delivery stream
207
203
  #
208
204
  # * Amazon SNS listed as a trusted entity
209
- #
210
- # Specifying a valid ARN for this attribute is required for Kinesis
211
- # Data Firehose delivery stream subscriptions. For more information,
212
- # see [Fanout to Kinesis Data Firehose delivery streams][1] in the
213
- # *Amazon SNS Developer Guide*.
205
+ # Specifying a valid ARN for this attribute is required for Firehose
206
+ # delivery stream subscriptions. For more information, see [Fanout to
207
+ # Firehose delivery streams][1] in the *Amazon SNS Developer Guide*.
214
208
  #
215
209
  #
216
210
  #
@@ -220,7 +214,7 @@ module Aws::SNS
220
214
  # @return [EmptyStructure]
221
215
  def set_attributes(options = {})
222
216
  options = options.merge(subscription_arn: @arn)
223
- resp = Aws::Plugins::UserAgent.feature('resource') do
217
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
224
218
  @client.set_subscription_attributes(options)
225
219
  end
226
220
  resp.data