From 053a868e466ea9c5f77509f612c0670020670043 Mon Sep 17 00:00:00 2001 From: Trivikram Kamat <16024985+trivikr@users.noreply.github.com> Date: Fri, 18 Oct 2024 15:56:21 -0700 Subject: [PATCH] chore(codegen): update smithy to 1.52.0 (#6577) --- .../src/commands/DeleteObjectCommand.ts | 20 ++--- .../src/commands/GetObjectTaggingCommand.ts | 38 ++++----- .../src/commands/PutObjectCommand.ts | 82 +++++++++---------- .../src/commands/UploadPartCopyCommand.ts | 26 +++--- codegen/gradle.properties | 2 +- .../test/functional/restjson1.spec.ts | 36 +++++++- .../test/functional/restxml.spec.ts | 36 +++++++- .../src/protocols/Rpcv2cbor.ts | 1 + .../test/functional/rpcv2cbor.spec.ts | 54 ++++++++++++ scripts/generate-clients/config.js | 2 +- 10 files changed, 210 insertions(+), 87 deletions(-) diff --git a/clients/client-s3/src/commands/DeleteObjectCommand.ts b/clients/client-s3/src/commands/DeleteObjectCommand.ts index 60bee70a7e665..6f938a15d5d57 100644 --- a/clients/client-s3/src/commands/DeleteObjectCommand.ts +++ b/clients/client-s3/src/commands/DeleteObjectCommand.ts @@ -154,28 +154,28 @@ export interface DeleteObjectCommandOutput extends DeleteObjectOutput, __Metadat *

Base exception class for all service exceptions from S3 service.

* * @public - * @example To delete an object + * @example To delete an object (from a non-versioned bucket) * ```javascript - * // The following example deletes an object from an S3 bucket. + * // The following example deletes an object from a non-versioned bucket. * const input = { - * "Bucket": "examplebucket", - * "Key": "objectkey.jpg" + * "Bucket": "ExampleBucket", + * "Key": "HappyFace.jpg" * }; * const command = new DeleteObjectCommand(input); * await client.send(command); - * // example id: to-delete-an-object-1472850136595 + * // example id: to-delete-an-object-from-a-non-versioned-bucket-1481588533089 * ``` * - * @example To delete an object (from a non-versioned bucket) + * @example To delete an object * ```javascript - * // The following example deletes an object from a non-versioned bucket. + * // The following example deletes an object from an S3 bucket. * const input = { - * "Bucket": "ExampleBucket", - * "Key": "HappyFace.jpg" + * "Bucket": "examplebucket", + * "Key": "objectkey.jpg" * }; * const command = new DeleteObjectCommand(input); * await client.send(command); - * // example id: to-delete-an-object-from-a-non-versioned-bucket-1481588533089 + * // example id: to-delete-an-object-1472850136595 * ``` * */ diff --git a/clients/client-s3/src/commands/GetObjectTaggingCommand.ts b/clients/client-s3/src/commands/GetObjectTaggingCommand.ts index 32326f4bc9dcd..7d84170e5e3f4 100644 --- a/clients/client-s3/src/commands/GetObjectTaggingCommand.ts +++ b/clients/client-s3/src/commands/GetObjectTaggingCommand.ts @@ -98,12 +98,13 @@ export interface GetObjectTaggingCommandOutput extends GetObjectTaggingOutput, _ *

Base exception class for all service exceptions from S3 service.

* * @public - * @example To retrieve tag set of an object + * @example To retrieve tag set of a specific object version * ```javascript - * // The following example retrieves tag set of an object. + * // The following example retrieves tag set of an object. The request specifies object version. * const input = { * "Bucket": "examplebucket", - * "Key": "HappyFace.jpg" + * "Key": "exampleobject", + * "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" * }; * const command = new GetObjectTaggingCommand(input); * const response = await client.send(command); @@ -111,27 +112,22 @@ export interface GetObjectTaggingCommandOutput extends GetObjectTaggingOutput, _ * { * "TagSet": [ * { - * "Key": "Key4", - * "Value": "Value4" - * }, - * { - * "Key": "Key3", - * "Value": "Value3" + * "Key": "Key1", + * "Value": "Value1" * } * ], - * "VersionId": "null" + * "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" * } * *\/ - * // example id: to-retrieve-tag-set-of-an-object-1481833847896 + * // example id: to-retrieve-tag-set-of-a-specific-object-version-1483400283663 * ``` * - * @example To retrieve tag set of a specific object version + * @example To retrieve tag set of an object * ```javascript - * // The following example retrieves tag set of an object. The request specifies object version. + * // The following example retrieves tag set of an object. * const input = { * "Bucket": "examplebucket", - * "Key": "exampleobject", - * "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + * "Key": "HappyFace.jpg" * }; * const command = new GetObjectTaggingCommand(input); * const response = await client.send(command); @@ -139,14 +135,18 @@ export interface GetObjectTaggingCommandOutput extends GetObjectTaggingOutput, _ * { * "TagSet": [ * { - * "Key": "Key1", - * "Value": "Value1" + * "Key": "Key4", + * "Value": "Value4" + * }, + * { + * "Key": "Key3", + * "Value": "Value3" * } * ], - * "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + * "VersionId": "null" * } * *\/ - * // example id: to-retrieve-tag-set-of-a-specific-object-version-1483400283663 + * // example id: to-retrieve-tag-set-of-an-object-1481833847896 * ``` * */ diff --git a/clients/client-s3/src/commands/PutObjectCommand.ts b/clients/client-s3/src/commands/PutObjectCommand.ts index 92410019d42b5..1b3708e7c6c5e 100644 --- a/clients/client-s3/src/commands/PutObjectCommand.ts +++ b/clients/client-s3/src/commands/PutObjectCommand.ts @@ -249,43 +249,46 @@ export interface PutObjectCommandOutput extends PutObjectOutput, __MetadataBeare *

Base exception class for all service exceptions from S3 service.

* * @public - * @example To upload an object and specify canned ACL. + * @example To create an object. * ```javascript - * // The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response. + * // The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response. * const input = { - * "ACL": "authenticated-read", * "Body": "filetoupload", * "Bucket": "examplebucket", - * "Key": "exampleobject" + * "Key": "objectkey" * }; * const command = new PutObjectCommand(input); * const response = await client.send(command); * /* response == * { * "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - * "VersionId": "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr" + * "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" * } * *\/ - * // example id: to-upload-an-object-and-specify-canned-acl-1483397779571 + * // example id: to-create-an-object-1483147613675 * ``` * - * @example To create an object. + * @example To upload object and specify user-defined metadata * ```javascript - * // The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response. + * // The following example creates an object. The request also specifies optional metadata. If the bucket is versioning enabled, S3 returns version ID in response. * const input = { * "Body": "filetoupload", * "Bucket": "examplebucket", - * "Key": "objectkey" + * "Key": "exampleobject", + * "Metadata": { + * "metadata1": "value1", + * "metadata2": "value2" + * } * }; * const command = new PutObjectCommand(input); * const response = await client.send(command); * /* response == * { * "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - * "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" + * "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0" * } * *\/ - * // example id: to-create-an-object-1483147613675 + * // example id: to-upload-object-and-specify-user-defined-metadata-1483396974757 * ``` * * @example To upload an object @@ -307,35 +310,35 @@ export interface PutObjectCommandOutput extends PutObjectOutput, __MetadataBeare * // example id: to-upload-an-object-1481760101010 * ``` * - * @example To upload an object and specify optional tags + * @example To upload an object and specify canned ACL. * ```javascript - * // The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore S3 returns version ID of the newly created object. + * // The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response. * const input = { - * "Body": "c:\\HappyFace.jpg", + * "ACL": "authenticated-read", + * "Body": "filetoupload", * "Bucket": "examplebucket", - * "Key": "HappyFace.jpg", - * "Tagging": "key1=value1&key2=value2" + * "Key": "exampleobject" * }; * const command = new PutObjectCommand(input); * const response = await client.send(command); * /* response == * { * "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - * "VersionId": "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a" + * "VersionId": "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr" * } * *\/ - * // example id: to-upload-an-object-and-specify-optional-tags-1481762310955 + * // example id: to-upload-an-object-and-specify-canned-acl-1483397779571 * ``` * - * @example To upload an object and specify server-side encryption and object tags + * @example To upload an object (specify optional headers) * ```javascript - * // The following example uploads an object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response. + * // The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption. * const input = { - * "Body": "filetoupload", + * "Body": "HappyFace.jpg", * "Bucket": "examplebucket", - * "Key": "exampleobject", + * "Key": "HappyFace.jpg", * "ServerSideEncryption": "AES256", - * "Tagging": "key1=value1&key2=value2" + * "StorageClass": "STANDARD_IA" * }; * const command = new PutObjectCommand(input); * const response = await client.send(command); @@ -343,55 +346,52 @@ export interface PutObjectCommandOutput extends PutObjectOutput, __MetadataBeare * { * "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", * "ServerSideEncryption": "AES256", - * "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" + * "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp" * } * *\/ - * // example id: to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831 + * // example id: to-upload-an-object-(specify-optional-headers) * ``` * - * @example To upload an object (specify optional headers) + * @example To upload an object and specify optional tags * ```javascript - * // The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption. + * // The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore S3 returns version ID of the newly created object. * const input = { - * "Body": "HappyFace.jpg", + * "Body": "c:\\HappyFace.jpg", * "Bucket": "examplebucket", * "Key": "HappyFace.jpg", - * "ServerSideEncryption": "AES256", - * "StorageClass": "STANDARD_IA" + * "Tagging": "key1=value1&key2=value2" * }; * const command = new PutObjectCommand(input); * const response = await client.send(command); * /* response == * { * "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - * "ServerSideEncryption": "AES256", - * "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp" + * "VersionId": "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a" * } * *\/ - * // example id: to-upload-an-object-(specify-optional-headers) + * // example id: to-upload-an-object-and-specify-optional-tags-1481762310955 * ``` * - * @example To upload object and specify user-defined metadata + * @example To upload an object and specify server-side encryption and object tags * ```javascript - * // The following example creates an object. The request also specifies optional metadata. If the bucket is versioning enabled, S3 returns version ID in response. + * // The following example uploads an object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response. * const input = { * "Body": "filetoupload", * "Bucket": "examplebucket", * "Key": "exampleobject", - * "Metadata": { - * "metadata1": "value1", - * "metadata2": "value2" - * } + * "ServerSideEncryption": "AES256", + * "Tagging": "key1=value1&key2=value2" * }; * const command = new PutObjectCommand(input); * const response = await client.send(command); * /* response == * { * "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - * "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0" + * "ServerSideEncryption": "AES256", + * "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" * } * *\/ - * // example id: to-upload-object-and-specify-user-defined-metadata-1483396974757 + * // example id: to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831 * ``` * */ diff --git a/clients/client-s3/src/commands/UploadPartCopyCommand.ts b/clients/client-s3/src/commands/UploadPartCopyCommand.ts index a330ba4d28b98..3ea96249be70a 100644 --- a/clients/client-s3/src/commands/UploadPartCopyCommand.ts +++ b/clients/client-s3/src/commands/UploadPartCopyCommand.ts @@ -305,14 +305,15 @@ export interface UploadPartCopyCommandOutput extends UploadPartCopyOutput, __Met *

Base exception class for all service exceptions from S3 service.

* * @public - * @example To upload a part by copying data from an existing object as data source + * @example To upload a part by copying byte range from an existing object as data source * ```javascript - * // The following example uploads a part of a multipart upload by copying data from an existing object as data source. + * // The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as data source. * const input = { * "Bucket": "examplebucket", * "CopySource": "/bucketname/sourceobjectkey", + * "CopySourceRange": "bytes=1-100000", * "Key": "examplelargeobject", - * "PartNumber": "1", + * "PartNumber": "2", * "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--" * }; * const command = new UploadPartCopyCommand(input); @@ -320,23 +321,22 @@ export interface UploadPartCopyCommandOutput extends UploadPartCopyOutput, __Met * /* response == * { * "CopyPartResult": { - * "ETag": "\"b0c6f0e7e054ab8fa2536a2677f8734d\"", - * "LastModified": "2016-12-29T21:24:43.000Z" + * "ETag": "\"65d16d19e65a7508a51f043180edcc36\"", + * "LastModified": "2016-12-29T21:44:28.000Z" * } * } * *\/ - * // example id: to-upload-a-part-by-copying-data-from-an-existing-object-as-data-source-1483046746348 + * // example id: to-upload-a-part-by-copying-byte-range-from-an-existing-object-as-data-source-1483048068594 * ``` * - * @example To upload a part by copying byte range from an existing object as data source + * @example To upload a part by copying data from an existing object as data source * ```javascript - * // The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as data source. + * // The following example uploads a part of a multipart upload by copying data from an existing object as data source. * const input = { * "Bucket": "examplebucket", * "CopySource": "/bucketname/sourceobjectkey", - * "CopySourceRange": "bytes=1-100000", * "Key": "examplelargeobject", - * "PartNumber": "2", + * "PartNumber": "1", * "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--" * }; * const command = new UploadPartCopyCommand(input); @@ -344,12 +344,12 @@ export interface UploadPartCopyCommandOutput extends UploadPartCopyOutput, __Met * /* response == * { * "CopyPartResult": { - * "ETag": "\"65d16d19e65a7508a51f043180edcc36\"", - * "LastModified": "2016-12-29T21:44:28.000Z" + * "ETag": "\"b0c6f0e7e054ab8fa2536a2677f8734d\"", + * "LastModified": "2016-12-29T21:24:43.000Z" * } * } * *\/ - * // example id: to-upload-a-part-by-copying-byte-range-from-an-existing-object-as-data-source-1483048068594 + * // example id: to-upload-a-part-by-copying-data-from-an-existing-object-as-data-source-1483046746348 * ``` * */ diff --git a/codegen/gradle.properties b/codegen/gradle.properties index d98db7dc4acbd..4e208b07effa6 100644 --- a/codegen/gradle.properties +++ b/codegen/gradle.properties @@ -1,2 +1,2 @@ -smithyVersion=1.51.0 +smithyVersion=1.52.0 smithyGradleVersion=0.6.0 diff --git a/private/aws-protocoltests-restjson/test/functional/restjson1.spec.ts b/private/aws-protocoltests-restjson/test/functional/restjson1.spec.ts index 5deab5de6b28d..71ec51800e3d8 100644 --- a/private/aws-protocoltests-restjson/test/functional/restjson1.spec.ts +++ b/private/aws-protocoltests-restjson/test/functional/restjson1.spec.ts @@ -2833,7 +2833,7 @@ it("RestJsonHttpPrefixHeadersArePresent:Request", async () => { }); /** - * No prefix headers are serialized because the value is empty + * No prefix headers are serialized because the value is not present */ it("RestJsonHttpPrefixHeadersAreNotPresent:Request", async () => { const client = new RestJsonProtocolClient({ @@ -2865,6 +2865,40 @@ it("RestJsonHttpPrefixHeadersAreNotPresent:Request", async () => { } }); +/** + * Serialize prefix headers were the value is present but empty + */ +it("RestJsonHttpPrefixEmptyHeaders:Request", async () => { + const client = new RestJsonProtocolClient({ + ...clientParams, + requestHandler: new RequestSerializationTestHandler(), + }); + + const command = new HttpPrefixHeadersCommand({ + fooMap: { + Abc: "", + } as any, + } as any); + try { + await client.send(command); + fail("Expected an EXPECTED_REQUEST_SERIALIZATION_ERROR to be thrown"); + return; + } catch (err) { + if (!(err instanceof EXPECTED_REQUEST_SERIALIZATION_ERROR)) { + fail(err); + return; + } + const r = err.request; + expect(r.method).toBe("GET"); + expect(r.path).toBe("/HttpPrefixHeaders"); + + expect(r.headers["x-foo-abc"]).toBeDefined(); + expect(r.headers["x-foo-abc"]).toBe(""); + + expect(!r.body || r.body === `{}`).toBeTruthy(); + } +}); + /** * Adds headers by prefix */ diff --git a/private/aws-protocoltests-restxml/test/functional/restxml.spec.ts b/private/aws-protocoltests-restxml/test/functional/restxml.spec.ts index 1af7f8751c6da..356b2d6f8e621 100644 --- a/private/aws-protocoltests-restxml/test/functional/restxml.spec.ts +++ b/private/aws-protocoltests-restxml/test/functional/restxml.spec.ts @@ -2305,7 +2305,7 @@ it("HttpPrefixHeadersArePresent:Request", async () => { }); /** - * No prefix headers are serialized because the value is empty + * No prefix headers are serialized because the value is not present */ it("HttpPrefixHeadersAreNotPresent:Request", async () => { const client = new RestXmlProtocolClient({ @@ -2337,6 +2337,40 @@ it("HttpPrefixHeadersAreNotPresent:Request", async () => { } }); +/** + * Serialize prefix headers were the value is present but empty + */ +it("HttpPrefixEmptyHeaders:Request", async () => { + const client = new RestXmlProtocolClient({ + ...clientParams, + requestHandler: new RequestSerializationTestHandler(), + }); + + const command = new HttpPrefixHeadersCommand({ + fooMap: { + Abc: "", + } as any, + } as any); + try { + await client.send(command); + fail("Expected an EXPECTED_REQUEST_SERIALIZATION_ERROR to be thrown"); + return; + } catch (err) { + if (!(err instanceof EXPECTED_REQUEST_SERIALIZATION_ERROR)) { + fail(err); + return; + } + const r = err.request; + expect(r.method).toBe("GET"); + expect(r.path).toBe("/HttpPrefixHeaders"); + + expect(r.headers["x-foo-abc"]).toBeDefined(); + expect(r.headers["x-foo-abc"]).toBe(""); + + expect(!r.body || r.body === `{}`).toBeTruthy(); + } +}); + /** * Adds headers by prefix */ diff --git a/private/aws-protocoltests-smithy-rpcv2-cbor/src/protocols/Rpcv2cbor.ts b/private/aws-protocoltests-smithy-rpcv2-cbor/src/protocols/Rpcv2cbor.ts index fbad324954d3f..d77f4b991b403 100644 --- a/private/aws-protocoltests-smithy-rpcv2-cbor/src/protocols/Rpcv2cbor.ts +++ b/private/aws-protocoltests-smithy-rpcv2-cbor/src/protocols/Rpcv2cbor.ts @@ -1229,4 +1229,5 @@ const throwDefaultError = withBaseException(__BaseException); const SHARED_HEADERS: __HeaderBag = { "content-type": "application/cbor", "smithy-protocol": "rpc-v2-cbor", + accept: "application/cbor", }; diff --git a/private/aws-protocoltests-smithy-rpcv2-cbor/test/functional/rpcv2cbor.spec.ts b/private/aws-protocoltests-smithy-rpcv2-cbor/test/functional/rpcv2cbor.spec.ts index 74f2fd2367fb8..cb2fb1599e3b8 100644 --- a/private/aws-protocoltests-smithy-rpcv2-cbor/test/functional/rpcv2cbor.spec.ts +++ b/private/aws-protocoltests-smithy-rpcv2-cbor/test/functional/rpcv2cbor.spec.ts @@ -240,6 +240,8 @@ it("empty_input:Request", async () => { expect(r.headers["x-amz-target"]).toBeUndefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -695,6 +697,8 @@ it("no_input:Request", async () => { expect(r.headers["content-type"]).toBeUndefined(); expect(r.headers["x-amz-target"]).toBeUndefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); expect(r.headers["smithy-protocol"]).toBe("rpc-v2-cbor"); @@ -818,6 +822,8 @@ it.skip("RpcV2CborClientPopulatesDefaultValuesInInput:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/OperationWithDefaults"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -854,6 +860,8 @@ it.skip("RpcV2CborClientSkipsTopLevelDefaultValuesInInput:Request", async () => expect(r.path).toBe("/service/RpcV2Protocol/operation/OperationWithDefaults"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -918,6 +926,8 @@ it.skip("RpcV2CborClientUsesExplicitlyProvidedMemberValuesOverDefaults:Request", expect(r.path).toBe("/service/RpcV2Protocol/operation/OperationWithDefaults"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -957,6 +967,8 @@ it.skip("RpcV2CborClientUsesExplicitlyProvidedValuesInTopLevel:Request", async ( expect(r.path).toBe("/service/RpcV2Protocol/operation/OperationWithDefaults"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -995,6 +1007,8 @@ it.skip("RpcV2CborClientIgnoresNonTopLevelDefaultsOnMembersWithClientOptional:Re expect(r.path).toBe("/service/RpcV2Protocol/operation/OperationWithDefaults"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -1156,6 +1170,8 @@ it("optional_input:Request", async () => { expect(r.headers["x-amz-target"]).toBeUndefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -1235,6 +1251,8 @@ it("RpcV2CborRecursiveShapes:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/RecursiveShapes"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -1380,6 +1398,8 @@ it("RpcV2CborMaps:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/RpcV2CborDenseMaps"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -1423,6 +1443,8 @@ it("RpcV2CborSerializesZeroValuesInMaps:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/RpcV2CborDenseMaps"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -1464,6 +1486,8 @@ it("RpcV2CborSerializesDenseSetMap:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/RpcV2CborDenseMaps"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -1698,6 +1722,8 @@ it("RpcV2CborLists:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/RpcV2CborLists"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -1736,6 +1762,8 @@ it("RpcV2CborListsEmpty:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/RpcV2CborLists"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -1774,6 +1802,8 @@ it("RpcV2CborListsEmptyUsingDefiniteLength:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/RpcV2CborLists"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -2004,6 +2034,8 @@ it("RpcV2CborSparseMaps:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/RpcV2CborSparseMaps"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -2053,6 +2085,8 @@ it("RpcV2CborSerializesNullMapValues:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/RpcV2CborSparseMaps"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -2094,6 +2128,8 @@ it("RpcV2CborSerializesSparseSetMap:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/RpcV2CborSparseMaps"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -2136,6 +2172,8 @@ it("RpcV2CborSerializesSparseSetMapAndRetainsNull:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/RpcV2CborSparseMaps"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -2179,6 +2217,8 @@ it("RpcV2CborSerializesZeroValuesInSparseMaps:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/RpcV2CborSparseMaps"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -2451,6 +2491,8 @@ it("RpcV2CborSimpleScalarProperties:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/SimpleScalarProperties"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -2489,6 +2531,8 @@ it("RpcV2CborClientDoesntSerializeNullStructureValues:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/SimpleScalarProperties"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -2528,6 +2572,8 @@ it("RpcV2CborSupportsNaNFloatInputs:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/SimpleScalarProperties"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -2567,6 +2613,8 @@ it("RpcV2CborSupportsInfinityFloatInputs:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/SimpleScalarProperties"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -2606,6 +2654,8 @@ it("RpcV2CborSupportsNegativeInfinityFloatInputs:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/SimpleScalarProperties"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -2983,6 +3033,8 @@ it("RpcV2CborSparseMapsSerializeNullValues:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/SparseNullsOperation"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); @@ -3021,6 +3073,8 @@ it("RpcV2CborSparseListsSerializeNull:Request", async () => { expect(r.path).toBe("/service/RpcV2Protocol/operation/SparseNullsOperation"); expect(r.headers["content-length"]).toBeDefined(); + expect(r.headers["accept"]).toBeDefined(); + expect(r.headers["accept"]).toBe("application/cbor"); expect(r.headers["content-type"]).toBeDefined(); expect(r.headers["content-type"]).toBe("application/cbor"); expect(r.headers["smithy-protocol"]).toBeDefined(); diff --git a/scripts/generate-clients/config.js b/scripts/generate-clients/config.js index bb27491a11a69..f1a9ca3463bcf 100644 --- a/scripts/generate-clients/config.js +++ b/scripts/generate-clients/config.js @@ -1,7 +1,7 @@ // Update this commit when taking up new changes from smithy-typescript. module.exports = { // Use full commit hash as we explicitly fetch it. - SMITHY_TS_COMMIT: "98d74245c48bc5cf0153112d1dbaa1fcde4139df", + SMITHY_TS_COMMIT: "140751e77d414e45d9100a5698744b08fc9a21fa", }; if (module.exports.SMITHY_TS_COMMIT.length < 40) {