aws-sdk-s3 1.103.0 → 1.202.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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +664 -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 +250 -0
  6. data/lib/aws-sdk-s3/bucket.rb +858 -116
  7. data/lib/aws-sdk-s3/bucket_acl.rb +32 -9
  8. data/lib/aws-sdk-s3/bucket_cors.rb +38 -13
  9. data/lib/aws-sdk-s3/bucket_lifecycle.rb +43 -12
  10. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +100 -13
  11. data/lib/aws-sdk-s3/bucket_logging.rb +35 -6
  12. data/lib/aws-sdk-s3/bucket_notification.rb +27 -9
  13. data/lib/aws-sdk-s3/bucket_policy.rb +79 -10
  14. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  15. data/lib/aws-sdk-s3/bucket_request_payment.rb +29 -7
  16. data/lib/aws-sdk-s3/bucket_tagging.rb +35 -11
  17. data/lib/aws-sdk-s3/bucket_versioning.rb +108 -17
  18. data/lib/aws-sdk-s3/bucket_website.rb +35 -11
  19. data/lib/aws-sdk-s3/client.rb +11799 -3636
  20. data/lib/aws-sdk-s3/client_api.rb +1201 -276
  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 +216 -70
  24. data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
  25. data/lib/aws-sdk-s3/customizations/object_version.rb +13 -0
  26. data/lib/aws-sdk-s3/customizations/types/permanent_redirect.rb +26 -0
  27. data/lib/aws-sdk-s3/customizations.rb +27 -29
  28. data/lib/aws-sdk-s3/default_executor.rb +103 -0
  29. data/lib/aws-sdk-s3/encryption/client.rb +6 -2
  30. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
  31. data/lib/aws-sdk-s3/encryptionV2/client.rb +6 -2
  32. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +1 -0
  33. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
  34. data/lib/aws-sdk-s3/endpoint_parameters.rb +181 -0
  35. data/lib/aws-sdk-s3/endpoint_provider.rb +716 -0
  36. data/lib/aws-sdk-s3/endpoints.rb +1518 -0
  37. data/lib/aws-sdk-s3/errors.rb +58 -0
  38. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  39. data/lib/aws-sdk-s3/express_credentials_provider.rb +59 -0
  40. data/lib/aws-sdk-s3/file_downloader.rb +241 -87
  41. data/lib/aws-sdk-s3/file_uploader.rb +16 -13
  42. data/lib/aws-sdk-s3/legacy_signer.rb +2 -1
  43. data/lib/aws-sdk-s3/multipart_download_error.rb +8 -0
  44. data/lib/aws-sdk-s3/multipart_file_uploader.rb +108 -86
  45. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +110 -92
  46. data/lib/aws-sdk-s3/multipart_upload.rb +294 -19
  47. data/lib/aws-sdk-s3/multipart_upload_error.rb +3 -4
  48. data/lib/aws-sdk-s3/multipart_upload_part.rb +297 -31
  49. data/lib/aws-sdk-s3/object.rb +2224 -269
  50. data/lib/aws-sdk-s3/object_acl.rb +59 -17
  51. data/lib/aws-sdk-s3/object_copier.rb +7 -5
  52. data/lib/aws-sdk-s3/object_multipart_copier.rb +48 -23
  53. data/lib/aws-sdk-s3/object_summary.rb +1915 -220
  54. data/lib/aws-sdk-s3/object_version.rb +450 -58
  55. data/lib/aws-sdk-s3/plugins/accelerate.rb +3 -44
  56. data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
  57. data/lib/aws-sdk-s3/plugins/arn.rb +0 -197
  58. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -39
  59. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
  60. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  61. data/lib/aws-sdk-s3/plugins/dualstack.rb +1 -55
  62. data/lib/aws-sdk-s3/plugins/endpoints.rb +86 -0
  63. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -1
  64. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +88 -0
  65. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +55 -18
  66. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +6 -29
  67. data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
  68. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -68
  69. data/lib/aws-sdk-s3/plugins/s3_signer.rb +42 -111
  70. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +28 -9
  71. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
  72. data/lib/aws-sdk-s3/presigned_post.rb +99 -78
  73. data/lib/aws-sdk-s3/presigner.rb +32 -41
  74. data/lib/aws-sdk-s3/resource.rb +139 -12
  75. data/lib/aws-sdk-s3/transfer_manager.rb +304 -0
  76. data/lib/aws-sdk-s3/types.rb +10204 -5378
  77. data/lib/aws-sdk-s3.rb +35 -27
  78. data/sig/bucket.rbs +231 -0
  79. data/sig/bucket_acl.rbs +78 -0
  80. data/sig/bucket_cors.rbs +69 -0
  81. data/sig/bucket_lifecycle.rbs +88 -0
  82. data/sig/bucket_lifecycle_configuration.rbs +115 -0
  83. data/sig/bucket_logging.rbs +76 -0
  84. data/sig/bucket_notification.rbs +114 -0
  85. data/sig/bucket_policy.rbs +59 -0
  86. data/sig/bucket_request_payment.rbs +54 -0
  87. data/sig/bucket_tagging.rbs +65 -0
  88. data/sig/bucket_versioning.rbs +77 -0
  89. data/sig/bucket_website.rbs +93 -0
  90. data/sig/client.rbs +2586 -0
  91. data/sig/customizations/bucket.rbs +19 -0
  92. data/sig/customizations/object.rbs +38 -0
  93. data/sig/customizations/object_summary.rbs +35 -0
  94. data/sig/errors.rbs +44 -0
  95. data/sig/multipart_upload.rbs +120 -0
  96. data/sig/multipart_upload_part.rbs +109 -0
  97. data/sig/object.rbs +464 -0
  98. data/sig/object_acl.rbs +86 -0
  99. data/sig/object_summary.rbs +347 -0
  100. data/sig/object_version.rbs +143 -0
  101. data/sig/resource.rbs +141 -0
  102. data/sig/types.rbs +2868 -0
  103. data/sig/waiters.rbs +95 -0
  104. metadata +51 -16
  105. data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -69
  106. data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +0 -69
  107. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +0 -69
  108. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -73
  109. 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,13 @@
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.202.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2021-09-16 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: aws-sdk-kms
@@ -30,14 +29,14 @@ dependencies:
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: '1.4'
32
+ version: '1.5'
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: '1.4'
39
+ version: '1.5'
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: aws-sdk-core
43
42
  requirement: !ruby/object:Gem::Requirement
@@ -47,7 +46,7 @@ dependencies:
47
46
  version: '3'
48
47
  - - ">="
49
48
  - !ruby/object:Gem::Version
50
- version: 3.120.0
49
+ version: 3.234.0
51
50
  type: :runtime
52
51
  prerelease: false
53
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -57,7 +56,7 @@ dependencies:
57
56
  version: '3'
58
57
  - - ">="
59
58
  - !ruby/object:Gem::Version
60
- version: 3.120.0
59
+ version: 3.234.0
61
60
  description: Official AWS Ruby gem for Amazon Simple Storage Service (Amazon S3).
62
61
  This gem is part of the AWS SDK for Ruby.
63
62
  email:
@@ -70,10 +69,8 @@ files:
70
69
  - LICENSE.txt
71
70
  - VERSION
72
71
  - 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
72
+ - lib/aws-sdk-s3/access_grants_credentials.rb
73
+ - lib/aws-sdk-s3/access_grants_credentials_provider.rb
77
74
  - lib/aws-sdk-s3/bucket.rb
78
75
  - lib/aws-sdk-s3/bucket_acl.rb
79
76
  - lib/aws-sdk-s3/bucket_cors.rb
@@ -91,10 +88,14 @@ files:
91
88
  - lib/aws-sdk-s3/client_api.rb
92
89
  - lib/aws-sdk-s3/customizations.rb
93
90
  - lib/aws-sdk-s3/customizations/bucket.rb
91
+ - lib/aws-sdk-s3/customizations/errors.rb
94
92
  - lib/aws-sdk-s3/customizations/multipart_upload.rb
95
93
  - lib/aws-sdk-s3/customizations/object.rb
96
94
  - lib/aws-sdk-s3/customizations/object_summary.rb
95
+ - lib/aws-sdk-s3/customizations/object_version.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
+ - lib/aws-sdk-s3/default_executor.rb
98
99
  - lib/aws-sdk-s3/encryption.rb
99
100
  - lib/aws-sdk-s3/encryption/client.rb
100
101
  - lib/aws-sdk-s3/encryption/decrypt_handler.rb
@@ -123,12 +124,18 @@ files:
123
124
  - lib/aws-sdk-s3/encryptionV2/materials.rb
124
125
  - lib/aws-sdk-s3/encryptionV2/utils.rb
125
126
  - lib/aws-sdk-s3/encryption_v2.rb
127
+ - lib/aws-sdk-s3/endpoint_parameters.rb
128
+ - lib/aws-sdk-s3/endpoint_provider.rb
129
+ - lib/aws-sdk-s3/endpoints.rb
126
130
  - lib/aws-sdk-s3/errors.rb
127
131
  - lib/aws-sdk-s3/event_streams.rb
132
+ - lib/aws-sdk-s3/express_credentials.rb
133
+ - lib/aws-sdk-s3/express_credentials_provider.rb
128
134
  - lib/aws-sdk-s3/file_downloader.rb
129
135
  - lib/aws-sdk-s3/file_part.rb
130
136
  - lib/aws-sdk-s3/file_uploader.rb
131
137
  - lib/aws-sdk-s3/legacy_signer.rb
138
+ - lib/aws-sdk-s3/multipart_download_error.rb
132
139
  - lib/aws-sdk-s3/multipart_file_uploader.rb
133
140
  - lib/aws-sdk-s3/multipart_stream_uploader.rb
134
141
  - lib/aws-sdk-s3/multipart_upload.rb
@@ -141,17 +148,20 @@ files:
141
148
  - lib/aws-sdk-s3/object_summary.rb
142
149
  - lib/aws-sdk-s3/object_version.rb
143
150
  - lib/aws-sdk-s3/plugins/accelerate.rb
151
+ - lib/aws-sdk-s3/plugins/access_grants.rb
144
152
  - lib/aws-sdk-s3/plugins/arn.rb
145
153
  - lib/aws-sdk-s3/plugins/bucket_dns.rb
146
154
  - lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb
155
+ - lib/aws-sdk-s3/plugins/checksum_algorithm.rb
147
156
  - lib/aws-sdk-s3/plugins/dualstack.rb
157
+ - lib/aws-sdk-s3/plugins/endpoints.rb
148
158
  - lib/aws-sdk-s3/plugins/expect_100_continue.rb
159
+ - lib/aws-sdk-s3/plugins/express_session_auth.rb
149
160
  - lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb
150
161
  - lib/aws-sdk-s3/plugins/http_200_errors.rb
151
162
  - lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb
152
163
  - lib/aws-sdk-s3/plugins/location_constraint.rb
153
164
  - lib/aws-sdk-s3/plugins/md5s.rb
154
- - lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb
155
165
  - lib/aws-sdk-s3/plugins/redirects.rb
156
166
  - lib/aws-sdk-s3/plugins/s3_host_id.rb
157
167
  - lib/aws-sdk-s3/plugins/s3_signer.rb
@@ -161,15 +171,41 @@ files:
161
171
  - lib/aws-sdk-s3/presigned_post.rb
162
172
  - lib/aws-sdk-s3/presigner.rb
163
173
  - lib/aws-sdk-s3/resource.rb
174
+ - lib/aws-sdk-s3/transfer_manager.rb
164
175
  - lib/aws-sdk-s3/types.rb
165
176
  - lib/aws-sdk-s3/waiters.rb
177
+ - sig/bucket.rbs
178
+ - sig/bucket_acl.rbs
179
+ - sig/bucket_cors.rbs
180
+ - sig/bucket_lifecycle.rbs
181
+ - sig/bucket_lifecycle_configuration.rbs
182
+ - sig/bucket_logging.rbs
183
+ - sig/bucket_notification.rbs
184
+ - sig/bucket_policy.rbs
185
+ - sig/bucket_request_payment.rbs
186
+ - sig/bucket_tagging.rbs
187
+ - sig/bucket_versioning.rbs
188
+ - sig/bucket_website.rbs
189
+ - sig/client.rbs
190
+ - sig/customizations/bucket.rbs
191
+ - sig/customizations/object.rbs
192
+ - sig/customizations/object_summary.rbs
193
+ - sig/errors.rbs
194
+ - sig/multipart_upload.rbs
195
+ - sig/multipart_upload_part.rbs
196
+ - sig/object.rbs
197
+ - sig/object_acl.rbs
198
+ - sig/object_summary.rbs
199
+ - sig/object_version.rbs
200
+ - sig/resource.rbs
201
+ - sig/types.rbs
202
+ - sig/waiters.rbs
166
203
  homepage: https://github.com/aws/aws-sdk-ruby
167
204
  licenses:
168
205
  - Apache-2.0
169
206
  metadata:
170
207
  source_code_uri: https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-s3
171
208
  changelog_uri: https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-s3/CHANGELOG.md
172
- post_install_message:
173
209
  rdoc_options: []
174
210
  require_paths:
175
211
  - lib
@@ -177,15 +213,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
213
  requirements:
178
214
  - - ">="
179
215
  - !ruby/object:Gem::Version
180
- version: '2.3'
216
+ version: '2.7'
181
217
  required_rubygems_version: !ruby/object:Gem::Requirement
182
218
  requirements:
183
219
  - - ">="
184
220
  - !ruby/object:Gem::Version
185
221
  version: '0'
186
222
  requirements: []
187
- rubygems_version: 3.1.6
188
- signing_key:
223
+ rubygems_version: 3.6.7
189
224
  specification_version: 4
190
225
  summary: AWS SDK for Ruby - Amazon S3
191
226
  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