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