aws_sdk_quicksight/operation/
create_folder.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `CreateFolder`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct CreateFolder;
6impl CreateFolder {
7    /// Creates a new `CreateFolder`
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_folder::CreateFolderInput,
14    ) -> ::std::result::Result<
15        crate::operation::create_folder::CreateFolderOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::create_folder::CreateFolderError,
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_folder::CreateFolderError>()
27                    .expect("correct error type")
28            })
29        };
30        use ::tracing::Instrument;
31        let context = Self::orchestrate_with_stop_point(runtime_plugins, input, ::aws_smithy_runtime::client::orchestrator::StopPoint::None)
32            // Create a parent span for the entire operation. Includes a random, internal-only,
33            // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
34            .instrument(::tracing::debug_span!(
35                "quicksight.CreateFolder",
36                "rpc.service" = "quicksight",
37                "rpc.method" = "CreateFolder",
38                "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
39                "rpc.system" = "aws-api",
40            ))
41            .await
42            .map_err(map_err)?;
43        let output = context.finalize().map_err(map_err)?;
44        ::std::result::Result::Ok(
45            output
46                .downcast::<crate::operation::create_folder::CreateFolderOutput>()
47                .expect("correct output type"),
48        )
49    }
50
51    pub(crate) async fn orchestrate_with_stop_point(
52        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
53        input: crate::operation::create_folder::CreateFolderInput,
54        stop_point: ::aws_smithy_runtime::client::orchestrator::StopPoint,
55    ) -> ::std::result::Result<
56        ::aws_smithy_runtime_api::client::interceptors::context::InterceptorContext,
57        ::aws_smithy_runtime_api::client::result::SdkError<
58            ::aws_smithy_runtime_api::client::interceptors::context::Error,
59            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
60        >,
61    > {
62        let input = ::aws_smithy_runtime_api::client::interceptors::context::Input::erase(input);
63        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point("quicksight", "CreateFolder", input, runtime_plugins, stop_point).await
64    }
65
66    pub(crate) fn operation_runtime_plugins(
67        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
68        client_config: &crate::config::Config,
69        config_override: ::std::option::Option<crate::config::Builder>,
70    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
71        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
72        runtime_plugins = runtime_plugins.with_client_plugin(crate::auth_plugin::DefaultAuthOptionsPlugin::new(vec![
73            ::aws_runtime::auth::sigv4::SCHEME_ID,
74        ]));
75        if let ::std::option::Option::Some(config_override) = config_override {
76            for plugin in config_override.runtime_plugins.iter().cloned() {
77                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
78            }
79            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
80                config_override,
81                client_config.config.clone(),
82                &client_config.runtime_components,
83            ));
84        }
85        runtime_plugins
86    }
87}
88impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for CreateFolder {
89    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
90        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("CreateFolder");
91
92        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
93            CreateFolderRequestSerializer,
94        ));
95        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
96            CreateFolderResponseDeserializer,
97        ));
98
99        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
100            ::aws_smithy_runtime_api::client::auth::static_resolver::StaticAuthSchemeOptionResolverParams::new(),
101        ));
102
103        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
104            "CreateFolder",
105            "quicksight",
106        ));
107        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
108        signing_options.double_uri_encode = true;
109        signing_options.content_sha256_header = false;
110        signing_options.normalize_uri_path = true;
111        signing_options.payload_override = None;
112
113        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
114            signing_options,
115            ..::std::default::Default::default()
116        });
117
118        ::std::option::Option::Some(cfg.freeze())
119    }
120
121    fn runtime_components(
122        &self,
123        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
124    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
125        #[allow(unused_mut)]
126        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("CreateFolder")
127            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
128            .with_interceptor(CreateFolderEndpointParamsInterceptor)
129            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
130                crate::operation::create_folder::CreateFolderError,
131            >::new())
132            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
133                crate::operation::create_folder::CreateFolderError,
134            >::new())
135            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
136                crate::operation::create_folder::CreateFolderError,
137            >::new());
138
139        ::std::borrow::Cow::Owned(rcb)
140    }
141}
142
143#[derive(Debug)]
144struct CreateFolderResponseDeserializer;
145impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateFolderResponseDeserializer {
146    fn deserialize_nonstreaming(
147        &self,
148        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
149    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
150        let (success, status) = (response.status().is_success(), response.status().as_u16());
151        let headers = response.headers();
152        let body = response.body().bytes().expect("body loaded");
153        #[allow(unused_mut)]
154        let mut force_error = false;
155        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
156        let parse_result = if !success && status != 200 || force_error {
157            crate::protocol_serde::shape_create_folder::de_create_folder_http_error(status, headers, body)
158        } else {
159            crate::protocol_serde::shape_create_folder::de_create_folder_http_response(status, headers, body)
160        };
161        crate::protocol_serde::type_erase_result(parse_result)
162    }
163}
164#[derive(Debug)]
165struct CreateFolderRequestSerializer;
166impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateFolderRequestSerializer {
167    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
168    fn serialize_input(
169        &self,
170        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
171        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
172    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
173        let input = input
174            .downcast::<crate::operation::create_folder::CreateFolderInput>()
175            .expect("correct type");
176        let _header_serialization_settings = _cfg
177            .load::<crate::serialization_settings::HeaderSerializationSettings>()
178            .cloned()
179            .unwrap_or_default();
180        let mut request_builder = {
181            fn uri_base(
182                _input: &crate::operation::create_folder::CreateFolderInput,
183                output: &mut ::std::string::String,
184            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
185                use ::std::fmt::Write as _;
186                let input_1 = &_input.aws_account_id;
187                let input_1 = input_1
188                    .as_ref()
189                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("aws_account_id", "cannot be empty or unset"))?;
190                let aws_account_id = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Default);
191                if aws_account_id.is_empty() {
192                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
193                        "aws_account_id",
194                        "cannot be empty or unset",
195                    ));
196                }
197                let input_2 = &_input.folder_id;
198                let input_2 = input_2
199                    .as_ref()
200                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("folder_id", "cannot be empty or unset"))?;
201                let folder_id = ::aws_smithy_http::label::fmt_string(input_2, ::aws_smithy_http::label::EncodingStrategy::Default);
202                if folder_id.is_empty() {
203                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
204                        "folder_id",
205                        "cannot be empty or unset",
206                    ));
207                }
208                ::std::write!(
209                    output,
210                    "/accounts/{AwsAccountId}/folders/{FolderId}",
211                    AwsAccountId = aws_account_id,
212                    FolderId = folder_id
213                )
214                .expect("formatting should succeed");
215                ::std::result::Result::Ok(())
216            }
217            #[allow(clippy::unnecessary_wraps)]
218            fn update_http_builder(
219                input: &crate::operation::create_folder::CreateFolderInput,
220                builder: ::http::request::Builder,
221            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
222                let mut uri = ::std::string::String::new();
223                uri_base(input, &mut uri)?;
224                ::std::result::Result::Ok(builder.method("POST").uri(uri))
225            }
226            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
227            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/json");
228            builder
229        };
230        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_create_folder::ser_create_folder_input(&input)?);
231        if let Some(content_length) = body.content_length() {
232            let content_length = content_length.to_string();
233            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
234        }
235        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
236    }
237}
238#[derive(Debug)]
239struct CreateFolderEndpointParamsInterceptor;
240
241impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateFolderEndpointParamsInterceptor {
242    fn name(&self) -> &'static str {
243        "CreateFolderEndpointParamsInterceptor"
244    }
245
246    fn read_before_execution(
247        &self,
248        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
249            '_,
250            ::aws_smithy_runtime_api::client::interceptors::context::Input,
251            ::aws_smithy_runtime_api::client::interceptors::context::Output,
252            ::aws_smithy_runtime_api::client::interceptors::context::Error,
253        >,
254        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
255    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
256        let _input = context
257            .input()
258            .downcast_ref::<CreateFolderInput>()
259            .ok_or("failed to downcast to CreateFolderInput")?;
260
261        let params = crate::config::endpoint::Params::builder()
262            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
263            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
264            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
265            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
266            .build()
267            .map_err(|err| {
268                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
269            })?;
270        cfg.interceptor_state()
271            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
272        ::std::result::Result::Ok(())
273    }
274}
275
276// The get_* functions below are generated from JMESPath expressions in the
277// operationContextParams trait. They target the operation's input shape.
278
279/// Error type for the `CreateFolderError` operation.
280#[non_exhaustive]
281#[derive(::std::fmt::Debug)]
282pub enum CreateFolderError {
283    /// <p>You don't have access to this item. The provided credentials couldn't be validated. You might not be authorized to carry out the request. Make sure that your account is authorized to use the Amazon QuickSight service, that your policies have the correct permissions, and that you are using the correct credentials.</p>
284    AccessDeniedException(crate::types::error::AccessDeniedException),
285    /// <p>Updating or deleting a resource can cause an inconsistent state.</p>
286    ConflictException(crate::types::error::ConflictException),
287    /// <p>An internal failure occurred.</p>
288    InternalFailureException(crate::types::error::InternalFailureException),
289    /// <p>One or more parameters has a value that isn't valid.</p>
290    InvalidParameterValueException(crate::types::error::InvalidParameterValueException),
291    /// <p>A limit is exceeded.</p>
292    LimitExceededException(crate::types::error::LimitExceededException),
293    /// <p>The resource specified already exists.</p>
294    ResourceExistsException(crate::types::error::ResourceExistsException),
295    /// <p>One or more resources can't be found.</p>
296    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
297    /// <p>Access is throttled.</p>
298    ThrottlingException(crate::types::error::ThrottlingException),
299    /// <p>This error indicates that you are calling an operation on an Amazon QuickSight subscription where the edition doesn't include support for that operation. Amazon Amazon QuickSight currently has Standard Edition and Enterprise Edition. Not every operation and capability is available in every edition.</p>
300    UnsupportedUserEditionException(crate::types::error::UnsupportedUserEditionException),
301    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
302    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
303    variable wildcard pattern and check `.code()`:
304     \
305    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
306     \
307    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateFolderError) for what information is available for the error.")]
308    Unhandled(crate::error::sealed_unhandled::Unhandled),
309}
310impl CreateFolderError {
311    /// Creates the `CreateFolderError::Unhandled` variant from any error type.
312    pub fn unhandled(
313        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
314    ) -> Self {
315        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
316            source: err.into(),
317            meta: ::std::default::Default::default(),
318        })
319    }
320
321    /// Creates the `CreateFolderError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
322    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
323        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
324            source: err.clone().into(),
325            meta: err,
326        })
327    }
328    ///
329    /// Returns error metadata, which includes the error code, message,
330    /// request ID, and potentially additional information.
331    ///
332    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
333        match self {
334            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
335            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
336            Self::InternalFailureException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
337            Self::InvalidParameterValueException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
338            Self::LimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
339            Self::ResourceExistsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
340            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
341            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
342            Self::UnsupportedUserEditionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
343            Self::Unhandled(e) => &e.meta,
344        }
345    }
346    /// Returns `true` if the error kind is `CreateFolderError::AccessDeniedException`.
347    pub fn is_access_denied_exception(&self) -> bool {
348        matches!(self, Self::AccessDeniedException(_))
349    }
350    /// Returns `true` if the error kind is `CreateFolderError::ConflictException`.
351    pub fn is_conflict_exception(&self) -> bool {
352        matches!(self, Self::ConflictException(_))
353    }
354    /// Returns `true` if the error kind is `CreateFolderError::InternalFailureException`.
355    pub fn is_internal_failure_exception(&self) -> bool {
356        matches!(self, Self::InternalFailureException(_))
357    }
358    /// Returns `true` if the error kind is `CreateFolderError::InvalidParameterValueException`.
359    pub fn is_invalid_parameter_value_exception(&self) -> bool {
360        matches!(self, Self::InvalidParameterValueException(_))
361    }
362    /// Returns `true` if the error kind is `CreateFolderError::LimitExceededException`.
363    pub fn is_limit_exceeded_exception(&self) -> bool {
364        matches!(self, Self::LimitExceededException(_))
365    }
366    /// Returns `true` if the error kind is `CreateFolderError::ResourceExistsException`.
367    pub fn is_resource_exists_exception(&self) -> bool {
368        matches!(self, Self::ResourceExistsException(_))
369    }
370    /// Returns `true` if the error kind is `CreateFolderError::ResourceNotFoundException`.
371    pub fn is_resource_not_found_exception(&self) -> bool {
372        matches!(self, Self::ResourceNotFoundException(_))
373    }
374    /// Returns `true` if the error kind is `CreateFolderError::ThrottlingException`.
375    pub fn is_throttling_exception(&self) -> bool {
376        matches!(self, Self::ThrottlingException(_))
377    }
378    /// Returns `true` if the error kind is `CreateFolderError::UnsupportedUserEditionException`.
379    pub fn is_unsupported_user_edition_exception(&self) -> bool {
380        matches!(self, Self::UnsupportedUserEditionException(_))
381    }
382}
383impl ::std::error::Error for CreateFolderError {
384    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
385        match self {
386            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
387            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
388            Self::InternalFailureException(_inner) => ::std::option::Option::Some(_inner),
389            Self::InvalidParameterValueException(_inner) => ::std::option::Option::Some(_inner),
390            Self::LimitExceededException(_inner) => ::std::option::Option::Some(_inner),
391            Self::ResourceExistsException(_inner) => ::std::option::Option::Some(_inner),
392            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
393            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
394            Self::UnsupportedUserEditionException(_inner) => ::std::option::Option::Some(_inner),
395            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
396        }
397    }
398}
399impl ::std::fmt::Display for CreateFolderError {
400    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
401        match self {
402            Self::AccessDeniedException(_inner) => _inner.fmt(f),
403            Self::ConflictException(_inner) => _inner.fmt(f),
404            Self::InternalFailureException(_inner) => _inner.fmt(f),
405            Self::InvalidParameterValueException(_inner) => _inner.fmt(f),
406            Self::LimitExceededException(_inner) => _inner.fmt(f),
407            Self::ResourceExistsException(_inner) => _inner.fmt(f),
408            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
409            Self::ThrottlingException(_inner) => _inner.fmt(f),
410            Self::UnsupportedUserEditionException(_inner) => _inner.fmt(f),
411            Self::Unhandled(_inner) => {
412                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
413                    write!(f, "unhandled error ({code})")
414                } else {
415                    f.write_str("unhandled error")
416                }
417            }
418        }
419    }
420}
421impl ::aws_smithy_types::retry::ProvideErrorKind for CreateFolderError {
422    fn code(&self) -> ::std::option::Option<&str> {
423        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
424    }
425    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
426        ::std::option::Option::None
427    }
428}
429impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateFolderError {
430    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
431        match self {
432            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
433            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
434            Self::InternalFailureException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
435            Self::InvalidParameterValueException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
436            Self::LimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
437            Self::ResourceExistsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
438            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
439            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
440            Self::UnsupportedUserEditionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
441            Self::Unhandled(_inner) => &_inner.meta,
442        }
443    }
444}
445impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateFolderError {
446    fn create_unhandled_error(
447        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
448        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
449    ) -> Self {
450        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
451            source,
452            meta: meta.unwrap_or_default(),
453        })
454    }
455}
456impl ::aws_types::request_id::RequestId for crate::operation::create_folder::CreateFolderError {
457    fn request_id(&self) -> Option<&str> {
458        self.meta().request_id()
459    }
460}
461
462pub use crate::operation::create_folder::_create_folder_output::CreateFolderOutput;
463
464pub use crate::operation::create_folder::_create_folder_input::CreateFolderInput;
465
466mod _create_folder_input;
467
468mod _create_folder_output;
469
470/// Builders
471pub mod builders;