aws-partitions 1.524.0 → 1.528.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e71104e45e1f4f69dce4ba593adac06359ab84e6e718f446b74cb0183922754
4
- data.tar.gz: 1015eda450bda5eecc7c99ecfc5800fc1358c6aaecd5d2ebf9de65d8398760bc
3
+ metadata.gz: 4772a4a96820cc044cbc58b62265508f180d477e62a7c35336d41e3a4c7dd533
4
+ data.tar.gz: 795571f3e83f8e36bfd7d8e9f900c964055219d38255fefecae109f36077054e
5
5
  SHA512:
6
- metadata.gz: 43d063ee4f8df3b61af518cd60cc21b3a10f0321ba8871a6607705c0eb83d6f98c4ee563d51a6c48dc38596636c4f3b2caf062c0a43f6ed8144d2c76ac9d2fee
7
- data.tar.gz: 89ed40d52d56aac72ad993d6996be96ce68954945343e84496a7faf5abb24dc4da9b66bdb97a7aa0410b29a860a7eb941b9802d5ae45beed0bcf02361c0e1acc
6
+ metadata.gz: 9addf3d86bcaed197c715f0f7652b08af207625a1a8975791e8f0e4fe968cef1d39a5d4f27c57b2afc6bd9c54d5efbefbdcab0a91280b8e9168a070352b7ff1e
7
+ data.tar.gz: edb3b1bd311d1777a9c09ee48efca446d12e265c3c892bbb7b530e1f255c1f4bb470881c4672470977ca8acb44aa1810a15271174446b889c5648383ddc7a7be
data/CHANGELOG.md CHANGED
@@ -1,6 +1,28 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.528.0 (2021-11-11)
5
+ ------------------
6
+
7
+ * Feature - Updated the partitions source data the determines the AWS service regions and endpoints.
8
+
9
+ 1.527.0 (2021-11-10)
10
+ ------------------
11
+
12
+ * Feature - Added support for enumerating regions for `Aws::ResilienceHub`.
13
+
14
+ 1.526.0 (2021-11-09)
15
+ ------------------
16
+
17
+ * Feature - Updated the partitions source data the determines the AWS service regions and endpoints.
18
+
19
+ 1.525.0 (2021-11-04)
20
+ ------------------
21
+
22
+ * Feature - Added support for enumerating regions for `Aws::ChimeSDKMeetings`.
23
+
24
+ * Feature - Support modeled dualstack and fips endpoints in `Aws::Partitions::EndpointProvider`.
25
+
4
26
  1.524.0 (2021-11-03)
5
27
  ------------------
6
28
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.524.0
1
+ 1.528.0
@@ -37,15 +37,19 @@ module Aws
37
37
  # "monitoring" for cloudwatch.
38
38
  # @param [String] sts_regional_endpoints [STS only] Whether to use
39
39
  # `legacy` (global endpoint for legacy regions) or `regional` mode for
40
- # using regional endpoint for supported regions except 'aws-global'
40
+ # using regional endpoint for supported regions except 'aws-global'
41
+ # @param [Hash] variants Endpoint variants such as 'fips' or 'dualstack'
42
+ # @option variants [Boolean] :dualstack When true, resolve a dualstack
43
+ # endpoint.
44
+ # @option variants [Boolean] :fips When true, resolve a FIPS endpoint.
41
45
  # @api private Use the static class methods instead.
42
- def resolve(region, service, sts_regional_endpoints)
43
- 'https://' + endpoint_for(region, service, sts_regional_endpoints)
46
+ def resolve(region, service, sts_regional_endpoints, variants)
47
+ 'https://' + endpoint_for(region, service, build_is_global_fn(sts_regional_endpoints), variants)
44
48
  end
45
49
 
46
50
  # @api private Use the static class methods instead.
47
51
  def signing_region(region, service, sts_regional_endpoints)
48
- credential_scope(region, service, sts_regional_endpoints)
52
+ credential_scope(region, service, build_is_global_fn(sts_regional_endpoints))
49
53
  .fetch('region', region)
50
54
  end
51
55
 
@@ -54,47 +58,87 @@ module Aws
54
58
  # don't default to the service name
55
59
  # signers should prefer the api metadata's signingName
56
60
  # if no service is set in the credentialScope
57
- credential_scope(region, service, 'regional')
61
+ credential_scope(region, service, build_is_global_fn('regional'))
58
62
  .fetch('service', nil)
59
63
  end
60
64
 
65
+ # @param [String] region The region used to fetch the partition.
66
+ # @param [String] service Used only if dualstack is true. Used to find a
67
+ # DNS suffix for a specific service.
68
+ # @param [Hash] variants Endpoint variants such as 'fips' or 'dualstack'
69
+ # @option variants [Boolean] :dualstack When true, resolve a dualstack
70
+ # endpoint.
71
+ # @option variants [Boolean] :fips When true, resolve a FIPS endpoint.
61
72
  # @api private Use the static class methods instead.
62
- def credential_scope(region, service, sts_regional_endpoints)
63
- partition = get_partition(region)
64
- service_cfg = partition.fetch('services', {})
65
- .fetch(service, {})
66
- endpoints = service_cfg.fetch('endpoints', {})
73
+ def dns_suffix_for(region, service, variants)
74
+ if configured_variants?(variants)
75
+ resolve_variant(region, service, variants)['dnsSuffix']
76
+ else
77
+ get_partition(region)['dnsSuffix']
78
+ end
79
+ end
80
+
81
+ private
67
82
 
68
- # Check for sts legacy behavior
69
- sts_legacy = service == 'sts' &&
70
- sts_regional_endpoints == 'legacy' &&
71
- STS_LEGACY_REGIONS.include?(region)
83
+ def configured_variants?(variants)
84
+ variants.values.any?
85
+ end
72
86
 
73
- is_global = !endpoints.key?(region) &&
74
- service_cfg['isRegionalized'] == false
87
+ def fetch_variant(cfg, tags)
88
+ variants = cfg.fetch('variants', [])
89
+ variants.find { |v| tags == Set.new(v['tags']) } || {}
90
+ end
75
91
 
76
- # Check for global endpoint.
77
- if sts_legacy || is_global
92
+ def resolve_variant(region, service, config_variants)
93
+ tags = Set.new(config_variants.select { |_k,v| v == true }.map { |k,_v| k.to_s })
94
+ is_global_fn = build_is_global_fn # ignore legacy STS config for variants
95
+
96
+ partition_cfg = get_partition(region)
97
+ service_cfg = partition_cfg.fetch('services', {})
98
+ .fetch(service, {})
99
+
100
+ endpoints_cfg = service_cfg.fetch('endpoints', {})
101
+
102
+ if is_global_fn.call(service, region, endpoints_cfg, service_cfg)
78
103
  region = service_cfg.fetch('partitionEndpoint', region)
79
104
  end
80
105
 
81
- default_credential_scope = service_cfg
82
- .fetch('defaults', {})
83
- .fetch('credentialScope', {})
106
+ region_cfg = endpoints_cfg.fetch(region, {})
107
+ warn_deprecation(service, region) if region_cfg['deprecated']
84
108
 
85
- endpoints
86
- .fetch(region, {})
87
- .fetch('credentialScope', default_credential_scope)
109
+ partition_defaults = fetch_variant(partition_cfg.fetch('defaults', {}), tags)
110
+ service_defaults = fetch_variant(service_cfg.fetch('defaults', {}), tags)
111
+ endpoint_cfg = fetch_variant(region_cfg, tags)
112
+
113
+ # merge upwards, preferring values from endpoint > service > partition
114
+ partition_defaults.merge(service_defaults.merge(endpoint_cfg))
88
115
  end
89
116
 
90
- # @api private Use the static class methods instead.
91
- def dns_suffix_for(region)
92
- get_partition(region)['dnsSuffix']
117
+ def validate_variant!(config_variants, resolved_variant)
118
+ unless resolved_variant['hostname'] && resolved_variant['dnsSuffix']
119
+ enabled_variants = config_variants.select { |_k, v| v}.map { |k, _v| k.to_s }.join(', ')
120
+ raise ArgumentError,
121
+ "#{enabled_variants} not supported for this region and partition."
122
+ end
93
123
  end
94
124
 
95
- private
125
+ def endpoint_for(region, service, is_global_fn, variants)
126
+ if configured_variants?(variants)
127
+ endpoint_with_variants_for(region, service, variants)
128
+ else
129
+ endpoint_no_variants_for(region, service, is_global_fn)
130
+ end
131
+ end
132
+
133
+ def endpoint_with_variants_for(region, service, variants)
134
+ variant = resolve_variant(region, service, variants)
135
+ validate_variant!(variants, variant)
136
+ variant['hostname'].sub('{region}', region)
137
+ .sub('{service}', service)
138
+ .sub('{dnsSuffix}', variant['dnsSuffix'])
139
+ end
96
140
 
97
- def endpoint_for(region, service, sts_regional_endpoints)
141
+ def endpoint_no_variants_for(region, service, is_global_fn)
98
142
  partition = get_partition(region)
99
143
  service_cfg = partition.fetch('services', {}).fetch(service, {})
100
144
 
@@ -105,30 +149,66 @@ module Aws
105
149
 
106
150
  endpoints = service_cfg.fetch('endpoints', {})
107
151
 
108
- # Check for sts legacy behavior
109
- sts_legacy = service == 'sts' &&
110
- sts_regional_endpoints == 'legacy' &&
111
- STS_LEGACY_REGIONS.include?(region)
112
-
113
- is_global = !endpoints.key?(region) &&
114
- service_cfg['isRegionalized'] == false
115
-
116
152
  # Check for global endpoint.
117
- if sts_legacy || is_global
153
+ if is_global_fn.call(service, region, endpoints, service_cfg)
118
154
  region = service_cfg.fetch('partitionEndpoint', region)
119
155
  end
120
156
 
121
157
  # Check for service/region level endpoint.
122
- endpoint = endpoints
158
+ region_cfg = endpoints
123
159
  .fetch(region, {})
160
+ endpoint = region_cfg
124
161
  .fetch('hostname', default_endpoint)
125
162
 
163
+ warn_deprecation(service, region) if region_cfg['deprecated']
164
+
126
165
  # Replace placeholders from the endpoints
127
166
  endpoint.sub('{region}', region)
128
167
  .sub('{service}', service)
129
168
  .sub('{dnsSuffix}', partition['dnsSuffix'])
130
169
  end
131
170
 
171
+ def warn_deprecation(service, region)
172
+ warn("The endpoint for service: #{service}, region: #{region}"\
173
+ ' is deprecated.')
174
+ end
175
+
176
+ # returns a callable that takes a region
177
+ # and returns true if the service is global
178
+ def build_is_global_fn(sts_regional_endpoints='regional')
179
+ lambda do |service, region, endpoints, service_cfg|
180
+ # Check for sts legacy behavior
181
+ sts_legacy = service == 'sts' &&
182
+ sts_regional_endpoints == 'legacy' &&
183
+ STS_LEGACY_REGIONS.include?(region)
184
+
185
+ is_global = !endpoints.key?(region) &&
186
+ service_cfg['isRegionalized'] == false
187
+
188
+ sts_legacy || is_global
189
+ end
190
+ end
191
+
192
+ def credential_scope(region, service, is_global_fn)
193
+ partition = get_partition(region)
194
+ service_cfg = partition.fetch('services', {})
195
+ .fetch(service, {})
196
+ endpoints = service_cfg.fetch('endpoints', {})
197
+
198
+ # Check for global endpoint.
199
+ if is_global_fn.call(service, region, endpoints, service_cfg)
200
+ region = service_cfg.fetch('partitionEndpoint', region)
201
+ end
202
+
203
+ default_credential_scope = service_cfg
204
+ .fetch('defaults', {})
205
+ .fetch('credentialScope', {})
206
+
207
+ endpoints
208
+ .fetch(region, {})
209
+ .fetch('credentialScope', default_credential_scope)
210
+ end
211
+
132
212
  def get_partition(region_or_partition)
133
213
  partition_containing_region(region_or_partition) ||
134
214
  partition_matching_region(region_or_partition) ||
@@ -144,7 +224,7 @@ module Aws
144
224
 
145
225
  def partition_matching_region(region)
146
226
  @rules['partitions'].find do |p|
147
- region.match(p['regionRegex']) ||
227
+ p['regionRegex'] && region.match(p['regionRegex']) ||
148
228
  p['services'].values.find do |svc|
149
229
  svc['endpoints'].key?(region) if svc.key?('endpoints')
150
230
  end
@@ -161,8 +241,8 @@ module Aws
161
241
  end
162
242
 
163
243
  class << self
164
- def resolve(region, service, sts_regional_endpoints = 'regional')
165
- default_provider.resolve(region, service, sts_regional_endpoints)
244
+ def resolve(region, service, sts_endpoint = 'regional', variants = {})
245
+ default_provider.resolve(region, service, sts_endpoint, variants)
166
246
  end
167
247
 
168
248
  def signing_region(region, service, sts_regional_endpoints = 'regional')
@@ -173,8 +253,8 @@ module Aws
173
253
  default_provider.signing_service(region, service)
174
254
  end
175
255
 
176
- def dns_suffix_for(region)
177
- default_provider.dns_suffix_for(region)
256
+ def dns_suffix_for(region, service = nil, variants = {})
257
+ default_provider.dns_suffix_for(region, service, variants)
178
258
  end
179
259
 
180
260
  private
@@ -16,6 +16,8 @@ module Aws
16
16
  @name = options[:name]
17
17
  @partition_name = options[:partition_name]
18
18
  @regions = options[:regions]
19
+ @fips_regions = options[:fips_regions]
20
+ @dualstack_regions = options[:dualstack_regions]
19
21
  @regionalized = options[:regionalized]
20
22
  @partition_region = options[:partition_region]
21
23
  end
@@ -31,6 +33,14 @@ module Aws
31
33
  # Regions are scoped to the partition.
32
34
  attr_reader :regions
33
35
 
36
+ # @return [Set<String>] The FIPS compatible regions this service is
37
+ # available in. Regions are scoped to the partition.
38
+ attr_reader :fips_regions
39
+
40
+ # @return [Set<String>] The Dualstack compatible regions this service is
41
+ # available in. Regions are scoped to the partition.
42
+ attr_reader :dualstack_regions
43
+
34
44
  # @return [String,nil] The global patition endpoint for this service.
35
45
  # May be `nil`.
36
46
  attr_reader :partition_region
@@ -54,6 +64,8 @@ module Aws
54
64
  name: service_name,
55
65
  partition_name: partition['partition'],
56
66
  regions: regions(service, partition),
67
+ fips_regions: variant_regions('fips', service, partition),
68
+ dualstack_regions: variant_regions('dualstack', service, partition),
57
69
  regionalized: service['isRegionalized'] != false,
58
70
  partition_region: partition_region(service)
59
71
  )
@@ -67,6 +79,21 @@ module Aws
67
79
  names - ["#{partition['partition']}-global"]
68
80
  end
69
81
 
82
+ def variant_regions(variant_name, service, partition)
83
+ svc_endpoints = service.fetch('endpoints', {})
84
+ names = Set.new
85
+ svc_endpoints.each do |key, value|
86
+ variants = value.fetch('variants', [])
87
+ variants.each do |variant|
88
+ tags = variant.fetch('tags', [])
89
+ if tags.include?(variant_name) && partition['regions'].key?(key)
90
+ names << key
91
+ end
92
+ end
93
+ end
94
+ names - ["#{partition['partition']}-global"]
95
+ end
96
+
70
97
  def partition_region(service)
71
98
  service['partitionEndpoint']
72
99
  end
@@ -257,6 +257,7 @@ module Aws
257
257
  'Budgets' => 'budgets',
258
258
  'Chime' => 'chime',
259
259
  'ChimeSDKIdentity' => 'identity-chime',
260
+ 'ChimeSDKMeetings' => 'meetings-chime',
260
261
  'ChimeSDKMessaging' => 'messaging-chime',
261
262
  'Cloud9' => 'cloud9',
262
263
  'CloudControlApi' => 'cloudcontrolapi',
@@ -445,6 +446,7 @@ module Aws
445
446
  'Redshift' => 'redshift',
446
447
  'RedshiftDataAPIService' => 'redshift-data',
447
448
  'Rekognition' => 'rekognition',
449
+ 'ResilienceHub' => 'resiliencehub',
448
450
  'ResourceGroups' => 'resource-groups',
449
451
  'ResourceGroupsTaggingAPI' => 'tagging',
450
452
  'RoboMaker' => 'robomaker',
data/partitions.json CHANGED
@@ -2431,6 +2431,106 @@
2431
2431
  }
2432
2432
  }
2433
2433
  },
2434
+ "compute-optimizer" : {
2435
+ "endpoints" : {
2436
+ "ap-northeast-1" : {
2437
+ "credentialScope" : {
2438
+ "region" : "ap-northeast-1"
2439
+ },
2440
+ "hostname" : "compute-optimizer.ap-northeast-1.amazonaws.com"
2441
+ },
2442
+ "ap-northeast-2" : {
2443
+ "credentialScope" : {
2444
+ "region" : "ap-northeast-2"
2445
+ },
2446
+ "hostname" : "compute-optimizer.ap-northeast-2.amazonaws.com"
2447
+ },
2448
+ "ap-south-1" : {
2449
+ "credentialScope" : {
2450
+ "region" : "ap-south-1"
2451
+ },
2452
+ "hostname" : "compute-optimizer.ap-south-1.amazonaws.com"
2453
+ },
2454
+ "ap-southeast-1" : {
2455
+ "credentialScope" : {
2456
+ "region" : "ap-southeast-1"
2457
+ },
2458
+ "hostname" : "compute-optimizer.ap-southeast-1.amazonaws.com"
2459
+ },
2460
+ "ap-southeast-2" : {
2461
+ "credentialScope" : {
2462
+ "region" : "ap-southeast-2"
2463
+ },
2464
+ "hostname" : "compute-optimizer.ap-southeast-2.amazonaws.com"
2465
+ },
2466
+ "ca-central-1" : {
2467
+ "credentialScope" : {
2468
+ "region" : "ca-central-1"
2469
+ },
2470
+ "hostname" : "compute-optimizer.ca-central-1.amazonaws.com"
2471
+ },
2472
+ "eu-central-1" : {
2473
+ "credentialScope" : {
2474
+ "region" : "eu-central-1"
2475
+ },
2476
+ "hostname" : "compute-optimizer.eu-central-1.amazonaws.com"
2477
+ },
2478
+ "eu-north-1" : {
2479
+ "credentialScope" : {
2480
+ "region" : "eu-north-1"
2481
+ },
2482
+ "hostname" : "compute-optimizer.eu-north-1.amazonaws.com"
2483
+ },
2484
+ "eu-west-1" : {
2485
+ "credentialScope" : {
2486
+ "region" : "eu-west-1"
2487
+ },
2488
+ "hostname" : "compute-optimizer.eu-west-1.amazonaws.com"
2489
+ },
2490
+ "eu-west-2" : {
2491
+ "credentialScope" : {
2492
+ "region" : "eu-west-2"
2493
+ },
2494
+ "hostname" : "compute-optimizer.eu-west-2.amazonaws.com"
2495
+ },
2496
+ "eu-west-3" : {
2497
+ "credentialScope" : {
2498
+ "region" : "eu-west-3"
2499
+ },
2500
+ "hostname" : "compute-optimizer.eu-west-3.amazonaws.com"
2501
+ },
2502
+ "sa-east-1" : {
2503
+ "credentialScope" : {
2504
+ "region" : "sa-east-1"
2505
+ },
2506
+ "hostname" : "compute-optimizer.sa-east-1.amazonaws.com"
2507
+ },
2508
+ "us-east-1" : {
2509
+ "credentialScope" : {
2510
+ "region" : "us-east-1"
2511
+ },
2512
+ "hostname" : "compute-optimizer.us-east-1.amazonaws.com"
2513
+ },
2514
+ "us-east-2" : {
2515
+ "credentialScope" : {
2516
+ "region" : "us-east-2"
2517
+ },
2518
+ "hostname" : "compute-optimizer.us-east-2.amazonaws.com"
2519
+ },
2520
+ "us-west-1" : {
2521
+ "credentialScope" : {
2522
+ "region" : "us-west-1"
2523
+ },
2524
+ "hostname" : "compute-optimizer.us-west-1.amazonaws.com"
2525
+ },
2526
+ "us-west-2" : {
2527
+ "credentialScope" : {
2528
+ "region" : "us-west-2"
2529
+ },
2530
+ "hostname" : "compute-optimizer.us-west-2.amazonaws.com"
2531
+ }
2532
+ }
2533
+ },
2434
2534
  "config" : {
2435
2535
  "endpoints" : {
2436
2536
  "af-south-1" : { },
@@ -5159,6 +5259,7 @@
5159
5259
  "ap-east-1" : { },
5160
5260
  "ap-northeast-1" : { },
5161
5261
  "ap-northeast-2" : { },
5262
+ "ap-northeast-3" : { },
5162
5263
  "ap-south-1" : { },
5163
5264
  "ap-southeast-1" : { },
5164
5265
  "ap-southeast-2" : { },
@@ -9327,7 +9428,16 @@
9327
9428
  "s3-control" : {
9328
9429
  "defaults" : {
9329
9430
  "protocols" : [ "https" ],
9330
- "signatureVersions" : [ "s3v4" ]
9431
+ "signatureVersions" : [ "s3v4" ],
9432
+ "variants" : [ {
9433
+ "dnsSuffix" : "amazonaws.com",
9434
+ "hostname" : "{service}-fips.dualstack.{region}.{dnsSuffix}",
9435
+ "tags" : [ "dualstack", "fips" ]
9436
+ }, {
9437
+ "dnsSuffix" : "amazonaws.com",
9438
+ "hostname" : "{service}.dualstack.{region}.{dnsSuffix}",
9439
+ "tags" : [ "dualstack" ]
9440
+ } ]
9331
9441
  },
9332
9442
  "endpoints" : {
9333
9443
  "ap-northeast-1" : {
@@ -10740,13 +10850,20 @@
10740
10850
  "ssm-incidents" : {
10741
10851
  "endpoints" : {
10742
10852
  "ap-northeast-1" : { },
10853
+ "ap-northeast-2" : { },
10854
+ "ap-south-1" : { },
10743
10855
  "ap-southeast-1" : { },
10744
10856
  "ap-southeast-2" : { },
10857
+ "ca-central-1" : { },
10745
10858
  "eu-central-1" : { },
10746
10859
  "eu-north-1" : { },
10747
10860
  "eu-west-1" : { },
10861
+ "eu-west-2" : { },
10862
+ "eu-west-3" : { },
10863
+ "sa-east-1" : { },
10748
10864
  "us-east-1" : { },
10749
10865
  "us-east-2" : { },
10866
+ "us-west-1" : { },
10750
10867
  "us-west-2" : { }
10751
10868
  }
10752
10869
  },
@@ -11261,12 +11378,24 @@
11261
11378
  "ap-south-1" : { },
11262
11379
  "ap-southeast-1" : { },
11263
11380
  "ap-southeast-2" : { },
11264
- "ca-central-1" : { },
11381
+ "ca-central-1" : {
11382
+ "variants" : [ {
11383
+ "hostname" : "fips.transcribe.ca-central-1.amazonaws.com",
11384
+ "tags" : [ "fips" ]
11385
+ } ]
11386
+ },
11265
11387
  "eu-central-1" : { },
11266
11388
  "eu-north-1" : { },
11267
11389
  "eu-west-1" : { },
11268
11390
  "eu-west-2" : { },
11269
11391
  "eu-west-3" : { },
11392
+ "fips-ca-central-1" : {
11393
+ "credentialScope" : {
11394
+ "region" : "ca-central-1"
11395
+ },
11396
+ "deprecated" : true,
11397
+ "hostname" : "fips.transcribe.ca-central-1.amazonaws.com"
11398
+ },
11270
11399
  "fips-us-east-1" : {
11271
11400
  "credentialScope" : {
11272
11401
  "region" : "us-east-1"
@@ -12348,6 +12477,22 @@
12348
12477
  "cn-north-1" : { }
12349
12478
  }
12350
12479
  },
12480
+ "compute-optimizer" : {
12481
+ "endpoints" : {
12482
+ "cn-north-1" : {
12483
+ "credentialScope" : {
12484
+ "region" : "cn-north-1"
12485
+ },
12486
+ "hostname" : "compute-optimizer.cn-north-1.amazonaws.com.cn"
12487
+ },
12488
+ "cn-northwest-1" : {
12489
+ "credentialScope" : {
12490
+ "region" : "cn-northwest-1"
12491
+ },
12492
+ "hostname" : "compute-optimizer.cn-northwest-1.amazonaws.com.cn"
12493
+ }
12494
+ }
12495
+ },
12351
12496
  "config" : {
12352
12497
  "endpoints" : {
12353
12498
  "cn-north-1" : { },
@@ -12845,7 +12990,12 @@
12845
12990
  "s3-control" : {
12846
12991
  "defaults" : {
12847
12992
  "protocols" : [ "https" ],
12848
- "signatureVersions" : [ "s3v4" ]
12993
+ "signatureVersions" : [ "s3v4" ],
12994
+ "variants" : [ {
12995
+ "dnsSuffix" : "amazonaws.com.cn",
12996
+ "hostname" : "{service}.dualstack.{region}.{dnsSuffix}",
12997
+ "tags" : [ "dualstack" ]
12998
+ } ]
12849
12999
  },
12850
13000
  "endpoints" : {
12851
13001
  "cn-north-1" : {
@@ -14698,6 +14848,12 @@
14698
14848
  "partitionEndpoint" : "aws-us-gov-global"
14699
14849
  },
14700
14850
  "identitystore" : {
14851
+ "defaults" : {
14852
+ "variants" : [ {
14853
+ "hostname" : "identitystore.{region}.{dnsSuffix}",
14854
+ "tags" : [ "fips" ]
14855
+ } ]
14856
+ },
14701
14857
  "endpoints" : {
14702
14858
  "fips-us-gov-west-1" : {
14703
14859
  "credentialScope" : {
@@ -15306,6 +15462,12 @@
15306
15462
  }
15307
15463
  },
15308
15464
  "rds" : {
15465
+ "defaults" : {
15466
+ "variants" : [ {
15467
+ "hostname" : "rds.{region}.{dnsSuffix}",
15468
+ "tags" : [ "fips" ]
15469
+ } ]
15470
+ },
15309
15471
  "endpoints" : {
15310
15472
  "rds.us-gov-east-1" : {
15311
15473
  "credentialScope" : {
@@ -15491,6 +15653,12 @@
15491
15653
  }
15492
15654
  },
15493
15655
  "runtime.sagemaker" : {
15656
+ "defaults" : {
15657
+ "variants" : [ {
15658
+ "hostname" : "runtime.sagemaker.{region}.{dnsSuffix}",
15659
+ "tags" : [ "fips" ]
15660
+ } ]
15661
+ },
15494
15662
  "endpoints" : {
15495
15663
  "us-gov-west-1" : {
15496
15664
  "variants" : [ {
@@ -15562,7 +15730,16 @@
15562
15730
  "s3-control" : {
15563
15731
  "defaults" : {
15564
15732
  "protocols" : [ "https" ],
15565
- "signatureVersions" : [ "s3v4" ]
15733
+ "signatureVersions" : [ "s3v4" ],
15734
+ "variants" : [ {
15735
+ "dnsSuffix" : "amazonaws.com",
15736
+ "hostname" : "{service}-fips.dualstack.{region}.{dnsSuffix}",
15737
+ "tags" : [ "dualstack", "fips" ]
15738
+ }, {
15739
+ "dnsSuffix" : "amazonaws.com",
15740
+ "hostname" : "{service}.dualstack.{region}.{dnsSuffix}",
15741
+ "tags" : [ "dualstack" ]
15742
+ } ]
15566
15743
  },
15567
15744
  "endpoints" : {
15568
15745
  "us-gov-east-1" : {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-partitions
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.524.0
4
+ version: 1.528.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-03 00:00:00.000000000 Z
11
+ date: 2021-11-11 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Provides interfaces to enumerate AWS partitions, regions, and services.
14
14
  email: