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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +27 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-sns/client.rb +191 -13
- data/lib/aws-sdk-sns/endpoint_parameters.rb +66 -0
- data/lib/aws-sdk-sns/endpoint_provider.rb +60 -0
- data/lib/aws-sdk-sns/endpoints.rb +603 -0
- data/lib/aws-sdk-sns/plugins/endpoints.rb +152 -0
- data/lib/aws-sdk-sns/resource.rb +13 -0
- data/lib/aws-sdk-sns/subscription.rb +16 -0
- data/lib/aws-sdk-sns/topic.rb +152 -12
- data/lib/aws-sdk-sns/types.rb +184 -423
- data/lib/aws-sdk-sns.rb +5 -1
- metadata +8 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 34622e6ec3f2ddc83c0acd26af55107e8064fe244d5782c9ee3185d9beefd8da
|
4
|
+
data.tar.gz: d7079d68ac0a9af6505ec04e8d1a081ec58538236f9e08f5f734a26837db7c19
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0b14856b47ac52e3be0b9f0eac5e0e6fb7e0a9b41ea0c98ecc0db63607e55c8a85cb7d29636b0ca32bc30ae9379041a5554c3497cb6d0faae71e94fed9fbc0e
|
7
|
+
data.tar.gz: d07976b97868bef8bdce7d52b7b7bf10bc7200e2a9db8137beedb494345d6091c1d940ec85d93809ab57caea2ee3080f4a5b4e522515b3ce854373fb732d9f76
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,33 @@
|
|
1
1
|
Unreleased Changes
|
2
2
|
------------------
|
3
3
|
|
4
|
+
1.60.0 (2023-02-10)
|
5
|
+
------------------
|
6
|
+
|
7
|
+
* Feature - This release adds support for SNS X-Ray active tracing as well as other updates.
|
8
|
+
|
9
|
+
1.59.0 (2023-02-01)
|
10
|
+
------------------
|
11
|
+
|
12
|
+
* Feature - Additional attributes added for set-topic-attributes.
|
13
|
+
|
14
|
+
1.58.0 (2023-01-18)
|
15
|
+
------------------
|
16
|
+
|
17
|
+
* Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
|
18
|
+
|
19
|
+
* Issue - Replace runtime endpoint resolution approach with generated ruby code.
|
20
|
+
|
21
|
+
1.57.0 (2022-12-02)
|
22
|
+
------------------
|
23
|
+
|
24
|
+
* Feature - This release adds the message payload-filtering feature to the SNS Subscribe, SetSubscriptionAttributes, and GetSubscriptionAttributes API actions
|
25
|
+
|
26
|
+
1.56.0 (2022-10-25)
|
27
|
+
------------------
|
28
|
+
|
29
|
+
* Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
|
30
|
+
|
4
31
|
1.55.0 (2022-09-07)
|
5
32
|
------------------
|
6
33
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.60.0
|
data/lib/aws-sdk-sns/client.rb
CHANGED
@@ -30,7 +30,7 @@ require 'aws-sdk-core/plugins/http_checksum.rb'
|
|
30
30
|
require 'aws-sdk-core/plugins/checksum_algorithm.rb'
|
31
31
|
require 'aws-sdk-core/plugins/defaults_mode.rb'
|
32
32
|
require 'aws-sdk-core/plugins/recursion_detection.rb'
|
33
|
-
require 'aws-sdk-core/plugins/
|
33
|
+
require 'aws-sdk-core/plugins/sign.rb'
|
34
34
|
require 'aws-sdk-core/plugins/protocols/query.rb'
|
35
35
|
|
36
36
|
Aws::Plugins::GlobalConfiguration.add_identifier(:sns)
|
@@ -79,8 +79,9 @@ module Aws::SNS
|
|
79
79
|
add_plugin(Aws::Plugins::ChecksumAlgorithm)
|
80
80
|
add_plugin(Aws::Plugins::DefaultsMode)
|
81
81
|
add_plugin(Aws::Plugins::RecursionDetection)
|
82
|
-
add_plugin(Aws::Plugins::
|
82
|
+
add_plugin(Aws::Plugins::Sign)
|
83
83
|
add_plugin(Aws::Plugins::Protocols::Query)
|
84
|
+
add_plugin(Aws::SNS::Plugins::Endpoints)
|
84
85
|
|
85
86
|
# @overload initialize(options)
|
86
87
|
# @param [Hash] options
|
@@ -287,6 +288,19 @@ module Aws::SNS
|
|
287
288
|
# ** Please note ** When response stubbing is enabled, no HTTP
|
288
289
|
# requests are made, and retries are disabled.
|
289
290
|
#
|
291
|
+
# @option options [Aws::TokenProvider] :token_provider
|
292
|
+
# A Bearer Token Provider. This can be an instance of any one of the
|
293
|
+
# following classes:
|
294
|
+
#
|
295
|
+
# * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
|
296
|
+
# tokens.
|
297
|
+
#
|
298
|
+
# * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
|
299
|
+
# access token generated from `aws login`.
|
300
|
+
#
|
301
|
+
# When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
|
302
|
+
# will be used to search for tokens configured for your profile in shared configuration files.
|
303
|
+
#
|
290
304
|
# @option options [Boolean] :use_dualstack_endpoint
|
291
305
|
# When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
|
292
306
|
# will be used if available.
|
@@ -300,6 +314,9 @@ module Aws::SNS
|
|
300
314
|
# When `true`, request parameters are validated before
|
301
315
|
# sending the request.
|
302
316
|
#
|
317
|
+
# @option options [Aws::SNS::EndpointProvider] :endpoint_provider
|
318
|
+
# The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::SNS::EndpointParameters`
|
319
|
+
#
|
303
320
|
# @option options [URI::HTTP,String] :http_proxy A proxy to send
|
304
321
|
# requests through. Formatted like 'http://proxy.com:123'.
|
305
322
|
#
|
@@ -355,6 +372,12 @@ module Aws::SNS
|
|
355
372
|
# for the specified Amazon Web Services accounts to the specified
|
356
373
|
# actions.
|
357
374
|
#
|
375
|
+
# <note markdown="1"> To remove the ability to change topic permissions, you must deny
|
376
|
+
# permissions to the `AddPermission`, `RemovePermission`, and
|
377
|
+
# `SetTopicAttributes` actions in your IAM policy.
|
378
|
+
#
|
379
|
+
# </note>
|
380
|
+
#
|
358
381
|
# @option params [required, String] :topic_arn
|
359
382
|
# The ARN of the topic whose access control policy you wish to modify.
|
360
383
|
#
|
@@ -703,6 +726,19 @@ module Aws::SNS
|
|
703
726
|
# * `Policy` – The policy that defines who can access your topic. By
|
704
727
|
# default, only the topic owner can publish or subscribe to the topic.
|
705
728
|
#
|
729
|
+
# * `SignatureVersion` – The signature version corresponds to the
|
730
|
+
# hashing algorithm used while creating the signature of the
|
731
|
+
# notifications, subscription confirmations, or unsubscribe
|
732
|
+
# confirmation messages sent by Amazon SNS. By default,
|
733
|
+
# `SignatureVersion` is set to `1`.
|
734
|
+
#
|
735
|
+
# * `TracingConfig` – Tracing mode of an Amazon SNS topic. By default
|
736
|
+
# `TracingConfig` is set to `PassThrough`, and the topic passes
|
737
|
+
# through the tracing header it receives from an Amazon SNS publisher
|
738
|
+
# to its subscriptions. If set to `Active`, Amazon SNS will vend X-Ray
|
739
|
+
# segment data to topic owner account if the sampled flag in the
|
740
|
+
# tracing header is true. This is only supported on standard topics.
|
741
|
+
#
|
706
742
|
# The following attribute applies only to [server-side encryption][1]\:
|
707
743
|
#
|
708
744
|
# * `KmsMasterKeyId` – The ID of an Amazon Web Services managed customer
|
@@ -1923,6 +1959,12 @@ module Aws::SNS
|
|
1923
1959
|
|
1924
1960
|
# Removes a statement from a topic's access control policy.
|
1925
1961
|
#
|
1962
|
+
# <note markdown="1"> To remove the ability to change topic permissions, you must deny
|
1963
|
+
# permissions to the `AddPermission`, `RemovePermission`, and
|
1964
|
+
# `SetTopicAttributes` actions in your IAM policy.
|
1965
|
+
#
|
1966
|
+
# </note>
|
1967
|
+
#
|
1926
1968
|
# @option params [required, String] :topic_arn
|
1927
1969
|
# The ARN of the topic whose access control policy you wish to modify.
|
1928
1970
|
#
|
@@ -2238,6 +2280,14 @@ module Aws::SNS
|
|
2238
2280
|
# receive only a subset of messages, rather than receiving every
|
2239
2281
|
# message published to the topic.
|
2240
2282
|
#
|
2283
|
+
# * `FilterPolicyScope` – This attribute lets you choose the filtering
|
2284
|
+
# scope by using one of the following string value types:
|
2285
|
+
#
|
2286
|
+
# * `MessageAttributes` (default) – The filter is applied on the
|
2287
|
+
# message attributes.
|
2288
|
+
#
|
2289
|
+
# * `MessageBody` – The filter is applied on the message body.
|
2290
|
+
#
|
2241
2291
|
# * `RawMessageDelivery` – When set to `true`, enables raw message
|
2242
2292
|
# delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need
|
2243
2293
|
# for the endpoints to process JSON formatting, which is otherwise
|
@@ -2293,6 +2343,12 @@ module Aws::SNS
|
|
2293
2343
|
|
2294
2344
|
# Allows a topic owner to set an attribute of the topic to a new value.
|
2295
2345
|
#
|
2346
|
+
# <note markdown="1"> To remove the ability to change topic permissions, you must deny
|
2347
|
+
# permissions to the `AddPermission`, `RemovePermission`, and
|
2348
|
+
# `SetTopicAttributes` actions in your IAM policy.
|
2349
|
+
#
|
2350
|
+
# </note>
|
2351
|
+
#
|
2296
2352
|
# @option params [required, String] :topic_arn
|
2297
2353
|
# The ARN of the topic to modify.
|
2298
2354
|
#
|
@@ -2302,6 +2358,10 @@ module Aws::SNS
|
|
2302
2358
|
# The following lists the names, descriptions, and values of the special
|
2303
2359
|
# request parameters that the `SetTopicAttributes` action uses:
|
2304
2360
|
#
|
2361
|
+
# * `ApplicationSuccessFeedbackRoleArn` – Indicates failed message
|
2362
|
+
# delivery status for an Amazon SNS topic that is subscribed to a
|
2363
|
+
# platform application endpoint.
|
2364
|
+
#
|
2305
2365
|
# * `DeliveryPolicy` – The policy that defines how Amazon SNS retries
|
2306
2366
|
# failed deliveries to HTTP/S endpoints.
|
2307
2367
|
#
|
@@ -2311,16 +2371,119 @@ module Aws::SNS
|
|
2311
2371
|
# * `Policy` – The policy that defines who can access your topic. By
|
2312
2372
|
# default, only the topic owner can publish or subscribe to the topic.
|
2313
2373
|
#
|
2314
|
-
#
|
2374
|
+
# * `TracingConfig` – Tracing mode of an Amazon SNS topic. By default
|
2375
|
+
# `TracingConfig` is set to `PassThrough`, and the topic passes
|
2376
|
+
# through the tracing header it receives from an Amazon SNS publisher
|
2377
|
+
# to its subscriptions. If set to `Active`, Amazon SNS will vend X-Ray
|
2378
|
+
# segment data to topic owner account if the sampled flag in the
|
2379
|
+
# tracing header is true. This is only supported on standard topics.
|
2380
|
+
#
|
2381
|
+
# * HTTP
|
2382
|
+
#
|
2383
|
+
# * `HTTPSuccessFeedbackRoleArn` – Indicates successful message
|
2384
|
+
# delivery status for an Amazon SNS topic that is subscribed to an
|
2385
|
+
# HTTP endpoint.
|
2386
|
+
#
|
2387
|
+
# * `HTTPSuccessFeedbackSampleRate` – Indicates percentage of
|
2388
|
+
# successful messages to sample for an Amazon SNS topic that is
|
2389
|
+
# subscribed to an HTTP endpoint.
|
2390
|
+
#
|
2391
|
+
# * `HTTPFailureFeedbackRoleArn` – Indicates failed message delivery
|
2392
|
+
# status for an Amazon SNS topic that is subscribed to an HTTP
|
2393
|
+
# endpoint.
|
2394
|
+
#
|
2395
|
+
# * Amazon Kinesis Data Firehose
|
2396
|
+
#
|
2397
|
+
# * `FirehoseSuccessFeedbackRoleArn` – Indicates successful message
|
2398
|
+
# delivery status for an Amazon SNS topic that is subscribed to an
|
2399
|
+
# Amazon Kinesis Data Firehose endpoint.
|
2400
|
+
#
|
2401
|
+
# * `FirehoseSuccessFeedbackSampleRate` – Indicates percentage of
|
2402
|
+
# successful messages to sample for an Amazon SNS topic that is
|
2403
|
+
# subscribed to an Amazon Kinesis Data Firehose endpoint.
|
2404
|
+
#
|
2405
|
+
# * `FirehoseFailureFeedbackRoleArn` – Indicates failed message
|
2406
|
+
# delivery status for an Amazon SNS topic that is subscribed to an
|
2407
|
+
# Amazon Kinesis Data Firehose endpoint.
|
2408
|
+
#
|
2409
|
+
# * Lambda
|
2410
|
+
#
|
2411
|
+
# * `LambdaSuccessFeedbackRoleArn` – Indicates successful message
|
2412
|
+
# delivery status for an Amazon SNS topic that is subscribed to an
|
2413
|
+
# Lambda endpoint.
|
2414
|
+
#
|
2415
|
+
# * `LambdaSuccessFeedbackSampleRate` – Indicates percentage of
|
2416
|
+
# successful messages to sample for an Amazon SNS topic that is
|
2417
|
+
# subscribed to an Lambda endpoint.
|
2418
|
+
#
|
2419
|
+
# * `LambdaFailureFeedbackRoleArn` – Indicates failed message delivery
|
2420
|
+
# status for an Amazon SNS topic that is subscribed to an Lambda
|
2421
|
+
# endpoint.
|
2422
|
+
#
|
2423
|
+
# * Platform application endpoint
|
2424
|
+
#
|
2425
|
+
# * `ApplicationSuccessFeedbackRoleArn` – Indicates successful message
|
2426
|
+
# delivery status for an Amazon SNS topic that is subscribed to an
|
2427
|
+
# Amazon Web Services application endpoint.
|
2428
|
+
#
|
2429
|
+
# * `ApplicationSuccessFeedbackSampleRate` – Indicates percentage of
|
2430
|
+
# successful messages to sample for an Amazon SNS topic that is
|
2431
|
+
# subscribed to an Amazon Web Services application endpoint.
|
2432
|
+
#
|
2433
|
+
# * `ApplicationFailureFeedbackRoleArn` – Indicates failed message
|
2434
|
+
# delivery status for an Amazon SNS topic that is subscribed to an
|
2435
|
+
# Amazon Web Services application endpoint.
|
2436
|
+
#
|
2437
|
+
# <note markdown="1"> In addition to being able to configure topic attributes for message
|
2438
|
+
# delivery status of notification messages sent to Amazon SNS
|
2439
|
+
# application endpoints, you can also configure application attributes
|
2440
|
+
# for the delivery status of push notification messages sent to push
|
2441
|
+
# notification services.
|
2442
|
+
#
|
2443
|
+
# For example, For more information, see [Using Amazon SNS Application
|
2444
|
+
# Attributes for Message Delivery Status][1].
|
2445
|
+
#
|
2446
|
+
# </note>
|
2447
|
+
#
|
2448
|
+
# * Amazon SQS
|
2449
|
+
#
|
2450
|
+
# * `SQSSuccessFeedbackRoleArn` – Indicates successful message
|
2451
|
+
# delivery status for an Amazon SNS topic that is subscribed to an
|
2452
|
+
# Amazon SQS endpoint.
|
2453
|
+
#
|
2454
|
+
# * `SQSSuccessFeedbackSampleRate` – Indicates percentage of
|
2455
|
+
# successful messages to sample for an Amazon SNS topic that is
|
2456
|
+
# subscribed to an Amazon SQS endpoint.
|
2457
|
+
#
|
2458
|
+
# * `SQSFailureFeedbackRoleArn` – Indicates failed message delivery
|
2459
|
+
# status for an Amazon SNS topic that is subscribed to an Amazon SQS
|
2460
|
+
# endpoint.
|
2461
|
+
#
|
2462
|
+
# <note markdown="1"> The <ENDPOINT>SuccessFeedbackRoleArn and
|
2463
|
+
# <ENDPOINT>FailureFeedbackRoleArn attributes are used to give
|
2464
|
+
# Amazon SNS write access to use CloudWatch Logs on your behalf. The
|
2465
|
+
# <ENDPOINT>SuccessFeedbackSampleRate attribute is for specifying
|
2466
|
+
# the sample rate percentage (0-100) of successfully delivered messages.
|
2467
|
+
# After you configure the <ENDPOINT>FailureFeedbackRoleArn
|
2468
|
+
# attribute, then all failed message deliveries generate CloudWatch
|
2469
|
+
# Logs.
|
2470
|
+
#
|
2471
|
+
# </note>
|
2472
|
+
#
|
2473
|
+
# The following attribute applies only to [server-side-encryption][2]\:
|
2315
2474
|
#
|
2316
2475
|
# * `KmsMasterKeyId` – The ID of an Amazon Web Services managed customer
|
2317
2476
|
# master key (CMK) for Amazon SNS or a custom CMK. For more
|
2318
|
-
# information, see [Key Terms][
|
2477
|
+
# information, see [Key Terms][3]. For more examples, see [KeyId][4]
|
2319
2478
|
# in the *Key Management Service API Reference*.
|
2320
2479
|
#
|
2321
|
-
#
|
2480
|
+
# * `SignatureVersion` – The signature version corresponds to the
|
2481
|
+
# hashing algorithm used while creating the signature of the
|
2482
|
+
# notifications, subscription confirmations, or unsubscribe
|
2483
|
+
# confirmation messages sent by Amazon SNS. By default,
|
2484
|
+
# `SignatureVersion` is set to `1`.
|
2322
2485
|
#
|
2323
|
-
# The following attribute applies only to [FIFO topics][
|
2486
|
+
# The following attribute applies only to [FIFO topics][5]\:
|
2324
2487
|
#
|
2325
2488
|
# * `ContentBasedDeduplication` – Enables content-based deduplication
|
2326
2489
|
# for FIFO topics.
|
@@ -2328,7 +2491,7 @@ module Aws::SNS
|
|
2328
2491
|
# * By default, `ContentBasedDeduplication` is set to `false`. If you
|
2329
2492
|
# create a FIFO topic and this attribute is `false`, you must
|
2330
2493
|
# specify a value for the `MessageDeduplicationId` parameter for the
|
2331
|
-
# [Publish][
|
2494
|
+
# [Publish][6] action.
|
2332
2495
|
#
|
2333
2496
|
# * When you set `ContentBasedDeduplication` to `true`, Amazon SNS
|
2334
2497
|
# uses a SHA-256 hash to generate the `MessageDeduplicationId` using
|
@@ -2340,11 +2503,12 @@ module Aws::SNS
|
|
2340
2503
|
#
|
2341
2504
|
#
|
2342
2505
|
#
|
2343
|
-
# [1]: https://docs.aws.amazon.com/sns/latest/dg/sns-
|
2344
|
-
# [2]: https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html
|
2345
|
-
# [3]: https://docs.aws.amazon.com/
|
2346
|
-
# [4]: https://docs.aws.amazon.com/
|
2347
|
-
# [5]: https://docs.aws.amazon.com/sns/latest/
|
2506
|
+
# [1]: https://docs.aws.amazon.com/sns/latest/dg/sns-msg-status.html
|
2507
|
+
# [2]: https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html
|
2508
|
+
# [3]: https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms
|
2509
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters
|
2510
|
+
# [5]: https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html
|
2511
|
+
# [6]: https://docs.aws.amazon.com/sns/latest/api/API_Publish.html
|
2348
2512
|
#
|
2349
2513
|
# @option params [String] :attribute_value
|
2350
2514
|
# The new value for the attribute.
|
@@ -2446,6 +2610,14 @@ module Aws::SNS
|
|
2446
2610
|
# receive only a subset of messages, rather than receiving every
|
2447
2611
|
# message published to the topic.
|
2448
2612
|
#
|
2613
|
+
# * `FilterPolicyScope` – This attribute lets you choose the filtering
|
2614
|
+
# scope by using one of the following string value types:
|
2615
|
+
#
|
2616
|
+
# * `MessageAttributes` (default) – The filter is applied on the
|
2617
|
+
# message attributes.
|
2618
|
+
#
|
2619
|
+
# * `MessageBody` – The filter is applied on the message body.
|
2620
|
+
#
|
2449
2621
|
# * `RawMessageDelivery` – When set to `true`, enables raw message
|
2450
2622
|
# delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need
|
2451
2623
|
# for the endpoints to process JSON formatting, which is otherwise
|
@@ -2583,6 +2755,12 @@ module Aws::SNS
|
|
2583
2755
|
# is delivered to the endpoint, so that the endpoint owner can easily
|
2584
2756
|
# resubscribe to the topic if the `Unsubscribe` request was unintended.
|
2585
2757
|
#
|
2758
|
+
# <note markdown="1"> Amazon SQS queue subscriptions require authentication for deletion.
|
2759
|
+
# Only the owner of the subscription, or the owner of the topic can
|
2760
|
+
# unsubscribe using the required Amazon Web Services signature.
|
2761
|
+
#
|
2762
|
+
# </note>
|
2763
|
+
#
|
2586
2764
|
# This action is throttled at 100 transactions per second (TPS).
|
2587
2765
|
#
|
2588
2766
|
# @option params [required, String] :subscription_arn
|
@@ -2691,7 +2869,7 @@ module Aws::SNS
|
|
2691
2869
|
params: params,
|
2692
2870
|
config: config)
|
2693
2871
|
context[:gem_name] = 'aws-sdk-sns'
|
2694
|
-
context[:gem_version] = '1.
|
2872
|
+
context[:gem_version] = '1.60.0'
|
2695
2873
|
Seahorse::Client::Request.new(handlers, context)
|
2696
2874
|
end
|
2697
2875
|
|
@@ -0,0 +1,66 @@
|
|
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
|
+
module Aws::SNS
|
11
|
+
# Endpoint parameters used to influence endpoints per request.
|
12
|
+
#
|
13
|
+
# @!attribute region
|
14
|
+
# The AWS region used to dispatch the request.
|
15
|
+
#
|
16
|
+
# @return [String]
|
17
|
+
#
|
18
|
+
# @!attribute use_dual_stack
|
19
|
+
# When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
|
20
|
+
#
|
21
|
+
# @return [Boolean]
|
22
|
+
#
|
23
|
+
# @!attribute use_fips
|
24
|
+
# When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
|
25
|
+
#
|
26
|
+
# @return [Boolean]
|
27
|
+
#
|
28
|
+
# @!attribute endpoint
|
29
|
+
# Override the endpoint used to send this request
|
30
|
+
#
|
31
|
+
# @return [String]
|
32
|
+
#
|
33
|
+
EndpointParameters = Struct.new(
|
34
|
+
:region,
|
35
|
+
:use_dual_stack,
|
36
|
+
:use_fips,
|
37
|
+
:endpoint,
|
38
|
+
) do
|
39
|
+
include Aws::Structure
|
40
|
+
|
41
|
+
# @api private
|
42
|
+
class << self
|
43
|
+
PARAM_MAP = {
|
44
|
+
'Region' => :region,
|
45
|
+
'UseDualStack' => :use_dual_stack,
|
46
|
+
'UseFIPS' => :use_fips,
|
47
|
+
'Endpoint' => :endpoint,
|
48
|
+
}.freeze
|
49
|
+
end
|
50
|
+
|
51
|
+
def initialize(options = {})
|
52
|
+
self[:region] = options[:region]
|
53
|
+
self[:use_dual_stack] = options[:use_dual_stack]
|
54
|
+
self[:use_dual_stack] = false if self[:use_dual_stack].nil?
|
55
|
+
if self[:use_dual_stack].nil?
|
56
|
+
raise ArgumentError, "Missing required EndpointParameter: :use_dual_stack"
|
57
|
+
end
|
58
|
+
self[:use_fips] = options[:use_fips]
|
59
|
+
self[:use_fips] = false if self[:use_fips].nil?
|
60
|
+
if self[:use_fips].nil?
|
61
|
+
raise ArgumentError, "Missing required EndpointParameter: :use_fips"
|
62
|
+
end
|
63
|
+
self[:endpoint] = options[:endpoint]
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,60 @@
|
|
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
|
+
module Aws::SNS
|
11
|
+
class EndpointProvider
|
12
|
+
def resolve_endpoint(parameters)
|
13
|
+
region = parameters.region
|
14
|
+
use_dual_stack = parameters.use_dual_stack
|
15
|
+
use_fips = parameters.use_fips
|
16
|
+
endpoint = parameters.endpoint
|
17
|
+
if Aws::Endpoints::Matchers.set?(endpoint)
|
18
|
+
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
|
19
|
+
raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
|
20
|
+
end
|
21
|
+
if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
|
22
|
+
raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
|
23
|
+
end
|
24
|
+
return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
|
25
|
+
end
|
26
|
+
if Aws::Endpoints::Matchers.set?(region)
|
27
|
+
if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
|
28
|
+
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
|
29
|
+
if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
|
30
|
+
return Aws::Endpoints::Endpoint.new(url: "https://sns-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
|
31
|
+
end
|
32
|
+
raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
|
33
|
+
end
|
34
|
+
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
|
35
|
+
if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
|
36
|
+
if Aws::Endpoints::Matchers.string_equals?(region, "us-gov-east-1")
|
37
|
+
return Aws::Endpoints::Endpoint.new(url: "https://sns.us-gov-east-1.amazonaws.com", headers: {}, properties: {})
|
38
|
+
end
|
39
|
+
if Aws::Endpoints::Matchers.string_equals?(region, "us-gov-west-1")
|
40
|
+
return Aws::Endpoints::Endpoint.new(url: "https://sns.us-gov-west-1.amazonaws.com", headers: {}, properties: {})
|
41
|
+
end
|
42
|
+
return Aws::Endpoints::Endpoint.new(url: "https://sns-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
|
43
|
+
end
|
44
|
+
raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
|
45
|
+
end
|
46
|
+
if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
|
47
|
+
if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
|
48
|
+
return Aws::Endpoints::Endpoint.new(url: "https://sns.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
|
49
|
+
end
|
50
|
+
raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
|
51
|
+
end
|
52
|
+
return Aws::Endpoints::Endpoint.new(url: "https://sns.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
|
53
|
+
end
|
54
|
+
end
|
55
|
+
raise ArgumentError, "Invalid Configuration: Missing Region"
|
56
|
+
raise ArgumentError, 'No endpoint could be resolved'
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|