aws_sdk_quicksight/operation/
list_role_memberships.rs

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