aws-sdk-s3 1.109.0 → 1.156.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.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +352 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/access_grants_credentials.rb +57 -0
  5. data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +241 -0
  6. data/lib/aws-sdk-s3/bucket.rb +585 -110
  7. data/lib/aws-sdk-s3/bucket_acl.rb +28 -6
  8. data/lib/aws-sdk-s3/bucket_cors.rb +34 -10
  9. data/lib/aws-sdk-s3/bucket_lifecycle.rb +34 -10
  10. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +34 -10
  11. data/lib/aws-sdk-s3/bucket_logging.rb +35 -6
  12. data/lib/aws-sdk-s3/bucket_notification.rb +12 -6
  13. data/lib/aws-sdk-s3/bucket_policy.rb +78 -10
  14. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  15. data/lib/aws-sdk-s3/bucket_request_payment.rb +28 -6
  16. data/lib/aws-sdk-s3/bucket_tagging.rb +34 -10
  17. data/lib/aws-sdk-s3/bucket_versioning.rb +72 -14
  18. data/lib/aws-sdk-s3/bucket_website.rb +34 -10
  19. data/lib/aws-sdk-s3/client.rb +7900 -3252
  20. data/lib/aws-sdk-s3/client_api.rb +706 -228
  21. data/lib/aws-sdk-s3/customizations/bucket.rb +23 -47
  22. data/lib/aws-sdk-s3/customizations/errors.rb +40 -0
  23. data/lib/aws-sdk-s3/customizations/object.rb +97 -21
  24. data/lib/aws-sdk-s3/customizations/types/permanent_redirect.rb +26 -0
  25. data/lib/aws-sdk-s3/customizations.rb +10 -0
  26. data/lib/aws-sdk-s3/encryption/client.rb +6 -2
  27. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
  28. data/lib/aws-sdk-s3/encryptionV2/client.rb +6 -2
  29. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +1 -0
  30. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
  31. data/lib/aws-sdk-s3/endpoint_parameters.rb +186 -0
  32. data/lib/aws-sdk-s3/endpoint_provider.rb +592 -0
  33. data/lib/aws-sdk-s3/endpoints.rb +2689 -0
  34. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  35. data/lib/aws-sdk-s3/express_credentials_provider.rb +59 -0
  36. data/lib/aws-sdk-s3/file_downloader.rb +170 -45
  37. data/lib/aws-sdk-s3/file_uploader.rb +11 -4
  38. data/lib/aws-sdk-s3/multipart_file_uploader.rb +30 -11
  39. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +46 -17
  40. data/lib/aws-sdk-s3/multipart_upload.rb +194 -19
  41. data/lib/aws-sdk-s3/multipart_upload_part.rb +280 -30
  42. data/lib/aws-sdk-s3/object.rb +1753 -266
  43. data/lib/aws-sdk-s3/object_acl.rb +49 -13
  44. data/lib/aws-sdk-s3/object_copier.rb +7 -5
  45. data/lib/aws-sdk-s3/object_multipart_copier.rb +46 -22
  46. data/lib/aws-sdk-s3/object_summary.rb +1497 -221
  47. data/lib/aws-sdk-s3/object_version.rb +383 -58
  48. data/lib/aws-sdk-s3/plugins/accelerate.rb +3 -50
  49. data/lib/aws-sdk-s3/plugins/access_grants.rb +114 -0
  50. data/lib/aws-sdk-s3/plugins/arn.rb +0 -184
  51. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -39
  52. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
  53. data/lib/aws-sdk-s3/plugins/dualstack.rb +1 -49
  54. data/lib/aws-sdk-s3/plugins/endpoints.rb +274 -0
  55. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -1
  56. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +97 -0
  57. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +53 -16
  58. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +6 -29
  59. data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
  60. data/lib/aws-sdk-s3/plugins/md5s.rb +6 -3
  61. data/lib/aws-sdk-s3/plugins/s3_signer.rb +42 -126
  62. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
  63. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +23 -2
  64. data/lib/aws-sdk-s3/presigned_post.rb +99 -78
  65. data/lib/aws-sdk-s3/presigner.rb +28 -37
  66. data/lib/aws-sdk-s3/resource.rb +89 -13
  67. data/lib/aws-sdk-s3/types.rb +6544 -4909
  68. data/lib/aws-sdk-s3.rb +5 -1
  69. data/sig/bucket.rbs +212 -0
  70. data/sig/bucket_acl.rbs +78 -0
  71. data/sig/bucket_cors.rbs +69 -0
  72. data/sig/bucket_lifecycle.rbs +88 -0
  73. data/sig/bucket_lifecycle_configuration.rbs +111 -0
  74. data/sig/bucket_logging.rbs +76 -0
  75. data/sig/bucket_notification.rbs +114 -0
  76. data/sig/bucket_policy.rbs +59 -0
  77. data/sig/bucket_request_payment.rbs +54 -0
  78. data/sig/bucket_tagging.rbs +65 -0
  79. data/sig/bucket_versioning.rbs +77 -0
  80. data/sig/bucket_website.rbs +93 -0
  81. data/sig/client.rbs +2381 -0
  82. data/sig/customizations/bucket.rbs +19 -0
  83. data/sig/customizations/object.rbs +38 -0
  84. data/sig/customizations/object_summary.rbs +35 -0
  85. data/sig/errors.rbs +34 -0
  86. data/sig/multipart_upload.rbs +110 -0
  87. data/sig/multipart_upload_part.rbs +105 -0
  88. data/sig/object.rbs +442 -0
  89. data/sig/object_acl.rbs +86 -0
  90. data/sig/object_summary.rbs +334 -0
  91. data/sig/object_version.rbs +137 -0
  92. data/sig/resource.rbs +127 -0
  93. data/sig/types.rbs +2568 -0
  94. data/sig/waiters.rbs +95 -0
  95. metadata +50 -16
  96. data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -69
  97. data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +0 -68
  98. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +0 -69
  99. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -74
  100. data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +0 -25
data/sig/waiters.rbs ADDED
@@ -0,0 +1,95 @@
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
+ ?response_cache_control: ::String,
47
+ ?response_content_disposition: ::String,
48
+ ?response_content_encoding: ::String,
49
+ ?response_content_language: ::String,
50
+ ?response_content_type: ::String,
51
+ ?response_expires: ::Time,
52
+ ?version_id: ::String,
53
+ ?sse_customer_algorithm: ::String,
54
+ ?sse_customer_key: ::String,
55
+ ?sse_customer_key_md5: ::String,
56
+ ?request_payer: ("requester"),
57
+ ?part_number: ::Integer,
58
+ ?expected_bucket_owner: ::String,
59
+ ?checksum_mode: ("ENABLED")
60
+ ) -> Client::_HeadObjectResponseSuccess
61
+ | (Hash[Symbol, untyped]) -> Client::_HeadObjectResponseSuccess
62
+ end
63
+
64
+ class ObjectNotExists
65
+ def initialize: (?client: Client, ?max_attempts: Integer, ?delay: Integer, ?before_attempt: Proc, ?before_wait: Proc) -> void
66
+ | (?Hash[Symbol, untyped]) -> void
67
+
68
+ def wait: (
69
+ bucket: ::String,
70
+ ?if_match: ::String,
71
+ ?if_modified_since: ::Time,
72
+ ?if_none_match: ::String,
73
+ ?if_unmodified_since: ::Time,
74
+ key: ::String,
75
+ ?range: ::String,
76
+ ?response_cache_control: ::String,
77
+ ?response_content_disposition: ::String,
78
+ ?response_content_encoding: ::String,
79
+ ?response_content_language: ::String,
80
+ ?response_content_type: ::String,
81
+ ?response_expires: ::Time,
82
+ ?version_id: ::String,
83
+ ?sse_customer_algorithm: ::String,
84
+ ?sse_customer_key: ::String,
85
+ ?sse_customer_key_md5: ::String,
86
+ ?request_payer: ("requester"),
87
+ ?part_number: ::Integer,
88
+ ?expected_bucket_owner: ::String,
89
+ ?checksum_mode: ("ENABLED")
90
+ ) -> Client::_HeadObjectResponseSuccess
91
+ | (Hash[Symbol, untyped]) -> Client::_HeadObjectResponseSuccess
92
+ end
93
+ end
94
+ end
95
+ 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.109.0
4
+ version: 1.156.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-11-30 00:00:00.000000000 Z
11
+ date: 2024-07-02 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.5'
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.5'
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.122.0
50
+ version: 3.201.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.122.0
60
+ version: 3.201.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,8 @@ 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
73
+ - lib/aws-sdk-s3/access_grants_credentials.rb
74
+ - lib/aws-sdk-s3/access_grants_credentials_provider.rb
77
75
  - lib/aws-sdk-s3/bucket.rb
78
76
  - lib/aws-sdk-s3/bucket_acl.rb
79
77
  - lib/aws-sdk-s3/bucket_cors.rb
@@ -91,10 +89,12 @@ files:
91
89
  - lib/aws-sdk-s3/client_api.rb
92
90
  - lib/aws-sdk-s3/customizations.rb
93
91
  - lib/aws-sdk-s3/customizations/bucket.rb
92
+ - lib/aws-sdk-s3/customizations/errors.rb
94
93
  - lib/aws-sdk-s3/customizations/multipart_upload.rb
95
94
  - lib/aws-sdk-s3/customizations/object.rb
96
95
  - lib/aws-sdk-s3/customizations/object_summary.rb
97
96
  - lib/aws-sdk-s3/customizations/types/list_object_versions_output.rb
97
+ - lib/aws-sdk-s3/customizations/types/permanent_redirect.rb
98
98
  - lib/aws-sdk-s3/encryption.rb
99
99
  - lib/aws-sdk-s3/encryption/client.rb
100
100
  - lib/aws-sdk-s3/encryption/decrypt_handler.rb
@@ -123,8 +123,13 @@ files:
123
123
  - lib/aws-sdk-s3/encryptionV2/materials.rb
124
124
  - lib/aws-sdk-s3/encryptionV2/utils.rb
125
125
  - lib/aws-sdk-s3/encryption_v2.rb
126
+ - lib/aws-sdk-s3/endpoint_parameters.rb
127
+ - lib/aws-sdk-s3/endpoint_provider.rb
128
+ - lib/aws-sdk-s3/endpoints.rb
126
129
  - lib/aws-sdk-s3/errors.rb
127
130
  - lib/aws-sdk-s3/event_streams.rb
131
+ - lib/aws-sdk-s3/express_credentials.rb
132
+ - lib/aws-sdk-s3/express_credentials_provider.rb
128
133
  - lib/aws-sdk-s3/file_downloader.rb
129
134
  - lib/aws-sdk-s3/file_part.rb
130
135
  - lib/aws-sdk-s3/file_uploader.rb
@@ -141,20 +146,23 @@ files:
141
146
  - lib/aws-sdk-s3/object_summary.rb
142
147
  - lib/aws-sdk-s3/object_version.rb
143
148
  - lib/aws-sdk-s3/plugins/accelerate.rb
149
+ - lib/aws-sdk-s3/plugins/access_grants.rb
144
150
  - lib/aws-sdk-s3/plugins/arn.rb
145
151
  - lib/aws-sdk-s3/plugins/bucket_dns.rb
146
152
  - lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb
147
153
  - lib/aws-sdk-s3/plugins/dualstack.rb
154
+ - lib/aws-sdk-s3/plugins/endpoints.rb
148
155
  - lib/aws-sdk-s3/plugins/expect_100_continue.rb
156
+ - lib/aws-sdk-s3/plugins/express_session_auth.rb
149
157
  - lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb
150
158
  - lib/aws-sdk-s3/plugins/http_200_errors.rb
151
159
  - lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb
152
160
  - lib/aws-sdk-s3/plugins/location_constraint.rb
153
161
  - lib/aws-sdk-s3/plugins/md5s.rb
154
- - lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb
155
162
  - lib/aws-sdk-s3/plugins/redirects.rb
156
163
  - lib/aws-sdk-s3/plugins/s3_host_id.rb
157
164
  - lib/aws-sdk-s3/plugins/s3_signer.rb
165
+ - lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb
158
166
  - lib/aws-sdk-s3/plugins/sse_cpk.rb
159
167
  - lib/aws-sdk-s3/plugins/streaming_retry.rb
160
168
  - lib/aws-sdk-s3/plugins/url_encoded_keys.rb
@@ -163,13 +171,39 @@ files:
163
171
  - lib/aws-sdk-s3/resource.rb
164
172
  - lib/aws-sdk-s3/types.rb
165
173
  - lib/aws-sdk-s3/waiters.rb
174
+ - sig/bucket.rbs
175
+ - sig/bucket_acl.rbs
176
+ - sig/bucket_cors.rbs
177
+ - sig/bucket_lifecycle.rbs
178
+ - sig/bucket_lifecycle_configuration.rbs
179
+ - sig/bucket_logging.rbs
180
+ - sig/bucket_notification.rbs
181
+ - sig/bucket_policy.rbs
182
+ - sig/bucket_request_payment.rbs
183
+ - sig/bucket_tagging.rbs
184
+ - sig/bucket_versioning.rbs
185
+ - sig/bucket_website.rbs
186
+ - sig/client.rbs
187
+ - sig/customizations/bucket.rbs
188
+ - sig/customizations/object.rbs
189
+ - sig/customizations/object_summary.rbs
190
+ - sig/errors.rbs
191
+ - sig/multipart_upload.rbs
192
+ - sig/multipart_upload_part.rbs
193
+ - sig/object.rbs
194
+ - sig/object_acl.rbs
195
+ - sig/object_summary.rbs
196
+ - sig/object_version.rbs
197
+ - sig/resource.rbs
198
+ - sig/types.rbs
199
+ - sig/waiters.rbs
166
200
  homepage: https://github.com/aws/aws-sdk-ruby
167
201
  licenses:
168
202
  - Apache-2.0
169
203
  metadata:
170
204
  source_code_uri: https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-s3
171
205
  changelog_uri: https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-s3/CHANGELOG.md
172
- post_install_message:
206
+ post_install_message:
173
207
  rdoc_options: []
174
208
  require_paths:
175
209
  - lib
@@ -177,15 +211,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
211
  requirements:
178
212
  - - ">="
179
213
  - !ruby/object:Gem::Version
180
- version: '2.3'
214
+ version: '2.5'
181
215
  required_rubygems_version: !ruby/object:Gem::Requirement
182
216
  requirements:
183
217
  - - ">="
184
218
  - !ruby/object:Gem::Version
185
219
  version: '0'
186
220
  requirements: []
187
- rubygems_version: 3.1.6
188
- signing_key:
221
+ rubygems_version: 3.4.10
222
+ signing_key:
189
223
  specification_version: 4
190
224
  summary: AWS SDK for Ruby - Amazon S3
191
225
  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 Access Point name.'
42
- end
43
-
44
- if @extra
45
- raise ArgumentError,
46
- 'ARN Access Point 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, 's3')
64
- "#{pfx}.s3-accesspoint#{'-fips' if fips}#{'.dualstack' if dualstack}.#{region}.#{sfx}"
65
- end
66
- end
67
- end
68
- end
69
- end
@@ -1,68 +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
- sfx = Aws::Partitions::EndpointProvider.dns_suffix_for(@partition, 's3')
63
- "#{@mrap_alias}.accesspoint.s3-global.#{sfx}"
64
- end
65
- end
66
- end
67
- end
68
- 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 Lambda 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 Object Lambda 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 Access Point name.'
42
- end
43
-
44
- if @extra
45
- raise ArgumentError,
46
- 'ARN Access Point 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, 's3')
64
- "#{pfx}.s3-object-lambda#{'-fips' if fips}.#{region}.#{sfx}"
65
- end
66
- end
67
- end
68
- end
69
- end
@@ -1,74 +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 Outpost Access '\
24
- 'Point ARN.'
25
- end
26
-
27
- if @region.empty? || @account_id.empty?
28
- raise ArgumentError,
29
- 'S3 Outpost Access Point ARNs must contain both a region '\
30
- 'and an account ID.'
31
- end
32
-
33
- if @type != 'outpost' && @subtype != 'accesspoint'
34
- raise ArgumentError, 'Invalid ARN, resource format is not correct.'
35
- end
36
-
37
- if @outpost_id.nil? || @outpost_id.empty?
38
- raise ArgumentError, 'Missing ARN Outpost ID.'
39
- end
40
-
41
- if @access_point_name.nil? || @access_point_name.empty?
42
- raise ArgumentError, 'Missing ARN Access Point name.'
43
- end
44
-
45
- if @extra
46
- raise ArgumentError,
47
- 'ARN Access Point resource must be a single value.'
48
- end
49
-
50
- unless Seahorse::Util.host_label?(
51
- "#{@access_point_name}-#{@account_id}"
52
- )
53
- raise ArgumentError,
54
- "#{@access_point_name}-#{@account_id} is not a valid "\
55
- 'host label.'
56
- end
57
-
58
- unless Seahorse::Util.host_label?(@outpost_id)
59
- raise ArgumentError, "#{@outpost_id} is not a valid host label."
60
- end
61
- end
62
-
63
- # Outpost ARNs currently do not support dualstack
64
- def host_url(region, _fips = false, _dualstack = false, custom_endpoint = nil)
65
- pfx = "#{@access_point_name}-#{@account_id}.#{@outpost_id}"
66
- if custom_endpoint
67
- "#{pfx}.#{custom_endpoint}"
68
- else
69
- "#{pfx}.s3-outposts.#{region}.amazonaws.com"
70
- end
71
- end
72
- end
73
- end
74
- 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