aws_sdk_sts/config/endpoint/
internals.rs
1#[allow(
3 clippy::collapsible_if,
4 clippy::bool_comparison,
5 clippy::nonminimal_bool,
6 clippy::comparison_to_empty,
7 clippy::redundant_pattern_matching
8)]
9pub(super) fn resolve_endpoint(
10 _params: &crate::config::endpoint::Params,
11 _diagnostic_collector: &mut crate::endpoint_lib::diagnostic::DiagnosticCollector,
12 partition_resolver: &crate::endpoint_lib::partition::PartitionResolver,
13) -> ::aws_smithy_http::endpoint::Result {
14 #[allow(unused_variables)]
15 let region = &_params.region;
16 #[allow(unused_variables)]
17 let use_dual_stack = &_params.use_dual_stack;
18 #[allow(unused_variables)]
19 let use_fips = &_params.use_fips;
20 #[allow(unused_variables)]
21 let endpoint = &_params.endpoint;
22 #[allow(unused_variables)]
23 let use_global_endpoint = &_params.use_global_endpoint;
24 if (*use_global_endpoint) == (true) {
25 if !(endpoint.is_some()) {
26 #[allow(unused_variables)]
27 if let Some(region) = region {
28 #[allow(unused_variables)]
29 if let Some(partition_result) = partition_resolver.resolve_partition(region, _diagnostic_collector) {
30 if (*use_fips) == (false) {
31 if (*use_dual_stack) == (false) {
32 if (region) == ("ap-northeast-1") {
33 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
34 .url("https://sts.amazonaws.com".to_string())
35 .property(
36 "authSchemes",
37 vec![::aws_smithy_types::Document::from({
38 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
39 out.insert("name".to_string(), "sigv4".to_string().into());
40 out.insert("signingName".to_string(), "sts".to_string().into());
41 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
42 out
43 })],
44 )
45 .build());
46 }
47 if (region) == ("ap-south-1") {
48 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
49 .url("https://sts.amazonaws.com".to_string())
50 .property(
51 "authSchemes",
52 vec![::aws_smithy_types::Document::from({
53 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
54 out.insert("name".to_string(), "sigv4".to_string().into());
55 out.insert("signingName".to_string(), "sts".to_string().into());
56 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
57 out
58 })],
59 )
60 .build());
61 }
62 if (region) == ("ap-southeast-1") {
63 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
64 .url("https://sts.amazonaws.com".to_string())
65 .property(
66 "authSchemes",
67 vec![::aws_smithy_types::Document::from({
68 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
69 out.insert("name".to_string(), "sigv4".to_string().into());
70 out.insert("signingName".to_string(), "sts".to_string().into());
71 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
72 out
73 })],
74 )
75 .build());
76 }
77 if (region) == ("ap-southeast-2") {
78 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
79 .url("https://sts.amazonaws.com".to_string())
80 .property(
81 "authSchemes",
82 vec![::aws_smithy_types::Document::from({
83 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
84 out.insert("name".to_string(), "sigv4".to_string().into());
85 out.insert("signingName".to_string(), "sts".to_string().into());
86 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
87 out
88 })],
89 )
90 .build());
91 }
92 if (region) == ("aws-global") {
93 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
94 .url("https://sts.amazonaws.com".to_string())
95 .property(
96 "authSchemes",
97 vec![::aws_smithy_types::Document::from({
98 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
99 out.insert("name".to_string(), "sigv4".to_string().into());
100 out.insert("signingName".to_string(), "sts".to_string().into());
101 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
102 out
103 })],
104 )
105 .build());
106 }
107 if (region) == ("ca-central-1") {
108 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
109 .url("https://sts.amazonaws.com".to_string())
110 .property(
111 "authSchemes",
112 vec![::aws_smithy_types::Document::from({
113 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
114 out.insert("name".to_string(), "sigv4".to_string().into());
115 out.insert("signingName".to_string(), "sts".to_string().into());
116 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
117 out
118 })],
119 )
120 .build());
121 }
122 if (region) == ("eu-central-1") {
123 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
124 .url("https://sts.amazonaws.com".to_string())
125 .property(
126 "authSchemes",
127 vec![::aws_smithy_types::Document::from({
128 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
129 out.insert("name".to_string(), "sigv4".to_string().into());
130 out.insert("signingName".to_string(), "sts".to_string().into());
131 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
132 out
133 })],
134 )
135 .build());
136 }
137 if (region) == ("eu-north-1") {
138 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
139 .url("https://sts.amazonaws.com".to_string())
140 .property(
141 "authSchemes",
142 vec![::aws_smithy_types::Document::from({
143 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
144 out.insert("name".to_string(), "sigv4".to_string().into());
145 out.insert("signingName".to_string(), "sts".to_string().into());
146 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
147 out
148 })],
149 )
150 .build());
151 }
152 if (region) == ("eu-west-1") {
153 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
154 .url("https://sts.amazonaws.com".to_string())
155 .property(
156 "authSchemes",
157 vec![::aws_smithy_types::Document::from({
158 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
159 out.insert("name".to_string(), "sigv4".to_string().into());
160 out.insert("signingName".to_string(), "sts".to_string().into());
161 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
162 out
163 })],
164 )
165 .build());
166 }
167 if (region) == ("eu-west-2") {
168 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
169 .url("https://sts.amazonaws.com".to_string())
170 .property(
171 "authSchemes",
172 vec![::aws_smithy_types::Document::from({
173 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
174 out.insert("name".to_string(), "sigv4".to_string().into());
175 out.insert("signingName".to_string(), "sts".to_string().into());
176 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
177 out
178 })],
179 )
180 .build());
181 }
182 if (region) == ("eu-west-3") {
183 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
184 .url("https://sts.amazonaws.com".to_string())
185 .property(
186 "authSchemes",
187 vec![::aws_smithy_types::Document::from({
188 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
189 out.insert("name".to_string(), "sigv4".to_string().into());
190 out.insert("signingName".to_string(), "sts".to_string().into());
191 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
192 out
193 })],
194 )
195 .build());
196 }
197 if (region) == ("sa-east-1") {
198 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
199 .url("https://sts.amazonaws.com".to_string())
200 .property(
201 "authSchemes",
202 vec![::aws_smithy_types::Document::from({
203 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
204 out.insert("name".to_string(), "sigv4".to_string().into());
205 out.insert("signingName".to_string(), "sts".to_string().into());
206 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
207 out
208 })],
209 )
210 .build());
211 }
212 if (region) == ("us-east-1") {
213 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
214 .url("https://sts.amazonaws.com".to_string())
215 .property(
216 "authSchemes",
217 vec![::aws_smithy_types::Document::from({
218 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
219 out.insert("name".to_string(), "sigv4".to_string().into());
220 out.insert("signingName".to_string(), "sts".to_string().into());
221 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
222 out
223 })],
224 )
225 .build());
226 }
227 if (region) == ("us-east-2") {
228 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
229 .url("https://sts.amazonaws.com".to_string())
230 .property(
231 "authSchemes",
232 vec![::aws_smithy_types::Document::from({
233 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
234 out.insert("name".to_string(), "sigv4".to_string().into());
235 out.insert("signingName".to_string(), "sts".to_string().into());
236 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
237 out
238 })],
239 )
240 .build());
241 }
242 if (region) == ("us-west-1") {
243 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
244 .url("https://sts.amazonaws.com".to_string())
245 .property(
246 "authSchemes",
247 vec![::aws_smithy_types::Document::from({
248 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
249 out.insert("name".to_string(), "sigv4".to_string().into());
250 out.insert("signingName".to_string(), "sts".to_string().into());
251 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
252 out
253 })],
254 )
255 .build());
256 }
257 if (region) == ("us-west-2") {
258 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
259 .url("https://sts.amazonaws.com".to_string())
260 .property(
261 "authSchemes",
262 vec![::aws_smithy_types::Document::from({
263 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
264 out.insert("name".to_string(), "sigv4".to_string().into());
265 out.insert("signingName".to_string(), "sts".to_string().into());
266 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
267 out
268 })],
269 )
270 .build());
271 }
272 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
273 .url({
274 let mut out = String::new();
275 out.push_str("https://sts.");
276 #[allow(clippy::needless_borrow)]
277 out.push_str(®ion);
278 out.push('.');
279 #[allow(clippy::needless_borrow)]
280 out.push_str(&partition_result.dns_suffix());
281 out
282 })
283 .property(
284 "authSchemes",
285 vec![::aws_smithy_types::Document::from({
286 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
287 out.insert("name".to_string(), "sigv4".to_string().into());
288 out.insert("signingName".to_string(), "sts".to_string().into());
289 out.insert("signingRegion".to_string(), region.to_owned().into());
290 out
291 })],
292 )
293 .build());
294 }
295 }
296 }
297 }
298 }
299 }
300 #[allow(unused_variables)]
301 if let Some(endpoint) = endpoint {
302 if (*use_fips) == (true) {
303 return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
304 "Invalid Configuration: FIPS and custom endpoint are not supported".to_string(),
305 ));
306 }
307 if (*use_dual_stack) == (true) {
308 return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
309 "Invalid Configuration: Dualstack and custom endpoint are not supported".to_string(),
310 ));
311 }
312 return Ok(::aws_smithy_types::endpoint::Endpoint::builder().url(endpoint.to_owned()).build());
313 }
314 #[allow(unused_variables)]
315 if let Some(region) = region {
316 #[allow(unused_variables)]
317 if let Some(partition_result) = partition_resolver.resolve_partition(region, _diagnostic_collector) {
318 if (*use_fips) == (true) {
319 if (*use_dual_stack) == (true) {
320 if (true) == (partition_result.supports_fips()) {
321 if (true) == (partition_result.supports_dual_stack()) {
322 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
323 .url({
324 let mut out = String::new();
325 out.push_str("https://sts-fips.");
326 #[allow(clippy::needless_borrow)]
327 out.push_str(®ion);
328 out.push('.');
329 #[allow(clippy::needless_borrow)]
330 out.push_str(&partition_result.dual_stack_dns_suffix());
331 out
332 })
333 .build());
334 }
335 }
336 return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
337 "FIPS and DualStack are enabled, but this partition does not support one or both".to_string(),
338 ));
339 }
340 }
341 if (*use_fips) == (true) {
342 if (partition_result.supports_fips()) == (true) {
343 if (partition_result.name()) == ("aws-us-gov") {
344 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
345 .url({
346 let mut out = String::new();
347 out.push_str("https://sts.");
348 #[allow(clippy::needless_borrow)]
349 out.push_str(®ion);
350 out.push_str(".amazonaws.com");
351 out
352 })
353 .build());
354 }
355 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
356 .url({
357 let mut out = String::new();
358 out.push_str("https://sts-fips.");
359 #[allow(clippy::needless_borrow)]
360 out.push_str(®ion);
361 out.push('.');
362 #[allow(clippy::needless_borrow)]
363 out.push_str(&partition_result.dns_suffix());
364 out
365 })
366 .build());
367 }
368 return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
369 "FIPS is enabled but this partition does not support FIPS".to_string(),
370 ));
371 }
372 if (*use_dual_stack) == (true) {
373 if (true) == (partition_result.supports_dual_stack()) {
374 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
375 .url({
376 let mut out = String::new();
377 out.push_str("https://sts.");
378 #[allow(clippy::needless_borrow)]
379 out.push_str(®ion);
380 out.push('.');
381 #[allow(clippy::needless_borrow)]
382 out.push_str(&partition_result.dual_stack_dns_suffix());
383 out
384 })
385 .build());
386 }
387 return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
388 "DualStack is enabled but this partition does not support DualStack".to_string(),
389 ));
390 }
391 if (region) == ("aws-global") {
392 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
393 .url("https://sts.amazonaws.com".to_string())
394 .property(
395 "authSchemes",
396 vec![::aws_smithy_types::Document::from({
397 let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
398 out.insert("name".to_string(), "sigv4".to_string().into());
399 out.insert("signingName".to_string(), "sts".to_string().into());
400 out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
401 out
402 })],
403 )
404 .build());
405 }
406 return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
407 .url({
408 let mut out = String::new();
409 out.push_str("https://sts.");
410 #[allow(clippy::needless_borrow)]
411 out.push_str(®ion);
412 out.push('.');
413 #[allow(clippy::needless_borrow)]
414 out.push_str(&partition_result.dns_suffix());
415 out
416 })
417 .build());
418 }
419 #[allow(unreachable_code)]
420 return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(format!(
421 "No rules matched these parameters. This is a bug. {:?}",
422 _params
423 )));
424 }
425 return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
426 "Invalid Configuration: Missing Region".to_string(),
427 ));
428}