aws-sdk-sns 1.55.0 → 1.60.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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