aws_sdk_kms/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://kms-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                    return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
66                        .url({
67                            let mut out = String::new();
68                            out.push_str("https://kms-fips.");
69                            #[allow(clippy::needless_borrow)]
70                            out.push_str(&region);
71                            out.push('.');
72                            #[allow(clippy::needless_borrow)]
73                            out.push_str(&partition_result.dns_suffix());
74                            out
75                        })
76                        .build());
77                }
78                return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
79                    "FIPS is enabled but this partition does not support FIPS".to_string(),
80                ));
81            }
82            if (*use_dual_stack) == (true) {
83                if (true) == (partition_result.supports_dual_stack()) {
84                    return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
85                        .url({
86                            let mut out = String::new();
87                            out.push_str("https://kms.");
88                            #[allow(clippy::needless_borrow)]
89                            out.push_str(&region);
90                            out.push('.');
91                            #[allow(clippy::needless_borrow)]
92                            out.push_str(&partition_result.dual_stack_dns_suffix());
93                            out
94                        })
95                        .build());
96                }
97                return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
98                    "DualStack is enabled but this partition does not support DualStack".to_string(),
99                ));
100            }
101            return Ok(::aws_smithy_types::endpoint::Endpoint::builder()
102                .url({
103                    let mut out = String::new();
104                    out.push_str("https://kms.");
105                    #[allow(clippy::needless_borrow)]
106                    out.push_str(&region);
107                    out.push('.');
108                    #[allow(clippy::needless_borrow)]
109                    out.push_str(&partition_result.dns_suffix());
110                    out
111                })
112                .build());
113        }
114        #[allow(unreachable_code)]
115        return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(format!(
116            "No rules matched these parameters. This is a bug. {:?}",
117            _params
118        )));
119    }
120    return Err(::aws_smithy_http::endpoint::ResolveEndpointError::message(
121        "Invalid Configuration: Missing Region".to_string(),
122    ));
123}