aws_sdk_quicksight/operation/
delete_folder_membership.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `DeleteFolderMembership`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct DeleteFolderMembership;
6impl DeleteFolderMembership {
7    /// Creates a new `DeleteFolderMembership`
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::delete_folder_membership::DeleteFolderMembershipInput,
14    ) -> ::std::result::Result<
15        crate::operation::delete_folder_membership::DeleteFolderMembershipOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::delete_folder_membership::DeleteFolderMembershipError,
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::delete_folder_membership::DeleteFolderMembershipError>()
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::delete_folder_membership::DeleteFolderMembershipOutput>()
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::delete_folder_membership::DeleteFolderMembershipInput,
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("QuickSight", "DeleteFolderMembership", 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                "QuickSight.DeleteFolderMembership",
59                "rpc.service" = "QuickSight",
60                "rpc.method" = "DeleteFolderMembership",
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
74        if let ::std::option::Option::Some(config_override) = config_override {
75            for plugin in config_override.runtime_plugins.iter().cloned() {
76                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
77            }
78            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
79                config_override,
80                client_config.config.clone(),
81                &client_config.runtime_components,
82            ));
83        }
84        runtime_plugins
85    }
86}
87impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for DeleteFolderMembership {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("DeleteFolderMembership");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            DeleteFolderMembershipRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            DeleteFolderMembershipResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("DeleteFolderMembership")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
106            "DeleteFolderMembership",
107            "QuickSight",
108        ));
109        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
110        signing_options.double_uri_encode = true;
111        signing_options.content_sha256_header = false;
112        signing_options.normalize_uri_path = true;
113        signing_options.payload_override = None;
114
115        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
116            signing_options,
117            ..::std::default::Default::default()
118        });
119
120        ::std::option::Option::Some(cfg.freeze())
121    }
122
123    fn runtime_components(
124        &self,
125        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
126    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
127        #[allow(unused_mut)]
128        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("DeleteFolderMembership")
129            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
130            .with_interceptor(DeleteFolderMembershipEndpointParamsInterceptor)
131            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
132                crate::operation::delete_folder_membership::DeleteFolderMembershipError,
133            >::new())
134            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
135                crate::operation::delete_folder_membership::DeleteFolderMembershipError,
136            >::new())
137            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
138                crate::operation::delete_folder_membership::DeleteFolderMembershipError,
139            >::new());
140
141        ::std::borrow::Cow::Owned(rcb)
142    }
143}
144
145#[derive(Debug)]
146struct DeleteFolderMembershipResponseDeserializer;
147impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for DeleteFolderMembershipResponseDeserializer {
148    fn deserialize_nonstreaming(
149        &self,
150        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
151    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
152        let (success, status) = (response.status().is_success(), response.status().as_u16());
153        let headers = response.headers();
154        let body = response.body().bytes().expect("body loaded");
155        #[allow(unused_mut)]
156        let mut force_error = false;
157        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
158        let parse_result = if !success && status != 200 || force_error {
159            crate::protocol_serde::shape_delete_folder_membership::de_delete_folder_membership_http_error(status, headers, body)
160        } else {
161            crate::protocol_serde::shape_delete_folder_membership::de_delete_folder_membership_http_response(status, headers, body)
162        };
163        crate::protocol_serde::type_erase_result(parse_result)
164    }
165}
166#[derive(Debug)]
167struct DeleteFolderMembershipRequestSerializer;
168impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for DeleteFolderMembershipRequestSerializer {
169    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
170    fn serialize_input(
171        &self,
172        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
173        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
174    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
175        let input = input
176            .downcast::<crate::operation::delete_folder_membership::DeleteFolderMembershipInput>()
177            .expect("correct type");
178        let _header_serialization_settings = _cfg
179            .load::<crate::serialization_settings::HeaderSerializationSettings>()
180            .cloned()
181            .unwrap_or_default();
182        let mut request_builder = {
183            fn uri_base(
184                _input: &crate::operation::delete_folder_membership::DeleteFolderMembershipInput,
185                output: &mut ::std::string::String,
186            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
187                use ::std::fmt::Write as _;
188                let input_1 = &_input.aws_account_id;
189                let input_1 = input_1
190                    .as_ref()
191                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("aws_account_id", "cannot be empty or unset"))?;
192                let aws_account_id = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Default);
193                if aws_account_id.is_empty() {
194                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
195                        "aws_account_id",
196                        "cannot be empty or unset",
197                    ));
198                }
199                let input_2 = &_input.folder_id;
200                let input_2 = input_2
201                    .as_ref()
202                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("folder_id", "cannot be empty or unset"))?;
203                let folder_id = ::aws_smithy_http::label::fmt_string(input_2, ::aws_smithy_http::label::EncodingStrategy::Default);
204                if folder_id.is_empty() {
205                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
206                        "folder_id",
207                        "cannot be empty or unset",
208                    ));
209                }
210                let input_3 = &_input.member_type;
211                let input_3 = input_3
212                    .as_ref()
213                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("member_type", "cannot be empty or unset"))?;
214                let member_type = ::aws_smithy_http::label::fmt_string(input_3, ::aws_smithy_http::label::EncodingStrategy::Default);
215                if member_type.is_empty() {
216                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
217                        "member_type",
218                        "cannot be empty or unset",
219                    ));
220                }
221                let input_4 = &_input.member_id;
222                let input_4 = input_4
223                    .as_ref()
224                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("member_id", "cannot be empty or unset"))?;
225                let member_id = ::aws_smithy_http::label::fmt_string(input_4, ::aws_smithy_http::label::EncodingStrategy::Default);
226                if member_id.is_empty() {
227                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
228                        "member_id",
229                        "cannot be empty or unset",
230                    ));
231                }
232                ::std::write!(
233                    output,
234                    "/accounts/{AwsAccountId}/folders/{FolderId}/members/{MemberType}/{MemberId}",
235                    AwsAccountId = aws_account_id,
236                    FolderId = folder_id,
237                    MemberType = member_type,
238                    MemberId = member_id
239                )
240                .expect("formatting should succeed");
241                ::std::result::Result::Ok(())
242            }
243            #[allow(clippy::unnecessary_wraps)]
244            fn update_http_builder(
245                input: &crate::operation::delete_folder_membership::DeleteFolderMembershipInput,
246                builder: ::http::request::Builder,
247            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
248                let mut uri = ::std::string::String::new();
249                uri_base(input, &mut uri)?;
250                ::std::result::Result::Ok(builder.method("DELETE").uri(uri))
251            }
252            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
253            builder
254        };
255        let body = ::aws_smithy_types::body::SdkBody::from("");
256
257        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
258    }
259}
260#[derive(Debug)]
261struct DeleteFolderMembershipEndpointParamsInterceptor;
262
263impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DeleteFolderMembershipEndpointParamsInterceptor {
264    fn name(&self) -> &'static str {
265        "DeleteFolderMembershipEndpointParamsInterceptor"
266    }
267
268    fn read_before_execution(
269        &self,
270        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
271            '_,
272            ::aws_smithy_runtime_api::client::interceptors::context::Input,
273            ::aws_smithy_runtime_api::client::interceptors::context::Output,
274            ::aws_smithy_runtime_api::client::interceptors::context::Error,
275        >,
276        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
277    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
278        let _input = context
279            .input()
280            .downcast_ref::<DeleteFolderMembershipInput>()
281            .ok_or("failed to downcast to DeleteFolderMembershipInput")?;
282
283        let params = crate::config::endpoint::Params::builder()
284            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
285            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
286            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
287            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
288            .build()
289            .map_err(|err| {
290                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
291            })?;
292        cfg.interceptor_state()
293            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
294        ::std::result::Result::Ok(())
295    }
296}
297
298// The get_* functions below are generated from JMESPath expressions in the
299// operationContextParams trait. They target the operation's input shape.
300
301/// Error type for the `DeleteFolderMembershipError` operation.
302#[non_exhaustive]
303#[derive(::std::fmt::Debug)]
304pub enum DeleteFolderMembershipError {
305    /// <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>
306    AccessDeniedException(crate::types::error::AccessDeniedException),
307    /// <p>An internal failure occurred.</p>
308    InternalFailureException(crate::types::error::InternalFailureException),
309    /// <p>One or more parameters has a value that isn't valid.</p>
310    InvalidParameterValueException(crate::types::error::InvalidParameterValueException),
311    /// <p>One or more resources can't be found.</p>
312    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
313    /// <p>Access is throttled.</p>
314    ThrottlingException(crate::types::error::ThrottlingException),
315    /// <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>
316    UnsupportedUserEditionException(crate::types::error::UnsupportedUserEditionException),
317    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
318    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
319    variable wildcard pattern and check `.code()`:
320     \
321    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
322     \
323    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-DeleteFolderMembershipError) for what information is available for the error.")]
324    Unhandled(crate::error::sealed_unhandled::Unhandled),
325}
326impl DeleteFolderMembershipError {
327    /// Creates the `DeleteFolderMembershipError::Unhandled` variant from any error type.
328    pub fn unhandled(
329        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
330    ) -> Self {
331        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
332            source: err.into(),
333            meta: ::std::default::Default::default(),
334        })
335    }
336
337    /// Creates the `DeleteFolderMembershipError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
338    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
339        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
340            source: err.clone().into(),
341            meta: err,
342        })
343    }
344    ///
345    /// Returns error metadata, which includes the error code, message,
346    /// request ID, and potentially additional information.
347    ///
348    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
349        match self {
350            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
351            Self::InternalFailureException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
352            Self::InvalidParameterValueException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
353            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
354            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
355            Self::UnsupportedUserEditionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
356            Self::Unhandled(e) => &e.meta,
357        }
358    }
359    /// Returns `true` if the error kind is `DeleteFolderMembershipError::AccessDeniedException`.
360    pub fn is_access_denied_exception(&self) -> bool {
361        matches!(self, Self::AccessDeniedException(_))
362    }
363    /// Returns `true` if the error kind is `DeleteFolderMembershipError::InternalFailureException`.
364    pub fn is_internal_failure_exception(&self) -> bool {
365        matches!(self, Self::InternalFailureException(_))
366    }
367    /// Returns `true` if the error kind is `DeleteFolderMembershipError::InvalidParameterValueException`.
368    pub fn is_invalid_parameter_value_exception(&self) -> bool {
369        matches!(self, Self::InvalidParameterValueException(_))
370    }
371    /// Returns `true` if the error kind is `DeleteFolderMembershipError::ResourceNotFoundException`.
372    pub fn is_resource_not_found_exception(&self) -> bool {
373        matches!(self, Self::ResourceNotFoundException(_))
374    }
375    /// Returns `true` if the error kind is `DeleteFolderMembershipError::ThrottlingException`.
376    pub fn is_throttling_exception(&self) -> bool {
377        matches!(self, Self::ThrottlingException(_))
378    }
379    /// Returns `true` if the error kind is `DeleteFolderMembershipError::UnsupportedUserEditionException`.
380    pub fn is_unsupported_user_edition_exception(&self) -> bool {
381        matches!(self, Self::UnsupportedUserEditionException(_))
382    }
383}
384impl ::std::error::Error for DeleteFolderMembershipError {
385    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
386        match self {
387            Self::AccessDeniedException(_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::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
391            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
392            Self::UnsupportedUserEditionException(_inner) => ::std::option::Option::Some(_inner),
393            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
394        }
395    }
396}
397impl ::std::fmt::Display for DeleteFolderMembershipError {
398    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
399        match self {
400            Self::AccessDeniedException(_inner) => _inner.fmt(f),
401            Self::InternalFailureException(_inner) => _inner.fmt(f),
402            Self::InvalidParameterValueException(_inner) => _inner.fmt(f),
403            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
404            Self::ThrottlingException(_inner) => _inner.fmt(f),
405            Self::UnsupportedUserEditionException(_inner) => _inner.fmt(f),
406            Self::Unhandled(_inner) => {
407                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
408                    write!(f, "unhandled error ({code})")
409                } else {
410                    f.write_str("unhandled error")
411                }
412            }
413        }
414    }
415}
416impl ::aws_smithy_types::retry::ProvideErrorKind for DeleteFolderMembershipError {
417    fn code(&self) -> ::std::option::Option<&str> {
418        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
419    }
420    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
421        ::std::option::Option::None
422    }
423}
424impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for DeleteFolderMembershipError {
425    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
426        match self {
427            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
428            Self::InternalFailureException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
429            Self::InvalidParameterValueException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
430            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
431            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
432            Self::UnsupportedUserEditionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
433            Self::Unhandled(_inner) => &_inner.meta,
434        }
435    }
436}
437impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for DeleteFolderMembershipError {
438    fn create_unhandled_error(
439        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
440        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
441    ) -> Self {
442        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
443            source,
444            meta: meta.unwrap_or_default(),
445        })
446    }
447}
448impl ::aws_types::request_id::RequestId for crate::operation::delete_folder_membership::DeleteFolderMembershipError {
449    fn request_id(&self) -> Option<&str> {
450        self.meta().request_id()
451    }
452}
453
454pub use crate::operation::delete_folder_membership::_delete_folder_membership_output::DeleteFolderMembershipOutput;
455
456pub use crate::operation::delete_folder_membership::_delete_folder_membership_input::DeleteFolderMembershipInput;
457
458mod _delete_folder_membership_input;
459
460mod _delete_folder_membership_output;
461
462/// Builders
463pub mod builders;