aws-sdk-s3 1.79.1 → 1.212.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 (133) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1548 -0
  3. data/LICENSE.txt +202 -0
  4. data/VERSION +1 -0
  5. data/lib/aws-sdk-s3/access_grants_credentials.rb +57 -0
  6. data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +250 -0
  7. data/lib/aws-sdk-s3/bucket.rb +900 -98
  8. data/lib/aws-sdk-s3/bucket_acl.rb +44 -10
  9. data/lib/aws-sdk-s3/bucket_cors.rb +51 -11
  10. data/lib/aws-sdk-s3/bucket_lifecycle.rb +53 -8
  11. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +107 -9
  12. data/lib/aws-sdk-s3/bucket_logging.rb +43 -6
  13. data/lib/aws-sdk-s3/bucket_notification.rb +32 -9
  14. data/lib/aws-sdk-s3/bucket_policy.rb +90 -6
  15. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  16. data/lib/aws-sdk-s3/bucket_request_payment.rb +38 -8
  17. data/lib/aws-sdk-s3/bucket_tagging.rb +46 -7
  18. data/lib/aws-sdk-s3/bucket_versioning.rb +127 -9
  19. data/lib/aws-sdk-s3/bucket_website.rb +46 -7
  20. data/lib/aws-sdk-s3/client.rb +13729 -3146
  21. data/lib/aws-sdk-s3/client_api.rb +1604 -277
  22. data/lib/aws-sdk-s3/customizations/bucket.rb +31 -47
  23. data/lib/aws-sdk-s3/customizations/errors.rb +40 -0
  24. data/lib/aws-sdk-s3/customizations/object.rb +253 -82
  25. data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
  26. data/lib/aws-sdk-s3/customizations/object_version.rb +13 -0
  27. data/lib/aws-sdk-s3/customizations/types/permanent_redirect.rb +26 -0
  28. data/lib/aws-sdk-s3/customizations.rb +28 -29
  29. data/lib/aws-sdk-s3/default_executor.rb +103 -0
  30. data/lib/aws-sdk-s3/encryption/client.rb +9 -5
  31. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +0 -4
  32. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +2 -0
  33. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +2 -0
  34. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +15 -9
  35. data/lib/aws-sdk-s3/encryptionV2/client.rb +105 -26
  36. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +7 -165
  37. data/lib/aws-sdk-s3/encryptionV2/decryption.rb +205 -0
  38. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +20 -3
  39. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +2 -4
  40. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +2 -0
  41. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +18 -6
  42. data/lib/aws-sdk-s3/encryptionV2/utils.rb +5 -0
  43. data/lib/aws-sdk-s3/encryptionV3/client.rb +885 -0
  44. data/lib/aws-sdk-s3/encryptionV3/decrypt_handler.rb +98 -0
  45. data/lib/aws-sdk-s3/encryptionV3/decryption.rb +244 -0
  46. data/lib/aws-sdk-s3/encryptionV3/default_cipher_provider.rb +159 -0
  47. data/lib/aws-sdk-s3/encryptionV3/default_key_provider.rb +35 -0
  48. data/lib/aws-sdk-s3/encryptionV3/encrypt_handler.rb +98 -0
  49. data/lib/aws-sdk-s3/encryptionV3/errors.rb +47 -0
  50. data/lib/aws-sdk-s3/encryptionV3/io_auth_decrypter.rb +60 -0
  51. data/lib/aws-sdk-s3/encryptionV3/io_decrypter.rb +35 -0
  52. data/lib/aws-sdk-s3/encryptionV3/io_encrypter.rb +84 -0
  53. data/lib/aws-sdk-s3/encryptionV3/key_provider.rb +28 -0
  54. data/lib/aws-sdk-s3/encryptionV3/kms_cipher_provider.rb +159 -0
  55. data/lib/aws-sdk-s3/encryptionV3/materials.rb +58 -0
  56. data/lib/aws-sdk-s3/encryptionV3/utils.rb +321 -0
  57. data/lib/aws-sdk-s3/encryption_v2.rb +1 -0
  58. data/lib/aws-sdk-s3/encryption_v3.rb +24 -0
  59. data/lib/aws-sdk-s3/endpoint_parameters.rb +181 -0
  60. data/lib/aws-sdk-s3/endpoint_provider.rb +889 -0
  61. data/lib/aws-sdk-s3/endpoints.rb +1544 -0
  62. data/lib/aws-sdk-s3/errors.rb +80 -1
  63. data/lib/aws-sdk-s3/event_streams.rb +1 -1
  64. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  65. data/lib/aws-sdk-s3/express_credentials_provider.rb +59 -0
  66. data/lib/aws-sdk-s3/file_downloader.rb +258 -82
  67. data/lib/aws-sdk-s3/file_uploader.rb +25 -14
  68. data/lib/aws-sdk-s3/legacy_signer.rb +17 -26
  69. data/lib/aws-sdk-s3/multipart_download_error.rb +8 -0
  70. data/lib/aws-sdk-s3/multipart_file_uploader.rb +111 -86
  71. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +110 -92
  72. data/lib/aws-sdk-s3/multipart_upload.rb +304 -14
  73. data/lib/aws-sdk-s3/multipart_upload_error.rb +3 -4
  74. data/lib/aws-sdk-s3/multipart_upload_part.rb +344 -20
  75. data/lib/aws-sdk-s3/object.rb +2457 -225
  76. data/lib/aws-sdk-s3/object_acl.rb +76 -15
  77. data/lib/aws-sdk-s3/object_copier.rb +7 -5
  78. data/lib/aws-sdk-s3/object_multipart_copier.rb +48 -23
  79. data/lib/aws-sdk-s3/object_summary.rb +2033 -169
  80. data/lib/aws-sdk-s3/object_version.rb +470 -53
  81. data/lib/aws-sdk-s3/plugins/accelerate.rb +1 -39
  82. data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
  83. data/lib/aws-sdk-s3/plugins/arn.rb +70 -0
  84. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -41
  85. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
  86. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +44 -0
  87. data/lib/aws-sdk-s3/plugins/dualstack.rb +2 -49
  88. data/lib/aws-sdk-s3/plugins/endpoints.rb +86 -0
  89. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +3 -1
  90. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +88 -0
  91. data/lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb +1 -1
  92. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +87 -26
  93. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +8 -26
  94. data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
  95. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -68
  96. data/lib/aws-sdk-s3/plugins/s3_signer.rb +48 -88
  97. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +28 -9
  98. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
  99. data/lib/aws-sdk-s3/presigned_post.rb +99 -78
  100. data/lib/aws-sdk-s3/presigner.rb +50 -42
  101. data/lib/aws-sdk-s3/resource.rb +144 -15
  102. data/lib/aws-sdk-s3/transfer_manager.rb +321 -0
  103. data/lib/aws-sdk-s3/types.rb +12223 -4723
  104. data/lib/aws-sdk-s3/waiters.rb +1 -1
  105. data/lib/aws-sdk-s3.rb +37 -28
  106. data/sig/bucket.rbs +231 -0
  107. data/sig/bucket_acl.rbs +78 -0
  108. data/sig/bucket_cors.rbs +69 -0
  109. data/sig/bucket_lifecycle.rbs +88 -0
  110. data/sig/bucket_lifecycle_configuration.rbs +115 -0
  111. data/sig/bucket_logging.rbs +76 -0
  112. data/sig/bucket_notification.rbs +114 -0
  113. data/sig/bucket_policy.rbs +59 -0
  114. data/sig/bucket_request_payment.rbs +54 -0
  115. data/sig/bucket_tagging.rbs +65 -0
  116. data/sig/bucket_versioning.rbs +77 -0
  117. data/sig/bucket_website.rbs +93 -0
  118. data/sig/client.rbs +2612 -0
  119. data/sig/customizations/bucket.rbs +19 -0
  120. data/sig/customizations/object.rbs +38 -0
  121. data/sig/customizations/object_summary.rbs +35 -0
  122. data/sig/errors.rbs +44 -0
  123. data/sig/multipart_upload.rbs +120 -0
  124. data/sig/multipart_upload_part.rbs +109 -0
  125. data/sig/object.rbs +464 -0
  126. data/sig/object_acl.rbs +86 -0
  127. data/sig/object_summary.rbs +347 -0
  128. data/sig/object_version.rbs +143 -0
  129. data/sig/resource.rbs +141 -0
  130. data/sig/types.rbs +2899 -0
  131. data/sig/waiters.rbs +95 -0
  132. metadata +74 -16
  133. data/lib/aws-sdk-s3/plugins/bucket_arn.rb +0 -212
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.79.1
4
+ version: 1.212.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: 2020-08-26 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.1'
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.1'
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.104.3
49
+ version: 3.241.4
51
50
  type: :runtime
52
51
  prerelease: false
53
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -57,16 +56,21 @@ dependencies:
57
56
  version: '3'
58
57
  - - ">="
59
58
  - !ruby/object:Gem::Version
60
- version: 3.104.3
59
+ version: 3.241.4
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:
64
- - trevrowe@amazon.com
63
+ - aws-dr-rubygems@amazon.com
65
64
  executables: []
66
65
  extensions: []
67
66
  extra_rdoc_files: []
68
67
  files:
68
+ - CHANGELOG.md
69
+ - LICENSE.txt
70
+ - VERSION
69
71
  - lib/aws-sdk-s3.rb
72
+ - lib/aws-sdk-s3/access_grants_credentials.rb
73
+ - lib/aws-sdk-s3/access_grants_credentials_provider.rb
70
74
  - lib/aws-sdk-s3/bucket.rb
71
75
  - lib/aws-sdk-s3/bucket_acl.rb
72
76
  - lib/aws-sdk-s3/bucket_cors.rb
@@ -84,10 +88,14 @@ files:
84
88
  - lib/aws-sdk-s3/client_api.rb
85
89
  - lib/aws-sdk-s3/customizations.rb
86
90
  - lib/aws-sdk-s3/customizations/bucket.rb
91
+ - lib/aws-sdk-s3/customizations/errors.rb
87
92
  - lib/aws-sdk-s3/customizations/multipart_upload.rb
88
93
  - lib/aws-sdk-s3/customizations/object.rb
89
94
  - lib/aws-sdk-s3/customizations/object_summary.rb
95
+ - lib/aws-sdk-s3/customizations/object_version.rb
90
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
91
99
  - lib/aws-sdk-s3/encryption.rb
92
100
  - lib/aws-sdk-s3/encryption/client.rb
93
101
  - lib/aws-sdk-s3/encryption/decrypt_handler.rb
@@ -104,6 +112,7 @@ files:
104
112
  - lib/aws-sdk-s3/encryption/utils.rb
105
113
  - lib/aws-sdk-s3/encryptionV2/client.rb
106
114
  - lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb
115
+ - lib/aws-sdk-s3/encryptionV2/decryption.rb
107
116
  - lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb
108
117
  - lib/aws-sdk-s3/encryptionV2/default_key_provider.rb
109
118
  - lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb
@@ -115,13 +124,34 @@ files:
115
124
  - lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb
116
125
  - lib/aws-sdk-s3/encryptionV2/materials.rb
117
126
  - lib/aws-sdk-s3/encryptionV2/utils.rb
127
+ - lib/aws-sdk-s3/encryptionV3/client.rb
128
+ - lib/aws-sdk-s3/encryptionV3/decrypt_handler.rb
129
+ - lib/aws-sdk-s3/encryptionV3/decryption.rb
130
+ - lib/aws-sdk-s3/encryptionV3/default_cipher_provider.rb
131
+ - lib/aws-sdk-s3/encryptionV3/default_key_provider.rb
132
+ - lib/aws-sdk-s3/encryptionV3/encrypt_handler.rb
133
+ - lib/aws-sdk-s3/encryptionV3/errors.rb
134
+ - lib/aws-sdk-s3/encryptionV3/io_auth_decrypter.rb
135
+ - lib/aws-sdk-s3/encryptionV3/io_decrypter.rb
136
+ - lib/aws-sdk-s3/encryptionV3/io_encrypter.rb
137
+ - lib/aws-sdk-s3/encryptionV3/key_provider.rb
138
+ - lib/aws-sdk-s3/encryptionV3/kms_cipher_provider.rb
139
+ - lib/aws-sdk-s3/encryptionV3/materials.rb
140
+ - lib/aws-sdk-s3/encryptionV3/utils.rb
118
141
  - lib/aws-sdk-s3/encryption_v2.rb
142
+ - lib/aws-sdk-s3/encryption_v3.rb
143
+ - lib/aws-sdk-s3/endpoint_parameters.rb
144
+ - lib/aws-sdk-s3/endpoint_provider.rb
145
+ - lib/aws-sdk-s3/endpoints.rb
119
146
  - lib/aws-sdk-s3/errors.rb
120
147
  - lib/aws-sdk-s3/event_streams.rb
148
+ - lib/aws-sdk-s3/express_credentials.rb
149
+ - lib/aws-sdk-s3/express_credentials_provider.rb
121
150
  - lib/aws-sdk-s3/file_downloader.rb
122
151
  - lib/aws-sdk-s3/file_part.rb
123
152
  - lib/aws-sdk-s3/file_uploader.rb
124
153
  - lib/aws-sdk-s3/legacy_signer.rb
154
+ - lib/aws-sdk-s3/multipart_download_error.rb
125
155
  - lib/aws-sdk-s3/multipart_file_uploader.rb
126
156
  - lib/aws-sdk-s3/multipart_stream_uploader.rb
127
157
  - lib/aws-sdk-s3/multipart_upload.rb
@@ -134,11 +164,15 @@ files:
134
164
  - lib/aws-sdk-s3/object_summary.rb
135
165
  - lib/aws-sdk-s3/object_version.rb
136
166
  - lib/aws-sdk-s3/plugins/accelerate.rb
137
- - lib/aws-sdk-s3/plugins/bucket_arn.rb
167
+ - lib/aws-sdk-s3/plugins/access_grants.rb
168
+ - lib/aws-sdk-s3/plugins/arn.rb
138
169
  - lib/aws-sdk-s3/plugins/bucket_dns.rb
139
170
  - lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb
171
+ - lib/aws-sdk-s3/plugins/checksum_algorithm.rb
140
172
  - lib/aws-sdk-s3/plugins/dualstack.rb
173
+ - lib/aws-sdk-s3/plugins/endpoints.rb
141
174
  - lib/aws-sdk-s3/plugins/expect_100_continue.rb
175
+ - lib/aws-sdk-s3/plugins/express_session_auth.rb
142
176
  - lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb
143
177
  - lib/aws-sdk-s3/plugins/http_200_errors.rb
144
178
  - lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb
@@ -153,15 +187,41 @@ files:
153
187
  - lib/aws-sdk-s3/presigned_post.rb
154
188
  - lib/aws-sdk-s3/presigner.rb
155
189
  - lib/aws-sdk-s3/resource.rb
190
+ - lib/aws-sdk-s3/transfer_manager.rb
156
191
  - lib/aws-sdk-s3/types.rb
157
192
  - lib/aws-sdk-s3/waiters.rb
193
+ - sig/bucket.rbs
194
+ - sig/bucket_acl.rbs
195
+ - sig/bucket_cors.rbs
196
+ - sig/bucket_lifecycle.rbs
197
+ - sig/bucket_lifecycle_configuration.rbs
198
+ - sig/bucket_logging.rbs
199
+ - sig/bucket_notification.rbs
200
+ - sig/bucket_policy.rbs
201
+ - sig/bucket_request_payment.rbs
202
+ - sig/bucket_tagging.rbs
203
+ - sig/bucket_versioning.rbs
204
+ - sig/bucket_website.rbs
205
+ - sig/client.rbs
206
+ - sig/customizations/bucket.rbs
207
+ - sig/customizations/object.rbs
208
+ - sig/customizations/object_summary.rbs
209
+ - sig/errors.rbs
210
+ - sig/multipart_upload.rbs
211
+ - sig/multipart_upload_part.rbs
212
+ - sig/object.rbs
213
+ - sig/object_acl.rbs
214
+ - sig/object_summary.rbs
215
+ - sig/object_version.rbs
216
+ - sig/resource.rbs
217
+ - sig/types.rbs
218
+ - sig/waiters.rbs
158
219
  homepage: https://github.com/aws/aws-sdk-ruby
159
220
  licenses:
160
221
  - Apache-2.0
161
222
  metadata:
162
- source_code_uri: https://github.com/aws/aws-sdk-ruby/tree/master/gems/aws-sdk-s3
163
- changelog_uri: https://github.com/aws/aws-sdk-ruby/tree/master/gems/aws-sdk-s3/CHANGELOG.md
164
- post_install_message:
223
+ source_code_uri: https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-s3
224
+ changelog_uri: https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-s3/CHANGELOG.md
165
225
  rdoc_options: []
166
226
  require_paths:
167
227
  - lib
@@ -169,16 +229,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
169
229
  requirements:
170
230
  - - ">="
171
231
  - !ruby/object:Gem::Version
172
- version: '0'
232
+ version: '2.7'
173
233
  required_rubygems_version: !ruby/object:Gem::Requirement
174
234
  requirements:
175
235
  - - ">="
176
236
  - !ruby/object:Gem::Version
177
237
  version: '0'
178
238
  requirements: []
179
- rubyforge_project:
180
- rubygems_version: 2.7.6.2
181
- signing_key:
239
+ rubygems_version: 3.6.7
182
240
  specification_version: 4
183
241
  summary: AWS SDK for Ruby - Amazon S3
184
242
  test_files: []
@@ -1,212 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Aws
4
- module S3
5
- module Plugins
6
- # When an accesspoint ARN is provided for :bucket in S3 operations, this
7
- # plugin resolves the request endpoint from the ARN when possible.
8
- class BucketARN < Seahorse::Client::Plugin
9
- option(
10
- :s3_use_arn_region,
11
- default: true,
12
- doc_type: 'Boolean',
13
- docstring: <<-DOCS) do |cfg|
14
- By default, the SDK will use the S3 ARN region, and cross-region
15
- requests could be made. Set to `false` to not use the region from
16
- the S3 ARN.
17
- DOCS
18
- resolve_s3_use_arn_region(cfg)
19
- end
20
-
21
- def add_handlers(handlers, _config)
22
- handlers.add(Handler)
23
- end
24
-
25
- # @api private
26
- class Handler < Seahorse::Client::Handler
27
- def call(context)
28
- bucket_member = _bucket_member(context.operation.input.shape)
29
- if bucket_member && (bucket = context.params[bucket_member])
30
- _resolved_bucket, _resolved_region, arn = BucketARN.resolve_arn!(
31
- bucket,
32
- context.config.region,
33
- context.config.s3_use_arn_region
34
- )
35
- if arn
36
- if arn.resource.start_with?('accesspoint')
37
- validate_config!(context.config)
38
- end
39
-
40
- dualstack = extract_dualstack_config!(context)
41
-
42
- BucketARN.resolve_url!(
43
- context.http_request.endpoint,
44
- arn,
45
- dualstack
46
- )
47
- end
48
- end
49
- @handler.call(context)
50
- end
51
-
52
- private
53
-
54
- def _bucket_member(input)
55
- input.members.each do |member, ref|
56
- return member if ref.shape.name == 'BucketName'
57
- end
58
- nil
59
- end
60
-
61
- # other plugins use dualstack so disable it when we're done
62
- def extract_dualstack_config!(context)
63
- dualstack = context[:use_dualstack_endpoint]
64
- context[:use_dualstack_endpoint] = false if dualstack
65
- dualstack
66
- end
67
-
68
- def validate_config!(config)
69
- unless config.regional_endpoint
70
- raise ArgumentError,
71
- 'Cannot provide both an accesspoint ARN and :endpoint.'
72
- end
73
-
74
- if config.use_accelerate_endpoint
75
- raise ArgumentError,
76
- 'Cannot provide both an accesspoint ARN and setting '\
77
- ':use_accelerate_endpoint to true.'
78
- end
79
-
80
- if config.force_path_style
81
- raise ArgumentError,
82
- 'Cannot provide both an accesspoint ARN and setting '\
83
- ':force_path_style to true.'
84
- end
85
- end
86
- end
87
-
88
- class << self
89
-
90
- # @api private
91
- def resolve_arn!(bucket_name, region, s3_use_arn_region)
92
- if Aws::ARNParser.arn?(bucket_name)
93
- arn = Aws::ARNParser.parse(bucket_name)
94
- validate_s3_arn!(arn)
95
- validate_region!(arn, region, s3_use_arn_region)
96
- if arn.resource.start_with?('accesspoint')
97
- region = arn.region if s3_use_arn_region
98
- [bucket_name, region, arn]
99
- else
100
- raise ArgumentError,
101
- 'Only accesspoint type ARNs are currently supported.'
102
- end
103
- else
104
- [bucket_name, region]
105
- end
106
- end
107
-
108
- # @api private
109
- def resolve_url!(url, arn, dualstack = false)
110
- if arn.resource.start_with?('accesspoint')
111
- url.host = accesspoint_arn_host(arn, dualstack)
112
- else
113
- raise ArgumentError,
114
- 'Only accesspoint type ARNs are currently supported.'
115
- end
116
- url.path = url_path(url.path, arn)
117
- url
118
- end
119
-
120
- private
121
-
122
- def accesspoint_arn_host(arn, dualstack)
123
- _resource_type, resource_name = parse_resource(arn.resource)
124
- sfx = Aws::Partitions::EndpointProvider.dns_suffix_for(arn.region)
125
- "#{resource_name}-#{arn.account_id}"\
126
- '.s3-accesspoint'\
127
- "#{'.dualstack' if dualstack}"\
128
- ".#{arn.region}.#{sfx}"
129
- end
130
-
131
- def parse_resource(str)
132
- slash = str.index('/') || str.length
133
- colon = str.index(':') || str.length
134
- delimiter = slash < colon ? slash : colon
135
- if delimiter < str.length
136
- [str[0..(delimiter - 1)], str[(delimiter + 1)..-1]]
137
- else
138
- [nil, str]
139
- end
140
- end
141
-
142
- def resolve_s3_use_arn_region(cfg)
143
- value = ENV['AWS_S3_USE_ARN_REGION'] ||
144
- Aws.shared_config.s3_use_arn_region(profile: cfg.profile) ||
145
- 'true'
146
-
147
- # Raise if provided value is not true or false
148
- if value != 'true' && value != 'false'
149
- raise ArgumentError,
150
- 'Must provide either `true` or `false` for '\
151
- 's3_use_arn_region profile option or for '\
152
- 'ENV[\'AWS_S3_USE_ARN_REGION\']'
153
- end
154
-
155
- value == 'true'
156
- end
157
-
158
- def url_path(path, arn)
159
- path = path.sub("/#{Seahorse::Util.uri_escape(arn.to_s)}", '')
160
- .sub("/#{arn}", '')
161
- "/#{path}" unless path.match(/^\//)
162
- path
163
- end
164
-
165
- def validate_s3_arn!(arn)
166
- _resource_type, resource_name = parse_resource(arn.resource)
167
-
168
- unless arn.service == 's3'
169
- raise ArgumentError, 'Must provide an S3 ARN.'
170
- end
171
-
172
- if arn.region.empty? || arn.account_id.empty?
173
- raise ArgumentError,
174
- 'S3 Access Point ARNs must contain both a valid region '\
175
- ' and a valid account id.'
176
- end
177
-
178
- if resource_name.include?(':') || resource_name.include?('/')
179
- raise ArgumentError,
180
- 'ARN resource id must be a single value.'
181
- end
182
-
183
- unless Plugins::BucketDns.valid_subdomain?(
184
- "#{resource_name}-#{arn.account_id}"
185
- )
186
- raise ArgumentError,
187
- "#{resource_name}-#{arn.account_id} is not a "\
188
- 'valid subdomain.'
189
- end
190
- end
191
-
192
- def validate_region!(arn, region, s3_use_arn_region)
193
- if region.include?('fips')
194
- raise ArgumentError,
195
- 'FIPS client regions are currently not supported with '\
196
- 'accesspoint ARNs.'
197
- end
198
-
199
- if s3_use_arn_region &&
200
- !Aws::Partitions.partition(arn.partition).region?(region)
201
- raise Aws::Errors::InvalidARNPartitionError
202
- end
203
-
204
- if !s3_use_arn_region && region != arn.region
205
- raise Aws::Errors::InvalidARNRegionError
206
- end
207
- end
208
- end
209
- end
210
- end
211
- end
212
- end