aws_sdk_paymentcryptography/config/
endpoint.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use ::aws_smithy_runtime_api::client::endpoint::EndpointFuture;
3pub use ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver;
4pub use ::aws_smithy_types::endpoint::Endpoint;
5
6#[cfg(test)]
7mod test {
8
9    /// For region us-east-1 with FIPS enabled and DualStack enabled
10    #[test]
11    fn test_1() {
12        let params = crate::config::endpoint::Params::builder()
13            .region("us-east-1".to_string())
14            .use_fips(true)
15            .use_dual_stack(true)
16            .build()
17            .expect("invalid params");
18        let resolver = crate::config::endpoint::DefaultResolver::new();
19        let endpoint = resolver.resolve_endpoint(&params);
20        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography-fips.us-east-1.api.aws");
21        assert_eq!(
22            endpoint,
23            ::aws_smithy_types::endpoint::Endpoint::builder()
24                .url("https://controlplane.payment-cryptography-fips.us-east-1.api.aws")
25                .build()
26        );
27    }
28
29    /// For region us-east-1 with FIPS enabled and DualStack disabled
30    #[test]
31    fn test_2() {
32        let params = crate::config::endpoint::Params::builder()
33            .region("us-east-1".to_string())
34            .use_fips(true)
35            .use_dual_stack(false)
36            .build()
37            .expect("invalid params");
38        let resolver = crate::config::endpoint::DefaultResolver::new();
39        let endpoint = resolver.resolve_endpoint(&params);
40        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography-fips.us-east-1.amazonaws.com");
41        assert_eq!(
42            endpoint,
43            ::aws_smithy_types::endpoint::Endpoint::builder()
44                .url("https://controlplane.payment-cryptography-fips.us-east-1.amazonaws.com")
45                .build()
46        );
47    }
48
49    /// For region us-east-1 with FIPS disabled and DualStack enabled
50    #[test]
51    fn test_3() {
52        let params = crate::config::endpoint::Params::builder()
53            .region("us-east-1".to_string())
54            .use_fips(false)
55            .use_dual_stack(true)
56            .build()
57            .expect("invalid params");
58        let resolver = crate::config::endpoint::DefaultResolver::new();
59        let endpoint = resolver.resolve_endpoint(&params);
60        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography.us-east-1.api.aws");
61        assert_eq!(
62            endpoint,
63            ::aws_smithy_types::endpoint::Endpoint::builder()
64                .url("https://controlplane.payment-cryptography.us-east-1.api.aws")
65                .build()
66        );
67    }
68
69    /// For region us-east-1 with FIPS disabled and DualStack disabled
70    #[test]
71    fn test_4() {
72        let params = crate::config::endpoint::Params::builder()
73            .region("us-east-1".to_string())
74            .use_fips(false)
75            .use_dual_stack(false)
76            .build()
77            .expect("invalid params");
78        let resolver = crate::config::endpoint::DefaultResolver::new();
79        let endpoint = resolver.resolve_endpoint(&params);
80        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography.us-east-1.amazonaws.com");
81        assert_eq!(
82            endpoint,
83            ::aws_smithy_types::endpoint::Endpoint::builder()
84                .url("https://controlplane.payment-cryptography.us-east-1.amazonaws.com")
85                .build()
86        );
87    }
88
89    /// For region cn-north-1 with FIPS enabled and DualStack enabled
90    #[test]
91    fn test_5() {
92        let params = crate::config::endpoint::Params::builder()
93            .region("cn-north-1".to_string())
94            .use_fips(true)
95            .use_dual_stack(true)
96            .build()
97            .expect("invalid params");
98        let resolver = crate::config::endpoint::DefaultResolver::new();
99        let endpoint = resolver.resolve_endpoint(&params);
100        let endpoint =
101            endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography-fips.cn-north-1.api.amazonwebservices.com.cn");
102        assert_eq!(
103            endpoint,
104            ::aws_smithy_types::endpoint::Endpoint::builder()
105                .url("https://controlplane.payment-cryptography-fips.cn-north-1.api.amazonwebservices.com.cn")
106                .build()
107        );
108    }
109
110    /// For region cn-north-1 with FIPS enabled and DualStack disabled
111    #[test]
112    fn test_6() {
113        let params = crate::config::endpoint::Params::builder()
114            .region("cn-north-1".to_string())
115            .use_fips(true)
116            .use_dual_stack(false)
117            .build()
118            .expect("invalid params");
119        let resolver = crate::config::endpoint::DefaultResolver::new();
120        let endpoint = resolver.resolve_endpoint(&params);
121        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography-fips.cn-north-1.amazonaws.com.cn");
122        assert_eq!(
123            endpoint,
124            ::aws_smithy_types::endpoint::Endpoint::builder()
125                .url("https://controlplane.payment-cryptography-fips.cn-north-1.amazonaws.com.cn")
126                .build()
127        );
128    }
129
130    /// For region cn-north-1 with FIPS disabled and DualStack enabled
131    #[test]
132    fn test_7() {
133        let params = crate::config::endpoint::Params::builder()
134            .region("cn-north-1".to_string())
135            .use_fips(false)
136            .use_dual_stack(true)
137            .build()
138            .expect("invalid params");
139        let resolver = crate::config::endpoint::DefaultResolver::new();
140        let endpoint = resolver.resolve_endpoint(&params);
141        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography.cn-north-1.api.amazonwebservices.com.cn");
142        assert_eq!(
143            endpoint,
144            ::aws_smithy_types::endpoint::Endpoint::builder()
145                .url("https://controlplane.payment-cryptography.cn-north-1.api.amazonwebservices.com.cn")
146                .build()
147        );
148    }
149
150    /// For region cn-north-1 with FIPS disabled and DualStack disabled
151    #[test]
152    fn test_8() {
153        let params = crate::config::endpoint::Params::builder()
154            .region("cn-north-1".to_string())
155            .use_fips(false)
156            .use_dual_stack(false)
157            .build()
158            .expect("invalid params");
159        let resolver = crate::config::endpoint::DefaultResolver::new();
160        let endpoint = resolver.resolve_endpoint(&params);
161        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography.cn-north-1.amazonaws.com.cn");
162        assert_eq!(
163            endpoint,
164            ::aws_smithy_types::endpoint::Endpoint::builder()
165                .url("https://controlplane.payment-cryptography.cn-north-1.amazonaws.com.cn")
166                .build()
167        );
168    }
169
170    /// For region us-gov-east-1 with FIPS enabled and DualStack enabled
171    #[test]
172    fn test_9() {
173        let params = crate::config::endpoint::Params::builder()
174            .region("us-gov-east-1".to_string())
175            .use_fips(true)
176            .use_dual_stack(true)
177            .build()
178            .expect("invalid params");
179        let resolver = crate::config::endpoint::DefaultResolver::new();
180        let endpoint = resolver.resolve_endpoint(&params);
181        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography-fips.us-gov-east-1.api.aws");
182        assert_eq!(
183            endpoint,
184            ::aws_smithy_types::endpoint::Endpoint::builder()
185                .url("https://controlplane.payment-cryptography-fips.us-gov-east-1.api.aws")
186                .build()
187        );
188    }
189
190    /// For region us-gov-east-1 with FIPS enabled and DualStack disabled
191    #[test]
192    fn test_10() {
193        let params = crate::config::endpoint::Params::builder()
194            .region("us-gov-east-1".to_string())
195            .use_fips(true)
196            .use_dual_stack(false)
197            .build()
198            .expect("invalid params");
199        let resolver = crate::config::endpoint::DefaultResolver::new();
200        let endpoint = resolver.resolve_endpoint(&params);
201        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography-fips.us-gov-east-1.amazonaws.com");
202        assert_eq!(
203            endpoint,
204            ::aws_smithy_types::endpoint::Endpoint::builder()
205                .url("https://controlplane.payment-cryptography-fips.us-gov-east-1.amazonaws.com")
206                .build()
207        );
208    }
209
210    /// For region us-gov-east-1 with FIPS disabled and DualStack enabled
211    #[test]
212    fn test_11() {
213        let params = crate::config::endpoint::Params::builder()
214            .region("us-gov-east-1".to_string())
215            .use_fips(false)
216            .use_dual_stack(true)
217            .build()
218            .expect("invalid params");
219        let resolver = crate::config::endpoint::DefaultResolver::new();
220        let endpoint = resolver.resolve_endpoint(&params);
221        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography.us-gov-east-1.api.aws");
222        assert_eq!(
223            endpoint,
224            ::aws_smithy_types::endpoint::Endpoint::builder()
225                .url("https://controlplane.payment-cryptography.us-gov-east-1.api.aws")
226                .build()
227        );
228    }
229
230    /// For region us-gov-east-1 with FIPS disabled and DualStack disabled
231    #[test]
232    fn test_12() {
233        let params = crate::config::endpoint::Params::builder()
234            .region("us-gov-east-1".to_string())
235            .use_fips(false)
236            .use_dual_stack(false)
237            .build()
238            .expect("invalid params");
239        let resolver = crate::config::endpoint::DefaultResolver::new();
240        let endpoint = resolver.resolve_endpoint(&params);
241        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography.us-gov-east-1.amazonaws.com");
242        assert_eq!(
243            endpoint,
244            ::aws_smithy_types::endpoint::Endpoint::builder()
245                .url("https://controlplane.payment-cryptography.us-gov-east-1.amazonaws.com")
246                .build()
247        );
248    }
249
250    /// For region us-iso-east-1 with FIPS enabled and DualStack disabled
251    #[test]
252    fn test_13() {
253        let params = crate::config::endpoint::Params::builder()
254            .region("us-iso-east-1".to_string())
255            .use_fips(true)
256            .use_dual_stack(false)
257            .build()
258            .expect("invalid params");
259        let resolver = crate::config::endpoint::DefaultResolver::new();
260        let endpoint = resolver.resolve_endpoint(&params);
261        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography-fips.us-iso-east-1.c2s.ic.gov");
262        assert_eq!(
263            endpoint,
264            ::aws_smithy_types::endpoint::Endpoint::builder()
265                .url("https://controlplane.payment-cryptography-fips.us-iso-east-1.c2s.ic.gov")
266                .build()
267        );
268    }
269
270    /// For region us-iso-east-1 with FIPS disabled and DualStack disabled
271    #[test]
272    fn test_14() {
273        let params = crate::config::endpoint::Params::builder()
274            .region("us-iso-east-1".to_string())
275            .use_fips(false)
276            .use_dual_stack(false)
277            .build()
278            .expect("invalid params");
279        let resolver = crate::config::endpoint::DefaultResolver::new();
280        let endpoint = resolver.resolve_endpoint(&params);
281        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography.us-iso-east-1.c2s.ic.gov");
282        assert_eq!(
283            endpoint,
284            ::aws_smithy_types::endpoint::Endpoint::builder()
285                .url("https://controlplane.payment-cryptography.us-iso-east-1.c2s.ic.gov")
286                .build()
287        );
288    }
289
290    /// For region us-isob-east-1 with FIPS enabled and DualStack disabled
291    #[test]
292    fn test_15() {
293        let params = crate::config::endpoint::Params::builder()
294            .region("us-isob-east-1".to_string())
295            .use_fips(true)
296            .use_dual_stack(false)
297            .build()
298            .expect("invalid params");
299        let resolver = crate::config::endpoint::DefaultResolver::new();
300        let endpoint = resolver.resolve_endpoint(&params);
301        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography-fips.us-isob-east-1.sc2s.sgov.gov");
302        assert_eq!(
303            endpoint,
304            ::aws_smithy_types::endpoint::Endpoint::builder()
305                .url("https://controlplane.payment-cryptography-fips.us-isob-east-1.sc2s.sgov.gov")
306                .build()
307        );
308    }
309
310    /// For region us-isob-east-1 with FIPS disabled and DualStack disabled
311    #[test]
312    fn test_16() {
313        let params = crate::config::endpoint::Params::builder()
314            .region("us-isob-east-1".to_string())
315            .use_fips(false)
316            .use_dual_stack(false)
317            .build()
318            .expect("invalid params");
319        let resolver = crate::config::endpoint::DefaultResolver::new();
320        let endpoint = resolver.resolve_endpoint(&params);
321        let endpoint = endpoint.expect("Expected valid endpoint: https://controlplane.payment-cryptography.us-isob-east-1.sc2s.sgov.gov");
322        assert_eq!(
323            endpoint,
324            ::aws_smithy_types::endpoint::Endpoint::builder()
325                .url("https://controlplane.payment-cryptography.us-isob-east-1.sc2s.sgov.gov")
326                .build()
327        );
328    }
329
330    /// For custom endpoint with region set and fips disabled and dualstack disabled
331    #[test]
332    fn test_17() {
333        let params = crate::config::endpoint::Params::builder()
334            .region("us-east-1".to_string())
335            .use_fips(false)
336            .use_dual_stack(false)
337            .endpoint("https://example.com".to_string())
338            .build()
339            .expect("invalid params");
340        let resolver = crate::config::endpoint::DefaultResolver::new();
341        let endpoint = resolver.resolve_endpoint(&params);
342        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
343        assert_eq!(
344            endpoint,
345            ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com").build()
346        );
347    }
348
349    /// For custom endpoint with region not set and fips disabled and dualstack disabled
350    #[test]
351    fn test_18() {
352        let params = crate::config::endpoint::Params::builder()
353            .use_fips(false)
354            .use_dual_stack(false)
355            .endpoint("https://example.com".to_string())
356            .build()
357            .expect("invalid params");
358        let resolver = crate::config::endpoint::DefaultResolver::new();
359        let endpoint = resolver.resolve_endpoint(&params);
360        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
361        assert_eq!(
362            endpoint,
363            ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com").build()
364        );
365    }
366
367    /// For custom endpoint with fips enabled and dualstack disabled
368    #[test]
369    fn test_19() {
370        let params = crate::config::endpoint::Params::builder()
371            .region("us-east-1".to_string())
372            .use_fips(true)
373            .use_dual_stack(false)
374            .endpoint("https://example.com".to_string())
375            .build()
376            .expect("invalid params");
377        let resolver = crate::config::endpoint::DefaultResolver::new();
378        let endpoint = resolver.resolve_endpoint(&params);
379        let error = endpoint.expect_err("expected error: Invalid Configuration: FIPS and custom endpoint are not supported [For custom endpoint with fips enabled and dualstack disabled]");
380        assert_eq!(format!("{}", error), "Invalid Configuration: FIPS and custom endpoint are not supported")
381    }
382
383    /// For custom endpoint with fips disabled and dualstack enabled
384    #[test]
385    fn test_20() {
386        let params = crate::config::endpoint::Params::builder()
387            .region("us-east-1".to_string())
388            .use_fips(false)
389            .use_dual_stack(true)
390            .endpoint("https://example.com".to_string())
391            .build()
392            .expect("invalid params");
393        let resolver = crate::config::endpoint::DefaultResolver::new();
394        let endpoint = resolver.resolve_endpoint(&params);
395        let error = endpoint.expect_err("expected error: Invalid Configuration: Dualstack and custom endpoint are not supported [For custom endpoint with fips disabled and dualstack enabled]");
396        assert_eq!(
397            format!("{}", error),
398            "Invalid Configuration: Dualstack and custom endpoint are not supported"
399        )
400    }
401
402    /// Missing region
403    #[test]
404    fn test_21() {
405        let params = crate::config::endpoint::Params::builder().build().expect("invalid params");
406        let resolver = crate::config::endpoint::DefaultResolver::new();
407        let endpoint = resolver.resolve_endpoint(&params);
408        let error = endpoint.expect_err("expected error: Invalid Configuration: Missing Region [Missing region]");
409        assert_eq!(format!("{}", error), "Invalid Configuration: Missing Region")
410    }
411}
412
413/// Endpoint resolver trait specific to Payment Cryptography Control Plane
414pub trait ResolveEndpoint: ::std::marker::Send + ::std::marker::Sync + ::std::fmt::Debug {
415    /// Resolve an endpoint with the given parameters
416    fn resolve_endpoint<'a>(&'a self, params: &'a crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a>;
417
418    /// Convert this service-specific resolver into a `SharedEndpointResolver`
419    ///
420    /// The resulting resolver will downcast `EndpointResolverParams` into `crate::config::endpoint::Params`.
421    fn into_shared_resolver(self) -> ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver
422    where
423        Self: Sized + 'static,
424    {
425        ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver::new(DowncastParams(self))
426    }
427}
428
429#[derive(Debug)]
430struct DowncastParams<T>(T);
431impl<T> ::aws_smithy_runtime_api::client::endpoint::ResolveEndpoint for DowncastParams<T>
432where
433    T: ResolveEndpoint,
434{
435    fn resolve_endpoint<'a>(
436        &'a self,
437        params: &'a ::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams,
438    ) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a> {
439        let ep = match params.get::<crate::config::endpoint::Params>() {
440            Some(params) => self.0.resolve_endpoint(params),
441            None => ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(Err("params of expected type was not present".into())),
442        };
443        ep
444    }
445}
446
447/// The default endpoint resolver
448#[derive(Debug, Default)]
449pub struct DefaultResolver {
450    partition_resolver: crate::endpoint_lib::partition::PartitionResolver,
451}
452
453impl DefaultResolver {
454    /// Create a new endpoint resolver with default settings
455    pub fn new() -> Self {
456        Self {
457            partition_resolver: crate::endpoint_lib::DEFAULT_PARTITION_RESOLVER.clone(),
458        }
459    }
460
461    fn resolve_endpoint(
462        &self,
463        params: &crate::config::endpoint::Params,
464    ) -> ::std::result::Result<::aws_smithy_types::endpoint::Endpoint, ::aws_smithy_runtime_api::box_error::BoxError> {
465        let mut diagnostic_collector = crate::endpoint_lib::diagnostic::DiagnosticCollector::new();
466        Ok(
467            crate::config::endpoint::internals::resolve_endpoint(params, &mut diagnostic_collector, &self.partition_resolver)
468                .map_err(|err| err.with_source(diagnostic_collector.take_last_error()))?,
469        )
470    }
471}
472
473impl crate::config::endpoint::ResolveEndpoint for DefaultResolver {
474    fn resolve_endpoint(&self, params: &crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'_> {
475        ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(self.resolve_endpoint(params))
476    }
477}
478
479#[non_exhaustive]
480#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
481/// Configuration parameters for resolving the correct endpoint
482pub struct Params {
483    /// The AWS region used to dispatch the request.
484    pub(crate) region: ::std::option::Option<::std::string::String>,
485    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
486    pub(crate) use_dual_stack: bool,
487    /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
488    pub(crate) use_fips: bool,
489    /// Override the endpoint used to send this request
490    pub(crate) endpoint: ::std::option::Option<::std::string::String>,
491}
492impl Params {
493    /// Create a builder for [`Params`]
494    pub fn builder() -> crate::config::endpoint::ParamsBuilder {
495        crate::config::endpoint::ParamsBuilder::default()
496    }
497    /// The AWS region used to dispatch the request.
498    pub fn region(&self) -> ::std::option::Option<&str> {
499        self.region.as_deref()
500    }
501    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
502    pub fn use_dual_stack(&self) -> ::std::option::Option<bool> {
503        Some(self.use_dual_stack)
504    }
505    /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
506    pub fn use_fips(&self) -> ::std::option::Option<bool> {
507        Some(self.use_fips)
508    }
509    /// Override the endpoint used to send this request
510    pub fn endpoint(&self) -> ::std::option::Option<&str> {
511        self.endpoint.as_deref()
512    }
513}
514
515/// Builder for [`Params`]
516#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
517pub struct ParamsBuilder {
518    region: ::std::option::Option<::std::string::String>,
519    use_dual_stack: ::std::option::Option<bool>,
520    use_fips: ::std::option::Option<bool>,
521    endpoint: ::std::option::Option<::std::string::String>,
522}
523impl ParamsBuilder {
524    /// Consume this builder, creating [`Params`].
525    pub fn build(self) -> ::std::result::Result<crate::config::endpoint::Params, crate::config::endpoint::InvalidParams> {
526        Ok(
527            #[allow(clippy::unnecessary_lazy_evaluations)]
528            crate::config::endpoint::Params {
529                region: self.region,
530                use_dual_stack: self
531                    .use_dual_stack
532                    .or_else(|| Some(false))
533                    .ok_or_else(|| crate::config::endpoint::InvalidParams::missing("use_dual_stack"))?,
534                use_fips: self
535                    .use_fips
536                    .or_else(|| Some(false))
537                    .ok_or_else(|| crate::config::endpoint::InvalidParams::missing("use_fips"))?,
538                endpoint: self.endpoint,
539            },
540        )
541    }
542    /// Sets the value for region
543    ///
544    /// The AWS region used to dispatch the request.
545    pub fn region(mut self, value: impl Into<::std::string::String>) -> Self {
546        self.region = Some(value.into());
547        self
548    }
549
550    /// Sets the value for region
551    ///
552    /// The AWS region used to dispatch the request.
553    pub fn set_region(mut self, param: Option<::std::string::String>) -> Self {
554        self.region = param;
555        self
556    }
557    /// Sets the value for use_dual_stack
558    ///
559    /// When unset, this parameter has a default value of `false`.
560    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
561    pub fn use_dual_stack(mut self, value: impl Into<bool>) -> Self {
562        self.use_dual_stack = Some(value.into());
563        self
564    }
565
566    /// Sets the value for use_dual_stack
567    ///
568    /// When unset, this parameter has a default value of `false`.
569    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
570    pub fn set_use_dual_stack(mut self, param: Option<bool>) -> Self {
571        self.use_dual_stack = param;
572        self
573    }
574    /// Sets the value for use_fips
575    ///
576    /// When unset, this parameter has a default value of `false`.
577    /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
578    pub fn use_fips(mut self, value: impl Into<bool>) -> Self {
579        self.use_fips = Some(value.into());
580        self
581    }
582
583    /// Sets the value for use_fips
584    ///
585    /// When unset, this parameter has a default value of `false`.
586    /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
587    pub fn set_use_fips(mut self, param: Option<bool>) -> Self {
588        self.use_fips = param;
589        self
590    }
591    /// Sets the value for endpoint
592    ///
593    /// Override the endpoint used to send this request
594    pub fn endpoint(mut self, value: impl Into<::std::string::String>) -> Self {
595        self.endpoint = Some(value.into());
596        self
597    }
598
599    /// Sets the value for endpoint
600    ///
601    /// Override the endpoint used to send this request
602    pub fn set_endpoint(mut self, param: Option<::std::string::String>) -> Self {
603        self.endpoint = param;
604        self
605    }
606}
607
608/// An error that occurred during endpoint resolution
609#[derive(Debug)]
610pub struct InvalidParams {
611    field: std::borrow::Cow<'static, str>,
612}
613
614impl InvalidParams {
615    #[allow(dead_code)]
616    fn missing(field: &'static str) -> Self {
617        Self { field: field.into() }
618    }
619}
620
621impl std::fmt::Display for InvalidParams {
622    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
623        write!(f, "a required field was missing: `{}`", self.field)
624    }
625}
626
627impl std::error::Error for InvalidParams {}
628
629mod internals;