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)]
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(&region);
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(&region);
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(&region);
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(&region);
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(&region);
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(&region);
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}