aws_sdk_sts/config/endpoint/
internals.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[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(&region.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(&region.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(&region.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(&region.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(&region.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(&region.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}