aws-sdk-s3 1.140.0 → 1.141.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-s3/bucket.rb +423 -93
- data/lib/aws-sdk-s3/bucket_acl.rb +9 -9
- data/lib/aws-sdk-s3/bucket_cors.rb +12 -12
- data/lib/aws-sdk-s3/bucket_lifecycle.rb +12 -12
- data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +12 -12
- data/lib/aws-sdk-s3/bucket_logging.rb +9 -9
- data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
- data/lib/aws-sdk-s3/bucket_policy.rb +58 -14
- data/lib/aws-sdk-s3/bucket_request_payment.rb +9 -9
- data/lib/aws-sdk-s3/bucket_tagging.rb +12 -12
- data/lib/aws-sdk-s3/bucket_versioning.rb +27 -27
- data/lib/aws-sdk-s3/bucket_website.rb +12 -12
- data/lib/aws-sdk-s3/client.rb +5620 -2534
- data/lib/aws-sdk-s3/client_api.rb +82 -1
- data/lib/aws-sdk-s3/customizations.rb +5 -0
- data/lib/aws-sdk-s3/endpoint_parameters.rb +16 -0
- data/lib/aws-sdk-s3/endpoint_provider.rb +80 -0
- data/lib/aws-sdk-s3/endpoints.rb +246 -0
- data/lib/aws-sdk-s3/express_credentials.rb +55 -0
- data/lib/aws-sdk-s3/express_credentials_cache.rb +30 -0
- data/lib/aws-sdk-s3/express_credentials_provider.rb +36 -0
- data/lib/aws-sdk-s3/multipart_upload.rb +70 -24
- data/lib/aws-sdk-s3/multipart_upload_part.rb +164 -43
- data/lib/aws-sdk-s3/object.rb +1496 -248
- data/lib/aws-sdk-s3/object_acl.rb +31 -19
- data/lib/aws-sdk-s3/object_summary.rb +1366 -272
- data/lib/aws-sdk-s3/object_version.rb +304 -57
- data/lib/aws-sdk-s3/plugins/endpoints.rb +13 -2
- data/lib/aws-sdk-s3/plugins/express_session_auth.rb +90 -0
- data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
- data/lib/aws-sdk-s3/plugins/md5s.rb +2 -1
- data/lib/aws-sdk-s3/presigner.rb +2 -2
- data/lib/aws-sdk-s3/resource.rb +83 -11
- data/lib/aws-sdk-s3/types.rb +4261 -1238
- data/lib/aws-sdk-s3.rb +1 -1
- metadata +10 -6
@@ -22,6 +22,8 @@ module Aws::S3
|
|
22
22
|
AcceptRanges = Shapes::StringShape.new(name: 'AcceptRanges')
|
23
23
|
AccessControlPolicy = Shapes::StructureShape.new(name: 'AccessControlPolicy')
|
24
24
|
AccessControlTranslation = Shapes::StructureShape.new(name: 'AccessControlTranslation')
|
25
|
+
AccessKeyIdValue = Shapes::StringShape.new(name: 'AccessKeyIdValue')
|
26
|
+
AccessPointAlias = Shapes::BooleanShape.new(name: 'AccessPointAlias')
|
25
27
|
AccessPointArn = Shapes::StringShape.new(name: 'AccessPointArn')
|
26
28
|
AccountId = Shapes::StringShape.new(name: 'AccountId')
|
27
29
|
AllowQuotedRecordDelimiter = Shapes::BooleanShape.new(name: 'AllowQuotedRecordDelimiter')
|
@@ -46,12 +48,15 @@ module Aws::S3
|
|
46
48
|
BucketAlreadyExists = Shapes::StructureShape.new(name: 'BucketAlreadyExists')
|
47
49
|
BucketAlreadyOwnedByYou = Shapes::StructureShape.new(name: 'BucketAlreadyOwnedByYou')
|
48
50
|
BucketCannedACL = Shapes::StringShape.new(name: 'BucketCannedACL')
|
51
|
+
BucketInfo = Shapes::StructureShape.new(name: 'BucketInfo')
|
49
52
|
BucketKeyEnabled = Shapes::BooleanShape.new(name: 'BucketKeyEnabled')
|
50
53
|
BucketLifecycleConfiguration = Shapes::StructureShape.new(name: 'BucketLifecycleConfiguration')
|
51
54
|
BucketLocationConstraint = Shapes::StringShape.new(name: 'BucketLocationConstraint')
|
55
|
+
BucketLocationName = Shapes::StringShape.new(name: 'BucketLocationName')
|
52
56
|
BucketLoggingStatus = Shapes::StructureShape.new(name: 'BucketLoggingStatus')
|
53
57
|
BucketLogsPermission = Shapes::StringShape.new(name: 'BucketLogsPermission')
|
54
58
|
BucketName = Shapes::StringShape.new(name: 'BucketName')
|
59
|
+
BucketType = Shapes::StringShape.new(name: 'BucketType')
|
55
60
|
BucketVersioningStatus = Shapes::StringShape.new(name: 'BucketVersioningStatus')
|
56
61
|
Buckets = Shapes::ListShape.new(name: 'Buckets')
|
57
62
|
BypassGovernanceRetention = Shapes::BooleanShape.new(name: 'BypassGovernanceRetention')
|
@@ -114,7 +119,10 @@ module Aws::S3
|
|
114
119
|
CreateBucketRequest = Shapes::StructureShape.new(name: 'CreateBucketRequest')
|
115
120
|
CreateMultipartUploadOutput = Shapes::StructureShape.new(name: 'CreateMultipartUploadOutput')
|
116
121
|
CreateMultipartUploadRequest = Shapes::StructureShape.new(name: 'CreateMultipartUploadRequest')
|
122
|
+
CreateSessionOutput = Shapes::StructureShape.new(name: 'CreateSessionOutput')
|
123
|
+
CreateSessionRequest = Shapes::StructureShape.new(name: 'CreateSessionRequest')
|
117
124
|
CreationDate = Shapes::TimestampShape.new(name: 'CreationDate')
|
125
|
+
DataRedundancy = Shapes::StringShape.new(name: 'DataRedundancy')
|
118
126
|
Date = Shapes::TimestampShape.new(name: 'Date', timestampFormat: "iso8601")
|
119
127
|
Days = Shapes::IntegerShape.new(name: 'Days')
|
120
128
|
DaysAfterInitiation = Shapes::IntegerShape.new(name: 'DaysAfterInitiation')
|
@@ -151,6 +159,7 @@ module Aws::S3
|
|
151
159
|
Delimiter = Shapes::StringShape.new(name: 'Delimiter')
|
152
160
|
Description = Shapes::StringShape.new(name: 'Description')
|
153
161
|
Destination = Shapes::StructureShape.new(name: 'Destination')
|
162
|
+
DirectoryBucketToken = Shapes::StringShape.new(name: 'DirectoryBucketToken')
|
154
163
|
DisplayName = Shapes::StringShape.new(name: 'DisplayName')
|
155
164
|
ETag = Shapes::StringShape.new(name: 'ETag')
|
156
165
|
EmailAddress = Shapes::StringShape.new(name: 'EmailAddress')
|
@@ -256,6 +265,7 @@ module Aws::S3
|
|
256
265
|
GrantWriteACP = Shapes::StringShape.new(name: 'GrantWriteACP')
|
257
266
|
Grantee = Shapes::StructureShape.new(name: 'Grantee', xmlNamespace: {"prefix"=>"xsi", "uri"=>"http://www.w3.org/2001/XMLSchema-instance"})
|
258
267
|
Grants = Shapes::ListShape.new(name: 'Grants')
|
268
|
+
HeadBucketOutput = Shapes::StructureShape.new(name: 'HeadBucketOutput')
|
259
269
|
HeadBucketRequest = Shapes::StructureShape.new(name: 'HeadBucketRequest')
|
260
270
|
HeadObjectOutput = Shapes::StructureShape.new(name: 'HeadObjectOutput')
|
261
271
|
HeadObjectRequest = Shapes::StructureShape.new(name: 'HeadObjectRequest')
|
@@ -324,6 +334,8 @@ module Aws::S3
|
|
324
334
|
ListBucketMetricsConfigurationsOutput = Shapes::StructureShape.new(name: 'ListBucketMetricsConfigurationsOutput')
|
325
335
|
ListBucketMetricsConfigurationsRequest = Shapes::StructureShape.new(name: 'ListBucketMetricsConfigurationsRequest')
|
326
336
|
ListBucketsOutput = Shapes::StructureShape.new(name: 'ListBucketsOutput')
|
337
|
+
ListDirectoryBucketsOutput = Shapes::StructureShape.new(name: 'ListDirectoryBucketsOutput')
|
338
|
+
ListDirectoryBucketsRequest = Shapes::StructureShape.new(name: 'ListDirectoryBucketsRequest')
|
327
339
|
ListMultipartUploadsOutput = Shapes::StructureShape.new(name: 'ListMultipartUploadsOutput')
|
328
340
|
ListMultipartUploadsRequest = Shapes::StructureShape.new(name: 'ListMultipartUploadsRequest')
|
329
341
|
ListObjectVersionsOutput = Shapes::StructureShape.new(name: 'ListObjectVersionsOutput')
|
@@ -335,13 +347,17 @@ module Aws::S3
|
|
335
347
|
ListPartsOutput = Shapes::StructureShape.new(name: 'ListPartsOutput')
|
336
348
|
ListPartsRequest = Shapes::StructureShape.new(name: 'ListPartsRequest')
|
337
349
|
Location = Shapes::StringShape.new(name: 'Location')
|
350
|
+
LocationInfo = Shapes::StructureShape.new(name: 'LocationInfo')
|
351
|
+
LocationNameAsString = Shapes::StringShape.new(name: 'LocationNameAsString')
|
338
352
|
LocationPrefix = Shapes::StringShape.new(name: 'LocationPrefix')
|
353
|
+
LocationType = Shapes::StringShape.new(name: 'LocationType')
|
339
354
|
LoggingEnabled = Shapes::StructureShape.new(name: 'LoggingEnabled')
|
340
355
|
MFA = Shapes::StringShape.new(name: 'MFA')
|
341
356
|
MFADelete = Shapes::StringShape.new(name: 'MFADelete')
|
342
357
|
MFADeleteStatus = Shapes::StringShape.new(name: 'MFADeleteStatus')
|
343
358
|
Marker = Shapes::StringShape.new(name: 'Marker')
|
344
359
|
MaxAgeSeconds = Shapes::IntegerShape.new(name: 'MaxAgeSeconds')
|
360
|
+
MaxDirectoryBuckets = Shapes::IntegerShape.new(name: 'MaxDirectoryBuckets')
|
345
361
|
MaxKeys = Shapes::IntegerShape.new(name: 'MaxKeys')
|
346
362
|
MaxParts = Shapes::IntegerShape.new(name: 'MaxParts')
|
347
363
|
MaxUploads = Shapes::IntegerShape.new(name: 'MaxUploads')
|
@@ -484,6 +500,7 @@ module Aws::S3
|
|
484
500
|
RecordsEvent = Shapes::StructureShape.new(name: 'RecordsEvent')
|
485
501
|
Redirect = Shapes::StructureShape.new(name: 'Redirect')
|
486
502
|
RedirectAllRequestsTo = Shapes::StructureShape.new(name: 'RedirectAllRequestsTo')
|
503
|
+
Region = Shapes::StringShape.new(name: 'Region')
|
487
504
|
ReplaceKeyPrefixWith = Shapes::StringShape.new(name: 'ReplaceKeyPrefixWith')
|
488
505
|
ReplaceKeyWith = Shapes::StringShape.new(name: 'ReplaceKeyWith')
|
489
506
|
ReplicaKmsKeyID = Shapes::StringShape.new(name: 'ReplicaKmsKeyID')
|
@@ -543,6 +560,10 @@ module Aws::S3
|
|
543
560
|
ServerSideEncryptionConfiguration = Shapes::StructureShape.new(name: 'ServerSideEncryptionConfiguration')
|
544
561
|
ServerSideEncryptionRule = Shapes::StructureShape.new(name: 'ServerSideEncryptionRule')
|
545
562
|
ServerSideEncryptionRules = Shapes::ListShape.new(name: 'ServerSideEncryptionRules', flattened: true)
|
563
|
+
SessionCredentialValue = Shapes::StringShape.new(name: 'SessionCredentialValue')
|
564
|
+
SessionCredentials = Shapes::StructureShape.new(name: 'SessionCredentials')
|
565
|
+
SessionExpiration = Shapes::TimestampShape.new(name: 'SessionExpiration')
|
566
|
+
SessionMode = Shapes::StringShape.new(name: 'SessionMode')
|
546
567
|
Setting = Shapes::BooleanShape.new(name: 'Setting')
|
547
568
|
SimplePrefix = Shapes::StructureShape.new(name: 'SimplePrefix')
|
548
569
|
Size = Shapes::IntegerShape.new(name: 'Size')
|
@@ -660,6 +681,10 @@ module Aws::S3
|
|
660
681
|
|
661
682
|
BucketAlreadyOwnedByYou.struct_class = Types::BucketAlreadyOwnedByYou
|
662
683
|
|
684
|
+
BucketInfo.add_member(:data_redundancy, Shapes::ShapeRef.new(shape: DataRedundancy, location_name: "DataRedundancy"))
|
685
|
+
BucketInfo.add_member(:type, Shapes::ShapeRef.new(shape: BucketType, location_name: "Type"))
|
686
|
+
BucketInfo.struct_class = Types::BucketInfo
|
687
|
+
|
663
688
|
BucketLifecycleConfiguration.add_member(:rules, Shapes::ShapeRef.new(shape: LifecycleRules, required: true, location_name: "Rule"))
|
664
689
|
BucketLifecycleConfiguration.struct_class = Types::BucketLifecycleConfiguration
|
665
690
|
|
@@ -844,6 +869,8 @@ module Aws::S3
|
|
844
869
|
CopyPartResult.struct_class = Types::CopyPartResult
|
845
870
|
|
846
871
|
CreateBucketConfiguration.add_member(:location_constraint, Shapes::ShapeRef.new(shape: BucketLocationConstraint, location_name: "LocationConstraint"))
|
872
|
+
CreateBucketConfiguration.add_member(:location, Shapes::ShapeRef.new(shape: LocationInfo, location_name: "Location"))
|
873
|
+
CreateBucketConfiguration.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketInfo, location_name: "Bucket"))
|
847
874
|
CreateBucketConfiguration.struct_class = Types::CreateBucketConfiguration
|
848
875
|
|
849
876
|
CreateBucketOutput.add_member(:location, Shapes::ShapeRef.new(shape: Location, location: "header", location_name: "Location"))
|
@@ -910,6 +937,13 @@ module Aws::S3
|
|
910
937
|
CreateMultipartUploadRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-checksum-algorithm"))
|
911
938
|
CreateMultipartUploadRequest.struct_class = Types::CreateMultipartUploadRequest
|
912
939
|
|
940
|
+
CreateSessionOutput.add_member(:credentials, Shapes::ShapeRef.new(shape: SessionCredentials, required: true, location_name: "Credentials"))
|
941
|
+
CreateSessionOutput.struct_class = Types::CreateSessionOutput
|
942
|
+
|
943
|
+
CreateSessionRequest.add_member(:session_mode, Shapes::ShapeRef.new(shape: SessionMode, location: "header", location_name: "x-amz-create-session-mode"))
|
944
|
+
CreateSessionRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
|
945
|
+
CreateSessionRequest.struct_class = Types::CreateSessionRequest
|
946
|
+
|
913
947
|
DefaultRetention.add_member(:mode, Shapes::ShapeRef.new(shape: ObjectLockRetentionMode, location_name: "Mode"))
|
914
948
|
DefaultRetention.add_member(:days, Shapes::ShapeRef.new(shape: Days, location_name: "Days"))
|
915
949
|
DefaultRetention.add_member(:years, Shapes::ShapeRef.new(shape: Years, location_name: "Years"))
|
@@ -1443,6 +1477,12 @@ module Aws::S3
|
|
1443
1477
|
|
1444
1478
|
Grants.member = Shapes::ShapeRef.new(shape: Grant, location_name: "Grant")
|
1445
1479
|
|
1480
|
+
HeadBucketOutput.add_member(:bucket_location_type, Shapes::ShapeRef.new(shape: LocationType, location: "header", location_name: "x-amz-bucket-location-type"))
|
1481
|
+
HeadBucketOutput.add_member(:bucket_location_name, Shapes::ShapeRef.new(shape: BucketLocationName, location: "header", location_name: "x-amz-bucket-location-name"))
|
1482
|
+
HeadBucketOutput.add_member(:bucket_region, Shapes::ShapeRef.new(shape: Region, location: "header", location_name: "x-amz-bucket-region"))
|
1483
|
+
HeadBucketOutput.add_member(:access_point_alias, Shapes::ShapeRef.new(shape: AccessPointAlias, location: "header", location_name: "x-amz-access-point-alias"))
|
1484
|
+
HeadBucketOutput.struct_class = Types::HeadBucketOutput
|
1485
|
+
|
1446
1486
|
HeadBucketRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
|
1447
1487
|
HeadBucketRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
|
1448
1488
|
HeadBucketRequest.struct_class = Types::HeadBucketRequest
|
@@ -1663,6 +1703,14 @@ module Aws::S3
|
|
1663
1703
|
ListBucketsOutput.add_member(:owner, Shapes::ShapeRef.new(shape: Owner, location_name: "Owner"))
|
1664
1704
|
ListBucketsOutput.struct_class = Types::ListBucketsOutput
|
1665
1705
|
|
1706
|
+
ListDirectoryBucketsOutput.add_member(:buckets, Shapes::ShapeRef.new(shape: Buckets, location_name: "Buckets"))
|
1707
|
+
ListDirectoryBucketsOutput.add_member(:continuation_token, Shapes::ShapeRef.new(shape: DirectoryBucketToken, location_name: "ContinuationToken"))
|
1708
|
+
ListDirectoryBucketsOutput.struct_class = Types::ListDirectoryBucketsOutput
|
1709
|
+
|
1710
|
+
ListDirectoryBucketsRequest.add_member(:continuation_token, Shapes::ShapeRef.new(shape: DirectoryBucketToken, location: "querystring", location_name: "continuation-token"))
|
1711
|
+
ListDirectoryBucketsRequest.add_member(:max_directory_buckets, Shapes::ShapeRef.new(shape: MaxDirectoryBuckets, location: "querystring", location_name: "max-directory-buckets"))
|
1712
|
+
ListDirectoryBucketsRequest.struct_class = Types::ListDirectoryBucketsRequest
|
1713
|
+
|
1666
1714
|
ListMultipartUploadsOutput.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, location_name: "Bucket"))
|
1667
1715
|
ListMultipartUploadsOutput.add_member(:key_marker, Shapes::ShapeRef.new(shape: KeyMarker, location_name: "KeyMarker"))
|
1668
1716
|
ListMultipartUploadsOutput.add_member(:upload_id_marker, Shapes::ShapeRef.new(shape: UploadIdMarker, location_name: "UploadIdMarker"))
|
@@ -1798,6 +1846,10 @@ module Aws::S3
|
|
1798
1846
|
ListPartsRequest.add_member(:sse_customer_key_md5, Shapes::ShapeRef.new(shape: SSECustomerKeyMD5, location: "header", location_name: "x-amz-server-side-encryption-customer-key-MD5"))
|
1799
1847
|
ListPartsRequest.struct_class = Types::ListPartsRequest
|
1800
1848
|
|
1849
|
+
LocationInfo.add_member(:type, Shapes::ShapeRef.new(shape: LocationType, location_name: "Type"))
|
1850
|
+
LocationInfo.add_member(:name, Shapes::ShapeRef.new(shape: LocationNameAsString, location_name: "Name"))
|
1851
|
+
LocationInfo.struct_class = Types::LocationInfo
|
1852
|
+
|
1801
1853
|
LoggingEnabled.add_member(:target_bucket, Shapes::ShapeRef.new(shape: TargetBucket, required: true, location_name: "TargetBucket"))
|
1802
1854
|
LoggingEnabled.add_member(:target_grants, Shapes::ShapeRef.new(shape: TargetGrants, location_name: "TargetGrants"))
|
1803
1855
|
LoggingEnabled.add_member(:target_prefix, Shapes::ShapeRef.new(shape: TargetPrefix, required: true, location_name: "TargetPrefix"))
|
@@ -2501,6 +2553,12 @@ module Aws::S3
|
|
2501
2553
|
|
2502
2554
|
ServerSideEncryptionRules.member = Shapes::ShapeRef.new(shape: ServerSideEncryptionRule)
|
2503
2555
|
|
2556
|
+
SessionCredentials.add_member(:access_key_id, Shapes::ShapeRef.new(shape: AccessKeyIdValue, required: true, location_name: "AccessKeyId"))
|
2557
|
+
SessionCredentials.add_member(:secret_access_key, Shapes::ShapeRef.new(shape: SessionCredentialValue, required: true, location_name: "SecretAccessKey"))
|
2558
|
+
SessionCredentials.add_member(:session_token, Shapes::ShapeRef.new(shape: SessionCredentialValue, required: true, location_name: "SessionToken"))
|
2559
|
+
SessionCredentials.add_member(:expiration, Shapes::ShapeRef.new(shape: SessionExpiration, required: true, location_name: "Expiration"))
|
2560
|
+
SessionCredentials.struct_class = Types::SessionCredentials
|
2561
|
+
|
2504
2562
|
SimplePrefix.struct_class = Types::SimplePrefix
|
2505
2563
|
|
2506
2564
|
SourceSelectionCriteria.add_member(:sse_kms_encrypted_objects, Shapes::ShapeRef.new(shape: SseKmsEncryptedObjects, location_name: "SseKmsEncryptedObjects"))
|
@@ -2756,6 +2814,15 @@ module Aws::S3
|
|
2756
2814
|
o.output = Shapes::ShapeRef.new(shape: CreateMultipartUploadOutput)
|
2757
2815
|
end)
|
2758
2816
|
|
2817
|
+
api.add_operation(:create_session, Seahorse::Model::Operation.new.tap do |o|
|
2818
|
+
o.name = "CreateSession"
|
2819
|
+
o.http_method = "GET"
|
2820
|
+
o.http_request_uri = "/?session"
|
2821
|
+
o.input = Shapes::ShapeRef.new(shape: CreateSessionRequest)
|
2822
|
+
o.output = Shapes::ShapeRef.new(shape: CreateSessionOutput)
|
2823
|
+
o.errors << Shapes::ShapeRef.new(shape: NoSuchBucket)
|
2824
|
+
end)
|
2825
|
+
|
2759
2826
|
api.add_operation(:delete_bucket, Seahorse::Model::Operation.new.tap do |o|
|
2760
2827
|
o.name = "DeleteBucket"
|
2761
2828
|
o.http_method = "DELETE"
|
@@ -3167,7 +3234,7 @@ module Aws::S3
|
|
3167
3234
|
o.http_method = "HEAD"
|
3168
3235
|
o.http_request_uri = "/"
|
3169
3236
|
o.input = Shapes::ShapeRef.new(shape: HeadBucketRequest)
|
3170
|
-
o.output = Shapes::ShapeRef.new(shape:
|
3237
|
+
o.output = Shapes::ShapeRef.new(shape: HeadBucketOutput)
|
3171
3238
|
o.errors << Shapes::ShapeRef.new(shape: NoSuchBucket)
|
3172
3239
|
end)
|
3173
3240
|
|
@@ -3220,6 +3287,20 @@ module Aws::S3
|
|
3220
3287
|
o.output = Shapes::ShapeRef.new(shape: ListBucketsOutput)
|
3221
3288
|
end)
|
3222
3289
|
|
3290
|
+
api.add_operation(:list_directory_buckets, Seahorse::Model::Operation.new.tap do |o|
|
3291
|
+
o.name = "ListDirectoryBuckets"
|
3292
|
+
o.http_method = "GET"
|
3293
|
+
o.http_request_uri = "/"
|
3294
|
+
o.input = Shapes::ShapeRef.new(shape: ListDirectoryBucketsRequest)
|
3295
|
+
o.output = Shapes::ShapeRef.new(shape: ListDirectoryBucketsOutput)
|
3296
|
+
o[:pager] = Aws::Pager.new(
|
3297
|
+
limit_key: "max_directory_buckets",
|
3298
|
+
tokens: {
|
3299
|
+
"continuation_token" => "continuation_token"
|
3300
|
+
}
|
3301
|
+
)
|
3302
|
+
end)
|
3303
|
+
|
3223
3304
|
api.add_operation(:list_multipart_uploads, Seahorse::Model::Operation.new.tap do |o|
|
3224
3305
|
o.name = "ListMultipartUploads"
|
3225
3306
|
o.http_method = "GET"
|
@@ -16,6 +16,11 @@ require 'aws-sdk-s3/object_multipart_copier'
|
|
16
16
|
require 'aws-sdk-s3/presigned_post'
|
17
17
|
require 'aws-sdk-s3/presigner'
|
18
18
|
|
19
|
+
# s3 express session auth
|
20
|
+
require 'aws-sdk-s3/express_credentials'
|
21
|
+
require 'aws-sdk-s3/express_credentials_cache'
|
22
|
+
require 'aws-sdk-s3/express_credentials_provider'
|
23
|
+
|
19
24
|
# customizations to generated classes
|
20
25
|
require 'aws-sdk-s3/customizations/bucket'
|
21
26
|
require 'aws-sdk-s3/customizations/errors'
|
@@ -80,6 +80,16 @@ module Aws::S3
|
|
80
80
|
#
|
81
81
|
# @return [Boolean]
|
82
82
|
#
|
83
|
+
# @!attribute use_s3_express_control_endpoint
|
84
|
+
# Internal parameter to indicate whether S3Express operation should use control plane, (ex. CreateBucket)
|
85
|
+
#
|
86
|
+
# @return [Boolean]
|
87
|
+
#
|
88
|
+
# @!attribute disable_s3_express_session_auth
|
89
|
+
# Parameter to indicate whether S3Express session auth should be disabled
|
90
|
+
#
|
91
|
+
# @return [Boolean]
|
92
|
+
#
|
83
93
|
EndpointParameters = Struct.new(
|
84
94
|
:bucket,
|
85
95
|
:region,
|
@@ -95,6 +105,8 @@ module Aws::S3
|
|
95
105
|
:disable_access_points,
|
96
106
|
:disable_multi_region_access_points,
|
97
107
|
:use_arn_region,
|
108
|
+
:use_s3_express_control_endpoint,
|
109
|
+
:disable_s3_express_session_auth,
|
98
110
|
) do
|
99
111
|
include Aws::Structure
|
100
112
|
|
@@ -115,6 +127,8 @@ module Aws::S3
|
|
115
127
|
'DisableAccessPoints' => :disable_access_points,
|
116
128
|
'DisableMultiRegionAccessPoints' => :disable_multi_region_access_points,
|
117
129
|
'UseArnRegion' => :use_arn_region,
|
130
|
+
'UseS3ExpressControlEndpoint' => :use_s3_express_control_endpoint,
|
131
|
+
'DisableS3ExpressSessionAuth' => :disable_s3_express_session_auth,
|
118
132
|
}.freeze
|
119
133
|
end
|
120
134
|
|
@@ -157,6 +171,8 @@ module Aws::S3
|
|
157
171
|
raise ArgumentError, "Missing required EndpointParameter: :disable_multi_region_access_points"
|
158
172
|
end
|
159
173
|
self[:use_arn_region] = options[:use_arn_region]
|
174
|
+
self[:use_s3_express_control_endpoint] = options[:use_s3_express_control_endpoint]
|
175
|
+
self[:disable_s3_express_session_auth] = options[:disable_s3_express_session_auth]
|
160
176
|
end
|
161
177
|
end
|
162
178
|
end
|
@@ -24,6 +24,8 @@ module Aws::S3
|
|
24
24
|
disable_access_points = parameters.disable_access_points
|
25
25
|
disable_multi_region_access_points = parameters.disable_multi_region_access_points
|
26
26
|
use_arn_region = parameters.use_arn_region
|
27
|
+
use_s3_express_control_endpoint = parameters.use_s3_express_control_endpoint
|
28
|
+
disable_s3_express_session_auth = parameters.disable_s3_express_session_auth
|
27
29
|
if Aws::Endpoints::Matchers.set?(region)
|
28
30
|
if Aws::Endpoints::Matchers.boolean_equals?(accelerate, true) && Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
|
29
31
|
raise ArgumentError, "Accelerate cannot be used with FIPS"
|
@@ -40,6 +42,84 @@ module Aws::S3
|
|
40
42
|
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && (partition_result = Aws::Endpoints::Matchers.aws_partition(region)) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(partition_result, "name"), "aws-cn")
|
41
43
|
raise ArgumentError, "Partition does not support FIPS"
|
42
44
|
end
|
45
|
+
if Aws::Endpoints::Matchers.set?(bucket) && (bucket_suffix = Aws::Endpoints::Matchers.substring(bucket, 0, 6, true)) && Aws::Endpoints::Matchers.string_equals?(bucket_suffix, "--x-s3")
|
46
|
+
if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
|
47
|
+
raise ArgumentError, "S3Express does not support Dual-stack."
|
48
|
+
end
|
49
|
+
if Aws::Endpoints::Matchers.boolean_equals?(accelerate, true)
|
50
|
+
raise ArgumentError, "S3Express does not support S3 Accelerate."
|
51
|
+
end
|
52
|
+
if Aws::Endpoints::Matchers.set?(endpoint) && (url = Aws::Endpoints::Matchers.parse_url(endpoint))
|
53
|
+
if Aws::Endpoints::Matchers.set?(disable_s3_express_session_auth) && Aws::Endpoints::Matchers.boolean_equals?(disable_s3_express_session_auth, true)
|
54
|
+
if Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(url, "isIp"), true)
|
55
|
+
if (uri_encoded_bucket = Aws::Endpoints::Matchers.uri_encode(bucket))
|
56
|
+
return Aws::Endpoints::Endpoint.new(url: "#{url['scheme']}://#{url['authority']}/#{uri_encoded_bucket}#{url['path']}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
57
|
+
end
|
58
|
+
end
|
59
|
+
if Aws::Endpoints::Matchers.aws_virtual_hostable_s3_bucket?(bucket, false)
|
60
|
+
return Aws::Endpoints::Endpoint.new(url: "#{url['scheme']}://#{bucket}.#{url['authority']}#{url['path']}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
61
|
+
end
|
62
|
+
raise ArgumentError, "S3Express bucket name is not a valid virtual hostable name."
|
63
|
+
end
|
64
|
+
if Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(url, "isIp"), true)
|
65
|
+
if (uri_encoded_bucket = Aws::Endpoints::Matchers.uri_encode(bucket))
|
66
|
+
return Aws::Endpoints::Endpoint.new(url: "#{url['scheme']}://#{url['authority']}/#{uri_encoded_bucket}#{url['path']}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
67
|
+
end
|
68
|
+
end
|
69
|
+
if Aws::Endpoints::Matchers.aws_virtual_hostable_s3_bucket?(bucket, false)
|
70
|
+
return Aws::Endpoints::Endpoint.new(url: "#{url['scheme']}://#{bucket}.#{url['authority']}#{url['path']}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
71
|
+
end
|
72
|
+
raise ArgumentError, "S3Express bucket name is not a valid virtual hostable name."
|
73
|
+
end
|
74
|
+
if Aws::Endpoints::Matchers.set?(use_s3_express_control_endpoint) && Aws::Endpoints::Matchers.boolean_equals?(use_s3_express_control_endpoint, true)
|
75
|
+
if (uri_encoded_bucket = Aws::Endpoints::Matchers.uri_encode(bucket)) && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.set?(endpoint))
|
76
|
+
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
|
77
|
+
return Aws::Endpoints::Endpoint.new(url: "https://s3express-control-fips.#{region}.amazonaws.com/#{uri_encoded_bucket}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
78
|
+
end
|
79
|
+
return Aws::Endpoints::Endpoint.new(url: "https://s3express-control.#{region}.amazonaws.com/#{uri_encoded_bucket}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
80
|
+
end
|
81
|
+
end
|
82
|
+
if Aws::Endpoints::Matchers.aws_virtual_hostable_s3_bucket?(bucket, false)
|
83
|
+
if Aws::Endpoints::Matchers.set?(disable_s3_express_session_auth) && Aws::Endpoints::Matchers.boolean_equals?(disable_s3_express_session_auth, true)
|
84
|
+
if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 14, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 14, 16, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
|
85
|
+
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
|
86
|
+
return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
87
|
+
end
|
88
|
+
return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
89
|
+
end
|
90
|
+
if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 15, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 15, 17, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
|
91
|
+
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
|
92
|
+
return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
93
|
+
end
|
94
|
+
return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
95
|
+
end
|
96
|
+
raise ArgumentError, "Unrecognized S3Express bucket name format."
|
97
|
+
end
|
98
|
+
if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 14, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 14, 16, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
|
99
|
+
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
|
100
|
+
return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
101
|
+
end
|
102
|
+
return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
103
|
+
end
|
104
|
+
if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 15, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 15, 17, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
|
105
|
+
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
|
106
|
+
return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
107
|
+
end
|
108
|
+
return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
109
|
+
end
|
110
|
+
raise ArgumentError, "Unrecognized S3Express bucket name format."
|
111
|
+
end
|
112
|
+
raise ArgumentError, "S3Express bucket name is not a valid virtual hostable name."
|
113
|
+
end
|
114
|
+
if Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.set?(bucket)) && Aws::Endpoints::Matchers.set?(use_s3_express_control_endpoint) && Aws::Endpoints::Matchers.boolean_equals?(use_s3_express_control_endpoint, true)
|
115
|
+
if Aws::Endpoints::Matchers.set?(endpoint) && (url = Aws::Endpoints::Matchers.parse_url(endpoint))
|
116
|
+
return Aws::Endpoints::Endpoint.new(url: "#{url['scheme']}://#{url['authority']}#{url['path']}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
117
|
+
end
|
118
|
+
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
|
119
|
+
return Aws::Endpoints::Endpoint.new(url: "https://s3express-control-fips.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
120
|
+
end
|
121
|
+
return Aws::Endpoints::Endpoint.new(url: "https://s3express-control.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
|
122
|
+
end
|
43
123
|
if Aws::Endpoints::Matchers.set?(bucket) && (hardware_type = Aws::Endpoints::Matchers.substring(bucket, 49, 50, true)) && (region_prefix = Aws::Endpoints::Matchers.substring(bucket, 8, 12, true)) && (bucket_alias_suffix = Aws::Endpoints::Matchers.substring(bucket, 0, 7, true)) && (outpost_id = Aws::Endpoints::Matchers.substring(bucket, 32, 49, true)) && (region_partition = Aws::Endpoints::Matchers.aws_partition(region)) && Aws::Endpoints::Matchers.string_equals?(bucket_alias_suffix, "--op-s3")
|
44
124
|
if Aws::Endpoints::Matchers.valid_host_label?(outpost_id, false)
|
45
125
|
if Aws::Endpoints::Matchers.string_equals?(hardware_type, "e")
|