aws_sdk_sso/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 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(®ion);
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(®ion);
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(®ion);
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(®ion);
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(®ion);
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}