Skip to content

Commit 9407d5e

Browse files
committed
fix(clients): lowercase header prefix
1 parent f4eadfb commit 9407d5e

File tree

5 files changed

+155
-155
lines changed

5 files changed

+155
-155
lines changed

clients/client-s3/protocols/Aws_restXml.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,7 @@ export const serializeAws_restXmlCopyObjectCommand = async (
593593
}),
594594
...(input.Metadata !== undefined &&
595595
Object.keys(input.Metadata).reduce((acc: any, suffix: string) => {
596-
acc["x-amz-meta-" + suffix] = input.Metadata![suffix];
596+
acc["x-amz-meta-" + suffix!.toLowerCase()] = input.Metadata![suffix];
597597
return acc;
598598
}, {})),
599599
};
@@ -742,7 +742,7 @@ export const serializeAws_restXmlCreateMultipartUploadCommand = async (
742742
}),
743743
...(input.Metadata !== undefined &&
744744
Object.keys(input.Metadata).reduce((acc: any, suffix: string) => {
745-
acc["x-amz-meta-" + suffix] = input.Metadata![suffix];
745+
acc["x-amz-meta-" + suffix!.toLowerCase()] = input.Metadata![suffix];
746746
return acc;
747747
}, {})),
748748
};
@@ -3955,7 +3955,7 @@ export const serializeAws_restXmlPutObjectCommand = async (
39553955
}),
39563956
...(input.Metadata !== undefined &&
39573957
Object.keys(input.Metadata).reduce((acc: any, suffix: string) => {
3958-
acc["x-amz-meta-" + suffix] = input.Metadata![suffix];
3958+
acc["x-amz-meta-" + suffix!.toLowerCase()] = input.Metadata![suffix];
39593959
return acc;
39603960
}, {})),
39613961
};

protocol_tests/aws-restjson/protocols/Aws_restJson1.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ export const serializeAws_restJson1HttpPrefixHeadersCommand = async (
372372
...(isSerializableHeaderValue(input.foo) && { "x-foo": input.foo! }),
373373
...(input.fooMap !== undefined &&
374374
Object.keys(input.fooMap).reduce((acc: any, suffix: string) => {
375-
acc["x-foo-" + suffix] = input.fooMap![suffix];
375+
acc["x-foo-" + suffix!.toLowerCase()] = input.fooMap![suffix];
376376
return acc;
377377
}, {})),
378378
};

protocol_tests/aws-restjson/tests/functional/restjson1.spec.ts

Lines changed: 79 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -952,8 +952,8 @@ it("RestJsonHttpPayloadTraitsWithBlob:Request", async () => {
952952
expect(r.path).toBe("/HttpPayloadTraits");
953953
expect(r.headers["content-length"]).toBeDefined();
954954

955-
expect(r.headers["X-Foo"]).toBeDefined();
956-
expect(r.headers["X-Foo"]).toBe("Foo");
955+
expect(r.headers["x-foo"]).toBeDefined();
956+
expect(r.headers["x-foo"]).toBe("Foo");
957957

958958
expect(r.body).toBeDefined();
959959
expect(r.body).toMatchObject(Uint8Array.from("blobby blob blob", (c) => c.charCodeAt(0)));
@@ -985,8 +985,8 @@ it("RestJsonHttpPayloadTraitsWithNoBlobBody:Request", async () => {
985985
expect(r.method).toBe("POST");
986986
expect(r.path).toBe("/HttpPayloadTraits");
987987

988-
expect(r.headers["X-Foo"]).toBeDefined();
989-
expect(r.headers["X-Foo"]).toBe("Foo");
988+
expect(r.headers["x-foo"]).toBeDefined();
989+
expect(r.headers["x-foo"]).toBe("Foo");
990990

991991
expect(r.body).toBeFalsy();
992992
}
@@ -1100,8 +1100,8 @@ it("RestJsonHttpPayloadTraitsWithMediaTypeWithBlob:Request", async () => {
11001100

11011101
expect(r.headers["content-type"]).toBeDefined();
11021102
expect(r.headers["content-type"]).toBe("text/plain");
1103-
expect(r.headers["X-Foo"]).toBeDefined();
1104-
expect(r.headers["X-Foo"]).toBe("Foo");
1103+
expect(r.headers["x-foo"]).toBeDefined();
1104+
expect(r.headers["x-foo"]).toBe("Foo");
11051105

11061106
expect(r.body).toBeDefined();
11071107
expect(r.body).toMatchObject(Uint8Array.from("blobby blob blob", (c) => c.charCodeAt(0)));
@@ -1268,12 +1268,12 @@ it("RestJsonHttpPrefixHeadersArePresent:Request", async () => {
12681268
expect(r.method).toBe("GET");
12691269
expect(r.path).toBe("/HttpPrefixHeaders");
12701270

1271-
expect(r.headers["X-Foo"]).toBeDefined();
1272-
expect(r.headers["X-Foo"]).toBe("Foo");
1273-
expect(r.headers["X-Foo-Abc"]).toBeDefined();
1274-
expect(r.headers["X-Foo-Abc"]).toBe("Abc value");
1275-
expect(r.headers["X-Foo-Def"]).toBeDefined();
1276-
expect(r.headers["X-Foo-Def"]).toBe("Def value");
1271+
expect(r.headers["x-foo"]).toBeDefined();
1272+
expect(r.headers["x-foo"]).toBe("Foo");
1273+
expect(r.headers["x-foo-abc"]).toBeDefined();
1274+
expect(r.headers["x-foo-abc"]).toBe("Abc value");
1275+
expect(r.headers["x-foo-def"]).toBeDefined();
1276+
expect(r.headers["x-foo-def"]).toBe("Def value");
12771277

12781278
expect(r.body).toBeFalsy();
12791279
}
@@ -1306,8 +1306,8 @@ it("RestJsonHttpPrefixHeadersAreNotPresent:Request", async () => {
13061306
expect(r.method).toBe("GET");
13071307
expect(r.path).toBe("/HttpPrefixHeaders");
13081308

1309-
expect(r.headers["X-Foo"]).toBeDefined();
1310-
expect(r.headers["X-Foo"]).toBe("Foo");
1309+
expect(r.headers["x-foo"]).toBeDefined();
1310+
expect(r.headers["x-foo"]).toBe("Foo");
13111311

13121312
expect(r.body).toBeFalsy();
13131313
}
@@ -1787,12 +1787,12 @@ it("RestJsonInputAndOutputWithStringHeaders:Request", async () => {
17871787
expect(r.method).toBe("POST");
17881788
expect(r.path).toBe("/InputAndOutputWithHeaders");
17891789

1790-
expect(r.headers["X-String"]).toBeDefined();
1791-
expect(r.headers["X-String"]).toBe("Hello");
1792-
expect(r.headers["X-StringList"]).toBeDefined();
1793-
expect(r.headers["X-StringList"]).toBe("a, b, c");
1794-
expect(r.headers["X-StringSet"]).toBeDefined();
1795-
expect(r.headers["X-StringSet"]).toBe("a, b, c");
1790+
expect(r.headers["x-string"]).toBeDefined();
1791+
expect(r.headers["x-string"]).toBe("Hello");
1792+
expect(r.headers["x-stringlist"]).toBeDefined();
1793+
expect(r.headers["x-stringlist"]).toBe("a, b, c");
1794+
expect(r.headers["x-stringset"]).toBeDefined();
1795+
expect(r.headers["x-stringset"]).toBe("a, b, c");
17961796

17971797
expect(r.body).toBeFalsy();
17981798
}
@@ -1835,20 +1835,20 @@ it("RestJsonInputAndOutputWithNumericHeaders:Request", async () => {
18351835
expect(r.method).toBe("POST");
18361836
expect(r.path).toBe("/InputAndOutputWithHeaders");
18371837

1838-
expect(r.headers["X-Byte"]).toBeDefined();
1839-
expect(r.headers["X-Byte"]).toBe("1");
1840-
expect(r.headers["X-Double"]).toBeDefined();
1841-
expect(r.headers["X-Double"]).toBe("1.1");
1842-
expect(r.headers["X-Float"]).toBeDefined();
1843-
expect(r.headers["X-Float"]).toBe("1.1");
1844-
expect(r.headers["X-Integer"]).toBeDefined();
1845-
expect(r.headers["X-Integer"]).toBe("123");
1846-
expect(r.headers["X-IntegerList"]).toBeDefined();
1847-
expect(r.headers["X-IntegerList"]).toBe("1, 2, 3");
1848-
expect(r.headers["X-Long"]).toBeDefined();
1849-
expect(r.headers["X-Long"]).toBe("123");
1850-
expect(r.headers["X-Short"]).toBeDefined();
1851-
expect(r.headers["X-Short"]).toBe("123");
1838+
expect(r.headers["x-byte"]).toBeDefined();
1839+
expect(r.headers["x-byte"]).toBe("1");
1840+
expect(r.headers["x-double"]).toBeDefined();
1841+
expect(r.headers["x-double"]).toBe("1.1");
1842+
expect(r.headers["x-float"]).toBeDefined();
1843+
expect(r.headers["x-float"]).toBe("1.1");
1844+
expect(r.headers["x-integer"]).toBeDefined();
1845+
expect(r.headers["x-integer"]).toBe("123");
1846+
expect(r.headers["x-integerlist"]).toBeDefined();
1847+
expect(r.headers["x-integerlist"]).toBe("1, 2, 3");
1848+
expect(r.headers["x-long"]).toBeDefined();
1849+
expect(r.headers["x-long"]).toBe("123");
1850+
expect(r.headers["x-short"]).toBeDefined();
1851+
expect(r.headers["x-short"]).toBe("123");
18521852

18531853
expect(r.body).toBeFalsy();
18541854
}
@@ -1883,12 +1883,12 @@ it("RestJsonInputAndOutputWithBooleanHeaders:Request", async () => {
18831883
expect(r.method).toBe("POST");
18841884
expect(r.path).toBe("/InputAndOutputWithHeaders");
18851885

1886-
expect(r.headers["X-Boolean1"]).toBeDefined();
1887-
expect(r.headers["X-Boolean1"]).toBe("true");
1888-
expect(r.headers["X-Boolean2"]).toBeDefined();
1889-
expect(r.headers["X-Boolean2"]).toBe("false");
1890-
expect(r.headers["X-BooleanList"]).toBeDefined();
1891-
expect(r.headers["X-BooleanList"]).toBe("true, false, true");
1886+
expect(r.headers["x-boolean1"]).toBeDefined();
1887+
expect(r.headers["x-boolean1"]).toBe("true");
1888+
expect(r.headers["x-boolean2"]).toBeDefined();
1889+
expect(r.headers["x-boolean2"]).toBe("false");
1890+
expect(r.headers["x-booleanlist"]).toBeDefined();
1891+
expect(r.headers["x-booleanlist"]).toBe("true, false, true");
18921892

18931893
expect(r.body).toBeFalsy();
18941894
}
@@ -1919,8 +1919,8 @@ it("RestJsonInputAndOutputWithTimestampHeaders:Request", async () => {
19191919
expect(r.method).toBe("POST");
19201920
expect(r.path).toBe("/InputAndOutputWithHeaders");
19211921

1922-
expect(r.headers["X-TimestampList"]).toBeDefined();
1923-
expect(r.headers["X-TimestampList"]).toBe("Mon, 16 Dec 2019 23:48:18 GMT, Mon, 16 Dec 2019 23:48:18 GMT");
1922+
expect(r.headers["x-timestamplist"]).toBeDefined();
1923+
expect(r.headers["x-timestamplist"]).toBe("Mon, 16 Dec 2019 23:48:18 GMT, Mon, 16 Dec 2019 23:48:18 GMT");
19241924

19251925
expect(r.body).toBeFalsy();
19261926
}
@@ -1953,10 +1953,10 @@ it("RestJsonInputAndOutputWithEnumHeaders:Request", async () => {
19531953
expect(r.method).toBe("POST");
19541954
expect(r.path).toBe("/InputAndOutputWithHeaders");
19551955

1956-
expect(r.headers["X-Enum"]).toBeDefined();
1957-
expect(r.headers["X-Enum"]).toBe("Foo");
1958-
expect(r.headers["X-EnumList"]).toBeDefined();
1959-
expect(r.headers["X-EnumList"]).toBe("Foo, Bar, Baz");
1956+
expect(r.headers["x-enum"]).toBeDefined();
1957+
expect(r.headers["x-enum"]).toBe("Foo");
1958+
expect(r.headers["x-enumlist"]).toBeDefined();
1959+
expect(r.headers["x-enumlist"]).toBe("Foo, Bar, Baz");
19601960

19611961
expect(r.body).toBeFalsy();
19621962
}
@@ -2017,8 +2017,8 @@ it("RestJsonInputAndOutputWithNumericHeaders:Response", async () => {
20172017
200,
20182018
{
20192019
"x-float": "1.1",
2020-
"x-byte": "1",
20212020
"x-long": "123",
2021+
"x-byte": "1",
20222022
"x-integer": "123",
20232023
"x-integerlist": "1, 2, 3",
20242024
"x-double": "1.1",
@@ -4295,8 +4295,8 @@ it("MediaTypeHeaderInputBase64:Request", async () => {
42954295
expect(r.method).toBe("GET");
42964296
expect(r.path).toBe("/MediaTypeHeader");
42974297

4298-
expect(r.headers["X-Json"]).toBeDefined();
4299-
expect(r.headers["X-Json"]).toBe("dHJ1ZQ==");
4298+
expect(r.headers["x-json"]).toBeDefined();
4299+
expect(r.headers["x-json"]).toBe("dHJ1ZQ==");
43004300

43014301
expect(r.body).toBeFalsy();
43024302
}
@@ -4463,9 +4463,9 @@ it("RestJsonNullAndEmptyHeaders:Request", async () => {
44634463
expect(r.method).toBe("GET");
44644464
expect(r.path).toBe("/NullAndEmptyHeadersClient");
44654465

4466-
expect(r.headers["X-A"]).toBeUndefined();
4467-
expect(r.headers["X-B"]).toBeUndefined();
4468-
expect(r.headers["X-C"]).toBeUndefined();
4466+
expect(r.headers["x-a"]).toBeUndefined();
4467+
expect(r.headers["x-b"]).toBeUndefined();
4468+
expect(r.headers["x-c"]).toBeUndefined();
44694469

44704470
expect(r.body).toBeFalsy();
44714471
}
@@ -4741,8 +4741,8 @@ it("RestJsonSimpleScalarProperties:Request", async () => {
47414741

47424742
expect(r.headers["content-type"]).toBeDefined();
47434743
expect(r.headers["content-type"]).toBe("application/json");
4744-
expect(r.headers["X-Foo"]).toBeDefined();
4745-
expect(r.headers["X-Foo"]).toBe("Foo");
4744+
expect(r.headers["x-foo"]).toBeDefined();
4745+
expect(r.headers["x-foo"]).toBe("Foo");
47464746

47474747
expect(r.body).toBeDefined();
47484748
const bodyString = `{
@@ -4921,8 +4921,8 @@ it("RestJsonStreamingTraitsWithBlob:Request", async () => {
49214921

49224922
expect(r.headers["content-type"]).toBeDefined();
49234923
expect(r.headers["content-type"]).toBe("application/octet-stream");
4924-
expect(r.headers["X-Foo"]).toBeDefined();
4925-
expect(r.headers["X-Foo"]).toBe("Foo");
4924+
expect(r.headers["x-foo"]).toBeDefined();
4925+
expect(r.headers["x-foo"]).toBe("Foo");
49264926

49274927
expect(r.body).toBeDefined();
49284928
expect(r.body).toMatchObject(Uint8Array.from("blobby blob blob", (c) => c.charCodeAt(0)));
@@ -4954,8 +4954,8 @@ it("RestJsonStreamingTraitsWithNoBlobBody:Request", async () => {
49544954
expect(r.method).toBe("POST");
49554955
expect(r.path).toBe("/StreamingTraits");
49564956

4957-
expect(r.headers["X-Foo"]).toBeDefined();
4958-
expect(r.headers["X-Foo"]).toBe("Foo");
4957+
expect(r.headers["x-foo"]).toBeDefined();
4958+
expect(r.headers["x-foo"]).toBe("Foo");
49594959

49604960
expect(r.body).toBeFalsy();
49614961
}
@@ -5080,8 +5080,8 @@ it("RestJsonStreamingTraitsRequireLengthWithBlob:Request", async () => {
50805080

50815081
expect(r.headers["content-type"]).toBeDefined();
50825082
expect(r.headers["content-type"]).toBe("application/octet-stream");
5083-
expect(r.headers["X-Foo"]).toBeDefined();
5084-
expect(r.headers["X-Foo"]).toBe("Foo");
5083+
expect(r.headers["x-foo"]).toBeDefined();
5084+
expect(r.headers["x-foo"]).toBe("Foo");
50855085

50865086
expect(r.body).toBeDefined();
50875087
expect(r.body).toMatchObject(Uint8Array.from("blobby blob blob", (c) => c.charCodeAt(0)));
@@ -5113,8 +5113,8 @@ it("RestJsonStreamingTraitsRequireLengthWithNoBlobBody:Request", async () => {
51135113
expect(r.method).toBe("POST");
51145114
expect(r.path).toBe("/StreamingTraitsRequireLength");
51155115

5116-
expect(r.headers["X-Foo"]).toBeDefined();
5117-
expect(r.headers["X-Foo"]).toBe("Foo");
5116+
expect(r.headers["x-foo"]).toBeDefined();
5117+
expect(r.headers["x-foo"]).toBe("Foo");
51185118

51195119
expect(r.body).toBeFalsy();
51205120
}
@@ -5238,8 +5238,8 @@ it("RestJsonStreamingTraitsWithMediaTypeWithBlob:Request", async () => {
52385238

52395239
expect(r.headers["content-type"]).toBeDefined();
52405240
expect(r.headers["content-type"]).toBe("text/plain");
5241-
expect(r.headers["X-Foo"]).toBeDefined();
5242-
expect(r.headers["X-Foo"]).toBe("Foo");
5241+
expect(r.headers["x-foo"]).toBeDefined();
5242+
expect(r.headers["x-foo"]).toBe("Foo");
52435243

52445244
expect(r.body).toBeDefined();
52455245
expect(r.body).toMatchObject(Uint8Array.from("blobby blob blob", (c) => c.charCodeAt(0)));
@@ -5329,20 +5329,20 @@ it("RestJsonTimestampFormatHeaders:Request", async () => {
53295329
expect(r.method).toBe("POST");
53305330
expect(r.path).toBe("/TimestampFormatHeaders");
53315331

5332-
expect(r.headers["X-defaultFormat"]).toBeDefined();
5333-
expect(r.headers["X-defaultFormat"]).toBe("Mon, 16 Dec 2019 23:48:18 GMT");
5334-
expect(r.headers["X-memberDateTime"]).toBeDefined();
5335-
expect(r.headers["X-memberDateTime"]).toBe("2019-12-16T23:48:18Z");
5336-
expect(r.headers["X-memberEpochSeconds"]).toBeDefined();
5337-
expect(r.headers["X-memberEpochSeconds"]).toBe("1576540098");
5338-
expect(r.headers["X-memberHttpDate"]).toBeDefined();
5339-
expect(r.headers["X-memberHttpDate"]).toBe("Mon, 16 Dec 2019 23:48:18 GMT");
5340-
expect(r.headers["X-targetDateTime"]).toBeDefined();
5341-
expect(r.headers["X-targetDateTime"]).toBe("2019-12-16T23:48:18Z");
5342-
expect(r.headers["X-targetEpochSeconds"]).toBeDefined();
5343-
expect(r.headers["X-targetEpochSeconds"]).toBe("1576540098");
5344-
expect(r.headers["X-targetHttpDate"]).toBeDefined();
5345-
expect(r.headers["X-targetHttpDate"]).toBe("Mon, 16 Dec 2019 23:48:18 GMT");
5332+
expect(r.headers["x-defaultformat"]).toBeDefined();
5333+
expect(r.headers["x-defaultformat"]).toBe("Mon, 16 Dec 2019 23:48:18 GMT");
5334+
expect(r.headers["x-memberdatetime"]).toBeDefined();
5335+
expect(r.headers["x-memberdatetime"]).toBe("2019-12-16T23:48:18Z");
5336+
expect(r.headers["x-memberepochseconds"]).toBeDefined();
5337+
expect(r.headers["x-memberepochseconds"]).toBe("1576540098");
5338+
expect(r.headers["x-memberhttpdate"]).toBeDefined();
5339+
expect(r.headers["x-memberhttpdate"]).toBe("Mon, 16 Dec 2019 23:48:18 GMT");
5340+
expect(r.headers["x-targetdatetime"]).toBeDefined();
5341+
expect(r.headers["x-targetdatetime"]).toBe("2019-12-16T23:48:18Z");
5342+
expect(r.headers["x-targetepochseconds"]).toBeDefined();
5343+
expect(r.headers["x-targetepochseconds"]).toBe("1576540098");
5344+
expect(r.headers["x-targethttpdate"]).toBeDefined();
5345+
expect(r.headers["x-targethttpdate"]).toBe("Mon, 16 Dec 2019 23:48:18 GMT");
53465346

53475347
expect(r.body).toBeFalsy();
53485348
}
@@ -5360,8 +5360,8 @@ it("RestJsonTimestampFormatHeaders:Response", async () => {
53605360
{
53615361
"x-targetepochseconds": "1576540098",
53625362
"x-memberdatetime": "2019-12-16T23:48:18Z",
5363-
"x-defaultformat": "Mon, 16 Dec 2019 23:48:18 GMT",
53645363
"x-memberepochseconds": "1576540098",
5364+
"x-defaultformat": "Mon, 16 Dec 2019 23:48:18 GMT",
53655365
"x-targethttpdate": "Mon, 16 Dec 2019 23:48:18 GMT",
53665366
"x-memberhttpdate": "Mon, 16 Dec 2019 23:48:18 GMT",
53675367
"x-targetdatetime": "2019-12-16T23:48:18Z",

protocol_tests/aws-restxml/protocols/Aws_restXml.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,7 @@ export const serializeAws_restXmlHttpPrefixHeadersCommand = async (
557557
...(isSerializableHeaderValue(input.foo) && { "x-foo": input.foo! }),
558558
...(input.fooMap !== undefined &&
559559
Object.keys(input.fooMap).reduce((acc: any, suffix: string) => {
560-
acc["x-foo-" + suffix] = input.fooMap![suffix];
560+
acc["x-foo-" + suffix!.toLowerCase()] = input.fooMap![suffix];
561561
return acc;
562562
}, {})),
563563
};

0 commit comments

Comments
 (0)