aws-sdk-s3 1.103.0 → 1.143.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +288 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +590 -100
  5. data/lib/aws-sdk-s3/bucket_acl.rb +28 -6
  6. data/lib/aws-sdk-s3/bucket_cors.rb +34 -10
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +38 -12
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +42 -12
  9. data/lib/aws-sdk-s3/bucket_logging.rb +35 -6
  10. data/lib/aws-sdk-s3/bucket_notification.rb +27 -9
  11. data/lib/aws-sdk-s3/bucket_policy.rb +78 -10
  12. data/lib/aws-sdk-s3/bucket_request_payment.rb +28 -6
  13. data/lib/aws-sdk-s3/bucket_tagging.rb +34 -10
  14. data/lib/aws-sdk-s3/bucket_versioning.rb +72 -14
  15. data/lib/aws-sdk-s3/bucket_website.rb +34 -10
  16. data/lib/aws-sdk-s3/client.rb +7917 -3171
  17. data/lib/aws-sdk-s3/client_api.rb +709 -224
  18. data/lib/aws-sdk-s3/customizations/bucket.rb +23 -47
  19. data/lib/aws-sdk-s3/customizations/errors.rb +27 -0
  20. data/lib/aws-sdk-s3/customizations/object.rb +171 -22
  21. data/lib/aws-sdk-s3/customizations/types/permanent_redirect.rb +26 -0
  22. data/lib/aws-sdk-s3/customizations.rb +7 -0
  23. data/lib/aws-sdk-s3/encryption/client.rb +6 -2
  24. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
  25. data/lib/aws-sdk-s3/encryptionV2/client.rb +6 -2
  26. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +1 -0
  27. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
  28. data/lib/aws-sdk-s3/endpoint_parameters.rb +178 -0
  29. data/lib/aws-sdk-s3/endpoint_provider.rb +591 -0
  30. data/lib/aws-sdk-s3/endpoints.rb +2590 -0
  31. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  32. data/lib/aws-sdk-s3/express_credentials_cache.rb +30 -0
  33. data/lib/aws-sdk-s3/express_credentials_provider.rb +36 -0
  34. data/lib/aws-sdk-s3/file_downloader.rb +170 -45
  35. data/lib/aws-sdk-s3/file_uploader.rb +11 -4
  36. data/lib/aws-sdk-s3/multipart_file_uploader.rb +26 -8
  37. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +41 -14
  38. data/lib/aws-sdk-s3/multipart_upload.rb +194 -19
  39. data/lib/aws-sdk-s3/multipart_upload_part.rb +280 -30
  40. data/lib/aws-sdk-s3/object.rb +1735 -266
  41. data/lib/aws-sdk-s3/object_acl.rb +49 -13
  42. data/lib/aws-sdk-s3/object_copier.rb +7 -5
  43. data/lib/aws-sdk-s3/object_multipart_copier.rb +41 -19
  44. data/lib/aws-sdk-s3/object_summary.rb +1497 -221
  45. data/lib/aws-sdk-s3/object_version.rb +365 -58
  46. data/lib/aws-sdk-s3/plugins/accelerate.rb +3 -44
  47. data/lib/aws-sdk-s3/plugins/arn.rb +0 -197
  48. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -39
  49. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
  50. data/lib/aws-sdk-s3/plugins/dualstack.rb +1 -55
  51. data/lib/aws-sdk-s3/plugins/endpoints.rb +274 -0
  52. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -1
  53. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +91 -0
  54. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +6 -29
  55. data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
  56. data/lib/aws-sdk-s3/plugins/md5s.rb +6 -3
  57. data/lib/aws-sdk-s3/plugins/s3_signer.rb +35 -109
  58. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
  59. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +23 -2
  60. data/lib/aws-sdk-s3/presigned_post.rb +99 -78
  61. data/lib/aws-sdk-s3/presigner.rb +26 -37
  62. data/lib/aws-sdk-s3/resource.rb +97 -3
  63. data/lib/aws-sdk-s3/types.rb +6618 -4880
  64. data/lib/aws-sdk-s3.rb +5 -1
  65. data/sig/bucket.rbs +212 -0
  66. data/sig/bucket_acl.rbs +78 -0
  67. data/sig/bucket_cors.rbs +69 -0
  68. data/sig/bucket_lifecycle.rbs +88 -0
  69. data/sig/bucket_lifecycle_configuration.rbs +111 -0
  70. data/sig/bucket_logging.rbs +76 -0
  71. data/sig/bucket_notification.rbs +114 -0
  72. data/sig/bucket_policy.rbs +59 -0
  73. data/sig/bucket_request_payment.rbs +54 -0
  74. data/sig/bucket_tagging.rbs +65 -0
  75. data/sig/bucket_versioning.rbs +77 -0
  76. data/sig/bucket_website.rbs +93 -0
  77. data/sig/client.rbs +2360 -0
  78. data/sig/errors.rbs +34 -0
  79. data/sig/multipart_upload.rbs +110 -0
  80. data/sig/multipart_upload_part.rbs +105 -0
  81. data/sig/object.rbs +436 -0
  82. data/sig/object_acl.rbs +86 -0
  83. data/sig/object_summary.rbs +334 -0
  84. data/sig/object_version.rbs +131 -0
  85. data/sig/resource.rbs +124 -0
  86. data/sig/types.rbs +2562 -0
  87. data/sig/waiters.rbs +83 -0
  88. metadata +45 -16
  89. data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -69
  90. data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +0 -69
  91. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +0 -69
  92. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -73
  93. data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +0 -25
data/sig/waiters.rbs ADDED
@@ -0,0 +1,83 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module S3
10
+ module Waiters
11
+
12
+ class BucketExists
13
+ def initialize: (?client: Client, ?max_attempts: Integer, ?delay: Integer, ?before_attempt: Proc, ?before_wait: Proc) -> void
14
+ | (?Hash[Symbol, untyped]) -> void
15
+
16
+ def wait: (
17
+ bucket: ::String,
18
+ ?expected_bucket_owner: ::String
19
+ ) -> Client::_HeadBucketResponseSuccess
20
+ | (Hash[Symbol, untyped]) -> Client::_HeadBucketResponseSuccess
21
+ end
22
+
23
+ class BucketNotExists
24
+ def initialize: (?client: Client, ?max_attempts: Integer, ?delay: Integer, ?before_attempt: Proc, ?before_wait: Proc) -> void
25
+ | (?Hash[Symbol, untyped]) -> void
26
+
27
+ def wait: (
28
+ bucket: ::String,
29
+ ?expected_bucket_owner: ::String
30
+ ) -> Client::_HeadBucketResponseSuccess
31
+ | (Hash[Symbol, untyped]) -> Client::_HeadBucketResponseSuccess
32
+ end
33
+
34
+ class ObjectExists
35
+ def initialize: (?client: Client, ?max_attempts: Integer, ?delay: Integer, ?before_attempt: Proc, ?before_wait: Proc) -> void
36
+ | (?Hash[Symbol, untyped]) -> void
37
+
38
+ def wait: (
39
+ bucket: ::String,
40
+ ?if_match: ::String,
41
+ ?if_modified_since: ::Time,
42
+ ?if_none_match: ::String,
43
+ ?if_unmodified_since: ::Time,
44
+ key: ::String,
45
+ ?range: ::String,
46
+ ?version_id: ::String,
47
+ ?sse_customer_algorithm: ::String,
48
+ ?sse_customer_key: ::String,
49
+ ?sse_customer_key_md5: ::String,
50
+ ?request_payer: ("requester"),
51
+ ?part_number: ::Integer,
52
+ ?expected_bucket_owner: ::String,
53
+ ?checksum_mode: ("ENABLED")
54
+ ) -> Client::_HeadObjectResponseSuccess
55
+ | (Hash[Symbol, untyped]) -> Client::_HeadObjectResponseSuccess
56
+ end
57
+
58
+ class ObjectNotExists
59
+ def initialize: (?client: Client, ?max_attempts: Integer, ?delay: Integer, ?before_attempt: Proc, ?before_wait: Proc) -> void
60
+ | (?Hash[Symbol, untyped]) -> void
61
+
62
+ def wait: (
63
+ bucket: ::String,
64
+ ?if_match: ::String,
65
+ ?if_modified_since: ::Time,
66
+ ?if_none_match: ::String,
67
+ ?if_unmodified_since: ::Time,
68
+ key: ::String,
69
+ ?range: ::String,
70
+ ?version_id: ::String,
71
+ ?sse_customer_algorithm: ::String,
72
+ ?sse_customer_key: ::String,
73
+ ?sse_customer_key_md5: ::String,
74
+ ?request_payer: ("requester"),
75
+ ?part_number: ::Integer,
76
+ ?expected_bucket_owner: ::String,
77
+ ?checksum_mode: ("ENABLED")
78
+ ) -> Client::_HeadObjectResponseSuccess
79
+ | (Hash[Symbol, untyped]) -> Client::_HeadObjectResponseSuccess
80
+ end
81
+ end
82
+ end
83
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.103.0
4
+ version: 1.143.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-16 00:00:00.000000000 Z
11
+ date: 2024-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-kms
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.4'
33
+ version: '1.8'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.4'
40
+ version: '1.8'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: aws-sdk-core
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -47,7 +47,7 @@ dependencies:
47
47
  version: '3'
48
48
  - - ">="
49
49
  - !ruby/object:Gem::Version
50
- version: 3.120.0
50
+ version: 3.191.0
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -57,7 +57,7 @@ dependencies:
57
57
  version: '3'
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 3.120.0
60
+ version: 3.191.0
61
61
  description: Official AWS Ruby gem for Amazon Simple Storage Service (Amazon S3).
62
62
  This gem is part of the AWS SDK for Ruby.
63
63
  email:
@@ -70,10 +70,6 @@ files:
70
70
  - LICENSE.txt
71
71
  - VERSION
72
72
  - lib/aws-sdk-s3.rb
73
- - lib/aws-sdk-s3/arn/access_point_arn.rb
74
- - lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb
75
- - lib/aws-sdk-s3/arn/object_lambda_arn.rb
76
- - lib/aws-sdk-s3/arn/outpost_access_point_arn.rb
77
73
  - lib/aws-sdk-s3/bucket.rb
78
74
  - lib/aws-sdk-s3/bucket_acl.rb
79
75
  - lib/aws-sdk-s3/bucket_cors.rb
@@ -91,10 +87,12 @@ files:
91
87
  - lib/aws-sdk-s3/client_api.rb
92
88
  - lib/aws-sdk-s3/customizations.rb
93
89
  - lib/aws-sdk-s3/customizations/bucket.rb
90
+ - lib/aws-sdk-s3/customizations/errors.rb
94
91
  - lib/aws-sdk-s3/customizations/multipart_upload.rb
95
92
  - lib/aws-sdk-s3/customizations/object.rb
96
93
  - lib/aws-sdk-s3/customizations/object_summary.rb
97
94
  - lib/aws-sdk-s3/customizations/types/list_object_versions_output.rb
95
+ - lib/aws-sdk-s3/customizations/types/permanent_redirect.rb
98
96
  - lib/aws-sdk-s3/encryption.rb
99
97
  - lib/aws-sdk-s3/encryption/client.rb
100
98
  - lib/aws-sdk-s3/encryption/decrypt_handler.rb
@@ -123,8 +121,14 @@ files:
123
121
  - lib/aws-sdk-s3/encryptionV2/materials.rb
124
122
  - lib/aws-sdk-s3/encryptionV2/utils.rb
125
123
  - lib/aws-sdk-s3/encryption_v2.rb
124
+ - lib/aws-sdk-s3/endpoint_parameters.rb
125
+ - lib/aws-sdk-s3/endpoint_provider.rb
126
+ - lib/aws-sdk-s3/endpoints.rb
126
127
  - lib/aws-sdk-s3/errors.rb
127
128
  - lib/aws-sdk-s3/event_streams.rb
129
+ - lib/aws-sdk-s3/express_credentials.rb
130
+ - lib/aws-sdk-s3/express_credentials_cache.rb
131
+ - lib/aws-sdk-s3/express_credentials_provider.rb
128
132
  - lib/aws-sdk-s3/file_downloader.rb
129
133
  - lib/aws-sdk-s3/file_part.rb
130
134
  - lib/aws-sdk-s3/file_uploader.rb
@@ -145,16 +149,18 @@ files:
145
149
  - lib/aws-sdk-s3/plugins/bucket_dns.rb
146
150
  - lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb
147
151
  - lib/aws-sdk-s3/plugins/dualstack.rb
152
+ - lib/aws-sdk-s3/plugins/endpoints.rb
148
153
  - lib/aws-sdk-s3/plugins/expect_100_continue.rb
154
+ - lib/aws-sdk-s3/plugins/express_session_auth.rb
149
155
  - lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb
150
156
  - lib/aws-sdk-s3/plugins/http_200_errors.rb
151
157
  - lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb
152
158
  - lib/aws-sdk-s3/plugins/location_constraint.rb
153
159
  - lib/aws-sdk-s3/plugins/md5s.rb
154
- - lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb
155
160
  - lib/aws-sdk-s3/plugins/redirects.rb
156
161
  - lib/aws-sdk-s3/plugins/s3_host_id.rb
157
162
  - lib/aws-sdk-s3/plugins/s3_signer.rb
163
+ - lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb
158
164
  - lib/aws-sdk-s3/plugins/sse_cpk.rb
159
165
  - lib/aws-sdk-s3/plugins/streaming_retry.rb
160
166
  - lib/aws-sdk-s3/plugins/url_encoded_keys.rb
@@ -163,13 +169,36 @@ files:
163
169
  - lib/aws-sdk-s3/resource.rb
164
170
  - lib/aws-sdk-s3/types.rb
165
171
  - lib/aws-sdk-s3/waiters.rb
172
+ - sig/bucket.rbs
173
+ - sig/bucket_acl.rbs
174
+ - sig/bucket_cors.rbs
175
+ - sig/bucket_lifecycle.rbs
176
+ - sig/bucket_lifecycle_configuration.rbs
177
+ - sig/bucket_logging.rbs
178
+ - sig/bucket_notification.rbs
179
+ - sig/bucket_policy.rbs
180
+ - sig/bucket_request_payment.rbs
181
+ - sig/bucket_tagging.rbs
182
+ - sig/bucket_versioning.rbs
183
+ - sig/bucket_website.rbs
184
+ - sig/client.rbs
185
+ - sig/errors.rbs
186
+ - sig/multipart_upload.rbs
187
+ - sig/multipart_upload_part.rbs
188
+ - sig/object.rbs
189
+ - sig/object_acl.rbs
190
+ - sig/object_summary.rbs
191
+ - sig/object_version.rbs
192
+ - sig/resource.rbs
193
+ - sig/types.rbs
194
+ - sig/waiters.rbs
166
195
  homepage: https://github.com/aws/aws-sdk-ruby
167
196
  licenses:
168
197
  - Apache-2.0
169
198
  metadata:
170
199
  source_code_uri: https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-s3
171
200
  changelog_uri: https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-s3/CHANGELOG.md
172
- post_install_message:
201
+ post_install_message:
173
202
  rdoc_options: []
174
203
  require_paths:
175
204
  - lib
@@ -177,15 +206,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
206
  requirements:
178
207
  - - ">="
179
208
  - !ruby/object:Gem::Version
180
- version: '2.3'
209
+ version: '2.5'
181
210
  required_rubygems_version: !ruby/object:Gem::Requirement
182
211
  requirements:
183
212
  - - ">="
184
213
  - !ruby/object:Gem::Version
185
214
  version: '0'
186
215
  requirements: []
187
- rubygems_version: 3.1.6
188
- signing_key:
216
+ rubygems_version: 3.4.10
217
+ signing_key:
189
218
  specification_version: 4
190
219
  summary: AWS SDK for Ruby - Amazon S3
191
220
  test_files: []
@@ -1,69 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Aws
4
- module S3
5
- # @api private
6
- class AccessPointARN < Aws::ARN
7
- def initialize(options)
8
- super(options)
9
- @type, @access_point_name, @extra = @resource.split(/[:,\/]/)
10
- end
11
-
12
- def support_dualstack?
13
- true
14
- end
15
-
16
- def support_fips?
17
- true
18
- end
19
-
20
- def validate_arn!
21
- unless @service == 's3'
22
- raise ArgumentError, 'Must provide a valid S3 Access Point ARN.'
23
- end
24
-
25
- if @region.empty? || @account_id.empty?
26
- raise ArgumentError,
27
- 'S3 Access Point ARNs must contain both a region '\
28
- 'and an account id.'
29
- end
30
-
31
- if @region.include?('-fips') || @region.include?('fips-')
32
- raise ArgumentError,
33
- 'S3 Access Point ARNs cannot contain a FIPS region'
34
- end
35
-
36
- if @type != 'accesspoint'
37
- raise ArgumentError, 'Invalid ARN, resource format is not correct'
38
- end
39
-
40
- if @access_point_name.nil? || @access_point_name.empty?
41
- raise ArgumentError, 'Missing ARN accesspoint name.'
42
- end
43
-
44
- if @extra
45
- raise ArgumentError,
46
- 'ARN accesspoint resource must be a single value.'
47
- end
48
-
49
- unless Seahorse::Util.host_label?(
50
- "#{@access_point_name}-#{@account_id}"
51
- )
52
- raise ArgumentError,
53
- "#{@access_point_name}-#{@account_id} is not a valid "\
54
- 'host label.'
55
- end
56
- end
57
-
58
- def host_url(region, fips = false, dualstack = false, custom_endpoint = nil)
59
- pfx = "#{@access_point_name}-#{@account_id}"
60
- if custom_endpoint
61
- "#{pfx}.#{custom_endpoint}"
62
- else
63
- sfx = Aws::Partitions::EndpointProvider.dns_suffix_for(region)
64
- "#{pfx}.s3-accesspoint#{'-fips' if fips}#{'.dualstack' if dualstack}.#{region}.#{sfx}"
65
- end
66
- end
67
- end
68
- end
69
- end
@@ -1,69 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Aws
4
- module S3
5
- # @api private
6
- class MultiRegionAccessPointARN < Aws::ARN
7
- def initialize(options)
8
- super(options)
9
- @type, @mrap_alias, @extra = @resource.split(/[:,\/]/)
10
- end
11
-
12
- attr_reader :mrap_alias
13
-
14
- def support_dualstack?
15
- false
16
- end
17
-
18
- def support_fips?
19
- false
20
- end
21
-
22
- def validate_arn!
23
- unless @service == 's3'
24
- raise ArgumentError,
25
- 'Must provide a valid S3 multi-region access point ARN.'
26
- end
27
-
28
- if @account_id.empty?
29
- raise ArgumentError,
30
- 'S3 multi-region access point ARNs must contain '\
31
- 'an account id.'
32
- end
33
-
34
- unless @region.empty?
35
- raise ArgumentError,
36
- 'Multi-region access points must have an empty region.'
37
- end
38
-
39
- if @type != 'accesspoint'
40
- raise ArgumentError, 'Invalid ARN, resource format is not correct'
41
- end
42
-
43
- if @mrap_alias.nil? || @mrap_alias.empty?
44
- raise ArgumentError, 'Missing ARN multi-region access points alias.'
45
- end
46
-
47
- unless @mrap_alias.split('.').all? { |s| Seahorse::Util.host_label?(s) }
48
- raise ArgumentError, "#{@mrap_alias} is not a valid "\
49
- 'multi region access point alias.'
50
- end
51
-
52
- if @extra
53
- raise ArgumentError,
54
- 'ARN access point resource must be a single value.'
55
- end
56
- end
57
-
58
- def host_url(region, fips = false, dualstack = false, custom_endpoint = nil)
59
- if custom_endpoint
60
- "#{@mrap_alias}.#{custom_endpoint}"
61
- else
62
-
63
- sfx = Aws::Partitions::EndpointProvider.dns_suffix_for(@partition)
64
- "#{@mrap_alias}.accesspoint.s3-global.#{sfx}"
65
- end
66
- end
67
- end
68
- end
69
- end
@@ -1,69 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Aws
4
- module S3
5
- # @api private
6
- class ObjectLambdaARN < Aws::ARN
7
- def initialize(options)
8
- super(options)
9
- @type, @access_point_name, @extra = @resource.split(/[:,\/]/)
10
- end
11
-
12
- def support_dualstack?
13
- false
14
- end
15
-
16
- def support_fips?
17
- true
18
- end
19
-
20
- def validate_arn!
21
- unless @service == 's3-object-lambda'
22
- raise ArgumentError, 'Must provide a valid S3 Object Lambdas ARN.'
23
- end
24
-
25
- if @region.empty? || @account_id.empty?
26
- raise ArgumentError,
27
- 'S3 Object Lambdas ARNs must contain both a region '\
28
- 'and an account id.'
29
- end
30
-
31
- if @region.include?('-fips') || @region.include?('fips-')
32
- raise ArgumentError,
33
- 'S3 Access Point ARNs cannot contain a FIPS region'
34
- end
35
-
36
- if @type != 'accesspoint'
37
- raise ArgumentError, 'Invalid ARN, resource format is not correct.'
38
- end
39
-
40
- if @access_point_name.nil? || @access_point_name.empty?
41
- raise ArgumentError, 'Missing ARN accesspoint name.'
42
- end
43
-
44
- if @extra
45
- raise ArgumentError,
46
- 'ARN accesspoint resource must be a single value.'
47
- end
48
-
49
- unless Seahorse::Util.host_label?(
50
- "#{@access_point_name}-#{@account_id}"
51
- )
52
- raise ArgumentError,
53
- "#{@access_point_name}-#{@account_id} is not a valid "\
54
- 'host label.'
55
- end
56
- end
57
-
58
- def host_url(region, fips = false, _dualstack = false, custom_endpoint = nil)
59
- pfx = "#{@access_point_name}-#{@account_id}"
60
- if custom_endpoint
61
- "#{pfx}.#{custom_endpoint}"
62
- else
63
- sfx = Aws::Partitions::EndpointProvider.dns_suffix_for(region)
64
- "#{pfx}.s3-object-lambda#{'-fips' if fips}.#{region}.#{sfx}"
65
- end
66
- end
67
- end
68
- end
69
- end
@@ -1,73 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Aws
4
- module S3
5
- # @api private
6
- class OutpostAccessPointARN < Aws::ARN
7
- def initialize(options)
8
- super(options)
9
- @type, @outpost_id, @subtype, @access_point_name, @extra =
10
- @resource.split(/[:,\/]/)
11
- end
12
-
13
- def support_dualstack?
14
- false
15
- end
16
-
17
- def support_fips?
18
- false
19
- end
20
-
21
- def validate_arn!
22
- unless @service == 's3-outposts'
23
- raise ArgumentError, 'Must provide a valid S3 Outposts ARN.'
24
- end
25
-
26
- if @region.empty? || @account_id.empty?
27
- raise ArgumentError,
28
- 'S3 Outpost ARNs must contain both a region '\
29
- 'and an account id.'
30
- end
31
-
32
- if @type != 'outpost' && @subtype != 'accesspoint'
33
- raise ArgumentError, 'Invalid ARN, resource format is not correct.'
34
- end
35
-
36
- if @outpost_id.nil? || @outpost_id.empty?
37
- raise ArgumentError, 'Missing ARN outpost id.'
38
- end
39
-
40
- if @access_point_name.nil? || @access_point_name.empty?
41
- raise ArgumentError, 'Missing ARN accesspoint name.'
42
- end
43
-
44
- if @extra
45
- raise ArgumentError,
46
- 'ARN accesspoint resource must be a single value.'
47
- end
48
-
49
- unless Seahorse::Util.host_label?(
50
- "#{@access_point_name}-#{@account_id}"
51
- )
52
- raise ArgumentError,
53
- "#{@access_point_name}-#{@account_id} is not a valid "\
54
- 'host label.'
55
- end
56
-
57
- unless Seahorse::Util.host_label?(@outpost_id)
58
- raise ArgumentError, "#{@outpost_id} is not a valid host label."
59
- end
60
- end
61
-
62
- # Outpost ARNs currently do not support dualstack
63
- def host_url(region, _fips = false, _dualstack = false, custom_endpoint = nil)
64
- pfx = "#{@access_point_name}-#{@account_id}.#{@outpost_id}"
65
- if custom_endpoint
66
- "#{pfx}.#{custom_endpoint}"
67
- else
68
- "#{pfx}.s3-outposts.#{region}.amazonaws.com"
69
- end
70
- end
71
- end
72
- end
73
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Aws
4
- module S3
5
- module Plugins
6
- # WriteGetObjectResponse is called from Lambda after a data transform.
7
- # If there is no custom endpoint, we change the endpoint from s3 to
8
- # s3-object-lambda just for this operation.
9
- class ObjectLambdaEndpoint < Seahorse::Client::Plugin
10
- class Handler < Seahorse::Client::Handler
11
- def call(context)
12
- if context.config.regional_endpoint
13
- host = context.http_request.endpoint.host
14
- host = host.sub('s3.', 's3-object-lambda.')
15
- context.http_request.endpoint.host = host
16
- end
17
- @handler.call(context)
18
- end
19
- end
20
-
21
- handler(Handler, operations: [:write_get_object_response])
22
- end
23
- end
24
- end
25
- end