Skip to main content

aws_sdk_efs/operation/
create_file_system.rs

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