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