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
152        ::std::borrow::Cow::Owned(rcb)
153    }
154}
155
156#[derive(Debug)]
157struct CreateFileSystemTelemetryInputCaptureInterceptor;
158
159#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
160impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateFileSystemTelemetryInputCaptureInterceptor {
161    fn name(&self) -> &'static str {
162        "CreateFileSystemTelemetryInputCaptureInterceptor"
163    }
164
165    fn read_before_execution(
166        &self,
167        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
168            '_,
169            ::aws_smithy_runtime_api::client::interceptors::context::Input,
170            ::aws_smithy_runtime_api::client::interceptors::context::Output,
171            ::aws_smithy_runtime_api::client::interceptors::context::Error,
172        >,
173        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
174    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
175        // Nothing to do unless the customer opted in by naming members to record.
176        let ::std::option::Option::Some(requested) = cfg
177            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
178            .filter(|r| !r.is_empty())
179        else {
180            return ::std::result::Result::Ok(());
181        };
182
183        let ::std::option::Option::Some(input) = context.input().downcast_ref::<CreateFileSystemInput>() else {
184            // A mismatched input is not this interceptor's concern; skip quietly.
185            return ::std::result::Result::Ok(());
186        };
187
188        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
189        if requested.should_capture("CreationToken") {
190            if let ::std::option::Option::Some(value) = input.creation_token.as_deref() {
191                captured.insert("CreationToken", value);
192            }
193        }
194        if requested.should_capture("KmsKeyId") {
195            if let ::std::option::Option::Some(value) = input.kms_key_id.as_deref() {
196                captured.insert("KmsKeyId", value);
197            }
198        }
199        if requested.should_capture("AvailabilityZoneName") {
200            if let ::std::option::Option::Some(value) = input.availability_zone_name.as_deref() {
201                captured.insert("AvailabilityZoneName", value);
202            }
203        }
204
205        cfg.interceptor_state().store_put(captured);
206        ::std::result::Result::Ok(())
207    }
208}
209#[derive(Debug)]
210struct CreateFileSystemResponseDeserializer;
211impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateFileSystemResponseDeserializer {
212    fn deserialize_nonstreaming_with_config(
213        &self,
214        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
215        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
216    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
217        let (success, status) = (response.status().is_success(), response.status().as_u16());
218        let headers = response.headers();
219        let body = response.body().bytes().expect("body loaded");
220        #[allow(unused_mut)]
221        let mut force_error = false;
222        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
223        let parse_result = if !success && status != 201 || force_error {
224            crate::protocol_serde::shape_create_file_system::de_create_file_system_http_error(status, headers, body)
225        } else {
226            crate::protocol_serde::shape_create_file_system::de_create_file_system_http_response(status, headers, body)
227        };
228        crate::protocol_serde::type_erase_result(parse_result)
229    }
230}
231#[derive(Debug)]
232struct CreateFileSystemRequestSerializer;
233impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateFileSystemRequestSerializer {
234    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
235    fn serialize_input(
236        &self,
237        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
238        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
239    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
240        let input = input
241            .downcast::<crate::operation::create_file_system::CreateFileSystemInput>()
242            .expect("correct type");
243        let _header_serialization_settings = _cfg
244            .load::<crate::serialization_settings::HeaderSerializationSettings>()
245            .cloned()
246            .unwrap_or_default();
247        let mut request_builder = {
248            #[allow(clippy::uninlined_format_args)]
249            fn uri_base(
250                _input: &crate::operation::create_file_system::CreateFileSystemInput,
251                output: &mut ::std::string::String,
252            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
253                use ::std::fmt::Write as _;
254                ::std::write!(output, "/2015-02-01/file-systems").expect("formatting should succeed");
255                ::std::result::Result::Ok(())
256            }
257            #[allow(clippy::unnecessary_wraps)]
258            fn update_http_builder(
259                input: &crate::operation::create_file_system::CreateFileSystemInput,
260                builder: ::http_1x::request::Builder,
261            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
262                let mut uri = ::std::string::String::new();
263                uri_base(input, &mut uri)?;
264                ::std::result::Result::Ok(builder.method("POST").uri(uri))
265            }
266            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
267            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/json");
268            builder
269        };
270        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_create_file_system::ser_create_file_system_input(&input)?);
271        if let Some(content_length) = body.content_length() {
272            let content_length = content_length.to_string();
273            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
274        }
275        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
276    }
277}
278#[derive(Debug)]
279struct CreateFileSystemEndpointParamsInterceptor;
280
281#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
282impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateFileSystemEndpointParamsInterceptor {
283    fn name(&self) -> &'static str {
284        "CreateFileSystemEndpointParamsInterceptor"
285    }
286
287    fn read_before_execution(
288        &self,
289        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
290            '_,
291            ::aws_smithy_runtime_api::client::interceptors::context::Input,
292            ::aws_smithy_runtime_api::client::interceptors::context::Output,
293            ::aws_smithy_runtime_api::client::interceptors::context::Error,
294        >,
295        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
296    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
297        let _input = context
298            .input()
299            .downcast_ref::<CreateFileSystemInput>()
300            .ok_or("failed to downcast to CreateFileSystemInput")?;
301
302        let params = crate::config::endpoint::Params::builder()
303            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
304            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
305            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
306            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
307            .build()
308            .map_err(|err| {
309                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
310            })?;
311        cfg.interceptor_state()
312            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
313        ::std::result::Result::Ok(())
314    }
315}
316
317// The get_* functions below are generated from JMESPath expressions in the
318// operationContextParams trait. They target the operation's input shape.
319
320/// Error type for the `CreateFileSystemError` operation.
321#[non_exhaustive]
322#[derive(::std::fmt::Debug)]
323pub enum CreateFileSystemError {
324    /// <p>Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.</p>
325    BadRequest(crate::types::error::BadRequest),
326    /// <p>Returned if the file system you are trying to create already exists, with the creation token you provided.</p>
327    FileSystemAlreadyExists(crate::types::error::FileSystemAlreadyExists),
328    /// <p>Returned if the Amazon Web Services account has already created the maximum number of file systems allowed per account.</p>
329    FileSystemLimitExceeded(crate::types::error::FileSystemLimitExceeded),
330    /// <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>
331    InsufficientThroughputCapacity(crate::types::error::InsufficientThroughputCapacity),
332    /// <p>Returned if an error occurred on the server side.</p>
333    InternalServerError(crate::types::error::InternalServerError),
334    /// <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>
335    ThroughputLimitExceeded(crate::types::error::ThroughputLimitExceeded),
336    /// <p>Returned if the requested Amazon EFS functionality is not available in the specified Availability Zone.</p>
337    UnsupportedAvailabilityZone(crate::types::error::UnsupportedAvailabilityZone),
338    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
339    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
340    variable wildcard pattern and check `.code()`:
341     \
342    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
343     \
344    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateFileSystemError) for what information is available for the error.")]
345    Unhandled(crate::error::sealed_unhandled::Unhandled),
346}
347impl CreateFileSystemError {
348    /// Creates the `CreateFileSystemError::Unhandled` variant from any error type.
349    pub fn unhandled(
350        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
351    ) -> Self {
352        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
353            source: err.into(),
354            meta: ::std::default::Default::default(),
355        })
356    }
357
358    /// Creates the `CreateFileSystemError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
359    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
360        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
361            source: err.clone().into(),
362            meta: err,
363        })
364    }
365    ///
366    /// Returns error metadata, which includes the error code, message,
367    /// request ID, and potentially additional information.
368    ///
369    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
370        match self {
371            Self::BadRequest(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
372            Self::FileSystemAlreadyExists(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
373            Self::FileSystemLimitExceeded(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
374            Self::InsufficientThroughputCapacity(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
375            Self::InternalServerError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
376            Self::ThroughputLimitExceeded(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
377            Self::UnsupportedAvailabilityZone(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
378            Self::Unhandled(e) => &e.meta,
379        }
380    }
381    /// Returns `true` if the error kind is `CreateFileSystemError::BadRequest`.
382    pub fn is_bad_request(&self) -> bool {
383        matches!(self, Self::BadRequest(_))
384    }
385    /// Returns `true` if the error kind is `CreateFileSystemError::FileSystemAlreadyExists`.
386    pub fn is_file_system_already_exists(&self) -> bool {
387        matches!(self, Self::FileSystemAlreadyExists(_))
388    }
389    /// Returns `true` if the error kind is `CreateFileSystemError::FileSystemLimitExceeded`.
390    pub fn is_file_system_limit_exceeded(&self) -> bool {
391        matches!(self, Self::FileSystemLimitExceeded(_))
392    }
393    /// Returns `true` if the error kind is `CreateFileSystemError::InsufficientThroughputCapacity`.
394    pub fn is_insufficient_throughput_capacity(&self) -> bool {
395        matches!(self, Self::InsufficientThroughputCapacity(_))
396    }
397    /// Returns `true` if the error kind is `CreateFileSystemError::InternalServerError`.
398    pub fn is_internal_server_error(&self) -> bool {
399        matches!(self, Self::InternalServerError(_))
400    }
401    /// Returns `true` if the error kind is `CreateFileSystemError::ThroughputLimitExceeded`.
402    pub fn is_throughput_limit_exceeded(&self) -> bool {
403        matches!(self, Self::ThroughputLimitExceeded(_))
404    }
405    /// Returns `true` if the error kind is `CreateFileSystemError::UnsupportedAvailabilityZone`.
406    pub fn is_unsupported_availability_zone(&self) -> bool {
407        matches!(self, Self::UnsupportedAvailabilityZone(_))
408    }
409}
410impl ::std::error::Error for CreateFileSystemError {
411    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
412        match self {
413            Self::BadRequest(_inner) => ::std::option::Option::Some(_inner),
414            Self::FileSystemAlreadyExists(_inner) => ::std::option::Option::Some(_inner),
415            Self::FileSystemLimitExceeded(_inner) => ::std::option::Option::Some(_inner),
416            Self::InsufficientThroughputCapacity(_inner) => ::std::option::Option::Some(_inner),
417            Self::InternalServerError(_inner) => ::std::option::Option::Some(_inner),
418            Self::ThroughputLimitExceeded(_inner) => ::std::option::Option::Some(_inner),
419            Self::UnsupportedAvailabilityZone(_inner) => ::std::option::Option::Some(_inner),
420            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
421        }
422    }
423}
424impl ::std::fmt::Display for CreateFileSystemError {
425    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
426        match self {
427            Self::BadRequest(_inner) => _inner.fmt(f),
428            Self::FileSystemAlreadyExists(_inner) => _inner.fmt(f),
429            Self::FileSystemLimitExceeded(_inner) => _inner.fmt(f),
430            Self::InsufficientThroughputCapacity(_inner) => _inner.fmt(f),
431            Self::InternalServerError(_inner) => _inner.fmt(f),
432            Self::ThroughputLimitExceeded(_inner) => _inner.fmt(f),
433            Self::UnsupportedAvailabilityZone(_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 CreateFileSystemError {
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 CreateFileSystemError {
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::FileSystemAlreadyExists(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
457            Self::FileSystemLimitExceeded(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
458            Self::InsufficientThroughputCapacity(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
459            Self::InternalServerError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
460            Self::ThroughputLimitExceeded(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
461            Self::UnsupportedAvailabilityZone(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
462            Self::Unhandled(_inner) => &_inner.meta,
463        }
464    }
465}
466impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateFileSystemError {
467    fn create_unhandled_error(
468        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
469        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
470    ) -> Self {
471        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
472            source,
473            meta: meta.unwrap_or_default(),
474        })
475    }
476}
477impl ::aws_types::request_id::RequestId for crate::operation::create_file_system::CreateFileSystemError {
478    fn request_id(&self) -> Option<&str> {
479        self.meta().request_id()
480    }
481}
482
483pub use crate::operation::create_file_system::_create_file_system_input::CreateFileSystemInput;
484
485pub use crate::operation::create_file_system::_create_file_system_output::CreateFileSystemOutput;
486
487mod _create_file_system_input;
488
489mod _create_file_system_output;
490
491/// Builders
492pub mod builders;