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