aws-sdk-s3control 1.41.1 → 1.42.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 +7 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-s3control/arn/outpost_access_point_arn.rb +15 -9
- data/lib/aws-sdk-s3control/arn/outpost_bucket_arn.rb +13 -8
- data/lib/aws-sdk-s3control/client.rb +9 -4
- data/lib/aws-sdk-s3control/plugins/arn.rb +12 -32
- data/lib/aws-sdk-s3control/plugins/dualstack.rb +13 -23
- data/lib/aws-sdk-s3control/plugins/s3_control_signer.rb +2 -1
- data/lib/aws-sdk-s3control.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d717b8608be6b064bafa5fd3bfe4cab6a0bd53200071478dcddb696a087c3ed
|
4
|
+
data.tar.gz: 66b70379fe4e6040954b137ec45e5e67d67f9f8d05598c3e9fc950e3314712c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4608d26f4f298e23c24f5656bb05308175694e9154d054a96b983284b9836bb52f24ac39b45e373fb5189fc0cb6b0ea4385d34f35d8954458cd61fbeeb384c43
|
7
|
+
data.tar.gz: 9fad7cb5825ed52608717ace057089b3c1d3b9feb43a83cfbb73d0a51d10c2bce2c94cf0177ce8430b00edd3ac021a73ccb99e7642118b6b7fd2223078cfaad4
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
Unreleased Changes
|
2
2
|
------------------
|
3
3
|
|
4
|
+
1.42.0 (2021-11-04)
|
5
|
+
------------------
|
6
|
+
|
7
|
+
* Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
|
8
|
+
|
9
|
+
* Feature - Support FIPS endpoints for S3 Outposts using Bucket and Access Point ARNs.
|
10
|
+
|
4
11
|
1.41.1 (2021-10-20)
|
5
12
|
------------------
|
6
13
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.42.0
|
@@ -23,30 +23,36 @@ module Aws
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def support_fips?
|
26
|
-
|
26
|
+
true
|
27
27
|
end
|
28
28
|
|
29
29
|
def validate_arn!
|
30
30
|
unless @service == 's3-outposts'
|
31
|
-
raise ArgumentError, 'Must provide a valid S3
|
31
|
+
raise ArgumentError, 'Must provide a valid S3 Outpost Access '\
|
32
|
+
'Point ARN.'
|
32
33
|
end
|
33
34
|
|
34
35
|
if @region.empty? || @account_id.empty?
|
35
36
|
raise ArgumentError,
|
36
|
-
'S3
|
37
|
-
'and an
|
37
|
+
'S3 Outpost Access Point ARNs must contain both a region '\
|
38
|
+
'and an Account ID.'
|
39
|
+
end
|
40
|
+
|
41
|
+
if @region.include?('-fips') || @region.include?('fips-')
|
42
|
+
raise ArgumentError,
|
43
|
+
'S3 Outpost Access Point ARNs cannot contain a FIPS region.'
|
38
44
|
end
|
39
45
|
|
40
46
|
if @type != 'outpost' && @subtype != 'accesspoint'
|
41
|
-
raise ArgumentError, 'Invalid ARN, resource format is not correct'
|
47
|
+
raise ArgumentError, 'Invalid ARN, resource format is not correct.'
|
42
48
|
end
|
43
49
|
|
44
50
|
if @outpost_id.nil? || @outpost_id.empty?
|
45
|
-
raise ArgumentError, 'Missing ARN
|
51
|
+
raise ArgumentError, 'Missing ARN Outpost ID.'
|
46
52
|
end
|
47
53
|
|
48
54
|
if @access_point_name.nil? || @access_point_name.empty?
|
49
|
-
raise ArgumentError, 'Missing ARN
|
55
|
+
raise ArgumentError, 'Missing ARN Access Point name.'
|
50
56
|
end
|
51
57
|
|
52
58
|
if @extra
|
@@ -68,11 +74,11 @@ module Aws
|
|
68
74
|
end
|
69
75
|
|
70
76
|
# Outpost Access Point ARNs currently do not support dualstack
|
71
|
-
def host_url(region, _dualstack = false, custom_endpoint = nil)
|
77
|
+
def host_url(region, fips = false, _dualstack = false, custom_endpoint = nil)
|
72
78
|
if custom_endpoint
|
73
79
|
custom_endpoint
|
74
80
|
else
|
75
|
-
"s3-outposts.#{region}.amazonaws.com"
|
81
|
+
"s3-outposts#{'-fips' if fips}.#{region}.amazonaws.com"
|
76
82
|
end
|
77
83
|
end
|
78
84
|
end
|
@@ -28,13 +28,18 @@ module Aws
|
|
28
28
|
|
29
29
|
def validate_arn!
|
30
30
|
unless @service == 's3-outposts'
|
31
|
-
raise ArgumentError, 'Must provide a valid S3
|
31
|
+
raise ArgumentError, 'Must provide a valid S3 Outpost Bucket ARN.'
|
32
32
|
end
|
33
33
|
|
34
34
|
if @region.empty? || @account_id.empty?
|
35
35
|
raise ArgumentError,
|
36
|
-
'S3
|
37
|
-
'and an
|
36
|
+
'S3 Outpost Bucket ARNs must contain both a region '\
|
37
|
+
'and an Account ID.'
|
38
|
+
end
|
39
|
+
|
40
|
+
if @region.include?('-fips') || @region.include?('fips-')
|
41
|
+
raise ArgumentError,
|
42
|
+
'S3 Outpost Bucket ARNs cannot contain a FIPS region.'
|
38
43
|
end
|
39
44
|
|
40
45
|
if @type != 'outpost' && @subtype != 'bucket'
|
@@ -42,16 +47,16 @@ module Aws
|
|
42
47
|
end
|
43
48
|
|
44
49
|
if @outpost_id.nil? || @outpost_id.empty?
|
45
|
-
raise ArgumentError, 'Missing ARN
|
50
|
+
raise ArgumentError, 'Missing ARN Outpost ID.'
|
46
51
|
end
|
47
52
|
|
48
53
|
if @bucket_name.nil? || @bucket_name.empty?
|
49
|
-
raise ArgumentError, 'Missing ARN
|
54
|
+
raise ArgumentError, 'Missing ARN bucket name.'
|
50
55
|
end
|
51
56
|
|
52
57
|
if @extra
|
53
58
|
raise ArgumentError,
|
54
|
-
'ARN
|
59
|
+
'ARN Outpost bucket must be a single value.'
|
55
60
|
end
|
56
61
|
|
57
62
|
unless Seahorse::Util.host_label?(@outpost_id)
|
@@ -64,11 +69,11 @@ module Aws
|
|
64
69
|
end
|
65
70
|
|
66
71
|
# Outpost Bucket ARNs currently do not support dualstack
|
67
|
-
def host_url(region, _dualstack = false, custom_endpoint = nil)
|
72
|
+
def host_url(region, fips = false, _dualstack = false, custom_endpoint = nil)
|
68
73
|
if custom_endpoint
|
69
74
|
custom_endpoint
|
70
75
|
else
|
71
|
-
"s3-outposts.#{region}.amazonaws.com"
|
76
|
+
"s3-outposts#{'-fips' if fips}.#{region}.amazonaws.com"
|
72
77
|
end
|
73
78
|
end
|
74
79
|
end
|
@@ -287,9 +287,14 @@ module Aws::S3Control
|
|
287
287
|
# ** Please note ** When response stubbing is enabled, no HTTP
|
288
288
|
# requests are made, and retries are disabled.
|
289
289
|
#
|
290
|
-
# @option options [Boolean] :use_dualstack_endpoint
|
291
|
-
# When set to `true`,
|
292
|
-
#
|
290
|
+
# @option options [Boolean] :use_dualstack_endpoint
|
291
|
+
# When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
|
292
|
+
# will be used if available.
|
293
|
+
#
|
294
|
+
# @option options [Boolean] :use_fips_endpoint
|
295
|
+
# When set to `true`, fips compatible endpoints will be used if available.
|
296
|
+
# When a `fips` region is used, the region is normalized and this config
|
297
|
+
# is set to `true`.
|
293
298
|
#
|
294
299
|
# @option options [Boolean] :validate_params (true)
|
295
300
|
# When `true`, request parameters are validated before
|
@@ -4652,7 +4657,7 @@ module Aws::S3Control
|
|
4652
4657
|
params: params,
|
4653
4658
|
config: config)
|
4654
4659
|
context[:gem_name] = 'aws-sdk-s3control'
|
4655
|
-
context[:gem_version] = '1.
|
4660
|
+
context[:gem_version] = '1.42.0'
|
4656
4661
|
Seahorse::Client::Request.new(handlers, context)
|
4657
4662
|
end
|
4658
4663
|
|
@@ -39,6 +39,7 @@ client's region instead.
|
|
39
39
|
context.http_request.endpoint,
|
40
40
|
context.metadata[:s3_arn][:arn],
|
41
41
|
context.metadata[:s3_arn][:resolved_region],
|
42
|
+
context.metadata[:s3_arn][:fips],
|
42
43
|
context.metadata[:s3_arn][:dualstack],
|
43
44
|
# if regional_endpoint is false, a custom endpoint was provided
|
44
45
|
# in this case, we want to prefix the endpoint using the ARN
|
@@ -78,6 +79,7 @@ client's region instead.
|
|
78
79
|
context.metadata[:s3_arn] = {
|
79
80
|
arn: arn,
|
80
81
|
resolved_region: resolved_region,
|
82
|
+
fips: context.config.use_fips_endpoint,
|
81
83
|
dualstack: extract_dualstack_config!(context)
|
82
84
|
}
|
83
85
|
end
|
@@ -121,8 +123,8 @@ client's region instead.
|
|
121
123
|
def validate_config!(context, arn)
|
122
124
|
if !arn.support_dualstack? && context[:use_dualstack_endpoint]
|
123
125
|
raise ArgumentError,
|
124
|
-
'Cannot provide an Outpost Access Point ARN
|
125
|
-
'`:use_dualstack_endpoint` is set to true.'
|
126
|
+
'Cannot provide an Outpost Access Point or Bucket ARN '\
|
127
|
+
'when `:use_dualstack_endpoint` is set to true.'
|
126
128
|
end
|
127
129
|
end
|
128
130
|
|
@@ -165,9 +167,9 @@ client's region instead.
|
|
165
167
|
end
|
166
168
|
|
167
169
|
# @api private
|
168
|
-
def resolve_url!(url, arn, region, dualstack = false, has_custom_endpoint = false)
|
170
|
+
def resolve_url!(url, arn, region, fips = false, dualstack = false, has_custom_endpoint = false)
|
169
171
|
custom_endpoint = url.host if has_custom_endpoint
|
170
|
-
url.host = arn.host_url(region, dualstack, custom_endpoint)
|
172
|
+
url.host = arn.host_url(region, fips, dualstack, custom_endpoint)
|
171
173
|
url
|
172
174
|
end
|
173
175
|
|
@@ -189,35 +191,13 @@ client's region instead.
|
|
189
191
|
end
|
190
192
|
|
191
193
|
def validate_region_config!(arn, region, use_arn_region)
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
unless arn.partition == 'aws' &&
|
197
|
-
(region == 's3-external-1' || region == 'aws-global')
|
198
|
-
if !fips && arn.region.include?('fips')
|
199
|
-
raise ArgumentError,
|
200
|
-
'FIPS region ARNs are not supported for this type of ARN.'
|
201
|
-
end
|
202
|
-
|
203
|
-
if !fips && !use_arn_region && region.include?('fips')
|
204
|
-
raise ArgumentError,
|
205
|
-
'FIPS client regions are not supported for this type of '\
|
206
|
-
'ARN without `:s3_use_arn_region`.'
|
207
|
-
end
|
208
|
-
|
209
|
-
# if it's a fips region, attempt to normalize it
|
210
|
-
if fips || use_arn_region
|
211
|
-
region = region.gsub('fips-', '').gsub('-fips', '')
|
212
|
-
end
|
213
|
-
if use_arn_region &&
|
214
|
-
!Aws::Partitions.partition(arn.partition).region?(region)
|
215
|
-
raise Aws::Errors::InvalidARNPartitionError
|
216
|
-
end
|
194
|
+
if use_arn_region &&
|
195
|
+
!Aws::Partitions.partition(arn.partition).region?(region)
|
196
|
+
raise Aws::Errors::InvalidARNPartitionError
|
197
|
+
end
|
217
198
|
|
218
|
-
|
219
|
-
|
220
|
-
end
|
199
|
+
if !use_arn_region && region != arn.region
|
200
|
+
raise Aws::Errors::InvalidARNRegionError
|
221
201
|
end
|
222
202
|
end
|
223
203
|
end
|
@@ -5,15 +5,6 @@ module Aws
|
|
5
5
|
module Plugins
|
6
6
|
# @api private
|
7
7
|
class Dualstack < Seahorse::Client::Plugin
|
8
|
-
|
9
|
-
option(:use_dualstack_endpoint,
|
10
|
-
default: false,
|
11
|
-
doc_type: 'Boolean',
|
12
|
-
docstring: <<-DOCS)
|
13
|
-
When set to `true`, IPv6-compatible bucket endpoints will be used
|
14
|
-
for all operations.
|
15
|
-
DOCS
|
16
|
-
|
17
8
|
def add_handlers(handlers, config)
|
18
9
|
handlers.add(OptionHandler, step: :initialize)
|
19
10
|
handlers.add(DualstackHandler, step: :build, priority: 11)
|
@@ -40,23 +31,22 @@ for all operations.
|
|
40
31
|
# @api private
|
41
32
|
class DualstackHandler < Seahorse::Client::Handler
|
42
33
|
def call(context)
|
43
|
-
if
|
44
|
-
|
34
|
+
# if it's a regional endpoint and not an ARN, then construct the
|
35
|
+
# endpoint. regional endpoint plugin uses the dualstack config
|
36
|
+
if context.config.regional_endpoint && !context.metadata[:s3_arn]
|
37
|
+
endpoint = Aws::Partitions::EndpointProvider.resolve(
|
38
|
+
context.config.region,
|
39
|
+
's3-control',
|
40
|
+
'regional',
|
41
|
+
{
|
42
|
+
dualstack: context[:use_dualstack_endpoint],
|
43
|
+
fips: context.config.use_fips_endpoint
|
44
|
+
}
|
45
|
+
)
|
46
|
+
context.http_request.endpoint = URI.parse(endpoint)
|
45
47
|
end
|
46
48
|
@handler.call(context)
|
47
49
|
end
|
48
|
-
|
49
|
-
private
|
50
|
-
def apply_dualstack_endpoint(context)
|
51
|
-
region = context.config.region
|
52
|
-
dns_suffix = Aws::Partitions::EndpointProvider.dns_suffix_for(region)
|
53
|
-
host = "s3-control.dualstack.#{region}.#{dns_suffix}"
|
54
|
-
endpoint = URI.parse(context.http_request.endpoint.to_s)
|
55
|
-
endpoint.scheme = context.http_request.endpoint.scheme
|
56
|
-
endpoint.port = context.http_request.endpoint.port
|
57
|
-
endpoint.host = host
|
58
|
-
context.http_request.endpoint = endpoint.to_s
|
59
|
-
end
|
60
50
|
end
|
61
51
|
|
62
52
|
end
|
@@ -54,8 +54,9 @@ module Aws
|
|
54
54
|
# outpost operations should go to the outposts endpoint only if
|
55
55
|
# it's not a custom endpoint. the ARN class changes this for ARNs
|
56
56
|
if context.config.regional_endpoint
|
57
|
+
fips = context.config.use_fips_endpoint
|
57
58
|
context.http_request.endpoint.host =
|
58
|
-
"s3-outposts.#{context.config.region}.amazonaws.com"
|
59
|
+
"s3-outposts#{'-fips' if fips}.#{context.config.region}.amazonaws.com"
|
59
60
|
end
|
60
61
|
S3ControlSigner.build_v4_signer(
|
61
62
|
service: 's3-outposts',
|
data/lib/aws-sdk-s3control.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-sdk-s3control
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.42.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
|
+
date: 2021-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sigv4
|
@@ -33,7 +33,7 @@ dependencies:
|
|
33
33
|
version: '3'
|
34
34
|
- - ">="
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 3.
|
36
|
+
version: 3.122.0
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '3'
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 3.
|
46
|
+
version: 3.122.0
|
47
47
|
description: Official AWS Ruby gem for AWS S3 Control. This gem is part of the AWS
|
48
48
|
SDK for Ruby.
|
49
49
|
email:
|