@@ -57,19 +57,19 @@ export interface GetBucketEncryptionCommandInput {
57
57
ExpectedBucketOwner ?: string ;
58
58
}
59
59
60
- export const ServerSideEncryption = {
60
+ export const ServerSideEncryptionIn = {
61
61
AES256 : 'AES256' ,
62
62
aws_kms : 'aws:kms' ,
63
63
aws_kms_dsse : 'aws:kms:dsse' ,
64
64
} as const ;
65
65
66
- export type ServerSideEncryption = ( typeof ServerSideEncryption ) [ keyof typeof ServerSideEncryption ] ;
66
+ export type ServerSideEncryption < Dir > = InOut < Dir , ( typeof ServerSideEncryptionIn ) [ keyof typeof ServerSideEncryptionIn ] , string > ;
67
67
68
- export interface ServerSideEncryptionByDefault {
68
+ export interface ServerSideEncryptionByDefault < Dir > {
69
69
/**
70
70
* <p>Server-side encryption algorithm to use for the default encryption.</p>
71
71
*/
72
- SSEAlgorithm : ServerSideEncryption | undefined ;
72
+ SSEAlgorithm : ServerSideEncryption < Dir > | undefined ;
73
73
/**
74
74
* <p>Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default
75
75
* encryption. This parameter is allowed if and only if <code>SSEAlgorithm</code> is set to
@@ -102,13 +102,13 @@ export interface ServerSideEncryptionByDefault {
102
102
KMSMasterKeyID ?: string ;
103
103
}
104
104
105
- export interface ServerSideEncryptionRule {
105
+ export interface ServerSideEncryptionRule < Dir > {
106
106
/**
107
107
* <p>Specifies the default server-side encryption to apply to new objects in the bucket. If a
108
108
* PUT Object request doesn't specify any server-side encryption, this default encryption will
109
109
* be applied.</p>
110
110
*/
111
- ApplyServerSideEncryptionByDefault ?: ServerSideEncryptionByDefault ;
111
+ ApplyServerSideEncryptionByDefault ?: ServerSideEncryptionByDefault < Dir > ;
112
112
/**
113
113
* <p>Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS
114
114
* (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the
@@ -120,19 +120,19 @@ export interface ServerSideEncryptionRule {
120
120
BucketKeyEnabled ?: boolean ;
121
121
}
122
122
123
- export interface ServerSideEncryptionConfiguration {
123
+ export interface ServerSideEncryptionConfiguration < Dir > {
124
124
/**
125
125
* <p>Container for information about a particular server-side encryption configuration
126
126
* rule.</p>
127
127
*/
128
- Rules : ServerSideEncryptionRule [ ] | undefined ;
128
+ Rules : ServerSideEncryptionRule < Dir > [ ] | undefined ;
129
129
}
130
130
131
131
export interface GetBucketEncryptionOutput {
132
132
/**
133
133
* <p>Specifies the default server-side-encryption configuration.</p>
134
134
*/
135
- ServerSideEncryptionConfiguration ?: ServerSideEncryptionConfiguration ;
135
+ ServerSideEncryptionConfiguration ?: ServerSideEncryptionConfiguration < 'out' > ;
136
136
}
137
137
138
138
export interface GetBucketEncryptionCommandOutput
@@ -362,7 +362,7 @@ export type ChecksumAlgorithmIn = (typeof ChecksumAlgorithmIn)[keyof typeof Chec
362
362
363
363
export type ChecksumAlgorithmOut = string ;
364
364
365
- export const ObjectStorageClass = {
365
+ export const ObjectStorageClassIn = {
366
366
DEEP_ARCHIVE : 'DEEP_ARCHIVE' ,
367
367
EXPRESS_ONEZONE : 'EXPRESS_ONEZONE' ,
368
368
GLACIER : 'GLACIER' ,
@@ -376,7 +376,7 @@ export const ObjectStorageClass = {
376
376
STANDARD_IA : 'STANDARD_IA' ,
377
377
} as const ;
378
378
379
- export type ObjectStorageClass = ( typeof ObjectStorageClass ) [ keyof typeof ObjectStorageClass ] ;
379
+ export type ObjectStorageClass < Dir > = InOut < Dir , ( typeof ObjectStorageClassIn ) [ keyof typeof ObjectStorageClassIn ] , string > ;
380
380
381
381
export interface Owner {
382
382
/**
@@ -520,7 +520,7 @@ export interface _Object<Dir> {
520
520
* <b>Directory buckets</b> - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.</p>
521
521
* </note>
522
522
*/
523
- StorageClass ?: ObjectStorageClass ;
523
+ StorageClass ?: ObjectStorageClass < Dir > ;
524
524
525
525
/**
526
526
* <p>The owner of the object</p>
@@ -1009,7 +1009,7 @@ export interface PutObjectRequest {
1009
1009
* <p>
1010
1010
* <b>Directory buckets </b> - For directory buckets, only the server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) value is supported.</p>
1011
1011
*/
1012
- ServerSideEncryption ?: ServerSideEncryption ;
1012
+ ServerSideEncryption ?: ServerSideEncryption < 'in' > ;
1013
1013
/**
1014
1014
* <p>By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The
1015
1015
* STANDARD storage class provides high durability and high availability. Depending on
@@ -1242,7 +1242,7 @@ export interface CompleteMultipartUploadOutput {
1242
1242
* <p>For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) is supported.</p>
1243
1243
* </note>
1244
1244
*/
1245
- ServerSideEncryption ?: ServerSideEncryption ;
1245
+ ServerSideEncryption ?: ServerSideEncryption < 'out' > ;
1246
1246
/**
1247
1247
* <p>Version ID of the newly created object, in case the bucket has versioning turned
1248
1248
* on.</p>
0 commit comments