aws-sdk-sns 1.55.0 → 1.60.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.
@@ -0,0 +1,152 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+
11
+ module Aws::SNS
12
+ module Plugins
13
+ class Endpoints < Seahorse::Client::Plugin
14
+ option(
15
+ :endpoint_provider,
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|
22
+ Aws::SNS::EndpointProvider.new
23
+ end
24
+
25
+ # @api private
26
+ class Handler < Seahorse::Client::Handler
27
+ def call(context)
28
+ # If endpoint was discovered, do not resolve or apply the endpoint.
29
+ unless context[:discovered_endpoint]
30
+ params = parameters_for_operation(context)
31
+ endpoint = context.config.endpoint_provider.resolve_endpoint(params)
32
+
33
+ context.http_request.endpoint = endpoint.url
34
+ apply_endpoint_headers(context, endpoint.headers)
35
+ end
36
+
37
+ context[:endpoint_params] = params
38
+ context[:auth_scheme] =
39
+ Aws::Endpoints.resolve_auth_scheme(context, endpoint)
40
+
41
+ @handler.call(context)
42
+ end
43
+
44
+ private
45
+
46
+ def apply_endpoint_headers(context, headers)
47
+ headers.each do |key, values|
48
+ value = values
49
+ .compact
50
+ .map { |s| Seahorse::Util.escape_header_list_string(s.to_s) }
51
+ .join(',')
52
+
53
+ context.http_request.headers[key] = value
54
+ end
55
+ 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
+ end
146
+
147
+ def add_handlers(handlers, _config)
148
+ handlers.add(Handler, step: :build, priority: 75)
149
+ end
150
+ end
151
+ end
152
+ end
@@ -110,6 +110,19 @@ module Aws::SNS
110
110
  # * `Policy` – The policy that defines who can access your topic. By
111
111
  # default, only the topic owner can publish or subscribe to the topic.
112
112
  #
113
+ # * `SignatureVersion` – The signature version corresponds to the
114
+ # hashing algorithm used while creating the signature of the
115
+ # notifications, subscription confirmations, or unsubscribe
116
+ # confirmation messages sent by Amazon SNS. By default,
117
+ # `SignatureVersion` is set to `1`.
118
+ #
119
+ # * `TracingConfig` – Tracing mode of an Amazon SNS topic. By default
120
+ # `TracingConfig` is set to `PassThrough`, and the topic passes
121
+ # through the tracing header it receives from an Amazon SNS publisher
122
+ # to its subscriptions. If set to `Active`, Amazon SNS will vend X-Ray
123
+ # segment data to topic owner account if the sampled flag in the
124
+ # tracing header is true. This is only supported on standard topics.
125
+ #
113
126
  # The following attribute applies only to [server-side encryption][1]\:
114
127
  #
115
128
  # * `KmsMasterKeyId` – The ID of an Amazon Web Services managed customer
@@ -51,6 +51,14 @@ module Aws::SNS
51
51
  # subscription. For more information, see [Amazon SNS Message
52
52
  # Filtering][1] in the *Amazon SNS Developer Guide*.
53
53
  #
54
+ # * `FilterPolicyScope` – This attribute lets you choose the filtering
55
+ # scope by using one of the following string value types:
56
+ #
57
+ # * `MessageAttributes` (default) – The filter is applied on the
58
+ # message attributes.
59
+ #
60
+ # * `MessageBody` – The filter is applied on the message body.
61
+ #
54
62
  # * `Owner` – The Amazon Web Services account ID of the subscription's
55
63
  # owner.
56
64
  #
@@ -165,6 +173,14 @@ module Aws::SNS
165
173
  # receive only a subset of messages, rather than receiving every
166
174
  # message published to the topic.
167
175
  #
176
+ # * `FilterPolicyScope` – This attribute lets you choose the filtering
177
+ # scope by using one of the following string value types:
178
+ #
179
+ # * `MessageAttributes` (default) – The filter is applied on the
180
+ # message attributes.
181
+ #
182
+ # * `MessageBody` – The filter is applied on the message body.
183
+ #
168
184
  # * `RawMessageDelivery` – When set to `true`, enables raw message
169
185
  # delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need
170
186
  # for the endpoints to process JSON formatting, which is otherwise
@@ -43,11 +43,31 @@ module Aws::SNS
43
43
  # * `DisplayName` – The human-readable name used in the `From` field for
44
44
  # notifications to `email` and `email-json` endpoints.
45
45
  #
46
+ # * `EffectiveDeliveryPolicy` – The JSON serialization of the effective
47
+ # delivery policy, taking system defaults into account.
48
+ #
46
49
  # * `Owner` – The Amazon Web Services account ID of the topic's owner.
47
50
  #
48
51
  # * `Policy` – The JSON serialization of the topic's access control
49
52
  # policy.
50
53
  #
54
+ # * `SignatureVersion` – The signature version corresponds to the
55
+ # hashing algorithm used while creating the signature of the
56
+ # notifications, subscription confirmations, or unsubscribe
57
+ # confirmation messages sent by Amazon SNS.
58
+ #
59
+ # * By default, `SignatureVersion` is set to **1**. The signature is a
60
+ # Base64-encoded **SHA1withRSA** signature.
61
+ #
62
+ # * When you set `SignatureVersion` to **2**. Amazon SNS uses a
63
+ # Base64-encoded **SHA256withRSA** signature.
64
+ #
65
+ # <note markdown="1"> If the API response does not include the `SignatureVersion`
66
+ # attribute, it means that the `SignatureVersion` for the topic has
67
+ # value **1**.
68
+ #
69
+ # </note>
70
+ #
51
71
  # * `SubscriptionsConfirmed` – The number of confirmed subscriptions for
52
72
  # the topic.
53
73
  #
@@ -59,8 +79,12 @@ module Aws::SNS
59
79
  #
60
80
  # * `TopicArn` – The topic's ARN.
61
81
  #
62
- # * `EffectiveDeliveryPolicy` – The JSON serialization of the effective
63
- # delivery policy, taking system defaults into account.
82
+ # * `TracingConfig` – Tracing mode of an Amazon SNS topic. By default
83
+ # `TracingConfig` is set to `PassThrough`, and the topic passes
84
+ # through the tracing header it receives from an Amazon SNS publisher
85
+ # to its subscriptions. If set to `Active`, Amazon SNS will vend X-Ray
86
+ # segment data to topic owner account if the sampled flag in the
87
+ # tracing header is true. This is only supported on standard topics.
64
88
  #
65
89
  # The following attribute applies only to [server-side-encryption][1]\:
66
90
  #
@@ -371,6 +395,10 @@ module Aws::SNS
371
395
  # The following lists the names, descriptions, and values of the special
372
396
  # request parameters that the `SetTopicAttributes` action uses:
373
397
  #
398
+ # * `ApplicationSuccessFeedbackRoleArn` – Indicates failed message
399
+ # delivery status for an Amazon SNS topic that is subscribed to a
400
+ # platform application endpoint.
401
+ #
374
402
  # * `DeliveryPolicy` – The policy that defines how Amazon SNS retries
375
403
  # failed deliveries to HTTP/S endpoints.
376
404
  #
@@ -380,16 +408,119 @@ module Aws::SNS
380
408
  # * `Policy` – The policy that defines who can access your topic. By
381
409
  # default, only the topic owner can publish or subscribe to the topic.
382
410
  #
383
- # The following attribute applies only to [server-side-encryption][1]\:
411
+ # * `TracingConfig` Tracing mode of an Amazon SNS topic. By default
412
+ # `TracingConfig` is set to `PassThrough`, and the topic passes
413
+ # through the tracing header it receives from an Amazon SNS publisher
414
+ # to its subscriptions. If set to `Active`, Amazon SNS will vend X-Ray
415
+ # segment data to topic owner account if the sampled flag in the
416
+ # tracing header is true. This is only supported on standard topics.
417
+ #
418
+ # * HTTP
419
+ #
420
+ # * `HTTPSuccessFeedbackRoleArn` – Indicates successful message
421
+ # delivery status for an Amazon SNS topic that is subscribed to an
422
+ # HTTP endpoint.
423
+ #
424
+ # * `HTTPSuccessFeedbackSampleRate` – Indicates percentage of
425
+ # successful messages to sample for an Amazon SNS topic that is
426
+ # subscribed to an HTTP endpoint.
427
+ #
428
+ # * `HTTPFailureFeedbackRoleArn` – Indicates failed message delivery
429
+ # status for an Amazon SNS topic that is subscribed to an HTTP
430
+ # endpoint.
431
+ #
432
+ # * Amazon Kinesis Data Firehose
433
+ #
434
+ # * `FirehoseSuccessFeedbackRoleArn` – Indicates successful message
435
+ # delivery status for an Amazon SNS topic that is subscribed to an
436
+ # Amazon Kinesis Data Firehose endpoint.
437
+ #
438
+ # * `FirehoseSuccessFeedbackSampleRate` – Indicates percentage of
439
+ # successful messages to sample for an Amazon SNS topic that is
440
+ # subscribed to an Amazon Kinesis Data Firehose endpoint.
441
+ #
442
+ # * `FirehoseFailureFeedbackRoleArn` – Indicates failed message
443
+ # delivery status for an Amazon SNS topic that is subscribed to an
444
+ # Amazon Kinesis Data Firehose endpoint.
445
+ #
446
+ # * Lambda
447
+ #
448
+ # * `LambdaSuccessFeedbackRoleArn` – Indicates successful message
449
+ # delivery status for an Amazon SNS topic that is subscribed to an
450
+ # Lambda endpoint.
451
+ #
452
+ # * `LambdaSuccessFeedbackSampleRate` – Indicates percentage of
453
+ # successful messages to sample for an Amazon SNS topic that is
454
+ # subscribed to an Lambda endpoint.
455
+ #
456
+ # * `LambdaFailureFeedbackRoleArn` – Indicates failed message delivery
457
+ # status for an Amazon SNS topic that is subscribed to an Lambda
458
+ # endpoint.
459
+ #
460
+ # * Platform application endpoint
461
+ #
462
+ # * `ApplicationSuccessFeedbackRoleArn` – Indicates successful message
463
+ # delivery status for an Amazon SNS topic that is subscribed to an
464
+ # Amazon Web Services application endpoint.
465
+ #
466
+ # * `ApplicationSuccessFeedbackSampleRate` – Indicates percentage of
467
+ # successful messages to sample for an Amazon SNS topic that is
468
+ # subscribed to an Amazon Web Services application endpoint.
469
+ #
470
+ # * `ApplicationFailureFeedbackRoleArn` – Indicates failed message
471
+ # delivery status for an Amazon SNS topic that is subscribed to an
472
+ # Amazon Web Services application endpoint.
473
+ #
474
+ # <note markdown="1"> In addition to being able to configure topic attributes for message
475
+ # delivery status of notification messages sent to Amazon SNS
476
+ # application endpoints, you can also configure application attributes
477
+ # for the delivery status of push notification messages sent to push
478
+ # notification services.
479
+ #
480
+ # For example, For more information, see [Using Amazon SNS Application
481
+ # Attributes for Message Delivery Status][1].
482
+ #
483
+ # </note>
484
+ #
485
+ # * Amazon SQS
486
+ #
487
+ # * `SQSSuccessFeedbackRoleArn` – Indicates successful message
488
+ # delivery status for an Amazon SNS topic that is subscribed to an
489
+ # Amazon SQS endpoint.
490
+ #
491
+ # * `SQSSuccessFeedbackSampleRate` – Indicates percentage of
492
+ # successful messages to sample for an Amazon SNS topic that is
493
+ # subscribed to an Amazon SQS endpoint.
494
+ #
495
+ # * `SQSFailureFeedbackRoleArn` – Indicates failed message delivery
496
+ # status for an Amazon SNS topic that is subscribed to an Amazon SQS
497
+ # endpoint.
498
+ #
499
+ # <note markdown="1"> The &lt;ENDPOINT&gt;SuccessFeedbackRoleArn and
500
+ # &lt;ENDPOINT&gt;FailureFeedbackRoleArn attributes are used to give
501
+ # Amazon SNS write access to use CloudWatch Logs on your behalf. The
502
+ # &lt;ENDPOINT&gt;SuccessFeedbackSampleRate attribute is for specifying
503
+ # the sample rate percentage (0-100) of successfully delivered messages.
504
+ # After you configure the &lt;ENDPOINT&gt;FailureFeedbackRoleArn
505
+ # attribute, then all failed message deliveries generate CloudWatch
506
+ # Logs.
507
+ #
508
+ # </note>
509
+ #
510
+ # The following attribute applies only to [server-side-encryption][2]\:
384
511
  #
385
512
  # * `KmsMasterKeyId` – The ID of an Amazon Web Services managed customer
386
513
  # master key (CMK) for Amazon SNS or a custom CMK. For more
387
- # information, see [Key Terms][2]. For more examples, see [KeyId][3]
514
+ # information, see [Key Terms][3]. For more examples, see [KeyId][4]
388
515
  # in the *Key Management Service API Reference*.
389
516
  #
390
- # ^
517
+ # * `SignatureVersion` – The signature version corresponds to the
518
+ # hashing algorithm used while creating the signature of the
519
+ # notifications, subscription confirmations, or unsubscribe
520
+ # confirmation messages sent by Amazon SNS. By default,
521
+ # `SignatureVersion` is set to `1`.
391
522
  #
392
- # The following attribute applies only to [FIFO topics][4]\:
523
+ # The following attribute applies only to [FIFO topics][5]\:
393
524
  #
394
525
  # * `ContentBasedDeduplication` – Enables content-based deduplication
395
526
  # for FIFO topics.
@@ -397,7 +528,7 @@ module Aws::SNS
397
528
  # * By default, `ContentBasedDeduplication` is set to `false`. If you
398
529
  # create a FIFO topic and this attribute is `false`, you must
399
530
  # specify a value for the `MessageDeduplicationId` parameter for the
400
- # [Publish][5] action.
531
+ # [Publish][6] action.
401
532
  #
402
533
  # * When you set `ContentBasedDeduplication` to `true`, Amazon SNS
403
534
  # uses a SHA-256 hash to generate the `MessageDeduplicationId` using
@@ -409,11 +540,12 @@ module Aws::SNS
409
540
  #
410
541
  #
411
542
  #
412
- # [1]: https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html
413
- # [2]: https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms
414
- # [3]: https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters
415
- # [4]: https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html
416
- # [5]: https://docs.aws.amazon.com/sns/latest/api/API_Publish.html
543
+ # [1]: https://docs.aws.amazon.com/sns/latest/dg/sns-msg-status.html
544
+ # [2]: https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html
545
+ # [3]: https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms
546
+ # [4]: https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters
547
+ # [5]: https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html
548
+ # [6]: https://docs.aws.amazon.com/sns/latest/api/API_Publish.html
417
549
  # @option options [String] :attribute_value
418
550
  # The new value for the attribute.
419
551
  # @return [EmptyStructure]
@@ -497,6 +629,14 @@ module Aws::SNS
497
629
  # receive only a subset of messages, rather than receiving every
498
630
  # message published to the topic.
499
631
  #
632
+ # * `FilterPolicyScope` – This attribute lets you choose the filtering
633
+ # scope by using one of the following string value types:
634
+ #
635
+ # * `MessageAttributes` (default) – The filter is applied on the
636
+ # message attributes.
637
+ #
638
+ # * `MessageBody` – The filter is applied on the message body.
639
+ #
500
640
  # * `RawMessageDelivery` – When set to `true`, enables raw message
501
641
  # delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need
502
642
  # for the endpoints to process JSON formatting, which is otherwise