Skip to main content

aws_sdk_efs/operation/
create_replication_configuration.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `CreateReplicationConfiguration`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct CreateReplicationConfiguration;
6impl CreateReplicationConfiguration {
7    /// Creates a new `CreateReplicationConfiguration`
8    pub fn new() -> Self {
9        Self
10    }
11    pub(crate) async fn orchestrate(
12        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
13        input: crate::operation::create_replication_configuration::CreateReplicationConfigurationInput,
14    ) -> ::std::result::Result<
15        crate::operation::create_replication_configuration::CreateReplicationConfigurationOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::create_replication_configuration::CreateReplicationConfigurationError,
18            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
19        >,
20    > {
21        let map_err = |err: ::aws_smithy_runtime_api::client::result::SdkError<
22            ::aws_smithy_runtime_api::client::interceptors::context::Error,
23            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
24        >| {
25            err.map_service_error(|err| {
26                err.downcast::<crate::operation::create_replication_configuration::CreateReplicationConfigurationError>()
27                    .expect("correct error type")
28            })
29        };
30        let context = Self::orchestrate_with_stop_point(runtime_plugins, input, ::aws_smithy_runtime::client::orchestrator::StopPoint::None)
31            .await
32            .map_err(map_err)?;
33        let output = context.finalize().map_err(map_err)?;
34        ::std::result::Result::Ok(
35            output
36                .downcast::<crate::operation::create_replication_configuration::CreateReplicationConfigurationOutput>()
37                .expect("correct output type"),
38        )
39    }
40
41    pub(crate) async fn orchestrate_with_stop_point(
42        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
43        input: crate::operation::create_replication_configuration::CreateReplicationConfigurationInput,
44        stop_point: ::aws_smithy_runtime::client::orchestrator::StopPoint,
45    ) -> ::std::result::Result<
46        ::aws_smithy_runtime_api::client::interceptors::context::InterceptorContext,
47        ::aws_smithy_runtime_api::client::result::SdkError<
48            ::aws_smithy_runtime_api::client::interceptors::context::Error,
49            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
50        >,
51    > {
52        let input = ::aws_smithy_runtime_api::client::interceptors::context::Input::erase(input);
53        use ::tracing::Instrument;
54        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point(
55            "EFS",
56            "CreateReplicationConfiguration",
57            input,
58            runtime_plugins,
59            stop_point,
60        )
61        // Create a parent span for the entire operation. Includes a random, internal-only,
62        // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
63        .instrument(::tracing::debug_span!(
64            "EFS.CreateReplicationConfiguration",
65            "rpc.service" = "EFS",
66            "rpc.method" = "CreateReplicationConfiguration",
67            "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
68            "rpc.system" = "aws-api",
69        ))
70        .await
71    }
72
73    pub(crate) fn operation_runtime_plugins(
74        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
75        client_config: &crate::config::Config,
76        config_override: ::std::option::Option<crate::config::Builder>,
77    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
78        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
79
80        if let ::std::option::Option::Some(config_override) = config_override {
81            for plugin in config_override.runtime_plugins.iter().cloned() {
82                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
83            }
84            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
85                config_override,
86                client_config.config.clone(),
87                &client_config.runtime_components,
88            ));
89        }
90        runtime_plugins
91    }
92}
93impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for CreateReplicationConfiguration {
94    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
95        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("CreateReplicationConfiguration");
96
97        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
98            CreateReplicationConfigurationRequestSerializer,
99        ));
100        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
101            CreateReplicationConfigurationResponseDeserializer,
102        ));
103
104        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
105            crate::config::auth::Params::builder()
106                .operation_name("CreateReplicationConfiguration")
107                .build()
108                .expect("required fields set"),
109        ));
110
111        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
112            "CreateReplicationConfiguration",
113            "EFS",
114        ));
115        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
116        signing_options.double_uri_encode = true;
117        signing_options.content_sha256_header = false;
118        signing_options.normalize_uri_path = true;
119        signing_options.payload_override = None;
120
121        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
122            signing_options,
123            ..::std::default::Default::default()
124        });
125
126        ::std::option::Option::Some(cfg.freeze())
127    }
128
129    fn runtime_components(
130        &self,
131        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
132    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
133        #[allow(unused_mut)]
134        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("CreateReplicationConfiguration")
135            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
136                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
137            ))
138            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
139                CreateReplicationConfigurationEndpointParamsInterceptor,
140            ))
141            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
142                crate::operation::create_replication_configuration::CreateReplicationConfigurationError,
143            >::new())
144            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
145                crate::operation::create_replication_configuration::CreateReplicationConfigurationError,
146            >::new())
147            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
148                crate::operation::create_replication_configuration::CreateReplicationConfigurationError,
149            >::new());
150
151        ::std::borrow::Cow::Owned(rcb)
152    }
153}
154
155#[derive(Debug)]
156struct CreateReplicationConfigurationResponseDeserializer;
157impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateReplicationConfigurationResponseDeserializer {
158    fn deserialize_nonstreaming_with_config(
159        &self,
160        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
161        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
162    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
163        let (success, status) = (response.status().is_success(), response.status().as_u16());
164        let headers = response.headers();
165        let body = response.body().bytes().expect("body loaded");
166        #[allow(unused_mut)]
167        let mut force_error = false;
168        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
169        let parse_result = if !success && status != 200 || force_error {
170            crate::protocol_serde::shape_create_replication_configuration::de_create_replication_configuration_http_error(status, headers, body)
171        } else {
172            crate::protocol_serde::shape_create_replication_configuration::de_create_replication_configuration_http_response(status, headers, body)
173        };
174        crate::protocol_serde::type_erase_result(parse_result)
175    }
176}
177#[derive(Debug)]
178struct CreateReplicationConfigurationRequestSerializer;
179impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateReplicationConfigurationRequestSerializer {
180    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
181    fn serialize_input(
182        &self,
183        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
184        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
185    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
186        let input = input
187            .downcast::<crate::operation::create_replication_configuration::CreateReplicationConfigurationInput>()
188            .expect("correct type");
189        let _header_serialization_settings = _cfg
190            .load::<crate::serialization_settings::HeaderSerializationSettings>()
191            .cloned()
192            .unwrap_or_default();
193        let mut request_builder = {
194            #[allow(clippy::uninlined_format_args)]
195            fn uri_base(
196                _input: &crate::operation::create_replication_configuration::CreateReplicationConfigurationInput,
197                output: &mut ::std::string::String,
198            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
199                use ::std::fmt::Write as _;
200                let input_1 = &_input.source_file_system_id;
201                let input_1 = input_1.as_ref().ok_or_else(|| {
202                    ::aws_smithy_types::error::operation::BuildError::missing_field("source_file_system_id", "cannot be empty or unset")
203                })?;
204                let source_file_system_id = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Default);
205                if source_file_system_id.is_empty() {
206                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
207                        "source_file_system_id",
208                        "cannot be empty or unset",
209                    ));
210                }
211                ::std::write!(
212                    output,
213                    "/2015-02-01/file-systems/{SourceFileSystemId}/replication-configuration",
214                    SourceFileSystemId = source_file_system_id
215                )
216                .expect("formatting should succeed");
217                ::std::result::Result::Ok(())
218            }
219            #[allow(clippy::unnecessary_wraps)]
220            fn update_http_builder(
221                input: &crate::operation::create_replication_configuration::CreateReplicationConfigurationInput,
222                builder: ::http_1x::request::Builder,
223            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
224                let mut uri = ::std::string::String::new();
225                uri_base(input, &mut uri)?;
226                ::std::result::Result::Ok(builder.method("POST").uri(uri))
227            }
228            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
229            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/json");
230            builder
231        };
232        let body = ::aws_smithy_types::body::SdkBody::from(
233            crate::protocol_serde::shape_create_replication_configuration::ser_create_replication_configuration_input(&input)?,
234        );
235        if let Some(content_length) = body.content_length() {
236            let content_length = content_length.to_string();
237            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
238        }
239        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
240    }
241}
242#[derive(Debug)]
243struct CreateReplicationConfigurationEndpointParamsInterceptor;
244
245#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
246impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateReplicationConfigurationEndpointParamsInterceptor {
247    fn name(&self) -> &'static str {
248        "CreateReplicationConfigurationEndpointParamsInterceptor"
249    }
250
251    fn read_before_execution(
252        &self,
253        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
254            '_,
255            ::aws_smithy_runtime_api::client::interceptors::context::Input,
256            ::aws_smithy_runtime_api::client::interceptors::context::Output,
257            ::aws_smithy_runtime_api::client::interceptors::context::Error,
258        >,
259        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
260    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
261        let _input = context
262            .input()
263            .downcast_ref::<CreateReplicationConfigurationInput>()
264            .ok_or("failed to downcast to CreateReplicationConfigurationInput")?;
265
266        let params = crate::config::endpoint::Params::builder()
267            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
268            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
269            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
270            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
271            .build()
272            .map_err(|err| {
273                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
274            })?;
275        cfg.interceptor_state()
276            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
277        ::std::result::Result::Ok(())
278    }
279}
280
281// The get_* functions below are generated from JMESPath expressions in the
282// operationContextParams trait. They target the operation's input shape.
283
284/// Error type for the `CreateReplicationConfigurationError` operation.
285#[non_exhaustive]
286#[derive(::std::fmt::Debug)]
287pub enum CreateReplicationConfigurationError {
288    /// <p>Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.</p>
289    BadRequest(crate::types::error::BadRequest),
290    /// <p>Returned if the source file system in a replication is encrypted but the destination file system is unencrypted.</p>
291    ConflictException(crate::types::error::ConflictException),
292    /// <p>Returned if the Amazon Web Services account has already created the maximum number of file systems allowed per account.</p>
293    FileSystemLimitExceeded(crate::types::error::FileSystemLimitExceeded),
294    /// <p>Returned if the specified <code>FileSystemId</code> value doesn't exist in the requester's Amazon Web Services account.</p>
295    FileSystemNotFound(crate::types::error::FileSystemNotFound),
296    /// <p>Returned if the file system's lifecycle state is not "available".</p>
297    IncorrectFileSystemLifeCycleState(crate::types::error::IncorrectFileSystemLifeCycleState),
298    /// <p>Returned if there's not enough capacity to provision additional throughput. This value might be returned when you try to create a file system in provisioned throughput mode, when you attempt to increase the provisioned throughput of an existing file system, or when you attempt to change an existing file system from Bursting Throughput to Provisioned Throughput mode. Try again later.</p>
299    InsufficientThroughputCapacity(crate::types::error::InsufficientThroughputCapacity),
300    /// <p>Returned if an error occurred on the server side.</p>
301    InternalServerError(crate::types::error::InternalServerError),
302    /// <p>Returned if the specified file system does not have a replication configuration.</p>
303    ReplicationNotFound(crate::types::error::ReplicationNotFound),
304    /// <p>Returned if the throughput mode or amount of provisioned throughput can't be changed because the throughput limit of 1024 MiB/s has been reached.</p>
305    ThroughputLimitExceeded(crate::types::error::ThroughputLimitExceeded),
306    /// <p>Returned if the requested Amazon EFS functionality is not available in the specified Availability Zone.</p>
307    UnsupportedAvailabilityZone(crate::types::error::UnsupportedAvailabilityZone),
308    /// <p>Returned if the Backup service is not available in the Amazon Web Services Region in which the request was made.</p>
309    ValidationException(crate::types::error::ValidationException),
310    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
311    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
312    variable wildcard pattern and check `.code()`:
313     \
314    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
315     \
316    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateReplicationConfigurationError) for what information is available for the error.")]
317    Unhandled(crate::error::sealed_unhandled::Unhandled),
318}
319impl CreateReplicationConfigurationError {
320    /// Creates the `CreateReplicationConfigurationError::Unhandled` variant from any error type.
321    pub fn unhandled(
322        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
323    ) -> Self {
324        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
325            source: err.into(),
326            meta: ::std::default::Default::default(),
327        })
328    }
329
330    /// Creates the `CreateReplicationConfigurationError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
331    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
332        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
333            source: err.clone().into(),
334            meta: err,
335        })
336    }
337    ///
338    /// Returns error metadata, which includes the error code, message,
339    /// request ID, and potentially additional information.
340    ///
341    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
342        match self {
343            Self::BadRequest(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
344            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
345            Self::FileSystemLimitExceeded(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
346            Self::FileSystemNotFound(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
347            Self::IncorrectFileSystemLifeCycleState(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
348            Self::InsufficientThroughputCapacity(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
349            Self::InternalServerError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
350            Self::ReplicationNotFound(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
351            Self::ThroughputLimitExceeded(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
352            Self::UnsupportedAvailabilityZone(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
353            Self::ValidationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
354            Self::Unhandled(e) => &e.meta,
355        }
356    }
357    /// Returns `true` if the error kind is `CreateReplicationConfigurationError::BadRequest`.
358    pub fn is_bad_request(&self) -> bool {
359        matches!(self, Self::BadRequest(_))
360    }
361    /// Returns `true` if the error kind is `CreateReplicationConfigurationError::ConflictException`.
362    pub fn is_conflict_exception(&self) -> bool {
363        matches!(self, Self::ConflictException(_))
364    }
365    /// Returns `true` if the error kind is `CreateReplicationConfigurationError::FileSystemLimitExceeded`.
366    pub fn is_file_system_limit_exceeded(&self) -> bool {
367        matches!(self, Self::FileSystemLimitExceeded(_))
368    }
369    /// Returns `true` if the error kind is `CreateReplicationConfigurationError::FileSystemNotFound`.
370    pub fn is_file_system_not_found(&self) -> bool {
371        matches!(self, Self::FileSystemNotFound(_))
372    }
373    /// Returns `true` if the error kind is `CreateReplicationConfigurationError::IncorrectFileSystemLifeCycleState`.
374    pub fn is_incorrect_file_system_life_cycle_state(&self) -> bool {
375        matches!(self, Self::IncorrectFileSystemLifeCycleState(_))
376    }
377    /// Returns `true` if the error kind is `CreateReplicationConfigurationError::InsufficientThroughputCapacity`.
378    pub fn is_insufficient_throughput_capacity(&self) -> bool {
379        matches!(self, Self::InsufficientThroughputCapacity(_))
380    }
381    /// Returns `true` if the error kind is `CreateReplicationConfigurationError::InternalServerError`.
382    pub fn is_internal_server_error(&self) -> bool {
383        matches!(self, Self::InternalServerError(_))
384    }
385    /// Returns `true` if the error kind is `CreateReplicationConfigurationError::ReplicationNotFound`.
386    pub fn is_replication_not_found(&self) -> bool {
387        matches!(self, Self::ReplicationNotFound(_))
388    }
389    /// Returns `true` if the error kind is `CreateReplicationConfigurationError::ThroughputLimitExceeded`.
390    pub fn is_throughput_limit_exceeded(&self) -> bool {
391        matches!(self, Self::ThroughputLimitExceeded(_))
392    }
393    /// Returns `true` if the error kind is `CreateReplicationConfigurationError::UnsupportedAvailabilityZone`.
394    pub fn is_unsupported_availability_zone(&self) -> bool {
395        matches!(self, Self::UnsupportedAvailabilityZone(_))
396    }
397    /// Returns `true` if the error kind is `CreateReplicationConfigurationError::ValidationException`.
398    pub fn is_validation_exception(&self) -> bool {
399        matches!(self, Self::ValidationException(_))
400    }
401}
402impl ::std::error::Error for CreateReplicationConfigurationError {
403    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
404        match self {
405            Self::BadRequest(_inner) => ::std::option::Option::Some(_inner),
406            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
407            Self::FileSystemLimitExceeded(_inner) => ::std::option::Option::Some(_inner),
408            Self::FileSystemNotFound(_inner) => ::std::option::Option::Some(_inner),
409            Self::IncorrectFileSystemLifeCycleState(_inner) => ::std::option::Option::Some(_inner),
410            Self::InsufficientThroughputCapacity(_inner) => ::std::option::Option::Some(_inner),
411            Self::InternalServerError(_inner) => ::std::option::Option::Some(_inner),
412            Self::ReplicationNotFound(_inner) => ::std::option::Option::Some(_inner),
413            Self::ThroughputLimitExceeded(_inner) => ::std::option::Option::Some(_inner),
414            Self::UnsupportedAvailabilityZone(_inner) => ::std::option::Option::Some(_inner),
415            Self::ValidationException(_inner) => ::std::option::Option::Some(_inner),
416            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
417        }
418    }
419}
420impl ::std::fmt::Display for CreateReplicationConfigurationError {
421    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
422        match self {
423            Self::BadRequest(_inner) => _inner.fmt(f),
424            Self::ConflictException(_inner) => _inner.fmt(f),
425            Self::FileSystemLimitExceeded(_inner) => _inner.fmt(f),
426            Self::FileSystemNotFound(_inner) => _inner.fmt(f),
427            Self::IncorrectFileSystemLifeCycleState(_inner) => _inner.fmt(f),
428            Self::InsufficientThroughputCapacity(_inner) => _inner.fmt(f),
429            Self::InternalServerError(_inner) => _inner.fmt(f),
430            Self::ReplicationNotFound(_inner) => _inner.fmt(f),
431            Self::ThroughputLimitExceeded(_inner) => _inner.fmt(f),
432            Self::UnsupportedAvailabilityZone(_inner) => _inner.fmt(f),
433            Self::ValidationException(_inner) => _inner.fmt(f),
434            Self::Unhandled(_inner) => {
435                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
436                    write!(f, "unhandled error ({code})")
437                } else {
438                    f.write_str("unhandled error")
439                }
440            }
441        }
442    }
443}
444impl ::aws_smithy_types::retry::ProvideErrorKind for CreateReplicationConfigurationError {
445    fn code(&self) -> ::std::option::Option<&str> {
446        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
447    }
448    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
449        ::std::option::Option::None
450    }
451}
452impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateReplicationConfigurationError {
453    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
454        match self {
455            Self::BadRequest(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
456            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
457            Self::FileSystemLimitExceeded(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
458            Self::FileSystemNotFound(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
459            Self::IncorrectFileSystemLifeCycleState(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
460            Self::InsufficientThroughputCapacity(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
461            Self::InternalServerError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
462            Self::ReplicationNotFound(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
463            Self::ThroughputLimitExceeded(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
464            Self::UnsupportedAvailabilityZone(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
465            Self::ValidationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
466            Self::Unhandled(_inner) => &_inner.meta,
467        }
468    }
469}
470impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateReplicationConfigurationError {
471    fn create_unhandled_error(
472        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
473        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
474    ) -> Self {
475        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
476            source,
477            meta: meta.unwrap_or_default(),
478        })
479    }
480}
481impl ::aws_types::request_id::RequestId for crate::operation::create_replication_configuration::CreateReplicationConfigurationError {
482    fn request_id(&self) -> Option<&str> {
483        self.meta().request_id()
484    }
485}
486
487pub use crate::operation::create_replication_configuration::_create_replication_configuration_input::CreateReplicationConfigurationInput;
488
489pub use crate::operation::create_replication_configuration::_create_replication_configuration_output::CreateReplicationConfigurationOutput;
490
491mod _create_replication_configuration_input;
492
493mod _create_replication_configuration_output;
494
495/// Builders
496pub mod builders;