1 + | 3045022100eaa8151b5a6e60d9c52dfa60d186a304d0226984aa9ed21f2913267cdfd365c902203bfd4e6dfea58e68d3cb892939f3a00ac91e80c8df69828aefa1e48245928678
|
\ | No newline at end of file
|
0 2 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-signed-request.txt
|
1 3 | new file mode 100644
|
2 4 | index 0000000..87a11f2
|
3 - | -- /dev/null
|
5 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-signed-request.txt
|
4 6 | @@ -0,0 +1,10 @@
|
7 + | POST / HTTP/1.1
|
8 + | Content-Type:application/x-www-form-urlencoded; charset=utf-8
|
9 + | Host:example.amazonaws.com
|
10 + | Content-Length:13
|
11 + | X-Amz-Date:20150830T123600Z
|
12 + | X-Amz-Region-Set:us-east-1
|
13 + | x-amz-content-sha256:9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
14 + | Authorization:AWS4-ECDSA-P256-SHA256 Credential=AKIDEXAMPLE/20150830/service/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-content-sha256;x-amz-date;x-amz-region-set, Signature=3045022100c016dc61cbd380cf8160711320957071f5c122ef69164d56d02f79daf51a0603022043e3313aa2f6b46285cc89dfe5616ccc74c810a3d7ea25b76ee1ca496f7facba
|
15 + |
|
16 + | Param1=value1
|
\ | No newline at end of file
|
5 17 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-string-to-sign.txt
|
6 18 | new file mode 100644
|
7 19 | index 0000000..c047afb
|
8 - | -- /dev/null
|
20 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-string-to-sign.txt
|
9 21 | @@ -0,0 +1,4 @@
|
22 + | AWS4-ECDSA-P256-SHA256
|
23 + | 20150830T123600Z
|
24 + | 20150830/service/aws4_request
|
25 + | bcdb9ab3050c0bb18c5e9eb60e6eb1aaaf00907920065569a99b0c51278639b5
|
\ | No newline at end of file
|
10 26 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/public-key.json b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/public-key.json
|
11 27 | new file mode 100644
|
12 28 | index 0000000..379dcb2
|
13 - | -- /dev/null
|
29 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/public-key.json
|
14 30 | @@ -0,0 +1,4 @@
|
31 + | {
|
32 + | "X":"b6618f6a65740a99e650b33b6b4b5bd0d43b176d721a3edfea7e7d2d56d936b1",
|
33 + | "Y":"865ed22a7eadc9c5cb9d2cbaca1b3699139fedc5043dc6661864218330c8e518"
|
34 + | }
|
15 35 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded-parameters/query-canonical-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-canonical-request.txt
|
16 36 | similarity index 85%
|
17 37 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded-parameters/query-canonical-request.txt
|
18 38 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-canonical-request.txt
|
19 39 | index fcc454f..6933a8c 100644
|
20 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded-parameters/query-canonical-request.txt
|
40 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-canonical-request.txt
|
21 41 | @@ -1,9 +1,9 @@
|
22 42 | POST
|
23 43 | /
|
24 44 | X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20150830%2Fservice%2Faws4_request&X-Amz-Date=20150830T123600Z&X-Amz-Expires=3600&X-Amz-Region-Set=us-east-1&X-Amz-SignedHeaders=content-length%3Bcontent-type%3Bhost
|
25 45 | content-length:13
|
26 46 | content-type:application/x-www-form-urlencoded; charset=utf-8
|
27 47 | host:example.amazonaws.com
|
28 48 |
|
29 49 | content-length;content-type;host
|
30 - | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
50 + | 9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
\ | No newline at end of file
|
31 51 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-signature.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-signature.txt
|
32 52 | new file mode 100644
|
33 53 | index 0000000..34a2e12
|
34 - | -- /dev/null
|
54 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-signature.txt
|
35 55 | @@ -0,0 +1 @@
|
56 + | 3046022100dcfa462c480d85707221a690323639df78fb10eb2f4913abcfc4eec215c39fb8022100bad863cf9d951963fc2d8068a2887742d553283e5086f644e3ca9ff8b262e13c
|
\ | No newline at end of file
|
36 57 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-signed-request.txt
|
37 58 | new file mode 100644
|
38 59 | index 0000000..197b99e
|
39 - | -- /dev/null
|
60 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-signed-request.txt
|
40 61 | @@ -0,0 +1,6 @@
|
62 + | POST /?X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20150830%2Fservice%2Faws4_request&X-Amz-Date=20150830T123600Z&X-Amz-SignedHeaders=content-length%3Bcontent-type%3Bhost&X-Amz-Expires=3600&X-Amz-Region-Set=us-east-1&X-Amz-Signature=30450220128d491ccca3f9a7988d00454d2210dd884d7990ca2cb844d4968c8fa9e937f8022100b3668dd440d8206074460567cee98691f66412fe5a83d8e32c601e1331f2ec2b HTTP/1.1
|
63 + | Content-Type:application/x-www-form-urlencoded; charset=utf-8
|
64 + | Host:example.amazonaws.com
|
65 + | Content-Length:13
|
66 + |
|
67 + | Param1=value1
|
\ | No newline at end of file
|
41 68 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-string-to-sign.txt
|
42 69 | new file mode 100644
|
43 70 | index 0000000..9d2bc74
|
44 - | -- /dev/null
|
71 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-string-to-sign.txt
|
45 72 | @@ -0,0 +1,4 @@
|
73 + | AWS4-ECDSA-P256-SHA256
|
74 + | 20150830T123600Z
|
75 + | 20150830/service/aws4_request
|
76 + | d4dab970413a0459d2a3bb644b278e96e85f2f6ac8fa09a74bbd6a269ec3dd82
|
\ | No newline at end of file
|
46 77 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.req b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/request.txt
|
47 78 | similarity index 80%
|
48 79 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.req
|
49 80 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/request.txt
|
50 81 | index 36015f1..8289eaa 100644
|
51 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.req
|
82 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/request.txt
|
52 83 | @@ -1,6 +1,6 @@
|
53 84 | POST / HTTP/1.1
|
54 85 | Content-Type:application/x-www-form-urlencoded; charset=utf-8
|
55 86 | Host:example.amazonaws.com
|
56 - | X-Amz-Date:20150830T123600Z
|
87 + | Content-Length:13
|
57 88 |
|
58 89 | Param1=value1
|
\ | No newline at end of file
|
59 90 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/context.json b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/context.json
|
60 91 | new file mode 100644
|
61 92 | index 0000000..0db1df1
|
62 - | -- /dev/null
|
93 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/context.json
|
63 94 | @@ -0,0 +1,12 @@
|
95 + | {
|
96 + | "credentials": {
|
97 + | "access_key_id": "AKIDEXAMPLE",
|
98 + | "secret_access_key": "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY"
|
99 + | },
|
100 + | "expiration_in_seconds": 3600,
|
101 + | "normalize": true,
|
102 + | "region": "us-east-1",
|
103 + | "service": "service",
|
104 + | "sign_body": true,
|
105 + | "timestamp": "2015-08-30T12:36:00Z"
|
106 + | }
|
\ | No newline at end of file
|
64 107 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/header-canonical-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-canonical-request.txt
|
65 108 | similarity index 61%
|
66 109 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/header-canonical-request.txt
|
67 110 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-canonical-request.txt
|
68 111 | index 69009dc..797632b 100644
|
69 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/header-canonical-request.txt
|
112 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-canonical-request.txt
|
70 113 | @@ -1,12 +1,12 @@
|
71 114 | POST
|
72 115 | /
|
73 116 |
|
74 117 | content-length:13
|
75 118 | content-type:application/x-www-form-urlencoded
|
76 119 | host:example.amazonaws.com
|
77 - | x-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
120 + | x-amz-content-sha256:9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
78 121 | x-amz-date:20150830T123600Z
|
79 122 | x-amz-region-set:us-east-1
|
80 123 |
|
81 124 | content-length;content-type;host;x-amz-content-sha256;x-amz-date;x-amz-region-set
|
82 - | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
125 + | 9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
\ | No newline at end of file
|
83 126 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-signature.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-signature.txt
|
84 127 | new file mode 100644
|
85 128 | index 0000000..f5a641c
|
86 - | -- /dev/null
|
129 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-signature.txt
|
87 130 | @@ -0,0 +1 @@
|
131 + | 304402202dc0a1ca6ca9308bece143f48201f2500761a242ba6efc7857e1ba01a022e843022053f570cb5adf521df2f6732b5077becd86bc2073b30e9d48c2057851902c1c0e
|
\ | No newline at end of file
|
88 132 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-signed-request.txt
|
89 133 | new file mode 100644
|
90 134 | index 0000000..7bd94a7
|
91 - | -- /dev/null
|
135 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-signed-request.txt
|
92 136 | @@ -0,0 +1,10 @@
|
137 + | POST / HTTP/1.1
|
138 + | Content-Type:application/x-www-form-urlencoded
|
139 + | Host:example.amazonaws.com
|
140 + | Content-Length:13
|
141 + | X-Amz-Date:20150830T123600Z
|
142 + | X-Amz-Region-Set:us-east-1
|
143 + | x-amz-content-sha256:9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
144 + | Authorization:AWS4-ECDSA-P256-SHA256 Credential=AKIDEXAMPLE/20150830/service/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-content-sha256;x-amz-date;x-amz-region-set, Signature=3045022100955bbc0f0b9d4284719808642167f7d5ea4a72f8c296b75b442898c8b81cd7e502202425fb97620fa9a20344d22b248dd00db07524fc39b5ad77533e00b277331241
|
145 + |
|
146 + | Param1=value1
|
\ | No newline at end of file
|
93 147 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-string-to-sign.txt
|
94 148 | new file mode 100644
|
95 149 | index 0000000..8d25ba9
|
96 - | -- /dev/null
|
150 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-string-to-sign.txt
|
97 151 | @@ -0,0 +1,4 @@
|
152 + | AWS4-ECDSA-P256-SHA256
|
153 + | 20150830T123600Z
|
154 + | 20150830/service/aws4_request
|
155 + | ba7fa291aefad463b308fdc89b33d852aea9fbcfa151d820117bd8189066cb91
|
\ | No newline at end of file
|
98 156 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/public-key.json b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/public-key.json
|
99 157 | new file mode 100644
|
100 158 | index 0000000..379dcb2
|
101 - | -- /dev/null
|
159 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/public-key.json
|
102 160 | @@ -0,0 +1,4 @@
|
161 + | {
|
162 + | "X":"b6618f6a65740a99e650b33b6b4b5bd0d43b176d721a3edfea7e7d2d56d936b1",
|
163 + | "Y":"865ed22a7eadc9c5cb9d2cbaca1b3699139fedc5043dc6661864218330c8e518"
|
164 + | }
|
103 165 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/query-canonical-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-canonical-request.txt
|
104 166 | similarity index 99%
|
105 167 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/query-canonical-request.txt
|
106 168 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-canonical-request.txt
|
107 169 | index 9ed065b..563ff58 100644
|
108 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/query-canonical-request.txt
|
170 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-canonical-request.txt
|
109 171 | @@ -1,9 +1,9 @@
|
110 172 | POST
|
111 173 | /
|
112 174 | X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20150830%2Fservice%2Faws4_request&X-Amz-Date=20150830T123600Z&X-Amz-Expires=3600&X-Amz-Region-Set=us-east-1&X-Amz-SignedHeaders=content-length%3Bcontent-type%3Bhost
|
113 175 | content-length:13
|
114 176 | content-type:application/x-www-form-urlencoded
|
115 177 | host:example.amazonaws.com
|
116 178 |
|
117 179 | content-length;content-type;host
|
118 - | 9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
180 + | 9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
\ | No newline at end of file
|
119 181 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-signature.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-signature.txt
|
120 182 | new file mode 100644
|
121 183 | index 0000000..0c77daf
|
122 - | -- /dev/null
|
184 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-signature.txt
|
123 185 | @@ -0,0 +1 @@
|
186 + | 304402205e21d399153f879b0f32c38742d12941299467bfdc213224cc76a97acffd6ec6022035a9be37a38c19e98e5cfc536fabe885e82fbf999081234b364cab5cacff8733
|
\ | No newline at end of file
|
124 187 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-signed-request.txt
|
125 188 | new file mode 100644
|
126 189 | index 0000000..71d6de9
|
127 - | -- /dev/null
|
190 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-signed-request.txt
|
128 191 | @@ -0,0 +1,6 @@
|
192 + | POST /?X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20150830%2Fservice%2Faws4_request&X-Amz-Date=20150830T123600Z&X-Amz-SignedHeaders=content-length%3Bcontent-type%3Bhost&X-Amz-Expires=3600&X-Amz-Region-Set=us-east-1&X-Amz-Signature=30450221008d8a6aa0bc3f651e6c14c52e9e24dbca58964641c9cb6e55169f9dc74766ae3d022016126756ce1523ac972f66f6bf6e981f44572d3c8916f1f43d428fb2caa0e1ea HTTP/1.1
|
193 + | Content-Type:application/x-www-form-urlencoded
|
194 + | Host:example.amazonaws.com
|
195 + | Content-Length:13
|
196 + |
|
197 + | Param1=value1
|
\ | No newline at end of file
|
129 198 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/query-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-string-to-sign.txt
|
130 199 | similarity index 99%
|
131 200 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/query-string-to-sign.txt
|
132 201 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-string-to-sign.txt
|
133 202 | index bef3143..cc7a224 100644
|
134 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/query-string-to-sign.txt
|
203 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-string-to-sign.txt
|
135 204 | @@ -1,4 +1,4 @@
|
136 205 | AWS4-ECDSA-P256-SHA256
|
137 206 | 20150830T123600Z
|
138 207 | 20150830/service/aws4_request
|
139 - | 4e4122984d30d13170a298ece62cc30f8da12578fb3b482616b1f11036b13934
|
208 + | 4e4122984d30d13170a298ece62cc30f8da12578fb3b482616b1f11036b13934
|
\ | No newline at end of file
|
140 209 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/request.txt
|
141 210 | new file mode 100644
|
142 211 | index 0000000..760b2d3
|
143 - | -- /dev/null
|
212 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/request.txt
|
144 213 | @@ -0,0 +1,6 @@
|
214 + | POST / HTTP/1.1
|
215 + | Content-Type:application/x-www-form-urlencoded
|
216 + | Host:example.amazonaws.com
|
217 + | Content-Length:13
|
218 + |
|
219 + | Param1=value1
|
\ | No newline at end of file
|
145 220 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/canonical_request.rs b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/canonical_request.rs
|
146 221 | index 9bd636f..b53f33f 100644
|
147 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/canonical_request.rs
|
222 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/canonical_request.rs
|
148 223 | @@ -346,67 +346,78 @@ impl CanonicalRequest<'_> {
|
149 224 | params.push((Cow::Borrowed(k), Cow::Borrowed(v)));
|
150 225 | }
|
151 226 |
|
152 227 | if let SignatureValues::QueryParams(values) = values {
|
153 228 | add_param(&mut params, param::X_AMZ_DATE, &values.date_time);
|
154 229 | add_param(&mut params, param::X_AMZ_EXPIRES, &values.expires);
|
155 230 |
|
156 231 | #[cfg(feature = "sigv4a")]
|
157 232 | if let Some(regions) = values.region_set {
|
158 233 | add_param(&mut params, sigv4a::param::X_AMZ_REGION_SET, regions);
|
159 234 | }
|
160 235 |
|
161 236 | add_param(&mut params, param::X_AMZ_ALGORITHM, values.algorithm);
|
162 237 | add_param(&mut params, param::X_AMZ_CREDENTIAL, &values.credential);
|
163 238 | add_param(
|
164 239 | &mut params,
|
165 240 | param::X_AMZ_SIGNED_HEADERS,
|
166 241 | values.signed_headers.as_str(),
|
167 242 | );
|
168 243 |
|
169 244 | if let Some(security_token) = values.security_token {
|
170 245 | add_param(
|
171 246 | &mut params,
|
172 247 | settings
|
173 248 | .session_token_name_override
|
174 249 | .unwrap_or(param::X_AMZ_SECURITY_TOKEN),
|
175 250 | security_token,
|
176 251 | );
|
177 252 | }
|
178 253 | }
|
179 - | // Sort by param name, and then by param value
|
254 + |
|
255 + | // Sort on the _encoded_ key/value pairs
|
256 + | let mut params: Vec<(String, String)> = params
|
257 + | .into_iter()
|
258 + | .map(|x| {
|
259 + | use aws_smithy_http::query::fmt_string;
|
260 + | let enc_k = fmt_string(&x.0);
|
261 + | let enc_v = fmt_string(&x.1);
|
262 + | (enc_k, enc_v)
|
263 + | })
|
264 + | .collect();
|
265 + |
|
180 266 | params.sort();
|
181 267 |
|
182 268 | let mut query = QueryWriter::new(uri);
|
183 269 | query.clear_params();
|
184 270 | for (key, value) in params {
|
185 - | query.insert(&key, &value);
|
271 + | query.insert_encoded(&key, &value);
|
186 272 | }
|
187 273 |
|
188 274 | let query = query.build_query();
|
189 275 | if query.is_empty() {
|
190 276 | None
|
191 277 | } else {
|
192 278 | Some(query)
|
193 279 | }
|
194 280 | }
|
195 281 |
|
196 282 | fn insert_host_header(
|
197 283 | canonical_headers: &mut HeaderMap<HeaderValue>,
|
198 284 | uri: &Uri,
|
199 285 | ) -> HeaderValue {
|
200 286 | match canonical_headers.get(&HOST) {
|
201 287 | Some(header) => header.clone(),
|
202 288 | None => {
|
203 289 | let port = uri.port();
|
204 290 | let scheme = uri.scheme();
|
205 291 | let authority = uri
|
206 292 | .authority()
|
207 293 | .expect("request uri authority must be set for signing")
|
208 294 | .as_str();
|
209 295 | let host = uri
|
210 296 | .host()
|
211 297 | .expect("request uri host must be set for signing");
|
212 298 |
|
213 299 | // Check if port is default (80 for HTTP, 443 for HTTPS) and if so exclude it from the
|
214 300 | // Host header when signing since RFC 2616 indicates that the default port should not be
|
215 301 | // sent in the Host header (and Hyper strips default ports if they are present)
|
216 302 | @@ -642,310 +653,320 @@ impl<'a> StringToSign<'a> {
|
217 303 | service,
|
218 304 | hashed_creq,
|
219 305 | signature_version: SignatureVersion::V4a,
|
220 306 | }
|
221 307 | }
|
222 308 | }
|
223 309 |
|
224 310 | impl fmt::Display for StringToSign<'_> {
|
225 311 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
226 312 | write!(
|
227 313 | f,
|
228 314 | "{}\n{}\n{}\n{}",
|
229 315 | self.algorithm,
|
230 316 | format_date_time(self.time),
|
231 317 | match self.signature_version {
|
232 318 | SignatureVersion::V4 => self.scope.to_string(),
|
233 319 | SignatureVersion::V4a => self.scope.v4a_display(),
|
234 320 | },
|
235 321 | self.hashed_creq
|
236 322 | )
|
237 323 | }
|
238 324 | }
|
239 325 |
|
240 326 | #[cfg(test)]
|
241 327 | mod tests {
|
242 328 | use crate::date_time::test_parsers::parse_date_time;
|
243 329 | use crate::http_request::canonical_request::{
|
244 330 | normalize_header_value, trim_all, CanonicalRequest, SigningScope, StringToSign,
|
245 331 | };
|
246 332 | use crate::http_request::test;
|
333 + | use crate::http_request::test::SigningSuiteTest;
|
247 334 | use crate::http_request::{
|
248 335 | PayloadChecksumKind, SessionTokenMode, SignableBody, SignableRequest, SignatureLocation,
|
249 336 | SigningParams, SigningSettings,
|
250 337 | };
|
251 338 | use crate::sign::v4;
|
252 339 | use crate::sign::v4::sha256_hex_string;
|
253 340 | use aws_credential_types::Credentials;
|
254 341 | use aws_smithy_http::query_writer::QueryWriter;
|
255 342 | use aws_smithy_runtime_api::client::identity::Identity;
|
256 343 | use http0::{HeaderValue, Uri};
|
257 344 | use pretty_assertions::assert_eq;
|
258 345 | use proptest::{prelude::*, proptest};
|
259 346 | use std::borrow::Cow;
|
260 347 | use std::time::Duration;
|
261 348 |
|
262 349 | fn signing_params(identity: &Identity, settings: SigningSettings) -> SigningParams<'_> {
|
263 350 | v4::signing_params::Builder::default()
|
264 351 | .identity(identity)
|
265 352 | .region("test-region")
|
266 353 | .name("testservicename")
|
267 354 | .time(parse_date_time("20210511T154045Z").unwrap())
|
268 355 | .settings(settings)
|
269 356 | .build()
|
270 357 | .unwrap()
|
271 358 | .into()
|
272 359 | }
|
273 360 |
|
274 361 | #[test]
|
275 362 | fn test_repeated_header() {
|
276 - | let mut req = test::v4::test_request("get-vanilla-query-order-key-case");
|
363 + | let test = test::SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
364 + | let mut req = test.request();
|
277 365 | req.headers.push((
|
278 366 | "x-amz-object-attributes".to_string(),
|
279 367 | "Checksum".to_string(),
|
280 368 | ));
|
281 369 | req.headers.push((
|
282 370 | "x-amz-object-attributes".to_string(),
|
283 371 | "ObjectSize".to_string(),
|
284 372 | ));
|
285 373 | let req = SignableRequest::from(&req);
|
286 374 | let settings = SigningSettings {
|
287 375 | payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
288 376 | session_token_mode: SessionTokenMode::Exclude,
|
289 377 | ..Default::default()
|
290 378 | };
|
291 379 | let identity = Credentials::for_tests().into();
|
292 380 | let signing_params = signing_params(&identity, settings);
|
293 381 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
294 382 |
|
295 383 | assert_eq!(
|
296 384 | creq.values.signed_headers().to_string(),
|
297 385 | "host;x-amz-content-sha256;x-amz-date;x-amz-object-attributes"
|
298 386 | );
|
299 387 | assert_eq!(
|
300 388 | creq.header_values_for("x-amz-object-attributes"),
|
301 389 | "Checksum,ObjectSize",
|
302 390 | );
|
303 391 | }
|
304 392 |
|
305 393 | #[test]
|
306 394 | fn test_host_header_properly_handles_ports() {
|
307 395 | fn host_header_test_setup(endpoint: String) -> String {
|
308 - | let mut req = test::v4::test_request("get-vanilla");
|
396 + | let test = SigningSuiteTest::v4("get-vanilla");
|
397 + | let mut req = test.request();
|
309 398 | req.uri = endpoint;
|
310 399 | let req = SignableRequest::from(&req);
|
311 400 | let settings = SigningSettings {
|
312 401 | payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
313 402 | session_token_mode: SessionTokenMode::Exclude,
|
314 403 | ..Default::default()
|
315 404 | };
|
316 405 | let identity = Credentials::for_tests().into();
|
317 406 | let signing_params = signing_params(&identity, settings);
|
318 407 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
319 408 | creq.header_values_for("host")
|
320 409 | }
|
321 410 |
|
322 411 | // HTTP request with 80 port should not be signed with that port
|
323 412 | let http_80_host_header = host_header_test_setup("http://localhost:80".into());
|
324 413 | assert_eq!(http_80_host_header, "localhost",);
|
325 414 |
|
326 415 | // HTTP request with non-80 port should be signed with that port
|
327 416 | let http_1234_host_header = host_header_test_setup("http://localhost:1234".into());
|
328 417 | assert_eq!(http_1234_host_header, "localhost:1234",);
|
329 418 |
|
330 419 | // HTTPS request with 443 port should not be signed with that port
|
331 420 | let https_443_host_header = host_header_test_setup("https://localhost:443".into());
|
332 421 | assert_eq!(https_443_host_header, "localhost",);
|
333 422 |
|
334 423 | // HTTPS request with non-443 port should be signed with that port
|
335 424 | let https_1234_host_header = host_header_test_setup("https://localhost:1234".into());
|
336 425 | assert_eq!(https_1234_host_header, "localhost:1234",);
|
337 426 | }
|
338 427 |
|
339 428 | #[test]
|
340 429 | fn test_set_xamz_sha_256() {
|
341 - | let req = test::v4::test_request("get-vanilla-query-order-key-case");
|
430 + | let test = SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
431 + | let req = test.request();
|
342 432 | let req = SignableRequest::from(&req);
|
343 433 | let settings = SigningSettings {
|
344 434 | payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
345 435 | session_token_mode: SessionTokenMode::Exclude,
|
346 436 | ..Default::default()
|
347 437 | };
|
348 438 | let identity = Credentials::for_tests().into();
|
349 439 | let mut signing_params = signing_params(&identity, settings);
|
350 440 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
351 441 | assert_eq!(
|
352 442 | creq.values.content_sha256(),
|
353 443 | "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
354 444 | );
|
355 445 | // assert that the sha256 header was added
|
356 446 | assert_eq!(
|
357 447 | creq.values.signed_headers().as_str(),
|
358 448 | "host;x-amz-content-sha256;x-amz-date"
|
359 449 | );
|
360 450 |
|
361 451 | signing_params.set_payload_checksum_kind(PayloadChecksumKind::NoHeader);
|
362 452 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
363 453 | assert_eq!(creq.values.signed_headers().as_str(), "host;x-amz-date");
|
364 454 | }
|
365 455 |
|
366 456 | #[test]
|
367 457 | fn test_unsigned_payload() {
|
368 - | let mut req = test::v4::test_request("get-vanilla-query-order-key-case");
|
458 + | let test = SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
459 + | let mut req = test.request();
|
369 460 | req.set_body(SignableBody::UnsignedPayload);
|
370 461 | let req: SignableRequest<'_> = SignableRequest::from(&req);
|
371 462 |
|
372 463 | let settings = SigningSettings {
|
373 464 | payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
374 465 | ..Default::default()
|
375 466 | };
|
376 467 | let identity = Credentials::for_tests().into();
|
377 468 | let signing_params = signing_params(&identity, settings);
|
378 469 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
379 470 | assert_eq!(creq.values.content_sha256(), "UNSIGNED-PAYLOAD");
|
380 471 | assert!(creq.to_string().ends_with("UNSIGNED-PAYLOAD"));
|
381 472 | }
|
382 473 |
|
383 474 | #[test]
|
384 475 | fn test_precomputed_payload() {
|
385 476 | let payload_hash = "44ce7dd67c959e0d3524ffac1771dfbba87d2b6b4b4e99e42034a8b803f8b072";
|
386 - | let mut req = test::v4::test_request("get-vanilla-query-order-key-case");
|
477 + | let test = SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
478 + | let mut req = test.request();
|
387 479 | req.set_body(SignableBody::Precomputed(String::from(payload_hash)));
|
388 480 | let req = SignableRequest::from(&req);
|
389 481 | let settings = SigningSettings {
|
390 482 | payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
391 483 | ..Default::default()
|
392 484 | };
|
393 485 | let identity = Credentials::for_tests().into();
|
394 486 | let signing_params = signing_params(&identity, settings);
|
395 487 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
396 488 | assert_eq!(creq.values.content_sha256(), payload_hash);
|
397 489 | assert!(creq.to_string().ends_with(payload_hash));
|
398 490 | }
|
399 491 |
|
400 492 | #[test]
|
401 493 | fn test_generate_scope() {
|
402 494 | let expected = "20150830/us-east-1/iam/aws4_request\n";
|
403 495 | let scope = SigningScope {
|
404 496 | time: parse_date_time("20150830T123600Z").unwrap(),
|
405 497 | region: "us-east-1",
|
406 498 | service: "iam",
|
407 499 | };
|
408 500 | assert_eq!(format!("{}\n", scope), expected);
|
409 501 | }
|
410 502 |
|
411 503 | #[test]
|
412 504 | fn test_string_to_sign() {
|
413 505 | let time = parse_date_time("20150830T123600Z").unwrap();
|
414 - | let creq = test::v4::test_canonical_request("get-vanilla-query-order-key-case");
|
415 - | let expected_sts = test::v4::test_sts("get-vanilla-query-order-key-case");
|
506 + | let test = SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
507 + | let creq = test.canonical_request(SignatureLocation::Headers);
|
508 + | let expected_sts = test.string_to_sign(SignatureLocation::Headers);
|
416 509 | let encoded = sha256_hex_string(creq.as_bytes());
|
417 510 |
|
418 511 | let actual = StringToSign::new_v4(time, "us-east-1", "service", &encoded);
|
419 512 | assert_eq!(expected_sts, actual.to_string());
|
420 513 | }
|
421 514 |
|
422 515 | #[test]
|
423 516 | fn test_digest_of_canonical_request() {
|
424 - | let creq = test::v4::test_canonical_request("get-vanilla-query-order-key-case");
|
517 + | let test = SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
518 + | let creq = test.canonical_request(SignatureLocation::Headers);
|
425 519 | let expected = "816cd5b414d056048ba4f7c5386d6e0533120fb1fcfa93762cf0fc39e2cf19e0";
|
426 520 | let actual = sha256_hex_string(creq.as_bytes());
|
427 521 | assert_eq!(expected, actual);
|
428 522 | }
|
429 523 |
|
430 524 | #[test]
|
431 525 | fn test_double_url_encode_path() {
|
432 - | let req = test::v4::test_request("double-encode-path");
|
526 + | let test = SigningSuiteTest::v4("double-encode-path");
|
527 + | let req = test.request();
|
433 528 | let req = SignableRequest::from(&req);
|
434 529 | let identity = Credentials::for_tests().into();
|
435 530 | let signing_params = signing_params(&identity, SigningSettings::default());
|
436 531 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
437 532 |
|
438 - | let expected = test::v4::test_canonical_request("double-encode-path");
|
533 + | let expected = test.canonical_request(SignatureLocation::Headers);
|
439 534 | let actual = format!("{}", creq);
|
440 535 | assert_eq!(actual, expected);
|
441 536 | }
|
442 537 |
|
443 538 | #[test]
|
444 539 | fn test_double_url_encode() {
|
445 - | let req = test::v4::test_request("double-url-encode");
|
540 + | let test = SigningSuiteTest::v4("double-url-encode");
|
541 + | let req = test.request();
|
446 542 | let req = SignableRequest::from(&req);
|
447 543 | let identity = Credentials::for_tests().into();
|
448 544 | let signing_params = signing_params(&identity, SigningSettings::default());
|
449 545 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
450 - |
|
451 - | let expected = test::v4::test_canonical_request("double-url-encode");
|
546 + | let expected = test.canonical_request(SignatureLocation::Headers);
|
452 547 | let actual = format!("{}", creq);
|
453 548 | assert_eq!(actual, expected);
|
454 549 | }
|
455 550 |
|
456 551 | #[test]
|
457 552 | fn test_tilde_in_uri() {
|
458 553 | let req = http0::Request::builder()
|
459 554 | .uri("https://s3.us-east-1.amazonaws.com/my-bucket?list-type=2&prefix=~objprefix&single&k=&unreserved=-_.~").body("").unwrap().into();
|
460 555 | let req = SignableRequest::from(&req);
|
461 556 | let identity = Credentials::for_tests().into();
|
462 557 | let signing_params = signing_params(&identity, SigningSettings::default());
|
463 558 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
464 559 | assert_eq!(
|
465 560 | Some("k=&list-type=2&prefix=~objprefix&single=&unreserved=-_.~"),
|
466 561 | creq.params.as_deref(),
|
467 562 | );
|
468 563 | }
|
469 564 |
|
470 565 | #[test]
|
471 566 | fn test_signing_urls_with_percent_encoded_query_strings() {
|
472 567 | let all_printable_ascii_chars: String = (32u8..127).map(char::from).collect();
|
473 568 | let uri = Uri::from_static("https://s3.us-east-1.amazonaws.com/my-bucket");
|
474 569 |
|
475 570 | let mut query_writer = QueryWriter::new(&uri);
|
476 571 | query_writer.insert("list-type", "2");
|
477 572 | query_writer.insert("prefix", &all_printable_ascii_chars);
|
478 573 |
|
479 574 | let req = http0::Request::builder()
|
480 575 | .uri(query_writer.build_uri())
|
481 576 | .body("")
|
482 577 | .unwrap()
|
483 578 | .into();
|
484 579 | let req = SignableRequest::from(&req);
|
485 580 | let identity = Credentials::for_tests().into();
|
486 581 | let signing_params = signing_params(&identity, SigningSettings::default());
|
487 582 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
488 583 |
|
489 584 | let expected = "list-type=2&prefix=%20%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~";
|
490 585 | let actual = creq.params.unwrap();
|
491 586 | assert_eq!(expected, actual);
|
492 587 | }
|
493 588 |
|
494 589 | #[test]
|
495 590 | fn test_omit_session_token() {
|
496 - | let req = test::v4::test_request("get-vanilla-query-order-key-case");
|
591 + | let test = SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
592 + | let req = test.request();
|
497 593 | let req = SignableRequest::from(&req);
|
498 594 | let settings = SigningSettings {
|
499 595 | session_token_mode: SessionTokenMode::Include,
|
500 596 | ..Default::default()
|
501 597 | };
|
502 598 | let identity = Credentials::for_tests_with_session_token().into();
|
503 599 | let mut signing_params = signing_params(&identity, settings);
|
504 600 |
|
505 601 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
506 602 | assert_eq!(
|
507 603 | creq.values.signed_headers().as_str(),
|
508 604 | "host;x-amz-date;x-amz-security-token"
|
509 605 | );
|
510 606 | assert_eq!(
|
511 607 | creq.headers.get("x-amz-security-token").unwrap(),
|
512 608 | "notarealsessiontoken"
|
513 609 | );
|
514 610 |
|
515 611 | signing_params.set_session_token_mode(SessionTokenMode::Exclude);
|
516 612 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
517 613 | assert_eq!(
|
518 614 | creq.headers.get("x-amz-security-token").unwrap(),
|
519 615 | "notarealsessiontoken"
|
520 616 | );
|
521 617 | assert_eq!(creq.values.signed_headers().as_str(), "host;x-amz-date");
|
522 618 | }
|
523 619 |
|
524 620 | // It should exclude authorization, user-agent, x-amzn-trace-id, and transfer-encoding headers from presigning
|
525 621 | #[test]
|
526 622 | fn non_presigning_header_exclusion() {
|
527 623 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/sign.rs b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/sign.rs
|
528 624 | index c4bbbee..30b4743 100644
|
529 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/sign.rs
|
625 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/sign.rs
|
530 626 | @@ -478,436 +478,324 @@ fn add_header(map: &mut Vec<Header>, key: &'static str, value: &str, sensitive:
|
531 627 | sensitive,
|
532 628 | });
|
533 629 | }
|
534 630 |
|
535 631 | // add signature to authorization header
|
536 632 | // Authorization: algorithm Credential=access key ID/credential scope, SignedHeaders=SignedHeaders, Signature=signature
|
537 633 | fn build_authorization_header(
|
538 634 | access_key: &str,
|
539 635 | creq: &CanonicalRequest<'_>,
|
540 636 | sts: StringToSign<'_>,
|
541 637 | signature: &str,
|
542 638 | signature_version: SignatureVersion,
|
543 639 | ) -> String {
|
544 640 | let scope = match signature_version {
|
545 641 | SignatureVersion::V4 => sts.scope.to_string(),
|
546 642 | SignatureVersion::V4a => sts.scope.v4a_display(),
|
547 643 | };
|
548 644 | format!(
|
549 645 | "{} Credential={}/{}, SignedHeaders={}, Signature={}",
|
550 646 | sts.algorithm,
|
551 647 | access_key,
|
552 648 | scope,
|
553 649 | creq.values.signed_headers().as_str(),
|
554 650 | signature
|
555 651 | )
|
556 652 | }
|
557 653 | #[cfg(test)]
|
558 654 | mod tests {
|
559 655 | use crate::date_time::test_parsers::parse_date_time;
|
560 656 | use crate::http_request::sign::{add_header, SignableRequest};
|
657 + | use crate::http_request::test::SigningSuiteTest;
|
561 658 | use crate::http_request::{
|
562 - | sign, test, SessionTokenMode, SignableBody, SignatureLocation, SigningInstructions,
|
659 + | sign, SessionTokenMode, SignableBody, SignatureLocation, SigningInstructions,
|
563 660 | SigningSettings,
|
564 661 | };
|
565 662 | use crate::sign::v4;
|
566 663 | use aws_credential_types::Credentials;
|
567 664 | use http0::{HeaderValue, Request};
|
568 665 | use pretty_assertions::assert_eq;
|
569 666 | use proptest::proptest;
|
570 667 | use std::borrow::Cow;
|
571 668 | use std::iter;
|
572 - | use std::time::Duration;
|
573 669 |
|
574 670 | macro_rules! assert_req_eq {
|
575 671 | (http: $expected:expr, $actual:expr) => {
|
576 672 | let mut expected = ($expected).map(|_b|"body");
|
577 673 | let mut actual = ($actual).map(|_b|"body");
|
578 674 | make_headers_comparable(&mut expected);
|
579 675 | make_headers_comparable(&mut actual);
|
580 676 | assert_eq!(format!("{:?}", expected), format!("{:?}", actual));
|
581 677 | };
|
582 678 | ($expected:tt, $actual:tt) => {
|
583 679 | assert_req_eq!(http: ($expected).as_http_request(), $actual);
|
584 680 | };
|
585 681 | }
|
586 682 |
|
587 683 | pub(crate) fn make_headers_comparable<B>(request: &mut Request<B>) {
|
588 684 | for (_name, value) in request.headers_mut() {
|
589 685 | value.set_sensitive(false);
|
590 686 | }
|
591 687 | }
|
592 688 |
|
593 - | #[test]
|
594 - | fn test_sign_vanilla_with_headers() {
|
595 - | let settings = SigningSettings::default();
|
596 - | let identity = &Credentials::for_tests().into();
|
597 - | let params = v4::SigningParams {
|
598 - | identity,
|
599 - | region: "us-east-1",
|
600 - | name: "service",
|
601 - | time: parse_date_time("20150830T123600Z").unwrap(),
|
602 - | settings,
|
603 - | }
|
604 - | .into();
|
605 - |
|
606 - | let original = test::v4::test_request("get-vanilla-query-order-key-case");
|
607 - | let signable = SignableRequest::from(&original);
|
608 - | let out = sign(signable, ¶ms).unwrap();
|
609 - | assert_eq!(
|
610 - | "5557820e7380d585310524bd93d51a08d7757fb5efd7344ee12088f2b0860947",
|
611 - | out.signature
|
612 - | );
|
613 - |
|
614 - | let mut signed = original.as_http_request();
|
615 - | out.output.apply_to_request_http0x(&mut signed);
|
616 - |
|
617 - | let expected = test::v4::test_signed_request("get-vanilla-query-order-key-case");
|
618 - | assert_req_eq!(expected, signed);
|
619 - | }
|
620 - |
|
689 + | // Sigv4A suite tests
|
621 690 | #[cfg(feature = "sigv4a")]
|
622 - | mod sigv4a_tests {
|
623 - | use super::*;
|
624 - | use crate::http_request::canonical_request::{CanonicalRequest, StringToSign};
|
625 - | use crate::http_request::{sign, test, SigningParams};
|
626 - | use crate::sign::v4a;
|
627 - | use p256::ecdsa::signature::{Signature, Verifier};
|
628 - | use p256::ecdsa::{DerSignature, SigningKey};
|
629 - | use pretty_assertions::assert_eq;
|
630 - |
|
631 - | fn new_v4a_signing_params_from_context(
|
632 - | test_context: &'_ test::v4a::TestContext,
|
633 - | signature_location: SignatureLocation,
|
634 - | ) -> SigningParams<'_> {
|
635 - | let mut params = v4a::SigningParams::from(test_context);
|
636 - | params.settings.signature_location = signature_location;
|
637 - |
|
638 - | params.into()
|
639 - | }
|
640 - |
|
641 - | fn run_v4a_test_suite(test_name: &str, signature_location: SignatureLocation) {
|
642 - | let tc = test::v4a::test_context(test_name);
|
643 - | let params = new_v4a_signing_params_from_context(&tc, signature_location);
|
644 - |
|
645 - | let req = test::v4a::test_request(test_name);
|
646 - | let expected_creq = test::v4a::test_canonical_request(test_name, signature_location);
|
647 - | let signable_req = SignableRequest::from(&req);
|
648 - | let actual_creq = CanonicalRequest::from(&signable_req, ¶ms).unwrap();
|
649 - |
|
650 - | assert_eq!(expected_creq, actual_creq.to_string(), "creq didn't match");
|
651 - |
|
652 - | let expected_string_to_sign =
|
653 - | test::v4a::test_string_to_sign(test_name, signature_location);
|
654 - | let hashed_creq = &v4::sha256_hex_string(actual_creq.to_string().as_bytes());
|
655 - | let actual_string_to_sign = StringToSign::new_v4a(
|
656 - | *params.time(),
|
657 - | params.region_set().unwrap(),
|
658 - | params.name(),
|
659 - | hashed_creq,
|
660 - | )
|
661 - | .to_string();
|
662 - |
|
663 - | assert_eq!(
|
664 - | expected_string_to_sign, actual_string_to_sign,
|
665 - | "'string to sign' didn't match"
|
666 - | );
|
691 + | mod v4a_suite {
|
692 + | use crate::http_request::test::v4a::run_test_suite_v4a;
|
667 693 |
|
668 - | let out = sign(signable_req, ¶ms).unwrap();
|
669 - | // Sigv4a signatures are non-deterministic, so we can't compare the signature directly.
|
670 - | out.output
|
671 - | .apply_to_request_http0x(&mut req.as_http_request());
|
672 - |
|
673 - | let creds = params.credentials().unwrap();
|
674 - | let signing_key =
|
675 - | v4a::generate_signing_key(creds.access_key_id(), creds.secret_access_key());
|
676 - | let sig = DerSignature::from_bytes(&hex::decode(out.signature).unwrap()).unwrap();
|
677 - | let sig = sig
|
678 - | .try_into()
|
679 - | .expect("DER-style signatures are always convertible into fixed-size signatures");
|
680 - |
|
681 - | let signing_key = SigningKey::from_bytes(signing_key.as_ref()).unwrap();
|
682 - | let peer_public_key = signing_key.verifying_key();
|
683 - | let sts = actual_string_to_sign.as_bytes();
|
684 - | peer_public_key.verify(sts, &sig).unwrap();
|
694 + | #[test]
|
695 + | fn test_get_header_key_duplicate() {
|
696 + | run_test_suite_v4a("get-header-key-duplicate")
|
685 697 | }
|
686 698 |
|
687 699 | #[test]
|
688 - | fn test_get_header_key_duplicate() {
|
689 - | run_v4a_test_suite("get-header-key-duplicate", SignatureLocation::Headers);
|
700 + | #[ignore = "httpparse doesn't support parsing multiline headers since they are deprecated in RFC7230"]
|
701 + | fn test_get_header_value_multiline() {
|
702 + | run_test_suite_v4a("get-header-value-multiline")
|
690 703 | }
|
691 704 |
|
692 705 | #[test]
|
693 706 | fn test_get_header_value_order() {
|
694 - | run_v4a_test_suite("get-header-value-order", SignatureLocation::Headers);
|
707 + | run_test_suite_v4a("get-header-value-order")
|
695 708 | }
|
696 709 |
|
697 710 | #[test]
|
698 711 | fn test_get_header_value_trim() {
|
699 - | run_v4a_test_suite("get-header-value-trim", SignatureLocation::Headers);
|
712 + | run_test_suite_v4a("get-header-value-trim");
|
700 713 | }
|
701 714 |
|
702 715 | #[test]
|
703 716 | fn test_get_relative_normalized() {
|
704 - | run_v4a_test_suite("get-relative-normalized", SignatureLocation::Headers);
|
717 + | run_test_suite_v4a("get-relative-normalized");
|
705 718 | }
|
706 719 |
|
707 720 | #[test]
|
708 721 | fn test_get_relative_relative_normalized() {
|
709 - | run_v4a_test_suite(
|
710 - | "get-relative-relative-normalized",
|
711 - | SignatureLocation::Headers,
|
712 - | );
|
722 + | run_test_suite_v4a("get-relative-relative-normalized");
|
713 723 | }
|
714 724 |
|
715 725 | #[test]
|
716 726 | fn test_get_relative_relative_unnormalized() {
|
717 - | run_v4a_test_suite(
|
718 - | "get-relative-relative-unnormalized",
|
719 - | SignatureLocation::Headers,
|
720 - | );
|
727 + | run_test_suite_v4a("get-relative-relative-unnormalized");
|
721 728 | }
|
722 729 |
|
723 730 | #[test]
|
724 731 | fn test_get_relative_unnormalized() {
|
725 - | run_v4a_test_suite("get-relative-unnormalized", SignatureLocation::Headers);
|
732 + | run_test_suite_v4a("get-relative-unnormalized");
|
726 733 | }
|
727 734 |
|
728 735 | #[test]
|
729 736 | fn test_get_slash_dot_slash_normalized() {
|
730 - | run_v4a_test_suite("get-slash-dot-slash-normalized", SignatureLocation::Headers);
|
737 + | run_test_suite_v4a("get-slash-dot-slash-normalized");
|
731 738 | }
|
732 739 |
|
733 740 | #[test]
|
734 741 | fn test_get_slash_dot_slash_unnormalized() {
|
735 - | run_v4a_test_suite(
|
736 - | "get-slash-dot-slash-unnormalized",
|
737 - | SignatureLocation::Headers,
|
738 - | );
|
742 + | run_test_suite_v4a("get-slash-dot-slash-unnormalized");
|
739 743 | }
|
740 744 |
|
741 745 | #[test]
|
742 746 | fn test_get_slash_normalized() {
|
743 - | run_v4a_test_suite("get-slash-normalized", SignatureLocation::Headers);
|
747 + | run_test_suite_v4a("get-slash-normalized");
|
744 748 | }
|
745 749 |
|
746 750 | #[test]
|
747 751 | fn test_get_slash_pointless_dot_normalized() {
|
748 - | run_v4a_test_suite(
|
749 - | "get-slash-pointless-dot-normalized",
|
750 - | SignatureLocation::Headers,
|
751 - | );
|
752 + | run_test_suite_v4a("get-slash-pointless-dot-normalized");
|
752 753 | }
|
753 754 |
|
754 755 | #[test]
|
755 756 | fn test_get_slash_pointless_dot_unnormalized() {
|
756 - | run_v4a_test_suite(
|
757 - | "get-slash-pointless-dot-unnormalized",
|
758 - | SignatureLocation::Headers,
|
759 - | );
|
757 + | run_test_suite_v4a("get-slash-pointless-dot-unnormalized");
|
760 758 | }
|
761 759 |
|
762 760 | #[test]
|
763 761 | fn test_get_slash_unnormalized() {
|
764 - | run_v4a_test_suite("get-slash-unnormalized", SignatureLocation::Headers);
|
762 + | run_test_suite_v4a("get-slash-unnormalized");
|
765 763 | }
|
766 764 |
|
767 765 | #[test]
|
768 766 | fn test_get_slashes_normalized() {
|
769 - | run_v4a_test_suite("get-slashes-normalized", SignatureLocation::Headers);
|
767 + | run_test_suite_v4a("get-slashes-normalized");
|
770 768 | }
|
771 769 |
|
772 770 | #[test]
|
773 771 | fn test_get_slashes_unnormalized() {
|
774 - | run_v4a_test_suite("get-slashes-unnormalized", SignatureLocation::Headers);
|
772 + | run_test_suite_v4a("get-slashes-unnormalized");
|
773 + | }
|
774 + |
|
775 + | #[test]
|
776 + | #[ignore = "relies on single encode of path segments"]
|
777 + | // rely on single encoding of path segments, i.e. string-to-sign contains %20 for spaces rather than %25%20 as it should.
|
778 + | // skipped until we add control over double_uri_encode in context.json
|
779 + | fn test_get_space_normalized() {
|
780 + | run_test_suite_v4a("get-space-normalized");
|
781 + | }
|
782 + |
|
783 + | #[test]
|
784 + | #[ignore = "httpparse fails on unencoded spaces in path"]
|
785 + | // the input request has unencoded space ' ' in the path which fails to parse
|
786 + | fn test_get_space_unnormalized() {
|
787 + | run_test_suite_v4a("get-space-unnormalized");
|
775 788 | }
|
776 789 |
|
777 790 | #[test]
|
778 791 | fn test_get_unreserved() {
|
779 - | run_v4a_test_suite("get-unreserved", SignatureLocation::Headers);
|
792 + | run_test_suite_v4a("get-unreserved");
|
793 + | }
|
794 + |
|
795 + | #[test]
|
796 + | #[ignore = "httparse fails on invalid uri character"]
|
797 + | // relies on /ሴ canonicalized as /%E1%88%B4 when it should be /%25%E1%25%88%25%B4
|
798 + | fn test_get_utf8() {
|
799 + | run_test_suite_v4a("get-utf8");
|
780 800 | }
|
781 801 |
|
782 802 | #[test]
|
783 803 | fn test_get_vanilla() {
|
784 - | run_v4a_test_suite("get-vanilla", SignatureLocation::Headers);
|
804 + | run_test_suite_v4a("get-vanilla");
|
785 805 | }
|
786 806 |
|
787 807 | #[test]
|
788 808 | fn test_get_vanilla_empty_query_key() {
|
789 - | run_v4a_test_suite(
|
790 - | "get-vanilla-empty-query-key",
|
791 - | SignatureLocation::QueryParams,
|
792 - | );
|
809 + | run_test_suite_v4a("get-vanilla-empty-query-key");
|
793 810 | }
|
794 811 |
|
795 812 | #[test]
|
796 813 | fn test_get_vanilla_query() {
|
797 - | run_v4a_test_suite("get-vanilla-query", SignatureLocation::QueryParams);
|
814 + | run_test_suite_v4a("get-vanilla-query");
|
815 + | }
|
816 + |
|
817 + | #[test]
|
818 + | fn test_get_vanilla_query_order_encoded() {
|
819 + | run_test_suite_v4a("get-vanilla-query-order-encoded");
|
798 820 | }
|
799 821 |
|
800 822 | #[test]
|
801 823 | fn test_get_vanilla_query_order_key_case() {
|
802 - | run_v4a_test_suite(
|
803 - | "get-vanilla-query-order-key-case",
|
804 - | SignatureLocation::QueryParams,
|
805 - | );
|
824 + | run_test_suite_v4a("get-vanilla-query-order-key-case");
|
806 825 | }
|
807 826 |
|
808 827 | #[test]
|
809 828 | fn test_get_vanilla_query_unreserved() {
|
810 - | run_v4a_test_suite(
|
811 - | "get-vanilla-query-unreserved",
|
812 - | SignatureLocation::QueryParams,
|
813 - | );
|
829 + | run_test_suite_v4a("get-vanilla-query-unreserved");
|
830 + | }
|
831 + |
|
832 + | #[test]
|
833 + | #[ignore = "httparse fails on invalid uri character"]
|
834 + | // relies on /ሴ canonicalized as /%E1%88%B4 when it should be /%25%E1%25%88%25%B4
|
835 + | fn test_get_vanilla_utf8_query() {
|
836 + | run_test_suite_v4a("get-vanilla-utf8-query");
|
814 837 | }
|
815 838 |
|
816 839 | #[test]
|
817 840 | fn test_get_vanilla_with_session_token() {
|
818 - | run_v4a_test_suite("get-vanilla-with-session-token", SignatureLocation::Headers);
|
841 + | run_test_suite_v4a("get-vanilla-with-session-token")
|
819 842 | }
|
820 843 |
|
821 844 | #[test]
|
822 845 | fn test_post_header_key_case() {
|
823 - | run_v4a_test_suite("post-header-key-case", SignatureLocation::Headers);
|
846 + | run_test_suite_v4a("post-header-key-case");
|
824 847 | }
|
825 848 |
|
826 849 | #[test]
|
827 850 | fn test_post_header_key_sort() {
|
828 - | run_v4a_test_suite("post-header-key-sort", SignatureLocation::Headers);
|
851 + | run_test_suite_v4a("post-header-key-sort");
|
829 852 | }
|
830 853 |
|
831 854 | #[test]
|
832 855 | fn test_post_header_value_case() {
|
833 - | run_v4a_test_suite("post-header-value-case", SignatureLocation::Headers);
|
856 + | run_test_suite_v4a("post-header-value-case");
|
834 857 | }
|
835 858 |
|
836 859 | #[test]
|
837 860 | fn test_post_sts_header_after() {
|
838 - | run_v4a_test_suite("post-sts-header-after", SignatureLocation::Headers);
|
861 + | run_test_suite_v4a("post-sts-header-after");
|
839 862 | }
|
840 863 |
|
841 864 | #[test]
|
842 865 | fn test_post_sts_header_before() {
|
843 - | run_v4a_test_suite("post-sts-header-before", SignatureLocation::Headers);
|
866 + | run_test_suite_v4a("post-sts-header-before");
|
844 867 | }
|
845 868 |
|
846 869 | #[test]
|
847 870 | fn test_post_vanilla() {
|
848 - | run_v4a_test_suite("post-vanilla", SignatureLocation::Headers);
|
871 + | run_test_suite_v4a("post-vanilla");
|
849 872 | }
|
850 873 |
|
851 874 | #[test]
|
852 875 | fn test_post_vanilla_empty_query_value() {
|
853 - | run_v4a_test_suite(
|
854 - | "post-vanilla-empty-query-value",
|
855 - | SignatureLocation::QueryParams,
|
856 - | );
|
876 + | run_test_suite_v4a("post-vanilla-empty-query-value");
|
857 877 | }
|
858 878 |
|
859 879 | #[test]
|
860 880 | fn test_post_vanilla_query() {
|
861 - | run_v4a_test_suite("post-vanilla-query", SignatureLocation::QueryParams);
|
881 + | run_test_suite_v4a("post-vanilla-query");
|
862 882 | }
|
863 883 |
|
864 884 | #[test]
|
865 885 | fn test_post_x_www_form_urlencoded() {
|
866 - | run_v4a_test_suite("post-x-www-form-urlencoded", SignatureLocation::Headers);
|
886 + | run_test_suite_v4a("post-x-www-form-urlencoded");
|
867 887 | }
|
868 888 |
|
869 889 | #[test]
|
870 890 | fn test_post_x_www_form_urlencoded_parameters() {
|
871 - | run_v4a_test_suite(
|
872 - | "post-x-www-form-urlencoded-parameters",
|
873 - | SignatureLocation::QueryParams,
|
874 - | );
|
891 + | run_test_suite_v4a("post-x-www-form-urlencoded-parameters");
|
875 892 | }
|
876 893 | }
|
877 894 |
|
878 895 | #[test]
|
879 896 | fn test_sign_url_escape() {
|
880 - | let test = "double-encode-path";
|
897 + | let test = SigningSuiteTest::v4("double-encode-path");
|
881 898 | let settings = SigningSettings::default();
|
882 899 | let identity = &Credentials::for_tests().into();
|
883 900 | let params = v4::SigningParams {
|
884 901 | identity,
|
885 902 | region: "us-east-1",
|
886 903 | name: "service",
|
887 904 | time: parse_date_time("20150830T123600Z").unwrap(),
|
888 905 | settings,
|
889 906 | }
|
890 907 | .into();
|
891 908 |
|
892 - | let original = test::v4::test_request(test);
|
909 + | let original = test.request();
|
893 910 | let signable = SignableRequest::from(&original);
|
894 911 | let out = sign(signable, ¶ms).unwrap();
|
895 912 | assert_eq!(
|
896 913 | "57d157672191bac40bae387e48bbe14b15303c001fdbb01f4abf295dccb09705",
|
897 914 | out.signature
|
898 915 | );
|
899 916 |
|
900 917 | let mut signed = original.as_http_request();
|
901 918 | out.output.apply_to_request_http0x(&mut signed);
|
902 919 |
|
903 - | let expected = test::v4::test_signed_request(test);
|
904 - | assert_req_eq!(expected, signed);
|
905 - | }
|
906 - |
|
907 - | #[test]
|
908 - | fn test_sign_vanilla_with_query_params() {
|
909 - | let settings = SigningSettings {
|
910 - | signature_location: SignatureLocation::QueryParams,
|
911 - | expires_in: Some(Duration::from_secs(35)),
|
912 - | ..Default::default()
|
913 - | };
|
914 - | let identity = &Credentials::for_tests().into();
|
915 - | let params = v4::SigningParams {
|
916 - | identity,
|
917 - | region: "us-east-1",
|
918 - | name: "service",
|
919 - | time: parse_date_time("20150830T123600Z").unwrap(),
|
920 - | settings,
|
921 - | }
|
922 - | .into();
|
923 - |
|
924 - | let original = test::v4::test_request("get-vanilla-query-order-key-case");
|
925 - | let signable = SignableRequest::from(&original);
|
926 - | let out = sign(signable, ¶ms).unwrap();
|
927 - | assert_eq!(
|
928 - | "ecce208e4b4f7d7e3a4cc22ced6acc2ad1d170ee8ba87d7165f6fa4b9aff09ab",
|
929 - | out.signature
|
930 - | );
|
931 - |
|
932 - | let mut signed = original.as_http_request();
|
933 - | out.output.apply_to_request_http0x(&mut signed);
|
934 - |
|
935 - | let expected =
|
936 - | test::v4::test_signed_request_query_params("get-vanilla-query-order-key-case");
|
920 + | let expected = test.signed_request(SignatureLocation::Headers);
|
937 921 | assert_req_eq!(expected, signed);
|
938 922 | }
|
939 923 |
|
940 924 | #[test]
|
941 925 | fn test_sign_headers_utf8() {
|
942 926 | let settings = SigningSettings::default();
|
943 927 | let identity = &Credentials::for_tests().into();
|
944 928 | let params = v4::SigningParams {
|
945 929 | identity,
|
946 930 | region: "us-east-1",
|
947 931 | name: "service",
|
948 932 | time: parse_date_time("20150830T123600Z").unwrap(),
|
949 933 | settings,
|
950 934 | }
|
951 935 | .into();
|
952 936 |
|
953 937 | let original = http0::Request::builder()
|
954 938 | .uri("https://some-endpoint.some-region.amazonaws.com")
|
955 939 | .header("some-header", HeaderValue::from_str("テスト").unwrap())
|
956 940 | .body("")
|
957 941 | .unwrap()
|
958 942 | .into();
|
959 943 | let signable = SignableRequest::from(&original);
|
960 944 | let out = sign(signable, ¶ms).unwrap();
|
961 945 | assert_eq!(
|
962 946 | "55e16b31f9bde5fd04f9d3b780dd2b5e5f11a5219001f91a8ca9ec83eaf1618f",
|
963 947 | out.signature
|
964 948 | );
|
965 949 |
|
966 950 | let mut signed = original.as_http_request();
|
967 951 | @@ -1138,31 +1026,236 @@ mod tests {
|
968 952 | let mut request = http::Request::builder()
|
969 953 | .uri("https://some-endpoint.some-region.amazonaws.com/some/path")
|
970 954 | .body("")
|
971 955 | .unwrap();
|
972 956 |
|
973 957 | instructions.apply_to_request_http1x(&mut request);
|
974 958 |
|
975 959 | assert_eq!(
|
976 960 | "/some/path?some-param=f%26o%3Fo&some-other-param%3F=bar",
|
977 961 | request.uri().path_and_query().unwrap().to_string()
|
978 962 | );
|
979 963 | }
|
980 964 |
|
981 965 | #[test]
|
982 966 | fn test_debug_signable_body() {
|
983 967 | let sut = SignableBody::Bytes(b"hello signable body");
|
984 968 | assert_eq!(
|
985 969 | "Bytes(\"** REDACTED **. To print 19 bytes of raw data, set environment variable `LOG_SIGNABLE_BODY=true`\")",
|
986 970 | format!("{sut:?}")
|
987 971 | );
|
988 972 |
|
989 973 | let sut = SignableBody::UnsignedPayload;
|
990 974 | assert_eq!("UnsignedPayload", format!("{sut:?}"));
|
991 975 |
|
992 976 | let sut = SignableBody::Precomputed("precomputed".to_owned());
|
993 977 | assert_eq!("Precomputed(\"precomputed\")", format!("{sut:?}"));
|
994 978 |
|
995 979 | let sut = SignableBody::StreamingUnsignedPayloadTrailer;
|
996 980 | assert_eq!("StreamingUnsignedPayloadTrailer", format!("{sut:?}"));
|
997 981 | }
|
982 + |
|
983 + | // v4 test suite
|
984 + | mod v4_suite {
|
985 + | use crate::http_request::test::run_test_suite_v4;
|
986 + |
|
987 + | #[test]
|
988 + | fn test_get_header_key_duplicate() {
|
989 + | run_test_suite_v4("get-header-key-duplicate");
|
990 + | }
|
991 + |
|
992 + | #[test]
|
993 + | #[ignore = "httpparse doesn't support parsing multiline headers since they are deprecated in RFC7230"]
|
994 + | fn test_get_header_value_multiline() {
|
995 + | run_test_suite_v4("get-header-value-multiline");
|
996 + | }
|
997 + |
|
998 + | #[test]
|
999 + | fn test_get_header_value_order() {
|
1000 + | run_test_suite_v4("get-header-value-order");
|
1001 + | }
|
1002 + |
|
1003 + | #[test]
|
1004 + | fn test_get_header_value_trim() {
|
1005 + | run_test_suite_v4("get-header-value-trim");
|
1006 + | }
|
1007 + |
|
1008 + | #[test]
|
1009 + | fn test_get_relative_normalized() {
|
1010 + | run_test_suite_v4("get-relative-normalized");
|
1011 + | }
|
1012 + |
|
1013 + | #[test]
|
1014 + | fn test_get_relative_relative_normalized() {
|
1015 + | run_test_suite_v4("get-relative-relative-normalized");
|
1016 + | }
|
1017 + |
|
1018 + | #[test]
|
1019 + | fn test_get_relative_relative_unnormalized() {
|
1020 + | run_test_suite_v4("get-relative-relative-unnormalized");
|
1021 + | }
|
1022 + |
|
1023 + | #[test]
|
1024 + | fn test_get_relative_unnormalized() {
|
1025 + | run_test_suite_v4("get-relative-unnormalized");
|
1026 + | }
|
1027 + |
|
1028 + | #[test]
|
1029 + | fn test_get_slash_dot_slash_normalized() {
|
1030 + | run_test_suite_v4("get-slash-dot-slash-normalized");
|
1031 + | }
|
1032 + |
|
1033 + | #[test]
|
1034 + | fn test_get_slash_dot_slash_unnormalized() {
|
1035 + | run_test_suite_v4("get-slash-dot-slash-unnormalized");
|
1036 + | }
|
1037 + |
|
1038 + | #[test]
|
1039 + | fn test_get_slash_normalized() {
|
1040 + | run_test_suite_v4("get-slash-normalized");
|
1041 + | }
|
1042 + |
|
1043 + | #[test]
|
1044 + | fn test_get_slash_pointless_dot_normalized() {
|
1045 + | run_test_suite_v4("get-slash-pointless-dot-normalized");
|
1046 + | }
|
1047 + |
|
1048 + | #[test]
|
1049 + | fn test_get_slash_pointless_dot_unnormalized() {
|
1050 + | run_test_suite_v4("get-slash-pointless-dot-unnormalized");
|
1051 + | }
|
1052 + |
|
1053 + | #[test]
|
1054 + | fn test_get_slash_unnormalized() {
|
1055 + | run_test_suite_v4("get-slash-unnormalized");
|
1056 + | }
|
1057 + |
|
1058 + | #[test]
|
1059 + | fn test_get_slashes_normalized() {
|
1060 + | run_test_suite_v4("get-slashes-normalized");
|
1061 + | }
|
1062 + |
|
1063 + | #[test]
|
1064 + | fn test_get_slashes_unnormalized() {
|
1065 + | run_test_suite_v4("get-slashes-unnormalized");
|
1066 + | }
|
1067 + |
|
1068 + | #[test]
|
1069 + | #[ignore = "relies on single encode of path segments"]
|
1070 + | // rely on single encoding of path segments, i.e. string-to-sign contains %20 for spaces rather than %25%20 as it should.
|
1071 + | // skipped until we add control over double_uri_encode in context.json
|
1072 + | fn test_get_space_normalized() {
|
1073 + | run_test_suite_v4("get-space-normalized");
|
1074 + | }
|
1075 + |
|
1076 + | #[test]
|
1077 + | #[ignore = "httpparse fails on unencoded spaces in path"]
|
1078 + | // the input request has unencoded space ' ' in the path which fails to parse
|
1079 + | fn test_get_space_unnormalized() {
|
1080 + | run_test_suite_v4("get-space-unnormalized");
|
1081 + | }
|
1082 + |
|
1083 + | #[test]
|
1084 + | fn test_get_unreserved() {
|
1085 + | run_test_suite_v4("get-unreserved");
|
1086 + | }
|
1087 + |
|
1088 + | #[test]
|
1089 + | #[ignore = "httparse fails on invalid uri character"]
|
1090 + | // relies on /ሴ canonicalized as /%E1%88%B4 when it should be /%25%E1%25%88%25%B4
|
1091 + | fn test_get_utf8() {
|
1092 + | run_test_suite_v4("get-utf8");
|
1093 + | }
|
1094 + |
|
1095 + | #[test]
|
1096 + | fn test_get_vanilla() {
|
1097 + | run_test_suite_v4("get-vanilla");
|
1098 + | }
|
1099 + |
|
1100 + | #[test]
|
1101 + | fn test_get_vanilla_empty_query_key() {
|
1102 + | run_test_suite_v4("get-vanilla-empty-query-key");
|
1103 + | }
|
1104 + |
|
1105 + | #[test]
|
1106 + | fn test_get_vanilla_query() {
|
1107 + | run_test_suite_v4("get-vanilla-query");
|
1108 + | }
|
1109 + |
|
1110 + | #[test]
|
1111 + | fn test_get_vanilla_query_order_encoded() {
|
1112 + | run_test_suite_v4("get-vanilla-query-order-encoded");
|
1113 + | }
|
1114 + |
|
1115 + | #[test]
|
1116 + | fn test_get_vanilla_query_order_key_case() {
|
1117 + | run_test_suite_v4("get-vanilla-query-order-key-case");
|
1118 + | }
|
1119 + |
|
1120 + | #[test]
|
1121 + | fn test_get_vanilla_query_unreserved() {
|
1122 + | run_test_suite_v4("get-vanilla-query-unreserved");
|
1123 + | }
|
1124 + |
|
1125 + | #[test]
|
1126 + | #[ignore = "httparse fails on invalid uri character"]
|
1127 + | // relies on /ሴ canonicalized as /%E1%88%B4 when it should be /%25%E1%25%88%25%B4
|
1128 + | fn test_get_vanilla_utf8_query() {
|
1129 + | run_test_suite_v4("get-vanilla-utf8-query");
|
1130 + | }
|
1131 + |
|
1132 + | #[test]
|
1133 + | fn test_get_vanilla_with_session_token() {
|
1134 + | run_test_suite_v4("get-vanilla-with-session-token");
|
1135 + | }
|
1136 + |
|
1137 + | #[test]
|
1138 + | fn test_post_header_key_case() {
|
1139 + | run_test_suite_v4("post-header-key-case");
|
1140 + | }
|
1141 + |
|
1142 + | #[test]
|
1143 + | fn test_post_header_key_sort() {
|
1144 + | run_test_suite_v4("post-header-key-sort");
|
1145 + | }
|
1146 + |
|
1147 + | #[test]
|
1148 + | fn test_post_header_value_case() {
|
1149 + | run_test_suite_v4("post-header-value-case");
|
1150 + | }
|
1151 + |
|
1152 + | #[test]
|
1153 + | fn test_post_sts_header_after() {
|
1154 + | run_test_suite_v4("post-sts-header-after");
|
1155 + | }
|
1156 + |
|
1157 + | #[test]
|
1158 + | fn test_post_sts_header_before() {
|
1159 + | run_test_suite_v4("post-sts-header-before");
|
1160 + | }
|
1161 + |
|
1162 + | #[test]
|
1163 + | fn test_post_vanilla() {
|
1164 + | run_test_suite_v4("post-vanilla");
|
1165 + | }
|
1166 + |
|
1167 + | #[test]
|
1168 + | fn test_post_vanilla_empty_query_value() {
|
1169 + | run_test_suite_v4("post-vanilla-empty-query-value");
|
1170 + | }
|
1171 + |
|
1172 + | #[test]
|
1173 + | fn test_post_vanilla_query() {
|
1174 + | run_test_suite_v4("post-vanilla-query");
|
1175 + | }
|
1176 + |
|
1177 + | #[test]
|
1178 + | fn test_post_x_www_form_urlencoded() {
|
1179 + | run_test_suite_v4("post-x-www-form-urlencoded");
|
1180 + | }
|
1181 + |
|
1182 + | #[test]
|
1183 + | fn test_post_x_www_form_urlencoded_parameters() {
|
1184 + | run_test_suite_v4("post-x-www-form-urlencoded-parameters");
|
1185 + | }
|
1186 + | }
|
998 1187 | }
|
999 1188 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/test.rs b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/test.rs
|
1000 1189 | index be6c496..86eec20 100644
|
1001 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/test.rs
|
1190 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/test.rs
|
1002 1191 | @@ -1,242 +1,453 @@
|
1003 1192 | /*
|
1004 1193 | * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
1005 1194 | * SPDX-License-Identifier: Apache-2.0
|
1006 1195 | */
|
1007 1196 |
|
1008 1197 | //! Functions shared between the tests of several modules.
|
1009 1198 |
|
1010 - | use crate::http_request::{SignableBody, SignableRequest};
|
1199 + | use crate::http_request::canonical_request::{CanonicalRequest, StringToSign};
|
1200 + | use crate::http_request::{
|
1201 + | PayloadChecksumKind, SessionTokenMode, SignableBody, SignableRequest, SignatureLocation,
|
1202 + | SigningSettings,
|
1203 + | };
|
1204 + | use aws_credential_types::Credentials;
|
1205 + | use aws_smithy_runtime_api::client::identity::Identity;
|
1011 1206 | use http0::{Method, Uri};
|
1207 + | use std::borrow::Cow;
|
1012 1208 | use std::error::Error as StdError;
|
1209 + | use std::time::{Duration, SystemTime};
|
1210 + | use time::format_description::well_known::Rfc3339;
|
1211 + | use time::OffsetDateTime;
|
1212 + |
|
1213 + | /// Common test suite collection
|
1214 + | #[derive(Debug, Clone, Copy, Eq, PartialEq)]
|
1215 + | enum Collection {
|
1216 + | V4,
|
1217 + | V4A,
|
1218 + | }
|
1013 1219 |
|
1014 - | pub(crate) mod v4 {
|
1015 - | use super::*;
|
1220 + | /// A test from the common CRT test suite
|
1221 + | #[derive(Debug, Clone)]
|
1222 + | pub(crate) struct SigningSuiteTest {
|
1223 + | test_name: &'static str,
|
1224 + | collection: Collection,
|
1225 + | }
|
1016 1226 |
|
1017 - | fn path(name: &str, ext: &str) -> String {
|
1018 - | format!("aws-sig-v4-test-suite/{}/{}.{}", name, name, ext)
|
1227 + | impl SigningSuiteTest {
|
1228 + | /// Create a new test from the V4 test suite
|
1229 + | pub(crate) fn v4(test_name: &'static str) -> Self {
|
1230 + | Self {
|
1231 + | test_name,
|
1232 + | collection: Collection::V4,
|
1233 + | }
|
1019 1234 | }
|
1020 1235 |
|
1021 - | pub(crate) fn test_canonical_request(name: &str) -> String {
|
1022 - | // Tests fail if there's a trailing newline in the file, and pre-commit requires trailing newlines
|
1023 - | read(&path(name, "creq")).trim().to_string()
|
1236 + | /// Create a new test from the V4a test suite
|
1237 + | pub(crate) fn v4a(test_name: &'static str) -> Self {
|
1238 + | Self {
|
1239 + | test_name,
|
1240 + | collection: Collection::V4A,
|
1241 + | }
|
1024 1242 | }
|
1025 1243 |
|
1026 - | pub(crate) fn test_sts(name: &str) -> String {
|
1027 - | read(&path(name, "sts"))
|
1244 + | /// Get the path to a file in this test suite directory
|
1245 + | fn path(&self, filename: &str) -> String {
|
1246 + | let dir = match self.collection {
|
1247 + | Collection::V4 => "v4",
|
1248 + | Collection::V4A => "v4a",
|
1249 + | };
|
1250 + | format!("aws-signing-test-suite/{dir}/{}/{filename}", self.test_name)
|
1028 1251 | }
|
1029 1252 |
|
1030 - | pub(crate) fn test_request(name: &str) -> TestRequest {
|
1031 - | test_parsed_request(name, "req")
|
1253 + | /// Get the HTTP request for the test
|
1254 + | pub(crate) fn request(&self) -> TestRequest {
|
1255 + | test_parsed_request(&self.path("request.txt"))
|
1032 1256 | }
|
1033 1257 |
|
1034 - | pub(crate) fn test_signed_request(name: &str) -> TestRequest {
|
1035 - | test_parsed_request(name, "sreq")
|
1258 + | /// Get the signed HTTP request for the test
|
1259 + | pub(crate) fn signed_request(&self, signature_location: SignatureLocation) -> TestRequest {
|
1260 + | match signature_location {
|
1261 + | SignatureLocation::QueryParams => {
|
1262 + | test_parsed_request(&self.path("query-signed-request.txt"))
|
1263 + | }
|
1264 + | SignatureLocation::Headers => {
|
1265 + | test_parsed_request(&self.path("header-signed-request.txt"))
|
1266 + | }
|
1267 + | }
|
1036 1268 | }
|
1037 1269 |
|
1038 - | pub(crate) fn test_signed_request_query_params(name: &str) -> TestRequest {
|
1039 - | test_parsed_request(name, "qpsreq")
|
1270 + | /// Get the canonical request for the test
|
1271 + | pub(crate) fn canonical_request(&self, signature_location: SignatureLocation) -> String {
|
1272 + | match signature_location {
|
1273 + | SignatureLocation::QueryParams => read(&self.path("query-canonical-request.txt")),
|
1274 + | SignatureLocation::Headers => read(&self.path("header-canonical-request.txt")),
|
1275 + | }
|
1040 1276 | }
|
1041 1277 |
|
1042 - | fn test_parsed_request(name: &str, ext: &str) -> TestRequest {
|
1043 - | let path = path(name, ext);
|
1044 - | match parse_request(read(&path).as_bytes()) {
|
1045 - | Ok(parsed) => parsed,
|
1046 - | Err(err) => panic!("Failed to parse {}: {}", path, err),
|
1278 + | /// Get the string to sign for the test
|
1279 + | pub(crate) fn string_to_sign(&self, signature_location: SignatureLocation) -> String {
|
1280 + | match signature_location {
|
1281 + | SignatureLocation::QueryParams => read(&self.path("query-string-to-sign.txt")),
|
1282 + | SignatureLocation::Headers => read(&self.path("header-string-to-sign.txt")),
|
1047 1283 | }
|
1048 1284 | }
|
1049 1285 |
|
1050 - | #[test]
|
1051 - | fn test_parse() {
|
1052 - | test_request("post-header-key-case");
|
1286 + | /// Get the signature for the test
|
1287 + | pub(crate) fn signature(&self, signature_location: SignatureLocation) -> String {
|
1288 + | match signature_location {
|
1289 + | SignatureLocation::QueryParams => read(&self.path("query-signature.txt")),
|
1290 + | SignatureLocation::Headers => read(&self.path("header-signature.txt")),
|
1291 + | }
|
1053 1292 | }
|
1054 1293 |
|
1055 - | #[test]
|
1056 - | fn test_read_query_params() {
|
1057 - | test_request("get-vanilla-query-order-key-case");
|
1294 + | /// Get the test context for the test
|
1295 + | pub(crate) fn context(&self) -> TestContext {
|
1296 + | let context = read(&self.path("context.json"));
|
1297 + | let tc_builder: TestContextBuilder = serde_json::from_str(&context).unwrap();
|
1298 + | tc_builder.build()
|
1058 1299 | }
|
1059 1300 | }
|
1060 1301 |
|
1061 - | #[cfg(feature = "sigv4a")]
|
1062 - | pub(crate) mod v4a {
|
1063 - | use super::*;
|
1064 - | use crate::http_request::{
|
1065 - | PayloadChecksumKind, SessionTokenMode, SignatureLocation, SigningSettings,
|
1066 - | };
|
1067 - | use aws_credential_types::Credentials;
|
1068 - | use aws_smithy_runtime_api::client::identity::Identity;
|
1069 - | use serde_derive::Deserialize;
|
1070 - | use std::time::{Duration, SystemTime};
|
1071 - | use time::format_description::well_known::Rfc3339;
|
1072 - | use time::OffsetDateTime;
|
1073 - |
|
1074 - | fn path(test_name: &str, definition_name: &str) -> String {
|
1075 - | format!("aws-sig-v4a-test-suite/{test_name}/{definition_name}.txt")
|
1302 + | fn test_parsed_request(path: &str) -> TestRequest {
|
1303 + | match parse_request(read(path).as_bytes()) {
|
1304 + | Ok(parsed) => parsed,
|
1305 + | Err(err) => panic!("Failed to parse {}: {}", path, err),
|
1076 1306 | }
|
1307 + | }
|
1077 1308 |
|
1078 - | pub(crate) fn test_request(name: &str) -> TestRequest {
|
1079 - | test_parsed_request(&path(name, "request"))
|
1080 - | }
|
1309 + | fn new_v4_signing_params_from_context(
|
1310 + | test_context: &'_ TestContext,
|
1311 + | signature_location: SignatureLocation,
|
1312 + | ) -> crate::http_request::SigningParams<'_> {
|
1313 + | let mut params = crate::sign::v4::SigningParams::from(test_context);
|
1314 + | params.settings.signature_location = signature_location;
|
1315 + | params.into()
|
1316 + | }
|
1081 1317 |
|
1082 - | pub(crate) fn test_canonical_request(
|
1083 - | name: &str,
|
1084 - | signature_location: SignatureLocation,
|
1085 - | ) -> String {
|
1086 - | match signature_location {
|
1087 - | SignatureLocation::QueryParams => read(&path(name, "query-canonical-request")),
|
1088 - | SignatureLocation::Headers => read(&path(name, "header-canonical-request")),
|
1318 + | /// Run the given test from the v4 suite for both header and query
|
1319 + | /// signature locations
|
1320 + | pub(crate) fn run_test_suite_v4(test_name: &'static str) {
|
1321 + | run_v4_test(test_name, SignatureLocation::Headers);
|
1322 + | run_v4_test(test_name, SignatureLocation::QueryParams);
|
1323 + | }
|
1324 + |
|
1325 + | fn assert_uri_eq(expected: &Uri, actual: &Uri) {
|
1326 + | assert_eq!(expected.scheme(), actual.scheme());
|
1327 + | assert_eq!(expected.authority(), actual.authority());
|
1328 + | assert_eq!(expected.path(), actual.path());
|
1329 + |
|
1330 + | // query params may be out of order
|
1331 + | let mut expected_params: Vec<(Cow<'_, str>, Cow<'_, str>)> =
|
1332 + | form_urlencoded::parse(expected.query().unwrap_or_default().as_bytes()).collect();
|
1333 + | expected_params.sort();
|
1334 + |
|
1335 + | let mut actual_params: Vec<(Cow<'_, str>, Cow<'_, str>)> =
|
1336 + | form_urlencoded::parse(actual.query().unwrap_or_default().as_bytes()).collect();
|
1337 + | actual_params.sort();
|
1338 + |
|
1339 + | assert_eq!(expected_params, actual_params);
|
1340 + | }
|
1341 + |
|
1342 + | fn assert_requests_eq(expected: TestRequest, actual: http0::Request<&str>) {
|
1343 + | let expected = expected.as_http_request();
|
1344 + | let actual = actual;
|
1345 + | assert_eq!(expected.method(), actual.method());
|
1346 + | assert_eq!(
|
1347 + | expected.headers().len(),
|
1348 + | actual.headers().len(),
|
1349 + | "extra or missing headers"
|
1350 + | );
|
1351 + | assert_eq!(expected.headers(), actual.headers(), "headers mismatch");
|
1352 + | assert_uri_eq(expected.uri(), actual.uri());
|
1353 + | assert_eq!(*expected.body(), *actual.body(), "body mismatch");
|
1354 + | }
|
1355 + |
|
1356 + | /// Run the given test from the v4 suite for the given signature location
|
1357 + | pub(crate) fn run_v4_test(test_name: &'static str, signature_location: SignatureLocation) {
|
1358 + | let test = SigningSuiteTest::v4(test_name);
|
1359 + | let tc = test.context();
|
1360 + | let params = new_v4_signing_params_from_context(&tc, signature_location);
|
1361 + |
|
1362 + | let req = test.request();
|
1363 + | let expected_creq = test.canonical_request(signature_location);
|
1364 + | let signable_req = SignableRequest::from(&req);
|
1365 + | let actual_creq = CanonicalRequest::from(&signable_req, ¶ms).unwrap();
|
1366 + |
|
1367 + | // check canonical request
|
1368 + | assert_eq!(
|
1369 + | expected_creq,
|
1370 + | actual_creq.to_string(),
|
1371 + | "canonical request didn't match (signature location: {signature_location:?})"
|
1372 + | );
|
1373 + |
|
1374 + | let expected_string_to_sign = test.string_to_sign(signature_location);
|
1375 + | let hashed_creq = &crate::sign::v4::sha256_hex_string(actual_creq.to_string().as_bytes());
|
1376 + | let actual_string_to_sign = StringToSign::new_v4(
|
1377 + | *params.time(),
|
1378 + | params.region().unwrap(),
|
1379 + | params.name(),
|
1380 + | hashed_creq,
|
1381 + | )
|
1382 + | .to_string();
|
1383 + |
|
1384 + | // check string to sign
|
1385 + | assert_eq!(
|
1386 + | expected_string_to_sign, actual_string_to_sign,
|
1387 + | "'string to sign' didn't match (signature location: {signature_location:?})"
|
1388 + | );
|
1389 + |
|
1390 + | let out = crate::http_request::sign(signable_req, ¶ms).unwrap();
|
1391 + | let mut signed = req.as_http_request();
|
1392 + | out.output.apply_to_request_http0x(&mut signed);
|
1393 + |
|
1394 + | // check signature
|
1395 + | assert_eq!(
|
1396 + | test.signature(signature_location),
|
1397 + | out.signature,
|
1398 + | "signature didn't match (signature location: {signature_location:?})"
|
1399 + | );
|
1400 + |
|
1401 + | let expected = test.signed_request(signature_location);
|
1402 + | assert_requests_eq(expected, signed);
|
1403 + | }
|
1404 + |
|
1405 + | /// Test suite context.json
|
1406 + | pub(crate) struct TestContext {
|
1407 + | pub(crate) identity: Identity,
|
1408 + | pub(crate) expiration_in_seconds: u64,
|
1409 + | pub(crate) normalize: bool,
|
1410 + | pub(crate) region: String,
|
1411 + | pub(crate) service: String,
|
1412 + | pub(crate) timestamp: String,
|
1413 + | pub(crate) omit_session_token: bool,
|
1414 + | pub(crate) sign_body: bool,
|
1415 + | }
|
1416 + |
|
1417 + | // Serde has limitations requiring this odd workaround.
|
1418 + | // See https://github.com/serde-rs/serde/issues/368 for more info.
|
1419 + | fn return_true() -> bool {
|
1420 + | true
|
1421 + | }
|
1422 + |
|
1423 + | #[derive(serde_derive::Deserialize)]
|
1424 + | pub(crate) struct TestContextBuilder {
|
1425 + | credentials: TestContextCreds,
|
1426 + | expiration_in_seconds: u64,
|
1427 + | normalize: bool,
|
1428 + | region: String,
|
1429 + | service: String,
|
1430 + | timestamp: String,
|
1431 + | #[serde(default)]
|
1432 + | omit_session_token: bool,
|
1433 + | #[serde(default = "return_true")]
|
1434 + | sign_body: bool,
|
1435 + | }
|
1436 + |
|
1437 + | impl TestContextBuilder {
|
1438 + | pub(crate) fn build(self) -> TestContext {
|
1439 + | let identity = Identity::new(
|
1440 + | Credentials::from_keys(
|
1441 + | &self.credentials.access_key_id,
|
1442 + | &self.credentials.secret_access_key,
|
1443 + | self.credentials.token.clone(),
|
1444 + | ),
|
1445 + | Some(SystemTime::UNIX_EPOCH + Duration::from_secs(self.expiration_in_seconds)),
|
1446 + | );
|
1447 + |
|
1448 + | TestContext {
|
1449 + | identity,
|
1450 + | expiration_in_seconds: self.expiration_in_seconds,
|
1451 + | normalize: self.normalize,
|
1452 + | region: self.region,
|
1453 + | service: self.service,
|
1454 + | timestamp: self.timestamp,
|
1455 + | omit_session_token: self.omit_session_token,
|
1456 + | sign_body: self.sign_body,
|
1089 1457 | }
|
1090 1458 | }
|
1459 + | }
|
1091 1460 |
|
1092 - | pub(crate) fn test_string_to_sign(name: &str, signature_location: SignatureLocation) -> String {
|
1093 - | match signature_location {
|
1094 - | SignatureLocation::QueryParams => read(&path(name, "query-string-to-sign")),
|
1095 - | SignatureLocation::Headers => read(&path(name, "header-string-to-sign")),
|
1461 + | #[derive(serde_derive::Deserialize)]
|
1462 + | pub(crate) struct TestContextCreds {
|
1463 + | access_key_id: String,
|
1464 + | secret_access_key: String,
|
1465 + | token: Option<String>,
|
1466 + | }
|
1467 + |
|
1468 + | impl<'a> From<&'a TestContext> for crate::sign::v4::SigningParams<'a, SigningSettings> {
|
1469 + | fn from(tc: &'a TestContext) -> Self {
|
1470 + | crate::sign::v4::SigningParams {
|
1471 + | identity: &tc.identity,
|
1472 + | region: &tc.region,
|
1473 + | name: &tc.service,
|
1474 + | time: OffsetDateTime::parse(&tc.timestamp, &Rfc3339)
|
1475 + | .unwrap()
|
1476 + | .into(),
|
1477 + | settings: SigningSettings {
|
1478 + | // payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
1479 + | expires_in: Some(Duration::from_secs(tc.expiration_in_seconds)),
|
1480 + | uri_path_normalization_mode: tc.normalize.into(),
|
1481 + | session_token_mode: if tc.omit_session_token {
|
1482 + | SessionTokenMode::Exclude
|
1483 + | } else {
|
1484 + | SessionTokenMode::Include
|
1485 + | },
|
1486 + | payload_checksum_kind: if tc.sign_body {
|
1487 + | PayloadChecksumKind::XAmzSha256
|
1488 + | } else {
|
1489 + | PayloadChecksumKind::NoHeader
|
1490 + | },
|
1491 + | ..Default::default()
|
1492 + | },
|
1096 1493 | }
|
1097 1494 | }
|
1495 + | }
|
1098 1496 |
|
1099 - | fn test_parsed_request(path: &str) -> TestRequest {
|
1100 - | match parse_request(read(path).as_bytes()) {
|
1101 - | Ok(parsed) => parsed,
|
1102 - | Err(err) => panic!("Failed to parse {}: {}", path, err),
|
1103 - | }
|
1497 + | #[cfg(feature = "sigv4a")]
|
1498 + | pub(crate) mod v4a {
|
1499 + | use super::*;
|
1500 + | use crate::http_request::{
|
1501 + | sign, PayloadChecksumKind, SessionTokenMode, SignatureLocation, SigningSettings,
|
1502 + | };
|
1503 + | use crate::sign::v4a;
|
1504 + | use p256::ecdsa::signature::{Signature, Verifier};
|
1505 + | use p256::ecdsa::{DerSignature, SigningKey};
|
1506 + | use std::time::Duration;
|
1507 + | use time::format_description::well_known::Rfc3339;
|
1508 + | use time::OffsetDateTime;
|
1509 + |
|
1510 + | fn new_v4a_signing_params_from_context(
|
1511 + | test_context: &'_ TestContext,
|
1512 + | signature_location: SignatureLocation,
|
1513 + | ) -> crate::http_request::SigningParams<'_> {
|
1514 + | let mut params = crate::sign::v4a::SigningParams::from(test_context);
|
1515 + | params.settings.signature_location = signature_location;
|
1516 + | params.into()
|
1104 1517 | }
|
1105 1518 |
|
1106 - | pub(crate) fn test_context(test_name: &str) -> TestContext {
|
1107 - | let path = format!("aws-sig-v4a-test-suite/{test_name}/context.json");
|
1108 - | let context = read(&path);
|
1109 - | let tc_builder: TestContextBuilder = serde_json::from_str(&context).unwrap();
|
1110 - | tc_builder.build()
|
1519 + | pub(crate) fn run_test_suite_v4a(test_name: &'static str) {
|
1520 + | run_v4a_test(test_name, SignatureLocation::Headers);
|
1521 + | run_v4a_test(test_name, SignatureLocation::QueryParams);
|
1111 1522 | }
|
1112 1523 |
|
1113 - | pub(crate) struct TestContext {
|
1114 - | pub(crate) identity: Identity,
|
1115 - | pub(crate) expiration_in_seconds: u64,
|
1116 - | pub(crate) normalize: bool,
|
1117 - | pub(crate) region: String,
|
1118 - | pub(crate) service: String,
|
1119 - | pub(crate) timestamp: String,
|
1120 - | pub(crate) omit_session_token: bool,
|
1121 - | pub(crate) sign_body: bool,
|
1524 + | pub(crate) fn run_v4a_test(test_name: &'static str, signature_location: SignatureLocation) {
|
1525 + | let test = SigningSuiteTest::v4a(test_name);
|
1526 + | let tc = test.context();
|
1527 + | let params = new_v4a_signing_params_from_context(&tc, signature_location);
|
1528 + |
|
1529 + | let req = test.request();
|
1530 + | let expected_creq = test.canonical_request(signature_location);
|
1531 + | let signable_req = SignableRequest::from(&req);
|
1532 + | let actual_creq = CanonicalRequest::from(&signable_req, ¶ms).unwrap();
|
1533 + |
|
1534 + | assert_eq!(
|
1535 + | expected_creq,
|
1536 + | actual_creq.to_string(),
|
1537 + | "canonical request didn't match (signature location: {signature_location:?})"
|
1538 + | );
|
1539 + |
|
1540 + | let expected_string_to_sign = test.string_to_sign(signature_location);
|
1541 + | let hashed_creq = &crate::sign::v4::sha256_hex_string(actual_creq.to_string().as_bytes());
|
1542 + | let actual_string_to_sign = StringToSign::new_v4a(
|
1543 + | *params.time(),
|
1544 + | params.region_set().unwrap(),
|
1545 + | params.name(),
|
1546 + | hashed_creq,
|
1547 + | )
|
1548 + | .to_string();
|
1549 + |
|
1550 + | assert_eq!(
|
1551 + | expected_string_to_sign, actual_string_to_sign,
|
1552 + | "'string to sign' didn't match (signature location: {signature_location:?})"
|
1553 + | );
|
1554 + |
|
1555 + | let out = sign(signable_req, ¶ms).unwrap();
|
1556 + | // Sigv4a signatures are non-deterministic, so we can't compare the signature directly.
|
1557 + | out.output
|
1558 + | .apply_to_request_http0x(&mut req.as_http_request());
|
1559 + |
|
1560 + | let creds = params.credentials().unwrap();
|
1561 + | let signing_key =
|
1562 + | v4a::generate_signing_key(creds.access_key_id(), creds.secret_access_key());
|
1563 + | let sig = DerSignature::from_bytes(&hex::decode(out.signature).unwrap()).unwrap();
|
1564 + | let sig = sig
|
1565 + | .try_into()
|
1566 + | .expect("DER-style signatures are always convertible into fixed-size signatures");
|
1567 + |
|
1568 + | let signing_key = SigningKey::from_bytes(signing_key.as_ref()).unwrap();
|
1569 + | let peer_public_key = signing_key.verifying_key();
|
1570 + | let sts = actual_string_to_sign.as_bytes();
|
1571 + | peer_public_key.verify(sts, &sig).unwrap();
|
1572 + | // TODO(sigv4a) - use public.key.json as verifying key?
|
1122 1573 | }
|
1123 1574 |
|
1124 1575 | impl<'a> From<&'a TestContext> for crate::sign::v4a::SigningParams<'a, SigningSettings> {
|
1125 1576 | fn from(tc: &'a TestContext) -> Self {
|
1126 1577 | crate::sign::v4a::SigningParams {
|
1127 1578 | identity: &tc.identity,
|
1128 1579 | region_set: &tc.region,
|
1129 1580 | name: &tc.service,
|
1130 1581 | time: OffsetDateTime::parse(&tc.timestamp, &Rfc3339)
|
1131 1582 | .unwrap()
|
1132 1583 | .into(),
|
1133 1584 | settings: SigningSettings {
|
1134 1585 | // payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
1135 1586 | expires_in: Some(Duration::from_secs(tc.expiration_in_seconds)),
|
1136 1587 | uri_path_normalization_mode: tc.normalize.into(),
|
1137 1588 | session_token_mode: if tc.omit_session_token {
|
1138 1589 | SessionTokenMode::Exclude
|
1139 1590 | } else {
|
1140 1591 | SessionTokenMode::Include
|
1141 1592 | },
|
1142 1593 | payload_checksum_kind: if tc.sign_body {
|
1143 1594 | PayloadChecksumKind::XAmzSha256
|
1144 1595 | } else {
|
1145 1596 | PayloadChecksumKind::NoHeader
|
1146 1597 | },
|
1147 1598 | ..Default::default()
|
1148 1599 | },
|
1149 1600 | }
|
1150 1601 | }
|
1151 1602 | }
|
1152 1603 |
|
1153 - | // Serde has limitations requiring this odd workaround.
|
1154 - | // See https://github.com/serde-rs/serde/issues/368 for more info.
|
1155 - | fn return_true() -> bool {
|
1156 - | true
|
1157 - | }
|
1158 - |
|
1159 - | #[derive(Deserialize)]
|
1160 - | pub(crate) struct TestContextBuilder {
|
1161 - | credentials: TestContextCreds,
|
1162 - | expiration_in_seconds: u64,
|
1163 - | normalize: bool,
|
1164 - | region: String,
|
1165 - | service: String,
|
1166 - | timestamp: String,
|
1167 - | #[serde(default)]
|
1168 - | omit_session_token: bool,
|
1169 - | #[serde(default = "return_true")]
|
1170 - | sign_body: bool,
|
1171 - | }
|
1172 - |
|
1173 - | impl TestContextBuilder {
|
1174 - | pub(crate) fn build(self) -> TestContext {
|
1175 - | let identity = Identity::new(
|
1176 - | Credentials::from_keys(
|
1177 - | &self.credentials.access_key_id,
|
1178 - | &self.credentials.secret_access_key,
|
1179 - | self.credentials.token.clone(),
|
1180 - | ),
|
1181 - | Some(SystemTime::UNIX_EPOCH + Duration::from_secs(self.expiration_in_seconds)),
|
1182 - | );
|
1183 - |
|
1184 - | TestContext {
|
1185 - | identity,
|
1186 - | expiration_in_seconds: self.expiration_in_seconds,
|
1187 - | normalize: self.normalize,
|
1188 - | region: self.region,
|
1189 - | service: self.service,
|
1190 - | timestamp: self.timestamp,
|
1191 - | omit_session_token: self.omit_session_token,
|
1192 - | sign_body: self.sign_body,
|
1193 - | }
|
1194 - | }
|
1195 - | }
|
1196 - |
|
1197 - | #[derive(Deserialize)]
|
1198 - | pub(crate) struct TestContextCreds {
|
1199 - | access_key_id: String,
|
1200 - | secret_access_key: String,
|
1201 - | token: Option<String>,
|
1202 - | }
|
1203 - |
|
1204 1604 | #[test]
|
1205 1605 | fn test_parse() {
|
1206 - | let req = test_request("post-header-key-case");
|
1606 + | let req = SigningSuiteTest::v4a("post-header-key-case").request();
|
1207 1607 | assert_eq!(req.method, "POST");
|
1208 1608 | assert_eq!(req.uri, "https://example.amazonaws.com/");
|
1209 1609 | assert!(req.headers.is_empty());
|
1210 1610 | }
|
1211 1611 |
|
1212 1612 | #[test]
|
1213 1613 | fn test_read_query_params() {
|
1214 - | let req = test_request("get-header-value-trim");
|
1614 + | let req = SigningSuiteTest::v4a("get-header-value-trim").request();
|
1215 1615 | assert_eq!(req.method, "GET");
|
1216 1616 | assert_eq!(req.uri, "https://example.amazonaws.com/");
|
1217 1617 | assert!(!req.headers.is_empty());
|
1218 1618 | }
|
1219 1619 | }
|
1220 1620 |
|
1221 1621 | fn read(path: &str) -> String {
|
1222 1622 | println!("Loading `{}` for test case...", path);
|
1223 1623 | let v = {
|
1224 1624 | match std::fs::read_to_string(path) {
|
1225 1625 | // This replacement is necessary for tests to pass on Windows, as reading the
|
1226 1626 | // test snapshots from the file system results in CRLF line endings being inserted.
|
1227 1627 | Ok(value) => value.replace("\r\n", "\n"),
|
1228 1628 | Err(err) => {
|
1229 1629 | panic!("failed to load test case `{}`: {}", path, err);
|
1230 1630 | }
|
1231 1631 | }
|
1232 1632 | };
|
1233 1633 |
|
1234 1634 | v.trim().to_string()
|
1235 1635 | }
|
1236 1636 |
|
1237 1637 | pub(crate) struct TestRequest {
|
1238 1638 | pub(crate) uri: String,
|
1239 1639 | pub(crate) method: String,
|
1240 1640 | pub(crate) headers: Vec<(String, String)>,
|
1241 1641 | pub(crate) body: TestSignedBody,
|
1242 1642 | }
|
1243 1643 |
|
1244 1644 | pub(crate) enum TestSignedBody {
|
1245 1645 | @@ -290,79 +501,87 @@ impl<B: AsRef<[u8]>> From<http0::Request<B>> for TestRequest {
|
1246 1646 | String::from_utf8(v.as_bytes().to_vec()).unwrap(),
|
1247 1647 | )
|
1248 1648 | })
|
1249 1649 | .collect::<Vec<_>>(),
|
1250 1650 | body: TestSignedBody::Bytes(value.body().as_ref().to_vec()),
|
1251 1651 | }
|
1252 1652 | }
|
1253 1653 | }
|
1254 1654 |
|
1255 1655 | impl<'a> From<&'a TestRequest> for SignableRequest<'a> {
|
1256 1656 | fn from(request: &'a TestRequest) -> SignableRequest<'a> {
|
1257 1657 | SignableRequest::new(
|
1258 1658 | &request.method,
|
1259 1659 | &request.uri,
|
1260 1660 | request
|
1261 1661 | .headers
|
1262 1662 | .iter()
|
1263 1663 | .map(|(k, v)| (k.as_str(), v.as_str())),
|
1264 1664 | request.body.as_signable_body(),
|
1265 1665 | )
|
1266 1666 | .expect("URI MUST be valid")
|
1267 1667 | }
|
1268 1668 | }
|
1269 1669 |
|
1270 1670 | fn parse_request(s: &[u8]) -> Result<TestRequest, Box<dyn StdError + Send + Sync + 'static>> {
|
1271 1671 | let mut headers = [httparse::EMPTY_HEADER; 64];
|
1272 1672 | // httparse 1.5 requires two trailing newlines to head the header section.
|
1273 1673 | let mut with_newline = Vec::from(s);
|
1274 1674 | with_newline.push(b'\n');
|
1275 1675 | let mut req = httparse::Request::new(&mut headers);
|
1276 - | let _ = req.parse(&with_newline).unwrap();
|
1676 + | let status = req.parse(&with_newline).unwrap();
|
1677 + |
|
1678 + | let body = if status.is_complete() {
|
1679 + | let body_offset = status.unwrap();
|
1680 + | // ignore the newline we added, take from original
|
1681 + | &s[body_offset..]
|
1682 + | } else {
|
1683 + | &[]
|
1684 + | };
|
1277 1685 |
|
1278 1686 | let mut uri_builder = Uri::builder().scheme("https");
|
1279 1687 | if let Some(path) = req.path {
|
1280 1688 | uri_builder = uri_builder.path_and_query(path);
|
1281 1689 | }
|
1282 1690 |
|
1283 1691 | let mut headers = vec![];
|
1284 1692 | for header in req.headers {
|
1285 1693 | let name = header.name.to_lowercase();
|
1286 1694 | if name == "host" {
|
1287 1695 | uri_builder = uri_builder.authority(header.value);
|
1288 1696 | } else if !name.is_empty() {
|
1289 1697 | headers.push((
|
1290 1698 | header.name.to_string(),
|
1291 1699 | std::str::from_utf8(header.value)?.to_string(),
|
1292 1700 | ));
|
1293 1701 | }
|
1294 1702 | }
|
1295 1703 |
|
1296 1704 | Ok(TestRequest {
|
1297 1705 | uri: uri_builder.build()?.to_string(),
|
1298 1706 | method: req.method.unwrap().to_string(),
|
1299 1707 | headers,
|
1300 - | body: TestSignedBody::Bytes(vec![]),
|
1708 + | body: TestSignedBody::Bytes(Vec::from(body)),
|
1301 1709 | })
|
1302 1710 | }
|
1303 1711 |
|
1304 1712 | #[test]
|
1305 1713 | fn test_parse_headers() {
|
1306 1714 | let buf = b"Host:example.amazonaws.com\nX-Amz-Date:20150830T123600Z\n\nblah blah";
|
1307 1715 | let mut headers = [httparse::EMPTY_HEADER; 4];
|
1308 1716 | assert_eq!(
|
1309 1717 | httparse::parse_headers(buf, &mut headers),
|
1310 1718 | Ok(httparse::Status::Complete((
|
1311 1719 | 56,
|
1312 1720 | &[
|
1313 1721 | httparse::Header {
|
1314 1722 | name: "Host",
|
1315 1723 | value: b"example.amazonaws.com",
|
1316 1724 | },
|
1317 1725 | httparse::Header {
|
1318 1726 | name: "X-Amz-Date",
|
1319 1727 | value: b"20150830T123600Z",
|
1320 1728 | }
|
1321 1729 | ][..]
|
1322 1730 | )))
|
1323 1731 | );
|
1324 1732 | }
|
1325 1733 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/sign/v4.rs b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/sign/v4.rs
|
1326 1734 | index a208453..fc00249 100644
|
1327 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/sign/v4.rs
|
1735 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/sign/v4.rs
|
1328 1736 | @@ -168,52 +168,54 @@ pub mod signing_params {
|
1329 1737 | );
|
1330 1738 |
|
1331 1739 | /// Builds an instance of [`SigningParams`]. Will yield a [`BuildError`] if
|
1332 1740 | /// a required argument was not given.
|
1333 1741 | pub fn build(self) -> Result<SigningParams<'a, S>, BuildError> {
|
1334 1742 | Ok(SigningParams {
|
1335 1743 | identity: self
|
1336 1744 | .identity
|
1337 1745 | .ok_or_else(|| BuildError::new("identity is required"))?,
|
1338 1746 | region: self
|
1339 1747 | .region
|
1340 1748 | .ok_or_else(|| BuildError::new("region is required"))?,
|
1341 1749 | name: self
|
1342 1750 | .name
|
1343 1751 | .ok_or_else(|| BuildError::new("name is required"))?,
|
1344 1752 | time: self
|
1345 1753 | .time
|
1346 1754 | .ok_or_else(|| BuildError::new("time is required"))?,
|
1347 1755 | settings: self
|
1348 1756 | .settings
|
1349 1757 | .ok_or_else(|| BuildError::new("settings are required"))?,
|
1350 1758 | })
|
1351 1759 | }
|
1352 1760 | }
|
1353 1761 | }
|
1354 1762 |
|
1355 1763 | #[cfg(test)]
|
1356 1764 | mod tests {
|
1357 1765 | use super::{calculate_signature, generate_signing_key, sha256_hex_string};
|
1358 1766 | use crate::date_time::test_parsers::parse_date_time;
|
1359 - | use crate::http_request::test;
|
1360 1767 |
|
1361 1768 | #[test]
|
1362 1769 | fn test_signature_calculation() {
|
1363 1770 | let secret = "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY";
|
1364 - | let creq = test::v4::test_canonical_request("iam");
|
1771 + | let creq = r#"AWS4-HMAC-SHA256
|
1772 + | 20150830T123600Z
|
1773 + | 20150830/us-east-1/iam/aws4_request
|
1774 + | f536975d06c0309214f805bb90ccff089219ecd68b2577efef23edd43b7e1a59"#;
|
1365 1775 | let time = parse_date_time("20150830T123600Z").unwrap();
|
1366 1776 |
|
1367 1777 | let derived_key = generate_signing_key(secret, time, "us-east-1", "iam");
|
1368 1778 | let signature = calculate_signature(derived_key, creq.as_bytes());
|
1369 1779 |
|
1370 1780 | let expected = "5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924a6f2b5d7";
|
1371 1781 | assert_eq!(expected, &signature);
|
1372 1782 | }
|
1373 1783 |
|
1374 1784 | #[test]
|
1375 1785 | fn sign_payload_empty_string() {
|
1376 1786 | let expected = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
|
1377 1787 | let actual = sha256_hex_string([]);
|
1378 1788 | assert_eq!(expected, actual);
|
1379 1789 | }
|
1380 1790 | }
|
1381 1791 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-checksums/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-checksums/Cargo.toml
|
1382 1792 | index ce78c38..8c2f591 100644
|
1383 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-checksums/Cargo.toml
|
1793 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-checksums/Cargo.toml
|
1384 1794 | @@ -1,43 +1,43 @@
|
1385 1795 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
1386 1796 | [package]
|
1387 1797 | name = "aws-smithy-checksums"
|
1388 1798 | version = "0.63.5"
|
1389 1799 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Zelda Hessler <zhessler@amazon.com>"]
|
1390 1800 | description = "Checksum calculation and verification callbacks"
|
1391 1801 | edition = "2021"
|
1392 1802 | license = "Apache-2.0"
|
1393 1803 | repository = "https://github.com/smithy-lang/smithy-rs"
|
1394 1804 | [package.metadata.docs.rs]
|
1395 1805 | all-features = true
|
1396 1806 | targets = ["x86_64-unknown-linux-gnu"]
|
1397 1807 | cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
|
1398 1808 | rustdoc-args = ["--cfg", "docsrs"]
|
1399 1809 |
|
1400 1810 | [dependencies]
|
1401 1811 | bytes = "1.10.0"
|
1402 1812 | crc-fast = "1.3.0"
|
1403 1813 | hex = "0.4.3"
|
1404 1814 | http = "0.2.9"
|
1405 1815 | http-body = "0.4.5"
|
1406 1816 | md-5 = "0.10"
|
1407 1817 | pin-project-lite = "0.2.14"
|
1408 1818 | sha1 = "0.10"
|
1409 1819 | sha2 = "0.10"
|
1410 1820 | tracing = "0.1.40"
|
1411 1821 |
|
1412 1822 | [dependencies.aws-smithy-http]
|
1413 1823 | path = "../aws-smithy-http"
|
1414 - | version = "0.62.2"
|
1824 + | version = "0.62.3"
|
1415 1825 |
|
1416 1826 | [dependencies.aws-smithy-types]
|
1417 1827 | path = "../aws-smithy-types"
|
1418 1828 | version = "1.3.2"
|
1419 1829 |
|
1420 1830 | [dev-dependencies]
|
1421 1831 | bytes-utils = "0.1.2"
|
1422 1832 | pretty_assertions = "1.3"
|
1423 1833 | tracing-test = "0.2.1"
|
1424 1834 |
|
1425 1835 | [dev-dependencies.tokio]
|
1426 1836 | version = "1.23.1"
|
1427 1837 | features = ["macros", "rt"]
|
1428 1838 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/Cargo.toml
|
1429 1839 | index 970c99e..d3c7a49 100644
|
1430 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/Cargo.toml
|
1840 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/Cargo.toml
|
1431 1841 | @@ -1,34 +1,34 @@
|
1432 1842 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
1433 1843 | [package]
|
1434 1844 | name = "aws-smithy-http"
|
1435 - | version = "0.62.2"
|
1845 + | version = "0.62.3"
|
1436 1846 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
1437 1847 | description = "Smithy HTTP logic for smithy-rs."
|
1438 1848 | edition = "2021"
|
1439 1849 | license = "Apache-2.0"
|
1440 1850 | repository = "https://github.com/smithy-lang/smithy-rs"
|
1441 1851 | [package.metadata.docs.rs]
|
1442 1852 | all-features = true
|
1443 1853 | targets = ["x86_64-unknown-linux-gnu"]
|
1444 1854 | cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
|
1445 1855 | rustdoc-args = ["--cfg", "docsrs"]
|
1446 1856 |
|
1447 1857 | [features]
|
1448 1858 | event-stream = ["aws-smithy-eventstream"]
|
1449 1859 | rt-tokio = ["aws-smithy-types/rt-tokio"]
|
1450 1860 |
|
1451 1861 | [dependencies]
|
1452 1862 | bytes = "1.10.0"
|
1453 1863 | bytes-utils = "0.1"
|
1454 1864 | percent-encoding = "2.3.1"
|
1455 1865 | pin-project-lite = "0.2.14"
|
1456 1866 | pin-utils = "0.1.0"
|
1457 1867 | tracing = "0.1.40"
|
1458 1868 | futures-core = "0.3.31"
|
1459 1869 |
|
1460 1870 | [dependencies.aws-smithy-eventstream]
|
1461 1871 | path = "../aws-smithy-eventstream"
|
1462 1872 | optional = true
|
1463 1873 | version = "0.60.10"
|
1464 1874 |
|
1465 1875 | [dependencies.aws-smithy-runtime-api]
|
1466 1876 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/fuzz/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/fuzz/Cargo.toml
|
1467 1877 | index 508f7a2..361545e 100644
|
1468 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/fuzz/Cargo.toml
|
1878 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/fuzz/Cargo.toml
|
1469 1879 | @@ -1,27 +1,27 @@
|
1470 1880 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
1471 1881 | [[bin]]
|
1472 1882 | name = "read_many_from_str"
|
1473 1883 | path = "fuzz_targets/read_many_from_str.rs"
|
1474 1884 | test = false
|
1475 1885 | doc = false
|
1476 1886 |
|
1477 1887 | [package]
|
1478 1888 | name = "aws-smithy-http-fuzz"
|
1479 1889 | version = "0.0.0"
|
1480 1890 | authors = ["Automatically generated"]
|
1481 1891 | publish = false
|
1482 1892 | edition = "2021"
|
1483 1893 |
|
1484 1894 | [package.metadata]
|
1485 1895 | cargo-fuzz = true
|
1486 1896 |
|
1487 1897 | [dependencies]
|
1488 1898 | libfuzzer-sys = "=0.4.7"
|
1489 1899 | http = "0.2.3"
|
1490 1900 |
|
1491 1901 | [dependencies.aws-smithy-http]
|
1492 1902 | path = ".."
|
1493 - | version = "0.62.2"
|
1903 + | version = "0.62.3"
|
1494 1904 |
|
1495 1905 | [workspace]
|
1496 1906 | members = ["."]
|
1497 1907 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/src/query_writer.rs b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/src/query_writer.rs
|
1498 1908 | index fef41d0..2792229 100644
|
1499 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/src/query_writer.rs
|
1909 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/src/query_writer.rs
|
1500 1910 | @@ -25,68 +25,74 @@ impl QueryWriter {
|
1501 1911 | pub fn new(uri: &Uri) -> Self {
|
1502 1912 | let new_path_and_query = uri
|
1503 1913 | .path_and_query()
|
1504 1914 | .map(|pq| pq.to_string())
|
1505 1915 | .unwrap_or_default();
|
1506 1916 | let prefix = if uri.query().is_none() {
|
1507 1917 | Some('?')
|
1508 1918 | } else if !uri.query().unwrap_or_default().is_empty() {
|
1509 1919 | Some('&')
|
1510 1920 | } else {
|
1511 1921 | None
|
1512 1922 | };
|
1513 1923 | QueryWriter {
|
1514 1924 | base_uri: uri.clone(),
|
1515 1925 | new_path_and_query,
|
1516 1926 | prefix,
|
1517 1927 | }
|
1518 1928 | }
|
1519 1929 |
|
1520 1930 | /// Clears all query parameters.
|
1521 1931 | pub fn clear_params(&mut self) {
|
1522 1932 | if let Some(index) = self.new_path_and_query.find('?') {
|
1523 1933 | self.new_path_and_query.truncate(index);
|
1524 1934 | self.prefix = Some('?');
|
1525 1935 | }
|
1526 1936 | }
|
1527 1937 |
|
1528 1938 | /// Inserts a new query parameter. The key and value are percent encoded
|
1529 1939 | /// by `QueryWriter`. Passing in percent encoded values will result in double encoding.
|
1530 1940 | pub fn insert(&mut self, k: &str, v: &str) {
|
1941 + | self.insert_encoded(&percent_encode_query(k), &percent_encode_query(v));
|
1942 + | }
|
1943 + |
|
1944 + | /// Inserts a new already encoded query parameter. The key and value will be inserted
|
1945 + | /// as is.
|
1946 + | pub fn insert_encoded(&mut self, encoded_k: &str, encoded_v: &str) {
|
1531 1947 | if let Some(prefix) = self.prefix {
|
1532 1948 | self.new_path_and_query.push(prefix);
|
1533 1949 | }
|
1534 1950 | self.prefix = Some('&');
|
1535 - | self.new_path_and_query.push_str(&percent_encode_query(k));
|
1951 + | self.new_path_and_query.push_str(encoded_k);
|
1536 1952 | self.new_path_and_query.push('=');
|
1537 - |
|
1538 - | self.new_path_and_query.push_str(&percent_encode_query(v));
|
1953 + | self.new_path_and_query.push_str(encoded_v)
|
1954 + |
|
1539 1955 | }
|
1540 1956 |
|
1541 1957 | /// Returns just the built query string.
|
1542 1958 | pub fn build_query(self) -> String {
|
1543 1959 | self.build_uri().query().unwrap_or_default().to_string()
|
1544 1960 | }
|
1545 1961 |
|
1546 1962 | /// Returns a full [`Uri`] with the query string updated.
|
1547 1963 | pub fn build_uri(self) -> Uri {
|
1548 1964 | let mut parts = self.base_uri.into_parts();
|
1549 1965 | parts.path_and_query = Some(
|
1550 1966 | self.new_path_and_query
|
1551 1967 | .parse()
|
1552 1968 | .expect("adding query should not invalidate URI"),
|
1553 1969 | );
|
1554 1970 | Uri::from_parts(parts).expect("a valid URL in should always produce a valid URL out")
|
1555 1971 | }
|
1556 1972 | }
|
1557 1973 |
|
1558 1974 | #[cfg(test)]
|
1559 1975 | mod test {
|
1560 1976 | use super::QueryWriter;
|
1561 1977 | use http_02x::Uri;
|
1562 1978 |
|
1563 1979 | #[test]
|
1564 1980 | fn empty_uri() {
|
1565 1981 | let uri = Uri::from_static("http://www.example.com");
|
1566 1982 | let mut query_writer = QueryWriter::new(&uri);
|
1567 1983 | query_writer.insert("key", "val%ue");
|
1568 1984 | query_writer.insert("another", "value");
|
1569 1985 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-runtime/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-runtime/Cargo.toml
|
1570 1986 | index f108978..df7a9fe 100644
|
1571 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-runtime/Cargo.toml
|
1987 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-runtime/Cargo.toml
|
1572 1988 | @@ -15,61 +15,61 @@ rustdoc-args = ["--cfg", "docsrs"]
|
1573 1989 |
|
1574 1990 | [package.metadata.smithy-rs-release-tooling]
|
1575 1991 | stable = true
|
1576 1992 | [package.metadata.cargo-udeps.ignore]
|
1577 1993 | normal = ["aws-smithy-http"]
|
1578 1994 |
|
1579 1995 | [features]
|
1580 1996 | client = ["aws-smithy-runtime-api/client", "aws-smithy-types/http-body-1-x"]
|
1581 1997 | http-auth = ["aws-smithy-runtime-api/http-auth"]
|
1582 1998 | connector-hyper-0-14-x = ["dep:aws-smithy-http-client", "aws-smithy-http-client?/hyper-014"]
|
1583 1999 | tls-rustls = ["dep:aws-smithy-http-client", "aws-smithy-http-client?/legacy-rustls-ring", "connector-hyper-0-14-x"]
|
1584 2000 | default-https-client = ["dep:aws-smithy-http-client", "aws-smithy-http-client?/rustls-aws-lc"]
|
1585 2001 | rt-tokio = ["tokio/rt"]
|
1586 2002 | test-util = ["aws-smithy-runtime-api/test-util", "dep:tracing-subscriber", "aws-smithy-http-client/test-util", "legacy-test-util"]
|
1587 2003 | legacy-test-util = ["aws-smithy-runtime-api/test-util", "dep:tracing-subscriber", "aws-smithy-http-client/test-util", "connector-hyper-0-14-x", "aws-smithy-http-client/legacy-test-util"]
|
1588 2004 | wire-mock = ["legacy-test-util", "aws-smithy-http-client/wire-mock"]
|
1589 2005 |
|
1590 2006 | [dependencies]
|
1591 2007 | bytes = "1.10.0"
|
1592 2008 | fastrand = "2.3.0"
|
1593 2009 | pin-project-lite = "0.2.14"
|
1594 2010 | pin-utils = "0.1.0"
|
1595 2011 | tracing = "0.1.40"
|
1596 2012 |
|
1597 2013 | [dependencies.aws-smithy-async]
|
1598 2014 | path = "../aws-smithy-async"
|
1599 2015 | version = "1.2.5"
|
1600 2016 |
|
1601 2017 | [dependencies.aws-smithy-http]
|
1602 2018 | path = "../aws-smithy-http"
|
1603 - | version = "0.62.2"
|
2019 + | version = "0.62.3"
|
1604 2020 |
|
1605 2021 | [dependencies.aws-smithy-observability]
|
1606 2022 | path = "../aws-smithy-observability"
|
1607 2023 | version = "0.1.3"
|
1608 2024 |
|
1609 2025 | [dependencies.aws-smithy-runtime-api]
|
1610 2026 | path = "../aws-smithy-runtime-api"
|
1611 2027 | version = "1.8.5"
|
1612 2028 |
|
1613 2029 | [dependencies.aws-smithy-types]
|
1614 2030 | path = "../aws-smithy-types"
|
1615 2031 | features = ["http-body-0-4-x"]
|
1616 2032 | version = "1.3.2"
|
1617 2033 |
|
1618 2034 | [dependencies.aws-smithy-http-client]
|
1619 2035 | path = "../aws-smithy-http-client"
|
1620 2036 | optional = true
|
1621 2037 | version = "1.0.6"
|
1622 2038 |
|
1623 2039 | [dependencies.http-02x]
|
1624 2040 | package = "http"
|
1625 2041 | version = "0.2.9"
|
1626 2042 |
|
1627 2043 | [dependencies.http-1x]
|
1628 2044 | package = "http"
|
1629 2045 | version = "1"
|
1630 2046 |
|
1631 2047 | [dependencies.http-body-04x]
|
1632 2048 | package = "http-body"
|
1633 2049 | version = "0.4.5"
|
1634 2050 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-wasm/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-wasm/Cargo.toml
|
1635 2051 | index 4e050c6..f58eb1c 100644
|
1636 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-wasm/Cargo.toml
|
2052 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-wasm/Cargo.toml
|
1637 2053 | @@ -1,33 +1,33 @@
|
1638 2054 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
1639 2055 | [package]
|
1640 2056 | name = "aws-smithy-wasm"
|
1641 2057 | version = "0.1.4"
|
1642 2058 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Eduardo Rodrigues <16357187+eduardomourar@users.noreply.github.com>"]
|
1643 2059 | description = "Smithy WebAssembly configuration for smithy-rs."
|
1644 2060 | edition = "2021"
|
1645 2061 | license = "Apache-2.0"
|
1646 2062 | repository = "https://github.com/awslabs/smithy-rs"
|
1647 2063 | [package.metadata.docs.rs]
|
1648 2064 | all-features = true
|
1649 2065 | targets = ["x86_64-unknown-linux-gnu"]
|
1650 2066 | cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
|
1651 2067 | rustdoc-args = ["--cfg", "docsrs"]
|
1652 2068 |
|
1653 2069 | [dependencies]
|
1654 2070 | bytes = "1.10.0"
|
1655 2071 | http = "1.0.0"
|
1656 2072 | tracing = "0.1.40"
|
1657 2073 | wasi = "0.12.1"
|
1658 2074 |
|
1659 2075 | [dependencies.aws-smithy-runtime-api]
|
1660 2076 | path = "../aws-smithy-runtime-api"
|
1661 2077 | features = ["http-1x"]
|
1662 2078 | version = "1.8.5"
|
1663 2079 |
|
1664 2080 | [dependencies.aws-smithy-http]
|
1665 2081 | path = "../aws-smithy-http"
|
1666 - | version = "0.62.2"
|
2082 + | version = "0.62.3"
|
1667 2083 |
|
1668 2084 | [dependencies.aws-smithy-types]
|
1669 2085 | path = "../aws-smithy-types"
|
1670 2086 | version = "1.3.2"
|
1671 2087 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/bedrockruntime/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/bedrockruntime/Cargo.toml
|
1672 2088 | index a880648..139e808 100644
|
1673 - | -- a/tmp-codegen-diff/aws-sdk/sdk/bedrockruntime/Cargo.toml
|
2089 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/bedrockruntime/Cargo.toml
|
1674 2090 | @@ -7,61 +7,61 @@ description = "AWS SDK for Amazon Bedrock Runtime"
|
1675 2091 | edition = "2021"
|
1676 2092 | license = "Apache-2.0"
|
1677 2093 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
1678 2094 | rust-version = "1.86.0"
|
1679 2095 | readme = "README.md"
|
1680 2096 | [package.metadata.smithy]
|
1681 2097 | codegen-version = "ci"
|
1682 2098 | [package.metadata.docs.rs]
|
1683 2099 | all-features = true
|
1684 2100 | targets = ["x86_64-unknown-linux-gnu"]
|
1685 2101 | [dependencies.aws-credential-types]
|
1686 2102 | path = "../aws-credential-types"
|
1687 2103 | version = "1.2.4"
|
1688 2104 |
|
1689 2105 | [dependencies.aws-runtime]
|
1690 2106 | path = "../aws-runtime"
|
1691 2107 | features = ["event-stream"]
|
1692 2108 | version = "1.5.9"
|
1693 2109 |
|
1694 2110 | [dependencies.aws-smithy-async]
|
1695 2111 | path = "../aws-smithy-async"
|
1696 2112 | version = "1.2.5"
|
1697 2113 |
|
1698 2114 | [dependencies.aws-smithy-eventstream]
|
1699 2115 | path = "../aws-smithy-eventstream"
|
1700 2116 | version = "0.60.10"
|
1701 2117 |
|
1702 2118 | [dependencies.aws-smithy-http]
|
1703 2119 | path = "../aws-smithy-http"
|
1704 2120 | features = ["event-stream"]
|
1705 - | version = "0.62.2"
|
2121 + | version = "0.62.3"
|
1706 2122 |
|
1707 2123 | [dependencies.aws-smithy-json]
|
1708 2124 | path = "../aws-smithy-json"
|
1709 2125 | version = "0.61.4"
|
1710 2126 |
|
1711 2127 | [dependencies.aws-smithy-runtime]
|
1712 2128 | path = "../aws-smithy-runtime"
|
1713 2129 | features = ["client"]
|
1714 2130 | version = "1.8.5"
|
1715 2131 |
|
1716 2132 | [dependencies.aws-smithy-runtime-api]
|
1717 2133 | path = "../aws-smithy-runtime-api"
|
1718 2134 | features = ["client", "http-02x"]
|
1719 2135 | version = "1.8.5"
|
1720 2136 |
|
1721 2137 | [dependencies.aws-smithy-types]
|
1722 2138 | path = "../aws-smithy-types"
|
1723 2139 | version = "1.3.2"
|
1724 2140 |
|
1725 2141 | [dependencies.aws-types]
|
1726 2142 | path = "../aws-types"
|
1727 2143 | version = "1.3.8"
|
1728 2144 |
|
1729 2145 | [dependencies.bytes]
|
1730 2146 | version = "1.4.0"
|
1731 2147 |
|
1732 2148 | [dependencies.fastrand]
|
1733 2149 | version = "2.0.0"
|
1734 2150 |
|
1735 2151 | [dependencies.http]
|
1736 2152 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/cloudwatchlogs/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/cloudwatchlogs/Cargo.toml
|
1737 2153 | index 415ecc9..667d12b 100644
|
1738 - | -- a/tmp-codegen-diff/aws-sdk/sdk/cloudwatchlogs/Cargo.toml
|
2154 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/cloudwatchlogs/Cargo.toml
|
1739 2155 | @@ -7,61 +7,61 @@ description = "AWS SDK for Amazon CloudWatch Logs"
|
1740 2156 | edition = "2021"
|
1741 2157 | license = "Apache-2.0"
|
1742 2158 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
1743 2159 | rust-version = "1.86.0"
|
1744 2160 | readme = "README.md"
|
1745 2161 | [package.metadata.smithy]
|
1746 2162 | codegen-version = "ci"
|
1747 2163 | [package.metadata.docs.rs]
|
1748 2164 | all-features = true
|
1749 2165 | targets = ["x86_64-unknown-linux-gnu"]
|
1750 2166 | [dependencies.aws-credential-types]
|
1751 2167 | path = "../aws-credential-types"
|
1752 2168 | version = "1.2.4"
|
1753 2169 |
|
1754 2170 | [dependencies.aws-runtime]
|
1755 2171 | path = "../aws-runtime"
|
1756 2172 | features = ["event-stream"]
|
1757 2173 | version = "1.5.9"
|
1758 2174 |
|
1759 2175 | [dependencies.aws-smithy-async]
|
1760 2176 | path = "../aws-smithy-async"
|
1761 2177 | version = "1.2.5"
|
1762 2178 |
|
1763 2179 | [dependencies.aws-smithy-eventstream]
|
1764 2180 | path = "../aws-smithy-eventstream"
|
1765 2181 | version = "0.60.10"
|
1766 2182 |
|
1767 2183 | [dependencies.aws-smithy-http]
|
1768 2184 | path = "../aws-smithy-http"
|
1769 2185 | features = ["event-stream"]
|
1770 - | version = "0.62.2"
|
2186 + | version = "0.62.3"
|
1771 2187 |
|
1772 2188 | [dependencies.aws-smithy-json]
|
1773 2189 | path = "../aws-smithy-json"
|
1774 2190 | version = "0.61.4"
|
1775 2191 |
|
1776 2192 | [dependencies.aws-smithy-runtime]
|
1777 2193 | path = "../aws-smithy-runtime"
|
1778 2194 | features = ["client"]
|
1779 2195 | version = "1.8.5"
|
1780 2196 |
|
1781 2197 | [dependencies.aws-smithy-runtime-api]
|
1782 2198 | path = "../aws-smithy-runtime-api"
|
1783 2199 | features = ["client", "http-02x"]
|
1784 2200 | version = "1.8.5"
|
1785 2201 |
|
1786 2202 | [dependencies.aws-smithy-types]
|
1787 2203 | path = "../aws-smithy-types"
|
1788 2204 | version = "1.3.2"
|
1789 2205 |
|
1790 2206 | [dependencies.aws-types]
|
1791 2207 | path = "../aws-types"
|
1792 2208 | version = "1.3.8"
|
1793 2209 |
|
1794 2210 | [dependencies.bytes]
|
1795 2211 | version = "1.4.0"
|
1796 2212 |
|
1797 2213 | [dependencies.fastrand]
|
1798 2214 | version = "2.0.0"
|
1799 2215 |
|
1800 2216 | [dependencies.http]
|
1801 2217 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/codecatalyst/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/codecatalyst/Cargo.toml
|
1802 2218 | index 8871cab..ed88de6 100644
|
1803 - | -- a/tmp-codegen-diff/aws-sdk/sdk/codecatalyst/Cargo.toml
|
2219 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/codecatalyst/Cargo.toml
|
1804 2220 | @@ -1,61 +1,61 @@
|
1805 2221 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
1806 2222 | [package]
|
1807 2223 | name = "aws-sdk-codecatalyst"
|
1808 2224 | version = "0.0.0-local"
|
1809 2225 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
1810 2226 | description = "AWS SDK for Amazon CodeCatalyst"
|
1811 2227 | edition = "2021"
|
1812 2228 | license = "Apache-2.0"
|
1813 2229 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
1814 2230 | rust-version = "1.86.0"
|
1815 2231 | readme = "README.md"
|
1816 2232 | [package.metadata.smithy]
|
1817 2233 | codegen-version = "ci"
|
1818 2234 | [package.metadata.docs.rs]
|
1819 2235 | all-features = true
|
1820 2236 | targets = ["x86_64-unknown-linux-gnu"]
|
1821 2237 | [dependencies.aws-credential-types]
|
1822 2238 | path = "../aws-credential-types"
|
1823 2239 | version = "1.2.4"
|
1824 2240 |
|
1825 2241 | [dependencies.aws-runtime]
|
1826 2242 | path = "../aws-runtime"
|
1827 2243 | version = "1.5.9"
|
1828 2244 |
|
1829 2245 | [dependencies.aws-smithy-async]
|
1830 2246 | path = "../aws-smithy-async"
|
1831 2247 | version = "1.2.5"
|
1832 2248 |
|
1833 2249 | [dependencies.aws-smithy-http]
|
1834 2250 | path = "../aws-smithy-http"
|
1835 - | version = "0.62.2"
|
2251 + | version = "0.62.3"
|
1836 2252 |
|
1837 2253 | [dependencies.aws-smithy-json]
|
1838 2254 | path = "../aws-smithy-json"
|
1839 2255 | version = "0.61.4"
|
1840 2256 |
|
1841 2257 | [dependencies.aws-smithy-runtime]
|
1842 2258 | path = "../aws-smithy-runtime"
|
1843 2259 | features = ["client", "http-auth"]
|
1844 2260 | version = "1.8.5"
|
1845 2261 |
|
1846 2262 | [dependencies.aws-smithy-runtime-api]
|
1847 2263 | path = "../aws-smithy-runtime-api"
|
1848 2264 | features = ["client", "http-02x", "http-auth"]
|
1849 2265 | version = "1.8.5"
|
1850 2266 |
|
1851 2267 | [dependencies.aws-smithy-types]
|
1852 2268 | path = "../aws-smithy-types"
|
1853 2269 | version = "1.3.2"
|
1854 2270 |
|
1855 2271 | [dependencies.aws-types]
|
1856 2272 | path = "../aws-types"
|
1857 2273 | version = "1.3.8"
|
1858 2274 |
|
1859 2275 | [dependencies.bytes]
|
1860 2276 | version = "1.4.0"
|
1861 2277 |
|
1862 2278 | [dependencies.fastrand]
|
1863 2279 | version = "2.0.0"
|
1864 2280 |
|
1865 2281 | [dependencies.http]
|
1866 2282 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/config/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/config/Cargo.toml
|
1867 2283 | index 89573ff..05238af 100644
|
1868 - | -- a/tmp-codegen-diff/aws-sdk/sdk/config/Cargo.toml
|
2284 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/config/Cargo.toml
|
1869 2285 | @@ -1,61 +1,61 @@
|
1870 2286 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
1871 2287 | [package]
|
1872 2288 | name = "aws-sdk-config"
|
1873 2289 | version = "0.0.0-local"
|
1874 2290 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
1875 2291 | description = "AWS SDK for AWS Config"
|
1876 2292 | edition = "2021"
|
1877 2293 | license = "Apache-2.0"
|
1878 2294 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
1879 2295 | rust-version = "1.86.0"
|
1880 2296 | readme = "README.md"
|
1881 2297 | [package.metadata.smithy]
|
1882 2298 | codegen-version = "ci"
|
1883 2299 | [package.metadata.docs.rs]
|
1884 2300 | all-features = true
|
1885 2301 | targets = ["x86_64-unknown-linux-gnu"]
|
1886 2302 | [dependencies.aws-credential-types]
|
1887 2303 | path = "../aws-credential-types"
|
1888 2304 | version = "1.2.4"
|
1889 2305 |
|
1890 2306 | [dependencies.aws-runtime]
|
1891 2307 | path = "../aws-runtime"
|
1892 2308 | version = "1.5.9"
|
1893 2309 |
|
1894 2310 | [dependencies.aws-smithy-async]
|
1895 2311 | path = "../aws-smithy-async"
|
1896 2312 | version = "1.2.5"
|
1897 2313 |
|
1898 2314 | [dependencies.aws-smithy-http]
|
1899 2315 | path = "../aws-smithy-http"
|
1900 - | version = "0.62.2"
|
2316 + | version = "0.62.3"
|
1901 2317 |
|
1902 2318 | [dependencies.aws-smithy-json]
|
1903 2319 | path = "../aws-smithy-json"
|
1904 2320 | version = "0.61.4"
|
1905 2321 |
|
1906 2322 | [dependencies.aws-smithy-runtime]
|
1907 2323 | path = "../aws-smithy-runtime"
|
1908 2324 | features = ["client"]
|
1909 2325 | version = "1.8.5"
|
1910 2326 |
|
1911 2327 | [dependencies.aws-smithy-runtime-api]
|
1912 2328 | path = "../aws-smithy-runtime-api"
|
1913 2329 | features = ["client", "http-02x"]
|
1914 2330 | version = "1.8.5"
|
1915 2331 |
|
1916 2332 | [dependencies.aws-smithy-types]
|
1917 2333 | path = "../aws-smithy-types"
|
1918 2334 | version = "1.3.2"
|
1919 2335 |
|
1920 2336 | [dependencies.aws-types]
|
1921 2337 | path = "../aws-types"
|
1922 2338 | version = "1.3.8"
|
1923 2339 |
|
1924 2340 | [dependencies.bytes]
|
1925 2341 | version = "1.4.0"
|
1926 2342 |
|
1927 2343 | [dependencies.fastrand]
|
1928 2344 | version = "2.0.0"
|
1929 2345 |
|
1930 2346 | [dependencies.http]
|
1931 2347 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/dynamodb/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/dynamodb/Cargo.toml
|
1932 2348 | index d397c58..2c1062b 100644
|
1933 - | -- a/tmp-codegen-diff/aws-sdk/sdk/dynamodb/Cargo.toml
|
2349 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/dynamodb/Cargo.toml
|
1934 2350 | @@ -1,61 +1,61 @@
|
1935 2351 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
1936 2352 | [package]
|
1937 2353 | name = "aws-sdk-dynamodb"
|
1938 2354 | version = "0.0.0-local"
|
1939 2355 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
1940 2356 | description = "AWS SDK for Amazon DynamoDB"
|
1941 2357 | edition = "2021"
|
1942 2358 | license = "Apache-2.0"
|
1943 2359 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
1944 2360 | rust-version = "1.86.0"
|
1945 2361 | readme = "README.md"
|
1946 2362 | [package.metadata.smithy]
|
1947 2363 | codegen-version = "ci"
|
1948 2364 | [package.metadata.docs.rs]
|
1949 2365 | all-features = true
|
1950 2366 | targets = ["x86_64-unknown-linux-gnu"]
|
1951 2367 | [dependencies.aws-credential-types]
|
1952 2368 | path = "../aws-credential-types"
|
1953 2369 | version = "1.2.4"
|
1954 2370 |
|
1955 2371 | [dependencies.aws-runtime]
|
1956 2372 | path = "../aws-runtime"
|
1957 2373 | version = "1.5.9"
|
1958 2374 |
|
1959 2375 | [dependencies.aws-smithy-async]
|
1960 2376 | path = "../aws-smithy-async"
|
1961 2377 | version = "1.2.5"
|
1962 2378 |
|
1963 2379 | [dependencies.aws-smithy-http]
|
1964 2380 | path = "../aws-smithy-http"
|
1965 - | version = "0.62.2"
|
2381 + | version = "0.62.3"
|
1966 2382 |
|
1967 2383 | [dependencies.aws-smithy-json]
|
1968 2384 | path = "../aws-smithy-json"
|
1969 2385 | version = "0.61.4"
|
1970 2386 |
|
1971 2387 | [dependencies.aws-smithy-runtime]
|
1972 2388 | path = "../aws-smithy-runtime"
|
1973 2389 | features = ["client"]
|
1974 2390 | version = "1.8.5"
|
1975 2391 |
|
1976 2392 | [dependencies.aws-smithy-runtime-api]
|
1977 2393 | path = "../aws-smithy-runtime-api"
|
1978 2394 | features = ["client", "http-02x"]
|
1979 2395 | version = "1.8.5"
|
1980 2396 |
|
1981 2397 | [dependencies.aws-smithy-types]
|
1982 2398 | path = "../aws-smithy-types"
|
1983 2399 | version = "1.3.2"
|
1984 2400 |
|
1985 2401 | [dependencies.aws-types]
|
1986 2402 | path = "../aws-types"
|
1987 2403 | version = "1.3.8"
|
1988 2404 |
|
1989 2405 | [dependencies.bytes]
|
1990 2406 | version = "1.4.0"
|
1991 2407 |
|
1992 2408 | [dependencies.fastrand]
|
1993 2409 | version = "2.0.0"
|
1994 2410 |
|
1995 2411 | [dependencies.http]
|
1996 2412 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/ec2/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/ec2/Cargo.toml
|
1997 2413 | index c0ba315..46168af 100644
|
1998 - | -- a/tmp-codegen-diff/aws-sdk/sdk/ec2/Cargo.toml
|
2414 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/ec2/Cargo.toml
|
1999 2415 | @@ -1,61 +1,61 @@
|
2000 2416 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2001 2417 | [package]
|
2002 2418 | name = "aws-sdk-ec2"
|
2003 2419 | version = "0.0.0-local"
|
2004 2420 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2005 2421 | description = "AWS SDK for Amazon Elastic Compute Cloud"
|
2006 2422 | edition = "2021"
|
2007 2423 | license = "Apache-2.0"
|
2008 2424 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2009 2425 | rust-version = "1.86.0"
|
2010 2426 | readme = "README.md"
|
2011 2427 | [package.metadata.smithy]
|
2012 2428 | codegen-version = "ci"
|
2013 2429 | [package.metadata.docs.rs]
|
2014 2430 | all-features = true
|
2015 2431 | targets = ["x86_64-unknown-linux-gnu"]
|
2016 2432 | [dependencies.aws-credential-types]
|
2017 2433 | path = "../aws-credential-types"
|
2018 2434 | version = "1.2.4"
|
2019 2435 |
|
2020 2436 | [dependencies.aws-runtime]
|
2021 2437 | path = "../aws-runtime"
|
2022 2438 | version = "1.5.9"
|
2023 2439 |
|
2024 2440 | [dependencies.aws-smithy-async]
|
2025 2441 | path = "../aws-smithy-async"
|
2026 2442 | version = "1.2.5"
|
2027 2443 |
|
2028 2444 | [dependencies.aws-smithy-http]
|
2029 2445 | path = "../aws-smithy-http"
|
2030 - | version = "0.62.2"
|
2446 + | version = "0.62.3"
|
2031 2447 |
|
2032 2448 | [dependencies.aws-smithy-json]
|
2033 2449 | path = "../aws-smithy-json"
|
2034 2450 | version = "0.61.4"
|
2035 2451 |
|
2036 2452 | [dependencies.aws-smithy-query]
|
2037 2453 | path = "../aws-smithy-query"
|
2038 2454 | version = "0.60.7"
|
2039 2455 |
|
2040 2456 | [dependencies.aws-smithy-runtime]
|
2041 2457 | path = "../aws-smithy-runtime"
|
2042 2458 | features = ["client"]
|
2043 2459 | version = "1.8.5"
|
2044 2460 |
|
2045 2461 | [dependencies.aws-smithy-runtime-api]
|
2046 2462 | path = "../aws-smithy-runtime-api"
|
2047 2463 | features = ["client", "http-02x"]
|
2048 2464 | version = "1.8.5"
|
2049 2465 |
|
2050 2466 | [dependencies.aws-smithy-types]
|
2051 2467 | path = "../aws-smithy-types"
|
2052 2468 | version = "1.3.2"
|
2053 2469 |
|
2054 2470 | [dependencies.aws-smithy-xml]
|
2055 2471 | path = "../aws-smithy-xml"
|
2056 2472 | version = "0.60.10"
|
2057 2473 |
|
2058 2474 | [dependencies.aws-types]
|
2059 2475 | path = "../aws-types"
|
2060 2476 | version = "1.3.8"
|
2061 2477 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/ecs/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/ecs/Cargo.toml
|
2062 2478 | index 4474d17..095d40e 100644
|
2063 - | -- a/tmp-codegen-diff/aws-sdk/sdk/ecs/Cargo.toml
|
2479 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/ecs/Cargo.toml
|
2064 2480 | @@ -1,61 +1,61 @@
|
2065 2481 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2066 2482 | [package]
|
2067 2483 | name = "aws-sdk-ecs"
|
2068 2484 | version = "0.0.0-local"
|
2069 2485 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2070 2486 | description = "AWS SDK for Amazon EC2 Container Service"
|
2071 2487 | edition = "2021"
|
2072 2488 | license = "Apache-2.0"
|
2073 2489 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2074 2490 | rust-version = "1.86.0"
|
2075 2491 | readme = "README.md"
|
2076 2492 | [package.metadata.smithy]
|
2077 2493 | codegen-version = "ci"
|
2078 2494 | [package.metadata.docs.rs]
|
2079 2495 | all-features = true
|
2080 2496 | targets = ["x86_64-unknown-linux-gnu"]
|
2081 2497 | [dependencies.aws-credential-types]
|
2082 2498 | path = "../aws-credential-types"
|
2083 2499 | version = "1.2.4"
|
2084 2500 |
|
2085 2501 | [dependencies.aws-runtime]
|
2086 2502 | path = "../aws-runtime"
|
2087 2503 | version = "1.5.9"
|
2088 2504 |
|
2089 2505 | [dependencies.aws-smithy-async]
|
2090 2506 | path = "../aws-smithy-async"
|
2091 2507 | version = "1.2.5"
|
2092 2508 |
|
2093 2509 | [dependencies.aws-smithy-http]
|
2094 2510 | path = "../aws-smithy-http"
|
2095 - | version = "0.62.2"
|
2511 + | version = "0.62.3"
|
2096 2512 |
|
2097 2513 | [dependencies.aws-smithy-json]
|
2098 2514 | path = "../aws-smithy-json"
|
2099 2515 | version = "0.61.4"
|
2100 2516 |
|
2101 2517 | [dependencies.aws-smithy-runtime]
|
2102 2518 | path = "../aws-smithy-runtime"
|
2103 2519 | features = ["client"]
|
2104 2520 | version = "1.8.5"
|
2105 2521 |
|
2106 2522 | [dependencies.aws-smithy-runtime-api]
|
2107 2523 | path = "../aws-smithy-runtime-api"
|
2108 2524 | features = ["client", "http-02x"]
|
2109 2525 | version = "1.8.5"
|
2110 2526 |
|
2111 2527 | [dependencies.aws-smithy-types]
|
2112 2528 | path = "../aws-smithy-types"
|
2113 2529 | version = "1.3.2"
|
2114 2530 |
|
2115 2531 | [dependencies.aws-types]
|
2116 2532 | path = "../aws-types"
|
2117 2533 | version = "1.3.8"
|
2118 2534 |
|
2119 2535 | [dependencies.bytes]
|
2120 2536 | version = "1.4.0"
|
2121 2537 |
|
2122 2538 | [dependencies.fastrand]
|
2123 2539 | version = "2.0.0"
|
2124 2540 |
|
2125 2541 | [dependencies.http]
|
2126 2542 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/glacier/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/glacier/Cargo.toml
|
2127 2543 | index 15b1d77..16d7d89 100644
|
2128 - | -- a/tmp-codegen-diff/aws-sdk/sdk/glacier/Cargo.toml
|
2544 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/glacier/Cargo.toml
|
2129 2545 | @@ -1,65 +1,65 @@
|
2130 2546 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2131 2547 | [package]
|
2132 2548 | name = "aws-sdk-glacier"
|
2133 2549 | version = "0.0.0-local"
|
2134 2550 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2135 2551 | description = "AWS SDK for Amazon Glacier"
|
2136 2552 | edition = "2021"
|
2137 2553 | license = "Apache-2.0"
|
2138 2554 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2139 2555 | rust-version = "1.86.0"
|
2140 2556 | readme = "README.md"
|
2141 2557 | [package.metadata.smithy]
|
2142 2558 | codegen-version = "ci"
|
2143 2559 | [package.metadata.docs.rs]
|
2144 2560 | all-features = true
|
2145 2561 | targets = ["x86_64-unknown-linux-gnu"]
|
2146 2562 | [dependencies.aws-credential-types]
|
2147 2563 | path = "../aws-credential-types"
|
2148 2564 | version = "1.2.4"
|
2149 2565 |
|
2150 2566 | [dependencies.aws-runtime]
|
2151 2567 | path = "../aws-runtime"
|
2152 2568 | version = "1.5.9"
|
2153 2569 |
|
2154 2570 | [dependencies.aws-sigv4]
|
2155 2571 | path = "../aws-sigv4"
|
2156 - | version = "1.3.3"
|
2572 + | version = "1.3.4"
|
2157 2573 |
|
2158 2574 | [dependencies.aws-smithy-async]
|
2159 2575 | path = "../aws-smithy-async"
|
2160 2576 | version = "1.2.5"
|
2161 2577 |
|
2162 2578 | [dependencies.aws-smithy-http]
|
2163 2579 | path = "../aws-smithy-http"
|
2164 - | version = "0.62.2"
|
2580 + | version = "0.62.3"
|
2165 2581 |
|
2166 2582 | [dependencies.aws-smithy-json]
|
2167 2583 | path = "../aws-smithy-json"
|
2168 2584 | version = "0.61.4"
|
2169 2585 |
|
2170 2586 | [dependencies.aws-smithy-runtime]
|
2171 2587 | path = "../aws-smithy-runtime"
|
2172 2588 | features = ["client"]
|
2173 2589 | version = "1.8.5"
|
2174 2590 |
|
2175 2591 | [dependencies.aws-smithy-runtime-api]
|
2176 2592 | path = "../aws-smithy-runtime-api"
|
2177 2593 | features = ["client", "http-02x"]
|
2178 2594 | version = "1.8.5"
|
2179 2595 |
|
2180 2596 | [dependencies.aws-smithy-types]
|
2181 2597 | path = "../aws-smithy-types"
|
2182 2598 | version = "1.3.2"
|
2183 2599 |
|
2184 2600 | [dependencies.aws-types]
|
2185 2601 | path = "../aws-types"
|
2186 2602 | version = "1.3.8"
|
2187 2603 |
|
2188 2604 | [dependencies.bytes]
|
2189 2605 | version = "1.4.0"
|
2190 2606 |
|
2191 2607 | [dependencies.fastrand]
|
2192 2608 | version = "2.0.0"
|
2193 2609 |
|
2194 2610 | [dependencies.hex]
|
2195 2611 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/iam/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/iam/Cargo.toml
|
2196 2612 | index d718a3a..65e6f24 100644
|
2197 - | -- a/tmp-codegen-diff/aws-sdk/sdk/iam/Cargo.toml
|
2613 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/iam/Cargo.toml
|
2198 2614 | @@ -1,61 +1,61 @@
|
2199 2615 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2200 2616 | [package]
|
2201 2617 | name = "aws-sdk-iam"
|
2202 2618 | version = "0.0.0-local"
|
2203 2619 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2204 2620 | description = "AWS SDK for AWS Identity and Access Management"
|
2205 2621 | edition = "2021"
|
2206 2622 | license = "Apache-2.0"
|
2207 2623 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2208 2624 | rust-version = "1.86.0"
|
2209 2625 | readme = "README.md"
|
2210 2626 | [package.metadata.smithy]
|
2211 2627 | codegen-version = "ci"
|
2212 2628 | [package.metadata.docs.rs]
|
2213 2629 | all-features = true
|
2214 2630 | targets = ["x86_64-unknown-linux-gnu"]
|
2215 2631 | [dependencies.aws-credential-types]
|
2216 2632 | path = "../aws-credential-types"
|
2217 2633 | version = "1.2.4"
|
2218 2634 |
|
2219 2635 | [dependencies.aws-runtime]
|
2220 2636 | path = "../aws-runtime"
|
2221 2637 | version = "1.5.9"
|
2222 2638 |
|
2223 2639 | [dependencies.aws-smithy-async]
|
2224 2640 | path = "../aws-smithy-async"
|
2225 2641 | version = "1.2.5"
|
2226 2642 |
|
2227 2643 | [dependencies.aws-smithy-http]
|
2228 2644 | path = "../aws-smithy-http"
|
2229 - | version = "0.62.2"
|
2645 + | version = "0.62.3"
|
2230 2646 |
|
2231 2647 | [dependencies.aws-smithy-json]
|
2232 2648 | path = "../aws-smithy-json"
|
2233 2649 | version = "0.61.4"
|
2234 2650 |
|
2235 2651 | [dependencies.aws-smithy-query]
|
2236 2652 | path = "../aws-smithy-query"
|
2237 2653 | version = "0.60.7"
|
2238 2654 |
|
2239 2655 | [dependencies.aws-smithy-runtime]
|
2240 2656 | path = "../aws-smithy-runtime"
|
2241 2657 | features = ["client"]
|
2242 2658 | version = "1.8.5"
|
2243 2659 |
|
2244 2660 | [dependencies.aws-smithy-runtime-api]
|
2245 2661 | path = "../aws-smithy-runtime-api"
|
2246 2662 | features = ["client", "http-02x"]
|
2247 2663 | version = "1.8.5"
|
2248 2664 |
|
2249 2665 | [dependencies.aws-smithy-types]
|
2250 2666 | path = "../aws-smithy-types"
|
2251 2667 | version = "1.3.2"
|
2252 2668 |
|
2253 2669 | [dependencies.aws-smithy-xml]
|
2254 2670 | path = "../aws-smithy-xml"
|
2255 2671 | version = "0.60.10"
|
2256 2672 |
|
2257 2673 | [dependencies.aws-types]
|
2258 2674 | path = "../aws-types"
|
2259 2675 | version = "1.3.8"
|
2260 2676 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/kms/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/kms/Cargo.toml
|
2261 2677 | index 0ed4302..3d828a5 100644
|
2262 - | -- a/tmp-codegen-diff/aws-sdk/sdk/kms/Cargo.toml
|
2678 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/kms/Cargo.toml
|
2263 2679 | @@ -1,61 +1,61 @@
|
2264 2680 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2265 2681 | [package]
|
2266 2682 | name = "aws-sdk-kms"
|
2267 2683 | version = "0.0.0-local"
|
2268 2684 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2269 2685 | description = "AWS SDK for AWS Key Management Service"
|
2270 2686 | edition = "2021"
|
2271 2687 | license = "Apache-2.0"
|
2272 2688 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2273 2689 | rust-version = "1.86.0"
|
2274 2690 | readme = "README.md"
|
2275 2691 | [package.metadata.smithy]
|
2276 2692 | codegen-version = "ci"
|
2277 2693 | [package.metadata.docs.rs]
|
2278 2694 | all-features = true
|
2279 2695 | targets = ["x86_64-unknown-linux-gnu"]
|
2280 2696 | [dependencies.aws-credential-types]
|
2281 2697 | path = "../aws-credential-types"
|
2282 2698 | version = "1.2.4"
|
2283 2699 |
|
2284 2700 | [dependencies.aws-runtime]
|
2285 2701 | path = "../aws-runtime"
|
2286 2702 | version = "1.5.9"
|
2287 2703 |
|
2288 2704 | [dependencies.aws-smithy-async]
|
2289 2705 | path = "../aws-smithy-async"
|
2290 2706 | version = "1.2.5"
|
2291 2707 |
|
2292 2708 | [dependencies.aws-smithy-http]
|
2293 2709 | path = "../aws-smithy-http"
|
2294 - | version = "0.62.2"
|
2710 + | version = "0.62.3"
|
2295 2711 |
|
2296 2712 | [dependencies.aws-smithy-json]
|
2297 2713 | path = "../aws-smithy-json"
|
2298 2714 | version = "0.61.4"
|
2299 2715 |
|
2300 2716 | [dependencies.aws-smithy-runtime]
|
2301 2717 | path = "../aws-smithy-runtime"
|
2302 2718 | features = ["client"]
|
2303 2719 | version = "1.8.5"
|
2304 2720 |
|
2305 2721 | [dependencies.aws-smithy-runtime-api]
|
2306 2722 | path = "../aws-smithy-runtime-api"
|
2307 2723 | features = ["client", "http-02x"]
|
2308 2724 | version = "1.8.5"
|
2309 2725 |
|
2310 2726 | [dependencies.aws-smithy-types]
|
2311 2727 | path = "../aws-smithy-types"
|
2312 2728 | version = "1.3.2"
|
2313 2729 |
|
2314 2730 | [dependencies.aws-types]
|
2315 2731 | path = "../aws-types"
|
2316 2732 | version = "1.3.8"
|
2317 2733 |
|
2318 2734 | [dependencies.bytes]
|
2319 2735 | version = "1.4.0"
|
2320 2736 |
|
2321 2737 | [dependencies.fastrand]
|
2322 2738 | version = "2.0.0"
|
2323 2739 |
|
2324 2740 | [dependencies.http]
|
2325 2741 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/lambda/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/lambda/Cargo.toml
|
2326 2742 | index 6518dfc..6b94752 100644
|
2327 - | -- a/tmp-codegen-diff/aws-sdk/sdk/lambda/Cargo.toml
|
2743 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/lambda/Cargo.toml
|
2328 2744 | @@ -7,61 +7,61 @@ description = "AWS SDK for AWS Lambda"
|
2329 2745 | edition = "2021"
|
2330 2746 | license = "Apache-2.0"
|
2331 2747 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2332 2748 | rust-version = "1.86.0"
|
2333 2749 | readme = "README.md"
|
2334 2750 | [package.metadata.smithy]
|
2335 2751 | codegen-version = "ci"
|
2336 2752 | [package.metadata.docs.rs]
|
2337 2753 | all-features = true
|
2338 2754 | targets = ["x86_64-unknown-linux-gnu"]
|
2339 2755 | [dependencies.aws-credential-types]
|
2340 2756 | path = "../aws-credential-types"
|
2341 2757 | version = "1.2.4"
|
2342 2758 |
|
2343 2759 | [dependencies.aws-runtime]
|
2344 2760 | path = "../aws-runtime"
|
2345 2761 | features = ["event-stream"]
|
2346 2762 | version = "1.5.9"
|
2347 2763 |
|
2348 2764 | [dependencies.aws-smithy-async]
|
2349 2765 | path = "../aws-smithy-async"
|
2350 2766 | version = "1.2.5"
|
2351 2767 |
|
2352 2768 | [dependencies.aws-smithy-eventstream]
|
2353 2769 | path = "../aws-smithy-eventstream"
|
2354 2770 | version = "0.60.10"
|
2355 2771 |
|
2356 2772 | [dependencies.aws-smithy-http]
|
2357 2773 | path = "../aws-smithy-http"
|
2358 2774 | features = ["event-stream"]
|
2359 - | version = "0.62.2"
|
2775 + | version = "0.62.3"
|
2360 2776 |
|
2361 2777 | [dependencies.aws-smithy-json]
|
2362 2778 | path = "../aws-smithy-json"
|
2363 2779 | version = "0.61.4"
|
2364 2780 |
|
2365 2781 | [dependencies.aws-smithy-runtime]
|
2366 2782 | path = "../aws-smithy-runtime"
|
2367 2783 | features = ["client"]
|
2368 2784 | version = "1.8.5"
|
2369 2785 |
|
2370 2786 | [dependencies.aws-smithy-runtime-api]
|
2371 2787 | path = "../aws-smithy-runtime-api"
|
2372 2788 | features = ["client", "http-02x"]
|
2373 2789 | version = "1.8.5"
|
2374 2790 |
|
2375 2791 | [dependencies.aws-smithy-types]
|
2376 2792 | path = "../aws-smithy-types"
|
2377 2793 | version = "1.3.2"
|
2378 2794 |
|
2379 2795 | [dependencies.aws-types]
|
2380 2796 | path = "../aws-types"
|
2381 2797 | version = "1.3.8"
|
2382 2798 |
|
2383 2799 | [dependencies.bytes]
|
2384 2800 | version = "1.4.0"
|
2385 2801 |
|
2386 2802 | [dependencies.fastrand]
|
2387 2803 | version = "2.0.0"
|
2388 2804 |
|
2389 2805 | [dependencies.http]
|
2390 2806 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/polly/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/polly/Cargo.toml
|
2391 2807 | index dabb0e0..34cbc15 100644
|
2392 - | -- a/tmp-codegen-diff/aws-sdk/sdk/polly/Cargo.toml
|
2808 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/polly/Cargo.toml
|
2393 2809 | @@ -1,65 +1,65 @@
|
2394 2810 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2395 2811 | [package]
|
2396 2812 | name = "aws-sdk-polly"
|
2397 2813 | version = "0.0.0-local"
|
2398 2814 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2399 2815 | description = "AWS SDK for Amazon Polly"
|
2400 2816 | edition = "2021"
|
2401 2817 | license = "Apache-2.0"
|
2402 2818 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2403 2819 | rust-version = "1.86.0"
|
2404 2820 | readme = "README.md"
|
2405 2821 | [package.metadata.smithy]
|
2406 2822 | codegen-version = "ci"
|
2407 2823 | [package.metadata.docs.rs]
|
2408 2824 | all-features = true
|
2409 2825 | targets = ["x86_64-unknown-linux-gnu"]
|
2410 2826 | [dependencies.aws-credential-types]
|
2411 2827 | path = "../aws-credential-types"
|
2412 2828 | version = "1.2.4"
|
2413 2829 |
|
2414 2830 | [dependencies.aws-runtime]
|
2415 2831 | path = "../aws-runtime"
|
2416 2832 | version = "1.5.9"
|
2417 2833 |
|
2418 2834 | [dependencies.aws-sigv4]
|
2419 2835 | path = "../aws-sigv4"
|
2420 - | version = "1.3.3"
|
2836 + | version = "1.3.4"
|
2421 2837 |
|
2422 2838 | [dependencies.aws-smithy-async]
|
2423 2839 | path = "../aws-smithy-async"
|
2424 2840 | version = "1.2.5"
|
2425 2841 |
|
2426 2842 | [dependencies.aws-smithy-http]
|
2427 2843 | path = "../aws-smithy-http"
|
2428 - | version = "0.62.2"
|
2844 + | version = "0.62.3"
|
2429 2845 |
|
2430 2846 | [dependencies.aws-smithy-json]
|
2431 2847 | path = "../aws-smithy-json"
|
2432 2848 | version = "0.61.4"
|
2433 2849 |
|
2434 2850 | [dependencies.aws-smithy-runtime]
|
2435 2851 | path = "../aws-smithy-runtime"
|
2436 2852 | features = ["client"]
|
2437 2853 | version = "1.8.5"
|
2438 2854 |
|
2439 2855 | [dependencies.aws-smithy-runtime-api]
|
2440 2856 | path = "../aws-smithy-runtime-api"
|
2441 2857 | features = ["client", "http-02x"]
|
2442 2858 | version = "1.8.5"
|
2443 2859 |
|
2444 2860 | [dependencies.aws-smithy-types]
|
2445 2861 | path = "../aws-smithy-types"
|
2446 2862 | version = "1.3.2"
|
2447 2863 |
|
2448 2864 | [dependencies.aws-types]
|
2449 2865 | path = "../aws-types"
|
2450 2866 | version = "1.3.8"
|
2451 2867 |
|
2452 2868 | [dependencies.bytes]
|
2453 2869 | version = "1.4.0"
|
2454 2870 |
|
2455 2871 | [dependencies.fastrand]
|
2456 2872 | version = "2.0.0"
|
2457 2873 |
|
2458 2874 | [dependencies.http]
|
2459 2875 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/qldbsession/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/qldbsession/Cargo.toml
|
2460 2876 | index a884716..f3d8713 100644
|
2461 - | -- a/tmp-codegen-diff/aws-sdk/sdk/qldbsession/Cargo.toml
|
2877 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/qldbsession/Cargo.toml
|
2462 2878 | @@ -1,61 +1,61 @@
|
2463 2879 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2464 2880 | [package]
|
2465 2881 | name = "aws-sdk-qldbsession"
|
2466 2882 | version = "0.0.0-local"
|
2467 2883 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2468 2884 | description = "AWS SDK for Amazon QLDB Session"
|
2469 2885 | edition = "2021"
|
2470 2886 | license = "Apache-2.0"
|
2471 2887 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2472 2888 | rust-version = "1.86.0"
|
2473 2889 | readme = "README.md"
|
2474 2890 | [package.metadata.smithy]
|
2475 2891 | codegen-version = "ci"
|
2476 2892 | [package.metadata.docs.rs]
|
2477 2893 | all-features = true
|
2478 2894 | targets = ["x86_64-unknown-linux-gnu"]
|
2479 2895 | [dependencies.aws-credential-types]
|
2480 2896 | path = "../aws-credential-types"
|
2481 2897 | version = "1.2.4"
|
2482 2898 |
|
2483 2899 | [dependencies.aws-runtime]
|
2484 2900 | path = "../aws-runtime"
|
2485 2901 | version = "1.5.9"
|
2486 2902 |
|
2487 2903 | [dependencies.aws-smithy-async]
|
2488 2904 | path = "../aws-smithy-async"
|
2489 2905 | version = "1.2.5"
|
2490 2906 |
|
2491 2907 | [dependencies.aws-smithy-http]
|
2492 2908 | path = "../aws-smithy-http"
|
2493 - | version = "0.62.2"
|
2909 + | version = "0.62.3"
|
2494 2910 |
|
2495 2911 | [dependencies.aws-smithy-json]
|
2496 2912 | path = "../aws-smithy-json"
|
2497 2913 | version = "0.61.4"
|
2498 2914 |
|
2499 2915 | [dependencies.aws-smithy-runtime]
|
2500 2916 | path = "../aws-smithy-runtime"
|
2501 2917 | features = ["client"]
|
2502 2918 | version = "1.8.5"
|
2503 2919 |
|
2504 2920 | [dependencies.aws-smithy-runtime-api]
|
2505 2921 | path = "../aws-smithy-runtime-api"
|
2506 2922 | features = ["client", "http-02x"]
|
2507 2923 | version = "1.8.5"
|
2508 2924 |
|
2509 2925 | [dependencies.aws-smithy-types]
|
2510 2926 | path = "../aws-smithy-types"
|
2511 2927 | version = "1.3.2"
|
2512 2928 |
|
2513 2929 | [dependencies.aws-types]
|
2514 2930 | path = "../aws-types"
|
2515 2931 | version = "1.3.8"
|
2516 2932 |
|
2517 2933 | [dependencies.bytes]
|
2518 2934 | version = "1.4.0"
|
2519 2935 |
|
2520 2936 | [dependencies.fastrand]
|
2521 2937 | version = "2.0.0"
|
2522 2938 |
|
2523 2939 | [dependencies.http]
|
2524 2940 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/route53/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/route53/Cargo.toml
|
2525 2941 | index 32a7dc9..a2c752d 100644
|
2526 - | -- a/tmp-codegen-diff/aws-sdk/sdk/route53/Cargo.toml
|
2942 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/route53/Cargo.toml
|
2527 2943 | @@ -1,61 +1,61 @@
|
2528 2944 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2529 2945 | [package]
|
2530 2946 | name = "aws-sdk-route53"
|
2531 2947 | version = "0.0.0-local"
|
2532 2948 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2533 2949 | description = "AWS SDK for Amazon Route 53"
|
2534 2950 | edition = "2021"
|
2535 2951 | license = "Apache-2.0"
|
2536 2952 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2537 2953 | rust-version = "1.86.0"
|
2538 2954 | readme = "README.md"
|
2539 2955 | [package.metadata.smithy]
|
2540 2956 | codegen-version = "ci"
|
2541 2957 | [package.metadata.docs.rs]
|
2542 2958 | all-features = true
|
2543 2959 | targets = ["x86_64-unknown-linux-gnu"]
|
2544 2960 | [dependencies.aws-credential-types]
|
2545 2961 | path = "../aws-credential-types"
|
2546 2962 | version = "1.2.4"
|
2547 2963 |
|
2548 2964 | [dependencies.aws-runtime]
|
2549 2965 | path = "../aws-runtime"
|
2550 2966 | version = "1.5.9"
|
2551 2967 |
|
2552 2968 | [dependencies.aws-smithy-async]
|
2553 2969 | path = "../aws-smithy-async"
|
2554 2970 | version = "1.2.5"
|
2555 2971 |
|
2556 2972 | [dependencies.aws-smithy-http]
|
2557 2973 | path = "../aws-smithy-http"
|
2558 - | version = "0.62.2"
|
2974 + | version = "0.62.3"
|
2559 2975 |
|
2560 2976 | [dependencies.aws-smithy-json]
|
2561 2977 | path = "../aws-smithy-json"
|
2562 2978 | version = "0.61.4"
|
2563 2979 |
|
2564 2980 | [dependencies.aws-smithy-runtime]
|
2565 2981 | path = "../aws-smithy-runtime"
|
2566 2982 | features = ["client"]
|
2567 2983 | version = "1.8.5"
|
2568 2984 |
|
2569 2985 | [dependencies.aws-smithy-runtime-api]
|
2570 2986 | path = "../aws-smithy-runtime-api"
|
2571 2987 | features = ["client", "http-02x"]
|
2572 2988 | version = "1.8.5"
|
2573 2989 |
|
2574 2990 | [dependencies.aws-smithy-types]
|
2575 2991 | path = "../aws-smithy-types"
|
2576 2992 | version = "1.3.2"
|
2577 2993 |
|
2578 2994 | [dependencies.aws-smithy-xml]
|
2579 2995 | path = "../aws-smithy-xml"
|
2580 2996 | version = "0.60.10"
|
2581 2997 |
|
2582 2998 | [dependencies.aws-types]
|
2583 2999 | path = "../aws-types"
|
2584 3000 | version = "1.3.8"
|
2585 3001 |
|
2586 3002 | [dependencies.fastrand]
|
2587 3003 | version = "2.0.0"
|
2588 3004 |
|
2589 3005 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/s3/Cargo.toml
|
2590 3006 | index f65e261..2f6bec0 100644
|
2591 - | -- a/tmp-codegen-diff/aws-sdk/sdk/s3/Cargo.toml
|
3007 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/s3/Cargo.toml
|
2592 3008 | @@ -1,75 +1,75 @@
|
2593 3009 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2594 3010 | [package]
|
2595 3011 | name = "aws-sdk-s3"
|
2596 3012 | version = "0.0.0-local"
|
2597 3013 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2598 3014 | description = "AWS SDK for Amazon Simple Storage Service"
|
2599 3015 | edition = "2021"
|
2600 3016 | license = "Apache-2.0"
|
2601 3017 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2602 3018 | rust-version = "1.86.0"
|
2603 3019 | readme = "README.md"
|
2604 3020 | [package.metadata.smithy]
|
2605 3021 | codegen-version = "ci"
|
2606 3022 | [package.metadata.docs.rs]
|
2607 3023 | all-features = true
|
2608 3024 | targets = ["x86_64-unknown-linux-gnu"]
|
2609 3025 | [dependencies.aws-credential-types]
|
2610 3026 | path = "../aws-credential-types"
|
2611 3027 | version = "1.2.4"
|
2612 3028 |
|
2613 3029 | [dependencies.aws-runtime]
|
2614 3030 | path = "../aws-runtime"
|
2615 3031 | features = ["event-stream", "http-02x"]
|
2616 3032 | version = "1.5.9"
|
2617 3033 |
|
2618 3034 | [dependencies.aws-sigv4]
|
2619 3035 | path = "../aws-sigv4"
|
2620 - | version = "1.3.3"
|
3036 + | version = "1.3.4"
|
2621 3037 |
|
2622 3038 | [dependencies.aws-smithy-async]
|
2623 3039 | path = "../aws-smithy-async"
|
2624 3040 | version = "1.2.5"
|
2625 3041 |
|
2626 3042 | [dependencies.aws-smithy-checksums]
|
2627 3043 | path = "../aws-smithy-checksums"
|
2628 3044 | version = "0.63.5"
|
2629 3045 |
|
2630 3046 | [dependencies.aws-smithy-eventstream]
|
2631 3047 | path = "../aws-smithy-eventstream"
|
2632 3048 | version = "0.60.10"
|
2633 3049 |
|
2634 3050 | [dependencies.aws-smithy-http]
|
2635 3051 | path = "../aws-smithy-http"
|
2636 3052 | features = ["event-stream"]
|
2637 - | version = "0.62.2"
|
3053 + | version = "0.62.3"
|
2638 3054 |
|
2639 3055 | [dependencies.aws-smithy-json]
|
2640 3056 | path = "../aws-smithy-json"
|
2641 3057 | version = "0.61.4"
|
2642 3058 |
|
2643 3059 | [dependencies.aws-smithy-runtime]
|
2644 3060 | path = "../aws-smithy-runtime"
|
2645 3061 | features = ["client"]
|
2646 3062 | version = "1.8.5"
|
2647 3063 |
|
2648 3064 | [dependencies.aws-smithy-runtime-api]
|
2649 3065 | path = "../aws-smithy-runtime-api"
|
2650 3066 | features = ["client", "http-02x"]
|
2651 3067 | version = "1.8.5"
|
2652 3068 |
|
2653 3069 | [dependencies.aws-smithy-types]
|
2654 3070 | path = "../aws-smithy-types"
|
2655 3071 | version = "1.3.2"
|
2656 3072 |
|
2657 3073 | [dependencies.aws-smithy-xml]
|
2658 3074 | path = "../aws-smithy-xml"
|
2659 3075 | version = "0.60.10"
|
2660 3076 |
|
2661 3077 | [dependencies.aws-types]
|
2662 3078 | path = "../aws-types"
|
2663 3079 | version = "1.3.8"
|
2664 3080 |
|
2665 3081 | [dependencies.bytes]
|
2666 3082 | version = "1.4.0"
|
2667 3083 |
|
2668 3084 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3control/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/s3control/Cargo.toml
|
2669 3085 | index b4d1cdd..861c0cc 100644
|
2670 - | -- a/tmp-codegen-diff/aws-sdk/sdk/s3control/Cargo.toml
|
3086 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/s3control/Cargo.toml
|
2671 3087 | @@ -1,61 +1,61 @@
|
2672 3088 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2673 3089 | [package]
|
2674 3090 | name = "aws-sdk-s3control"
|
2675 3091 | version = "0.0.0-local"
|
2676 3092 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2677 3093 | description = "AWS SDK for AWS S3 Control"
|
2678 3094 | edition = "2021"
|
2679 3095 | license = "Apache-2.0"
|
2680 3096 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2681 3097 | rust-version = "1.86.0"
|
2682 3098 | readme = "README.md"
|
2683 3099 | [package.metadata.smithy]
|
2684 3100 | codegen-version = "ci"
|
2685 3101 | [package.metadata.docs.rs]
|
2686 3102 | all-features = true
|
2687 3103 | targets = ["x86_64-unknown-linux-gnu"]
|
2688 3104 | [dependencies.aws-credential-types]
|
2689 3105 | path = "../aws-credential-types"
|
2690 3106 | version = "1.2.4"
|
2691 3107 |
|
2692 3108 | [dependencies.aws-runtime]
|
2693 3109 | path = "../aws-runtime"
|
2694 3110 | version = "1.5.9"
|
2695 3111 |
|
2696 3112 | [dependencies.aws-smithy-async]
|
2697 3113 | path = "../aws-smithy-async"
|
2698 3114 | version = "1.2.5"
|
2699 3115 |
|
2700 3116 | [dependencies.aws-smithy-http]
|
2701 3117 | path = "../aws-smithy-http"
|
2702 - | version = "0.62.2"
|
3118 + | version = "0.62.3"
|
2703 3119 |
|
2704 3120 | [dependencies.aws-smithy-json]
|
2705 3121 | path = "../aws-smithy-json"
|
2706 3122 | version = "0.61.4"
|
2707 3123 |
|
2708 3124 | [dependencies.aws-smithy-runtime]
|
2709 3125 | path = "../aws-smithy-runtime"
|
2710 3126 | features = ["client"]
|
2711 3127 | version = "1.8.5"
|
2712 3128 |
|
2713 3129 | [dependencies.aws-smithy-runtime-api]
|
2714 3130 | path = "../aws-smithy-runtime-api"
|
2715 3131 | features = ["client", "http-02x"]
|
2716 3132 | version = "1.8.5"
|
2717 3133 |
|
2718 3134 | [dependencies.aws-smithy-types]
|
2719 3135 | path = "../aws-smithy-types"
|
2720 3136 | version = "1.3.2"
|
2721 3137 |
|
2722 3138 | [dependencies.aws-smithy-xml]
|
2723 3139 | path = "../aws-smithy-xml"
|
2724 3140 | version = "0.60.10"
|
2725 3141 |
|
2726 3142 | [dependencies.aws-types]
|
2727 3143 | path = "../aws-types"
|
2728 3144 | version = "1.3.8"
|
2729 3145 |
|
2730 3146 | [dependencies.fastrand]
|
2731 3147 | version = "2.0.0"
|
2732 3148 |
|
2733 3149 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/sso/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/sso/Cargo.toml
|
2734 3150 | index 2cde182..fc367f4 100644
|
2735 - | -- a/tmp-codegen-diff/aws-sdk/sdk/sso/Cargo.toml
|
3151 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/sso/Cargo.toml
|
2736 3152 | @@ -1,61 +1,61 @@
|
2737 3153 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2738 3154 | [package]
|
2739 3155 | name = "aws-sdk-sso"
|
2740 3156 | version = "0.0.0-local"
|
2741 3157 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2742 3158 | description = "AWS SDK for AWS Single Sign-On"
|
2743 3159 | edition = "2021"
|
2744 3160 | license = "Apache-2.0"
|
2745 3161 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2746 3162 | rust-version = "1.86.0"
|
2747 3163 | readme = "README.md"
|
2748 3164 | [package.metadata.smithy]
|
2749 3165 | codegen-version = "ci"
|
2750 3166 | [package.metadata.docs.rs]
|
2751 3167 | all-features = true
|
2752 3168 | targets = ["x86_64-unknown-linux-gnu"]
|
2753 3169 | [dependencies.aws-credential-types]
|
2754 3170 | path = "../aws-credential-types"
|
2755 3171 | version = "1.2.4"
|
2756 3172 |
|
2757 3173 | [dependencies.aws-runtime]
|
2758 3174 | path = "../aws-runtime"
|
2759 3175 | version = "1.5.9"
|
2760 3176 |
|
2761 3177 | [dependencies.aws-smithy-async]
|
2762 3178 | path = "../aws-smithy-async"
|
2763 3179 | version = "1.2.5"
|
2764 3180 |
|
2765 3181 | [dependencies.aws-smithy-http]
|
2766 3182 | path = "../aws-smithy-http"
|
2767 - | version = "0.62.2"
|
3183 + | version = "0.62.3"
|
2768 3184 |
|
2769 3185 | [dependencies.aws-smithy-json]
|
2770 3186 | path = "../aws-smithy-json"
|
2771 3187 | version = "0.61.4"
|
2772 3188 |
|
2773 3189 | [dependencies.aws-smithy-runtime]
|
2774 3190 | path = "../aws-smithy-runtime"
|
2775 3191 | features = ["client"]
|
2776 3192 | version = "1.8.5"
|
2777 3193 |
|
2778 3194 | [dependencies.aws-smithy-runtime-api]
|
2779 3195 | path = "../aws-smithy-runtime-api"
|
2780 3196 | features = ["client", "http-02x"]
|
2781 3197 | version = "1.8.5"
|
2782 3198 |
|
2783 3199 | [dependencies.aws-smithy-types]
|
2784 3200 | path = "../aws-smithy-types"
|
2785 3201 | version = "1.3.2"
|
2786 3202 |
|
2787 3203 | [dependencies.aws-types]
|
2788 3204 | path = "../aws-types"
|
2789 3205 | version = "1.3.8"
|
2790 3206 |
|
2791 3207 | [dependencies.bytes]
|
2792 3208 | version = "1.4.0"
|
2793 3209 |
|
2794 3210 | [dependencies.fastrand]
|
2795 3211 | version = "2.0.0"
|
2796 3212 |
|
2797 3213 | [dependencies.http]
|
2798 3214 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/ssooidc/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/ssooidc/Cargo.toml
|
2799 3215 | index 7a34c16..588d0bd 100644
|
2800 - | -- a/tmp-codegen-diff/aws-sdk/sdk/ssooidc/Cargo.toml
|
3216 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/ssooidc/Cargo.toml
|
2801 3217 | @@ -1,61 +1,61 @@
|
2802 3218 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2803 3219 | [package]
|
2804 3220 | name = "aws-sdk-ssooidc"
|
2805 3221 | version = "0.0.0-local"
|
2806 3222 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2807 3223 | description = "AWS SDK for AWS SSO OIDC"
|
2808 3224 | edition = "2021"
|
2809 3225 | license = "Apache-2.0"
|
2810 3226 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2811 3227 | rust-version = "1.86.0"
|
2812 3228 | readme = "README.md"
|
2813 3229 | [package.metadata.smithy]
|
2814 3230 | codegen-version = "ci"
|
2815 3231 | [package.metadata.docs.rs]
|
2816 3232 | all-features = true
|
2817 3233 | targets = ["x86_64-unknown-linux-gnu"]
|
2818 3234 | [dependencies.aws-credential-types]
|
2819 3235 | path = "../aws-credential-types"
|
2820 3236 | version = "1.2.4"
|
2821 3237 |
|
2822 3238 | [dependencies.aws-runtime]
|
2823 3239 | path = "../aws-runtime"
|
2824 3240 | version = "1.5.9"
|
2825 3241 |
|
2826 3242 | [dependencies.aws-smithy-async]
|
2827 3243 | path = "../aws-smithy-async"
|
2828 3244 | version = "1.2.5"
|
2829 3245 |
|
2830 3246 | [dependencies.aws-smithy-http]
|
2831 3247 | path = "../aws-smithy-http"
|
2832 - | version = "0.62.2"
|
3248 + | version = "0.62.3"
|
2833 3249 |
|
2834 3250 | [dependencies.aws-smithy-json]
|
2835 3251 | path = "../aws-smithy-json"
|
2836 3252 | version = "0.61.4"
|
2837 3253 |
|
2838 3254 | [dependencies.aws-smithy-runtime]
|
2839 3255 | path = "../aws-smithy-runtime"
|
2840 3256 | features = ["client"]
|
2841 3257 | version = "1.8.5"
|
2842 3258 |
|
2843 3259 | [dependencies.aws-smithy-runtime-api]
|
2844 3260 | path = "../aws-smithy-runtime-api"
|
2845 3261 | features = ["client", "http-02x"]
|
2846 3262 | version = "1.8.5"
|
2847 3263 |
|
2848 3264 | [dependencies.aws-smithy-types]
|
2849 3265 | path = "../aws-smithy-types"
|
2850 3266 | version = "1.3.2"
|
2851 3267 |
|
2852 3268 | [dependencies.aws-types]
|
2853 3269 | path = "../aws-types"
|
2854 3270 | version = "1.3.8"
|
2855 3271 |
|
2856 3272 | [dependencies.bytes]
|
2857 3273 | version = "1.4.0"
|
2858 3274 |
|
2859 3275 | [dependencies.fastrand]
|
2860 3276 | version = "2.0.0"
|
2861 3277 |
|
2862 3278 | [dependencies.http]
|
2863 3279 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/sts/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/sts/Cargo.toml
|
2864 3280 | index 895dfb3..f2ce34e 100644
|
2865 - | -- a/tmp-codegen-diff/aws-sdk/sdk/sts/Cargo.toml
|
3281 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/sts/Cargo.toml
|
2866 3282 | @@ -1,61 +1,61 @@
|
2867 3283 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2868 3284 | [package]
|
2869 3285 | name = "aws-sdk-sts"
|
2870 3286 | version = "0.0.0-local"
|
2871 3287 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2872 3288 | description = "AWS SDK for AWS Security Token Service"
|
2873 3289 | edition = "2021"
|
2874 3290 | license = "Apache-2.0"
|
2875 3291 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2876 3292 | rust-version = "1.86.0"
|
2877 3293 | readme = "README.md"
|
2878 3294 | [package.metadata.smithy]
|
2879 3295 | codegen-version = "ci"
|
2880 3296 | [package.metadata.docs.rs]
|
2881 3297 | all-features = true
|
2882 3298 | targets = ["x86_64-unknown-linux-gnu"]
|
2883 3299 | [dependencies.aws-credential-types]
|
2884 3300 | path = "../aws-credential-types"
|
2885 3301 | version = "1.2.4"
|
2886 3302 |
|
2887 3303 | [dependencies.aws-runtime]
|
2888 3304 | path = "../aws-runtime"
|
2889 3305 | version = "1.5.9"
|
2890 3306 |
|
2891 3307 | [dependencies.aws-smithy-async]
|
2892 3308 | path = "../aws-smithy-async"
|
2893 3309 | version = "1.2.5"
|
2894 3310 |
|
2895 3311 | [dependencies.aws-smithy-http]
|
2896 3312 | path = "../aws-smithy-http"
|
2897 - | version = "0.62.2"
|
3313 + | version = "0.62.3"
|
2898 3314 |
|
2899 3315 | [dependencies.aws-smithy-json]
|
2900 3316 | path = "../aws-smithy-json"
|
2901 3317 | version = "0.61.4"
|
2902 3318 |
|
2903 3319 | [dependencies.aws-smithy-query]
|
2904 3320 | path = "../aws-smithy-query"
|
2905 3321 | version = "0.60.7"
|
2906 3322 |
|
2907 3323 | [dependencies.aws-smithy-runtime]
|
2908 3324 | path = "../aws-smithy-runtime"
|
2909 3325 | features = ["client"]
|
2910 3326 | version = "1.8.5"
|
2911 3327 |
|
2912 3328 | [dependencies.aws-smithy-runtime-api]
|
2913 3329 | path = "../aws-smithy-runtime-api"
|
2914 3330 | features = ["client", "http-02x"]
|
2915 3331 | version = "1.8.5"
|
2916 3332 |
|
2917 3333 | [dependencies.aws-smithy-types]
|
2918 3334 | path = "../aws-smithy-types"
|
2919 3335 | version = "1.3.2"
|
2920 3336 |
|
2921 3337 | [dependencies.aws-smithy-xml]
|
2922 3338 | path = "../aws-smithy-xml"
|
2923 3339 | version = "0.60.10"
|
2924 3340 |
|
2925 3341 | [dependencies.aws-types]
|
2926 3342 | path = "../aws-types"
|
2927 3343 | version = "1.3.8"
|
2928 3344 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/Cargo.toml
|
2929 3345 | index d556561..91178b6 100644
|
2930 - | -- a/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/Cargo.toml
|
3346 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/Cargo.toml
|
2931 3347 | @@ -1,61 +1,61 @@
|
2932 3348 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2933 3349 | [package]
|
2934 3350 | name = "aws-sdk-timestreamquery"
|
2935 3351 | version = "0.0.0-local"
|
2936 3352 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2937 3353 | description = "AWS SDK for Amazon Timestream Query"
|
2938 3354 | edition = "2021"
|
2939 3355 | license = "Apache-2.0"
|
2940 3356 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2941 3357 | rust-version = "1.86.0"
|
2942 3358 | readme = "README.md"
|
2943 3359 | [package.metadata.smithy]
|
2944 3360 | codegen-version = "ci"
|
2945 3361 | [package.metadata.docs.rs]
|
2946 3362 | all-features = true
|
2947 3363 | targets = ["x86_64-unknown-linux-gnu"]
|
2948 3364 | [dependencies.aws-credential-types]
|
2949 3365 | path = "../aws-credential-types"
|
2950 3366 | version = "1.2.4"
|
2951 3367 |
|
2952 3368 | [dependencies.aws-runtime]
|
2953 3369 | path = "../aws-runtime"
|
2954 3370 | version = "1.5.9"
|
2955 3371 |
|
2956 3372 | [dependencies.aws-smithy-async]
|
2957 3373 | path = "../aws-smithy-async"
|
2958 3374 | version = "1.2.5"
|
2959 3375 |
|
2960 3376 | [dependencies.aws-smithy-http]
|
2961 3377 | path = "../aws-smithy-http"
|
2962 - | version = "0.62.2"
|
3378 + | version = "0.62.3"
|
2963 3379 |
|
2964 3380 | [dependencies.aws-smithy-json]
|
2965 3381 | path = "../aws-smithy-json"
|
2966 3382 | version = "0.61.4"
|
2967 3383 |
|
2968 3384 | [dependencies.aws-smithy-runtime]
|
2969 3385 | path = "../aws-smithy-runtime"
|
2970 3386 | features = ["client"]
|
2971 3387 | version = "1.8.5"
|
2972 3388 |
|
2973 3389 | [dependencies.aws-smithy-runtime-api]
|
2974 3390 | path = "../aws-smithy-runtime-api"
|
2975 3391 | features = ["client", "http-02x"]
|
2976 3392 | version = "1.8.5"
|
2977 3393 |
|
2978 3394 | [dependencies.aws-smithy-types]
|
2979 3395 | path = "../aws-smithy-types"
|
2980 3396 | version = "1.3.2"
|
2981 3397 |
|
2982 3398 | [dependencies.aws-types]
|
2983 3399 | path = "../aws-types"
|
2984 3400 | version = "1.3.8"
|
2985 3401 |
|
2986 3402 | [dependencies.bytes]
|
2987 3403 | version = "1.4.0"
|
2988 3404 |
|
2989 3405 | [dependencies.fastrand]
|
2990 3406 | version = "2.0.0"
|
2991 3407 |
|
2992 3408 | [dependencies.http]
|
2993 3409 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/Cargo.toml
|
2994 3410 | index 0c56e4c..95731e3 100644
|
2995 - | -- a/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/Cargo.toml
|
3411 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/Cargo.toml
|
2996 3412 | @@ -1,61 +1,61 @@
|
2997 3413 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2998 3414 | [package]
|
2999 3415 | name = "aws-sdk-timestreamwrite"
|
3000 3416 | version = "0.0.0-local"
|
3001 3417 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
3002 3418 | description = "AWS SDK for Amazon Timestream Write"
|
3003 3419 | edition = "2021"
|
3004 3420 | license = "Apache-2.0"
|
3005 3421 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
3006 3422 | rust-version = "1.86.0"
|
3007 3423 | readme = "README.md"
|
3008 3424 | [package.metadata.smithy]
|
3009 3425 | codegen-version = "ci"
|
3010 3426 | [package.metadata.docs.rs]
|
3011 3427 | all-features = true
|
3012 3428 | targets = ["x86_64-unknown-linux-gnu"]
|
3013 3429 | [dependencies.aws-credential-types]
|
3014 3430 | path = "../aws-credential-types"
|
3015 3431 | version = "1.2.4"
|
3016 3432 |
|
3017 3433 | [dependencies.aws-runtime]
|
3018 3434 | path = "../aws-runtime"
|
3019 3435 | version = "1.5.9"
|
3020 3436 |
|
3021 3437 | [dependencies.aws-smithy-async]
|
3022 3438 | path = "../aws-smithy-async"
|
3023 3439 | version = "1.2.5"
|
3024 3440 |
|
3025 3441 | [dependencies.aws-smithy-http]
|
3026 3442 | path = "../aws-smithy-http"
|
3027 - | version = "0.62.2"
|
3443 + | version = "0.62.3"
|
3028 3444 |
|
3029 3445 | [dependencies.aws-smithy-json]
|
3030 3446 | path = "../aws-smithy-json"
|
3031 3447 | version = "0.61.4"
|
3032 3448 |
|
3033 3449 | [dependencies.aws-smithy-runtime]
|
3034 3450 | path = "../aws-smithy-runtime"
|
3035 3451 | features = ["client"]
|
3036 3452 | version = "1.8.5"
|
3037 3453 |
|
3038 3454 | [dependencies.aws-smithy-runtime-api]
|
3039 3455 | path = "../aws-smithy-runtime-api"
|
3040 3456 | features = ["client", "http-02x"]
|
3041 3457 | version = "1.8.5"
|
3042 3458 |
|
3043 3459 | [dependencies.aws-smithy-types]
|
3044 3460 | path = "../aws-smithy-types"
|
3045 3461 | version = "1.3.2"
|
3046 3462 |
|
3047 3463 | [dependencies.aws-types]
|
3048 3464 | path = "../aws-types"
|
3049 3465 | version = "1.3.8"
|
3050 3466 |
|
3051 3467 | [dependencies.bytes]
|
3052 3468 | version = "1.4.0"
|
3053 3469 |
|
3054 3470 | [dependencies.fastrand]
|
3055 3471 | version = "2.0.0"
|
3056 3472 |
|
3057 3473 | [dependencies.http]
|
3058 3474 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/Cargo.toml
|
3059 3475 | index 5b35037..9fb220a 100644
|
3060 - | -- a/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/Cargo.toml
|
3476 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/Cargo.toml
|
3061 3477 | @@ -1,71 +1,71 @@
|
3062 3478 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
3063 3479 | [package]
|
3064 3480 | name = "aws-sdk-transcribestreaming"
|
3065 3481 | version = "0.0.0-local"
|
3066 3482 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
3067 3483 | description = "AWS SDK for Amazon Transcribe Streaming Service"
|
3068 3484 | edition = "2021"
|
3069 3485 | license = "Apache-2.0"
|
3070 3486 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
3071 3487 | rust-version = "1.86.0"
|
3072 3488 | readme = "README.md"
|
3073 3489 | [package.metadata.smithy]
|
3074 3490 | codegen-version = "ci"
|
3075 3491 | [package.metadata.docs.rs]
|
3076 3492 | all-features = true
|
3077 3493 | targets = ["x86_64-unknown-linux-gnu"]
|
3078 3494 | [dependencies.aws-credential-types]
|
3079 3495 | path = "../aws-credential-types"
|
3080 3496 | version = "1.2.4"
|
3081 3497 |
|
3082 3498 | [dependencies.aws-runtime]
|
3083 3499 | path = "../aws-runtime"
|
3084 3500 | features = ["event-stream"]
|
3085 3501 | version = "1.5.9"
|
3086 3502 |
|
3087 3503 | [dependencies.aws-sigv4]
|
3088 3504 | path = "../aws-sigv4"
|
3089 - | version = "1.3.3"
|
3505 + | version = "1.3.4"
|
3090 3506 |
|
3091 3507 | [dependencies.aws-smithy-async]
|
3092 3508 | path = "../aws-smithy-async"
|
3093 3509 | version = "1.2.5"
|
3094 3510 |
|
3095 3511 | [dependencies.aws-smithy-eventstream]
|
3096 3512 | path = "../aws-smithy-eventstream"
|
3097 3513 | version = "0.60.10"
|
3098 3514 |
|
3099 3515 | [dependencies.aws-smithy-http]
|
3100 3516 | path = "../aws-smithy-http"
|
3101 3517 | features = ["event-stream"]
|
3102 - | version = "0.62.2"
|
3518 + | version = "0.62.3"
|
3103 3519 |
|
3104 3520 | [dependencies.aws-smithy-json]
|
3105 3521 | path = "../aws-smithy-json"
|
3106 3522 | version = "0.61.4"
|
3107 3523 |
|
3108 3524 | [dependencies.aws-smithy-runtime]
|
3109 3525 | path = "../aws-smithy-runtime"
|
3110 3526 | features = ["client"]
|
3111 3527 | version = "1.8.5"
|
3112 3528 |
|