aws_sdk_quicksight/operation/
list_group_memberships.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `ListGroupMemberships`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct ListGroupMemberships;
6impl ListGroupMemberships {
7    /// Creates a new `ListGroupMemberships`
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::list_group_memberships::ListGroupMembershipsInput,
14    ) -> ::std::result::Result<
15        crate::operation::list_group_memberships::ListGroupMembershipsOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::list_group_memberships::ListGroupMembershipsError,
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::list_group_memberships::ListGroupMembershipsError>()
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::list_group_memberships::ListGroupMembershipsOutput>()
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::list_group_memberships::ListGroupMembershipsInput,
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", "ListGroupMemberships", 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.ListGroupMemberships",
59                "rpc.service" = "QuickSight",
60                "rpc.method" = "ListGroupMemberships",
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 ListGroupMemberships {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("ListGroupMemberships");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            ListGroupMembershipsRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            ListGroupMembershipsResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("ListGroupMemberships")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
106            "ListGroupMemberships",
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("ListGroupMemberships")
129            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
130            .with_interceptor(ListGroupMembershipsEndpointParamsInterceptor)
131            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
132                crate::operation::list_group_memberships::ListGroupMembershipsError,
133            >::new())
134            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
135                crate::operation::list_group_memberships::ListGroupMembershipsError,
136            >::new())
137            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
138                crate::operation::list_group_memberships::ListGroupMembershipsError,
139            >::new());
140
141        ::std::borrow::Cow::Owned(rcb)
142    }
143}
144
145#[derive(Debug)]
146struct ListGroupMembershipsResponseDeserializer;
147impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for ListGroupMembershipsResponseDeserializer {
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_list_group_memberships::de_list_group_memberships_http_error(status, headers, body)
160        } else {
161            crate::protocol_serde::shape_list_group_memberships::de_list_group_memberships_http_response(status, headers, body)
162        };
163        crate::protocol_serde::type_erase_result(parse_result)
164    }
165}
166#[derive(Debug)]
167struct ListGroupMembershipsRequestSerializer;
168impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for ListGroupMembershipsRequestSerializer {
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::list_group_memberships::ListGroupMembershipsInput>()
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::list_group_memberships::ListGroupMembershipsInput,
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.namespace;
200                let input_2 = input_2
201                    .as_ref()
202                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("namespace", "cannot be empty or unset"))?;
203                let namespace = ::aws_smithy_http::label::fmt_string(input_2, ::aws_smithy_http::label::EncodingStrategy::Default);
204                if namespace.is_empty() {
205                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
206                        "namespace",
207                        "cannot be empty or unset",
208                    ));
209                }
210                let input_3 = &_input.group_name;
211                let input_3 = input_3
212                    .as_ref()
213                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("group_name", "cannot be empty or unset"))?;
214                let group_name = ::aws_smithy_http::label::fmt_string(input_3, ::aws_smithy_http::label::EncodingStrategy::Default);
215                if group_name.is_empty() {
216                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
217                        "group_name",
218                        "cannot be empty or unset",
219                    ));
220                }
221                ::std::write!(
222                    output,
223                    "/accounts/{AwsAccountId}/namespaces/{Namespace}/groups/{GroupName}/members",
224                    AwsAccountId = aws_account_id,
225                    Namespace = namespace,
226                    GroupName = group_name
227                )
228                .expect("formatting should succeed");
229                ::std::result::Result::Ok(())
230            }
231            fn uri_query(
232                _input: &crate::operation::list_group_memberships::ListGroupMembershipsInput,
233                mut output: &mut ::std::string::String,
234            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
235                let mut query = ::aws_smithy_http::query::Writer::new(output);
236                if let ::std::option::Option::Some(inner_4) = &_input.next_token {
237                    {
238                        query.push_kv("next-token", &::aws_smithy_http::query::fmt_string(inner_4));
239                    }
240                }
241                if let ::std::option::Option::Some(inner_5) = &_input.max_results {
242                    {
243                        query.push_kv("max-results", ::aws_smithy_types::primitive::Encoder::from(*inner_5).encode());
244                    }
245                }
246                ::std::result::Result::Ok(())
247            }
248            #[allow(clippy::unnecessary_wraps)]
249            fn update_http_builder(
250                input: &crate::operation::list_group_memberships::ListGroupMembershipsInput,
251                builder: ::http::request::Builder,
252            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
253                let mut uri = ::std::string::String::new();
254                uri_base(input, &mut uri)?;
255                uri_query(input, &mut uri)?;
256                ::std::result::Result::Ok(builder.method("GET").uri(uri))
257            }
258            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
259            builder
260        };
261        let body = ::aws_smithy_types::body::SdkBody::from("");
262
263        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
264    }
265}
266#[derive(Debug)]
267struct ListGroupMembershipsEndpointParamsInterceptor;
268
269impl ::aws_smithy_runtime_api::client::interceptors::Intercept for ListGroupMembershipsEndpointParamsInterceptor {
270    fn name(&self) -> &'static str {
271        "ListGroupMembershipsEndpointParamsInterceptor"
272    }
273
274    fn read_before_execution(
275        &self,
276        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
277            '_,
278            ::aws_smithy_runtime_api::client::interceptors::context::Input,
279            ::aws_smithy_runtime_api::client::interceptors::context::Output,
280            ::aws_smithy_runtime_api::client::interceptors::context::Error,
281        >,
282        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
283    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
284        let _input = context
285            .input()
286            .downcast_ref::<ListGroupMembershipsInput>()
287            .ok_or("failed to downcast to ListGroupMembershipsInput")?;
288
289        let params = crate::config::endpoint::Params::builder()
290            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
291            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
292            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
293            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
294            .build()
295            .map_err(|err| {
296                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
297            })?;
298        cfg.interceptor_state()
299            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
300        ::std::result::Result::Ok(())
301    }
302}
303
304// The get_* functions below are generated from JMESPath expressions in the
305// operationContextParams trait. They target the operation's input shape.
306
307/// Error type for the `ListGroupMembershipsError` operation.
308#[non_exhaustive]
309#[derive(::std::fmt::Debug)]
310pub enum ListGroupMembershipsError {
311    /// <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>
312    AccessDeniedException(crate::types::error::AccessDeniedException),
313    /// <p>An internal failure occurred.</p>
314    InternalFailureException(crate::types::error::InternalFailureException),
315    /// <p>The <code>NextToken</code> value isn't valid.</p>
316    InvalidNextTokenException(crate::types::error::InvalidNextTokenException),
317    /// <p>One or more parameters has a value that isn't valid.</p>
318    InvalidParameterValueException(crate::types::error::InvalidParameterValueException),
319    /// <p>One or more preconditions aren't met.</p>
320    PreconditionNotMetException(crate::types::error::PreconditionNotMetException),
321    /// <p>One or more resources can't be found.</p>
322    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
323    /// <p>This resource is currently unavailable.</p>
324    ResourceUnavailableException(crate::types::error::ResourceUnavailableException),
325    /// <p>Access is throttled.</p>
326    ThrottlingException(crate::types::error::ThrottlingException),
327    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
328    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
329    variable wildcard pattern and check `.code()`:
330     \
331    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
332     \
333    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-ListGroupMembershipsError) for what information is available for the error.")]
334    Unhandled(crate::error::sealed_unhandled::Unhandled),
335}
336impl ListGroupMembershipsError {
337    /// Creates the `ListGroupMembershipsError::Unhandled` variant from any error type.
338    pub fn unhandled(
339        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
340    ) -> Self {
341        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
342            source: err.into(),
343            meta: ::std::default::Default::default(),
344        })
345    }
346
347    /// Creates the `ListGroupMembershipsError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
348    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
349        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
350            source: err.clone().into(),
351            meta: err,
352        })
353    }
354    ///
355    /// Returns error metadata, which includes the error code, message,
356    /// request ID, and potentially additional information.
357    ///
358    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
359        match self {
360            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
361            Self::InternalFailureException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
362            Self::InvalidNextTokenException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
363            Self::InvalidParameterValueException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
364            Self::PreconditionNotMetException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
365            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
366            Self::ResourceUnavailableException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
367            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
368            Self::Unhandled(e) => &e.meta,
369        }
370    }
371    /// Returns `true` if the error kind is `ListGroupMembershipsError::AccessDeniedException`.
372    pub fn is_access_denied_exception(&self) -> bool {
373        matches!(self, Self::AccessDeniedException(_))
374    }
375    /// Returns `true` if the error kind is `ListGroupMembershipsError::InternalFailureException`.
376    pub fn is_internal_failure_exception(&self) -> bool {
377        matches!(self, Self::InternalFailureException(_))
378    }
379    /// Returns `true` if the error kind is `ListGroupMembershipsError::InvalidNextTokenException`.
380    pub fn is_invalid_next_token_exception(&self) -> bool {
381        matches!(self, Self::InvalidNextTokenException(_))
382    }
383    /// Returns `true` if the error kind is `ListGroupMembershipsError::InvalidParameterValueException`.
384    pub fn is_invalid_parameter_value_exception(&self) -> bool {
385        matches!(self, Self::InvalidParameterValueException(_))
386    }
387    /// Returns `true` if the error kind is `ListGroupMembershipsError::PreconditionNotMetException`.
388    pub fn is_precondition_not_met_exception(&self) -> bool {
389        matches!(self, Self::PreconditionNotMetException(_))
390    }
391    /// Returns `true` if the error kind is `ListGroupMembershipsError::ResourceNotFoundException`.
392    pub fn is_resource_not_found_exception(&self) -> bool {
393        matches!(self, Self::ResourceNotFoundException(_))
394    }
395    /// Returns `true` if the error kind is `ListGroupMembershipsError::ResourceUnavailableException`.
396    pub fn is_resource_unavailable_exception(&self) -> bool {
397        matches!(self, Self::ResourceUnavailableException(_))
398    }
399    /// Returns `true` if the error kind is `ListGroupMembershipsError::ThrottlingException`.
400    pub fn is_throttling_exception(&self) -> bool {
401        matches!(self, Self::ThrottlingException(_))
402    }
403}
404impl ::std::error::Error for ListGroupMembershipsError {
405    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
406        match self {
407            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
408            Self::InternalFailureException(_inner) => ::std::option::Option::Some(_inner),
409            Self::InvalidNextTokenException(_inner) => ::std::option::Option::Some(_inner),
410            Self::InvalidParameterValueException(_inner) => ::std::option::Option::Some(_inner),
411            Self::PreconditionNotMetException(_inner) => ::std::option::Option::Some(_inner),
412            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
413            Self::ResourceUnavailableException(_inner) => ::std::option::Option::Some(_inner),
414            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
415            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
416        }
417    }
418}
419impl ::std::fmt::Display for ListGroupMembershipsError {
420    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
421        match self {
422            Self::AccessDeniedException(_inner) => _inner.fmt(f),
423            Self::InternalFailureException(_inner) => _inner.fmt(f),
424            Self::InvalidNextTokenException(_inner) => _inner.fmt(f),
425            Self::InvalidParameterValueException(_inner) => _inner.fmt(f),
426            Self::PreconditionNotMetException(_inner) => _inner.fmt(f),
427            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
428            Self::ResourceUnavailableException(_inner) => _inner.fmt(f),
429            Self::ThrottlingException(_inner) => _inner.fmt(f),
430            Self::Unhandled(_inner) => {
431                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
432                    write!(f, "unhandled error ({code})")
433                } else {
434                    f.write_str("unhandled error")
435                }
436            }
437        }
438    }
439}
440impl ::aws_smithy_types::retry::ProvideErrorKind for ListGroupMembershipsError {
441    fn code(&self) -> ::std::option::Option<&str> {
442        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
443    }
444    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
445        ::std::option::Option::None
446    }
447}
448impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for ListGroupMembershipsError {
449    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
450        match self {
451            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
452            Self::InternalFailureException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
453            Self::InvalidNextTokenException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
454            Self::InvalidParameterValueException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
455            Self::PreconditionNotMetException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
456            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
457            Self::ResourceUnavailableException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
458            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
459            Self::Unhandled(_inner) => &_inner.meta,
460        }
461    }
462}
463impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for ListGroupMembershipsError {
464    fn create_unhandled_error(
465        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
466        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
467    ) -> Self {
468        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
469            source,
470            meta: meta.unwrap_or_default(),
471        })
472    }
473}
474impl ::aws_types::request_id::RequestId for crate::operation::list_group_memberships::ListGroupMembershipsError {
475    fn request_id(&self) -> Option<&str> {
476        self.meta().request_id()
477    }
478}
479
480pub use crate::operation::list_group_memberships::_list_group_memberships_output::ListGroupMembershipsOutput;
481
482pub use crate::operation::list_group_memberships::_list_group_memberships_input::ListGroupMembershipsInput;
483
484mod _list_group_memberships_input;
485
486mod _list_group_memberships_output;
487
488/// Builders
489pub mod builders;
490
491/// Paginator for this operation
492pub mod paginator;