@@ -57,19 +57,19 @@ export interface GetBucketEncryptionCommandInput {
5757 ExpectedBucketOwner ?: string ;
5858}
5959
60- export const ServerSideEncryption = {
60+ export const ServerSideEncryptionIn = {
6161 AES256 : 'AES256' ,
6262 aws_kms : 'aws:kms' ,
6363 aws_kms_dsse : 'aws:kms:dsse' ,
6464} as const ;
6565
66- export type ServerSideEncryption = ( typeof ServerSideEncryption ) [ keyof typeof ServerSideEncryption ] ;
66+ export type ServerSideEncryption < Dir > = InOut < Dir , ( typeof ServerSideEncryptionIn ) [ keyof typeof ServerSideEncryptionIn ] , string > ;
6767
68- export interface ServerSideEncryptionByDefault {
68+ export interface ServerSideEncryptionByDefault < Dir > {
6969 /**
7070 * <p>Server-side encryption algorithm to use for the default encryption.</p>
7171 */
72- SSEAlgorithm : ServerSideEncryption | undefined ;
72+ SSEAlgorithm : ServerSideEncryption < Dir > | undefined ;
7373 /**
7474 * <p>Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default
7575 * encryption. This parameter is allowed if and only if <code>SSEAlgorithm</code> is set to
@@ -102,13 +102,13 @@ export interface ServerSideEncryptionByDefault {
102102 KMSMasterKeyID ?: string ;
103103}
104104
105- export interface ServerSideEncryptionRule {
105+ export interface ServerSideEncryptionRule < Dir > {
106106 /**
107107 * <p>Specifies the default server-side encryption to apply to new objects in the bucket. If a
108108 * PUT Object request doesn't specify any server-side encryption, this default encryption will
109109 * be applied.</p>
110110 */
111- ApplyServerSideEncryptionByDefault ?: ServerSideEncryptionByDefault ;
111+ ApplyServerSideEncryptionByDefault ?: ServerSideEncryptionByDefault < Dir > ;
112112 /**
113113 * <p>Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS
114114 * (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the
@@ -120,19 +120,19 @@ export interface ServerSideEncryptionRule {
120120 BucketKeyEnabled ?: boolean ;
121121}
122122
123- export interface ServerSideEncryptionConfiguration {
123+ export interface ServerSideEncryptionConfiguration < Dir > {
124124 /**
125125 * <p>Container for information about a particular server-side encryption configuration
126126 * rule.</p>
127127 */
128- Rules : ServerSideEncryptionRule [ ] | undefined ;
128+ Rules : ServerSideEncryptionRule < Dir > [ ] | undefined ;
129129}
130130
131131export interface GetBucketEncryptionOutput {
132132 /**
133133 * <p>Specifies the default server-side-encryption configuration.</p>
134134 */
135- ServerSideEncryptionConfiguration ?: ServerSideEncryptionConfiguration ;
135+ ServerSideEncryptionConfiguration ?: ServerSideEncryptionConfiguration < 'out' > ;
136136}
137137
138138export interface GetBucketEncryptionCommandOutput
@@ -362,7 +362,7 @@ export type ChecksumAlgorithmIn = (typeof ChecksumAlgorithmIn)[keyof typeof Chec
362362
363363export type ChecksumAlgorithmOut = string ;
364364
365- export const ObjectStorageClass = {
365+ export const ObjectStorageClassIn = {
366366 DEEP_ARCHIVE : 'DEEP_ARCHIVE' ,
367367 EXPRESS_ONEZONE : 'EXPRESS_ONEZONE' ,
368368 GLACIER : 'GLACIER' ,
@@ -376,7 +376,7 @@ export const ObjectStorageClass = {
376376 STANDARD_IA : 'STANDARD_IA' ,
377377} as const ;
378378
379- export type ObjectStorageClass = ( typeof ObjectStorageClass ) [ keyof typeof ObjectStorageClass ] ;
379+ export type ObjectStorageClass < Dir > = InOut < Dir , ( typeof ObjectStorageClassIn ) [ keyof typeof ObjectStorageClassIn ] , string > ;
380380
381381export interface Owner {
382382 /**
@@ -520,7 +520,7 @@ export interface _Object<Dir> {
520520 * <b>Directory buckets</b> - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.</p>
521521 * </note>
522522 */
523- StorageClass ?: ObjectStorageClass ;
523+ StorageClass ?: ObjectStorageClass < Dir > ;
524524
525525 /**
526526 * <p>The owner of the object</p>
@@ -1009,7 +1009,7 @@ export interface PutObjectRequest {
10091009 * <p>
10101010 * <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>
10111011 */
1012- ServerSideEncryption ?: ServerSideEncryption ;
1012+ ServerSideEncryption ?: ServerSideEncryption < 'in' > ;
10131013 /**
10141014 * <p>By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The
10151015 * STANDARD storage class provides high durability and high availability. Depending on
@@ -1242,7 +1242,7 @@ export interface CompleteMultipartUploadOutput {
12421242 * <p>For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) is supported.</p>
12431243 * </note>
12441244 */
1245- ServerSideEncryption ?: ServerSideEncryption ;
1245+ ServerSideEncryption ?: ServerSideEncryption < 'out' > ;
12461246 /**
12471247 * <p>Version ID of the newly created object, in case the bucket has versioning turned
12481248 * on.</p>
0 commit comments