aws_sdk_sso/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    if let Some(endpoint) = endpoint {
24        if (*use_fips) == (true) {
25            return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
26                "Invalid Configuration: FIPS and custom endpoint are not supported".to_string(),
27            ));
28        }
29        if (*use_dual_stack) == (true) {
30            return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
31                "Invalid Configuration: Dualstack and custom endpoint are not supported".to_string(),
32            ));
33        }
34        return Ok(::aws_smithy_types::endpoint::Endpoint::builder().url(endpoint.to_owned()).build());
35    }
36    #[allow(unused_variables)]
37    if let Some(region) = region {
38        #[allow(unused_variables)]
39        if let Some(partition_result) = partition_resolver.resolve_partition(region, _diagnostic_collector) {
40            if (*use_fips) == (true) {
41                if (*use_dual_stack) == (true) {
42                    if (true) == (partition_result.supports_fips()) {
43                        if (true) == (partition_result.supports_dual_stack()) {
44                            return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
45                                .url({
46                                    let mut out = String::new();
47                                    out.push_str("https://portal.sso-fips.");
48                                    #[allow(clippy::needless_borrow)]
49                                    out.push_str(&region);
50                                    out.push('.');
51                                    #[allow(clippy::needless_borrow)]
52                                    out.push_str(&partition_result.dual_stack_dns_suffix());
53                                    out
54                                })
55                                .build());
56                        }
57                    }
58                    return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
59                        "FIPS and DualStack are enabled, but this partition does not support one or both".to_string(),
60                    ));
61                }
62            }
63            if (*use_fips) == (true) {
64                if (partition_result.supports_fips()) == (true) {
65                    if (partition_result.name()) == ("aws-us-gov") {
66                        return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
67                            .url({
68                                let mut out = String::new();
69                                out.push_str("https://portal.sso.");
70                                #[allow(clippy::needless_borrow)]
71                                out.push_str(&region);
72                                out.push_str(".amazonaws.com");
73                                out
74                            })
75                            .build());
76                    }
77                    return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
78                        .url({
79                            let mut out = String::new();
80                            out.push_str("https://portal.sso-fips.");
81                            #[allow(clippy::needless_borrow)]
82                            out.push_str(&region);
83                            out.push('.');
84                            #[allow(clippy::needless_borrow)]
85                            out.push_str(&partition_result.dns_suffix());
86                            out
87                        })
88                        .build());
89                }
90                return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
91                    "FIPS is enabled but this partition does not support FIPS".to_string(),
92                ));
93            }
94            if (*use_dual_stack) == (true) {
95                if (true) == (partition_result.supports_dual_stack()) {
96                    return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
97                        .url({
98                            let mut out = String::new();
99                            out.push_str("https://portal.sso.");
100                            #[allow(clippy::needless_borrow)]
101                            out.push_str(&region);
102                            out.push('.');
103                            #[allow(clippy::needless_borrow)]
104                            out.push_str(&partition_result.dual_stack_dns_suffix());
105                            out
106                        })
107                        .build());
108                }
109                return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
110                    "DualStack is enabled but this partition does not support DualStack".to_string(),
111                ));
112            }
113            return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
114                .url({
115                    let mut out = String::new();
116                    out.push_str("https://portal.sso.");
117                    #[allow(clippy::needless_borrow)]
118                    out.push_str(&region);
119                    out.push('.');
120                    #[allow(clippy::needless_borrow)]
121                    out.push_str(&partition_result.dns_suffix());
122                    out
123                })
124                .build());
125        }
126        #[allow(unreachable_code)]
127        return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(format!(
128            "No rules matched these parameters. This is a bug. {:?}",
129            _params
130        )));
131    }
132    return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
133        "Invalid Configuration: Missing Region".to_string(),
134    ));
135}