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