Skip to main content

aws_sdk_signin/operation/
list_resource_permission_statements.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `ListResourcePermissionStatements`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct ListResourcePermissionStatements;
6impl ListResourcePermissionStatements {
7    /// Creates a new `ListResourcePermissionStatements`
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_resource_permission_statements::ListResourcePermissionStatementsInput,
14                    ) -> ::std::result::Result<crate::operation::list_resource_permission_statements::ListResourcePermissionStatementsOutput, ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::list_resource_permission_statements::ListResourcePermissionStatementsError, ::aws_smithy_runtime_api::client::orchestrator::HttpResponse>> {
15                        let map_err = |err: ::aws_smithy_runtime_api::client::result::SdkError<::aws_smithy_runtime_api::client::interceptors::context::Error, ::aws_smithy_runtime_api::client::orchestrator::HttpResponse>| {
16                            err.map_service_error(|err| {
17                                err.downcast::<crate::operation::list_resource_permission_statements::ListResourcePermissionStatementsError>().expect("correct error type")
18                            })
19                        };
20                        let context = Self::orchestrate_with_stop_point(runtime_plugins, input, ::aws_smithy_runtime::client::orchestrator::StopPoint::None)
21                            .await
22                            .map_err(map_err)?;
23                        let output = context.finalize().map_err(map_err)?;
24                        ::std::result::Result::Ok(output.downcast::<crate::operation::list_resource_permission_statements::ListResourcePermissionStatementsOutput>().expect("correct output type"))
25                    }
26
27                    pub(crate) async fn orchestrate_with_stop_point(
28                        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
29                        input: crate::operation::list_resource_permission_statements::ListResourcePermissionStatementsInput,
30                        stop_point: ::aws_smithy_runtime::client::orchestrator::StopPoint,
31                    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::interceptors::context::InterceptorContext, ::aws_smithy_runtime_api::client::result::SdkError<::aws_smithy_runtime_api::client::interceptors::context::Error, ::aws_smithy_runtime_api::client::orchestrator::HttpResponse>> {
32                        let input = ::aws_smithy_runtime_api::client::interceptors::context::Input::erase(input);
33                        use ::tracing::Instrument;
34                        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point(
35                            "Signin",
36                            "ListResourcePermissionStatements",
37                            input,
38                            runtime_plugins,
39                            stop_point
40                        )
41                        // Create a parent span for the entire operation. Includes a random, internal-only,
42                        // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
43                        .instrument(::tracing::debug_span!(
44                                "Signin.ListResourcePermissionStatements",
45                                "rpc.service" = "Signin",
46                                "rpc.method" = "ListResourcePermissionStatements",
47                                "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
48                                "rpc.system" = "aws-api",
49                            ))
50                        .await
51                    }
52
53                    pub(crate) fn operation_runtime_plugins(
54                        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
55                        client_config: &crate::config::Config,
56                        config_override: ::std::option::Option<crate::config::Builder>,
57                    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
58                        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
59
60                        if let ::std::option::Option::Some(config_override) = config_override {
61                            for plugin in config_override.runtime_plugins.iter().cloned() {
62                                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
63                            }
64                            runtime_plugins = runtime_plugins.with_operation_plugin(
65                                crate::config::ConfigOverrideRuntimePlugin::new(config_override, client_config.config.clone(), &client_config.runtime_components)
66                            );
67                        }
68                        runtime_plugins
69                    }
70}
71impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for ListResourcePermissionStatements {
72                fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
73                    let mut cfg = ::aws_smithy_types::config_bag::Layer::new("ListResourcePermissionStatements");
74
75                    cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(ListResourcePermissionStatementsRequestSerializer));
76                    cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(ListResourcePermissionStatementsResponseDeserializer));
77
78                    cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
79                        crate::config::auth::Params::builder()
80                            .operation_name("ListResourcePermissionStatements")
81                            .build()
82                            .expect("required fields set")
83                    ));
84
85                    cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
86                            "ListResourcePermissionStatements",
87                            "Signin",
88                        ));
89let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
90                            signing_options.double_uri_encode = true;
91                            signing_options.content_sha256_header = false;
92                            signing_options.normalize_uri_path = true;
93                            signing_options.payload_override = None;
94
95                            cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
96                                signing_options,
97                                ..::std::default::Default::default()
98                            });
99
100                    ::std::option::Option::Some(cfg.freeze())
101                }
102
103                fn runtime_components(&self, _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
104                    #[allow(unused_mut)]
105                    let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("ListResourcePermissionStatements")
106                            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(ListResourcePermissionStatementsTelemetryInputCaptureInterceptor))
107.with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default()))
108.with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(ListResourcePermissionStatementsEndpointParamsInterceptor))
109                            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<crate::operation::list_resource_permission_statements::ListResourcePermissionStatementsError>::new())
110.with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<crate::operation::list_resource_permission_statements::ListResourcePermissionStatementsError>::new())
111.with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<crate::operation::list_resource_permission_statements::ListResourcePermissionStatementsError>::new())
112.with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<crate::operation::list_resource_permission_statements::ListResourcePermissionStatementsError>::new());
113
114                    ::std::borrow::Cow::Owned(rcb)
115                }
116            }
117
118            #[derive(Debug)]
119            struct ListResourcePermissionStatementsTelemetryInputCaptureInterceptor;
120
121            #[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
122            impl ::aws_smithy_runtime_api::client::interceptors::Intercept for ListResourcePermissionStatementsTelemetryInputCaptureInterceptor {
123                fn name(&self) -> &'static str {
124                    "ListResourcePermissionStatementsTelemetryInputCaptureInterceptor"
125                }
126
127                fn read_before_execution(
128                    &self,
129                    context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<'_, ::aws_smithy_runtime_api::client::interceptors::context::Input, ::aws_smithy_runtime_api::client::interceptors::context::Output, ::aws_smithy_runtime_api::client::interceptors::context::Error>,
130                    cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
131                ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
132                    // Nothing to do unless the customer opted in by naming members to record.
133                    let ::std::option::Option::Some(requested) = cfg.load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>().filter(|r| !r.is_empty()) else {
134                        return ::std::result::Result::Ok(());
135                    };
136
137                    let ::std::option::Option::Some(input) = context.input().downcast_ref::<ListResourcePermissionStatementsInput>() else {
138                        // A mismatched input is not this interceptor's concern; skip quietly.
139                        return ::std::result::Result::Ok(());
140                    };
141
142                    let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
143                    if requested.should_capture("nextToken") {
144                            if let ::std::option::Option::Some(value) = input.next_token.as_deref() {
145                                captured.insert("nextToken", value);
146                            }
147                        }
148
149                    cfg.interceptor_state().store_put(captured);
150                    ::std::result::Result::Ok(())
151                }
152            }
153#[derive(Debug)]
154            struct ListResourcePermissionStatementsResponseDeserializer;
155            impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for ListResourcePermissionStatementsResponseDeserializer {
156
157
158                fn deserialize_nonstreaming_with_config(&self, response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse, _cfg: &::aws_smithy_types::config_bag::ConfigBag) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
159                    let (success, status) = (response.status().is_success(), response.status().as_u16());
160            let headers = response.headers();
161            let body = response.body().bytes().expect("body loaded");
162            #[allow(unused_mut)]
163            let mut force_error = false;
164            ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
165            let parse_result = if !success && status != 200 || force_error {
166                crate::protocol_serde::shape_list_resource_permission_statements::de_list_resource_permission_statements_http_error(status, headers, body, _cfg)
167            } else {
168                crate::protocol_serde::shape_list_resource_permission_statements::de_list_resource_permission_statements_http_response(status, headers, body, _cfg)
169            };
170            crate::protocol_serde::type_erase_result(parse_result)
171                }
172            }
173#[derive(Debug)]
174            struct ListResourcePermissionStatementsRequestSerializer;
175            impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for ListResourcePermissionStatementsRequestSerializer {
176                #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
177                fn serialize_input(&self, input: ::aws_smithy_runtime_api::client::interceptors::context::Input, _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
178                    let input = input.downcast::<crate::operation::list_resource_permission_statements::ListResourcePermissionStatementsInput>().expect("correct type");
179                    let _header_serialization_settings = _cfg.load::<crate::serialization_settings::HeaderSerializationSettings>().cloned().unwrap_or_default();
180                    let mut request_builder = {
181                        #[allow(clippy::uninlined_format_args)]
182fn uri_base(_input: &crate::operation::list_resource_permission_statements::ListResourcePermissionStatementsInput, output: &mut ::std::string::String) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
183    use ::std::fmt::Write as _;
184    ::std::write!(output, "/list-resource-permission-statements").expect("formatting should succeed");
185    ::std::result::Result::Ok(())
186}
187#[allow(clippy::unnecessary_wraps)]
188fn update_http_builder(
189                input: &crate::operation::list_resource_permission_statements::ListResourcePermissionStatementsInput,
190                builder: ::http_1x::request::Builder
191            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
192    let mut uri = ::std::string::String::new();
193    uri_base(input, &mut uri)?;
194    ::std::result::Result::Ok(builder.method("POST").uri(uri))
195}
196let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
197builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/json");
198builder
199                    };
200                    let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_list_resource_permission_statements::ser_list_resource_permission_statements_input(&input)?);
201                    if let Some(content_length) = body.content_length() {
202                                let content_length = content_length.to_string();
203                                request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
204                            }
205                    ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
206                }
207            }
208#[derive(Debug)]
209            struct ListResourcePermissionStatementsEndpointParamsInterceptor;
210
211            #[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
212            impl ::aws_smithy_runtime_api::client::interceptors::Intercept for ListResourcePermissionStatementsEndpointParamsInterceptor {
213                fn name(&self) -> &'static str {
214                    "ListResourcePermissionStatementsEndpointParamsInterceptor"
215                }
216
217                fn read_before_execution(
218                    &self,
219                    context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<'_, ::aws_smithy_runtime_api::client::interceptors::context::Input, ::aws_smithy_runtime_api::client::interceptors::context::Output, ::aws_smithy_runtime_api::client::interceptors::context::Error>,
220                    cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
221                ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
222                    let _input = context.input()
223                        .downcast_ref::<ListResourcePermissionStatementsInput>()
224                        .ok_or("failed to downcast to ListResourcePermissionStatementsInput")?;
225
226
227
228                    let params = crate::config::endpoint::Params::builder()
229                        .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
230.set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
231.set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
232.set_region(cfg.load::<::aws_types::region::Region>().map(|r|r.as_ref().to_owned()))
233.set_is_control_plane(Some(true))
234                        .build()
235                        .map_err(|err| ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err))?;
236                    cfg.interceptor_state().store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
237                    ::std::result::Result::Ok(())
238                }
239            }
240
241            // The get_* functions below are generated from JMESPath expressions in the
242            // operationContextParams trait. They target the operation's input shape.
243
244
245
246/// Error type for the `ListResourcePermissionStatementsError` operation.
247#[non_exhaustive]
248#[derive(::std::fmt::Debug)]
249pub enum ListResourcePermissionStatementsError {
250    /// Error thrown for access denied scenarios with flexible HTTP status mapping Runtime HTTP Status Code Mapping: - HTTP 401 (Unauthorized): TOKEN_EXPIRED, AUTHCODE_EXPIRED - HTTP 403 (Forbidden): USER_CREDENTIALS_CHANGED, INSUFFICIENT_PERMISSIONS The specific HTTP status code is determined at runtime based on the error enum value. Consumers should use the error field to determine the specific access denial reason.
251    AccessDeniedException(crate::types::error::AccessDeniedException),
252    /// Error thrown when an internal server error occurs HTTP Status Code: 500 Internal Server Error Used for unexpected server-side errors that prevent request processing.
253    InternalServerException(crate::types::error::InternalServerException),
254    /// Error thrown when requested resource is not found HTTP Status Code: 404 Not Found Used when the specified resource does not exist
255    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
256    /// Error thrown when rate limit is exceeded HTTP Status Code: 429 Too Many Requests Possible OAuth2ErrorCode values: - INVALID_REQUEST: Rate limiting, too many requests, abuse prevention Possible causes: - Too many token requests from the same client - Rate limiting based on client_id or IP address - Abuse prevention mechanisms triggered - Service protection against excessive token generation
257    TooManyRequestsError(crate::types::error::TooManyRequestsError),
258    /// Error thrown when request validation fails HTTP Status Code: 400 Bad Request Used for request validation errors such as malformed parameters, missing required fields, or invalid parameter values.
259    ValidationException(crate::types::error::ValidationException),
260    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
261                    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
262    variable wildcard pattern and check `.code()`:
263     \
264    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
265     \
266    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-ListResourcePermissionStatementsError) for what information is available for the error.")]
267                    Unhandled(crate::error::sealed_unhandled::Unhandled),
268}
269impl ListResourcePermissionStatementsError {
270    /// Creates the `ListResourcePermissionStatementsError::Unhandled` variant from any error type.
271                    pub fn unhandled(err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>) -> Self {
272                        Self::Unhandled(crate::error::sealed_unhandled::Unhandled { source: err.into(), meta: ::std::default::Default::default() })
273                    }
274
275                    /// Creates the `ListResourcePermissionStatementsError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
276                    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
277                        Self::Unhandled(crate::error::sealed_unhandled::Unhandled { source: err.clone().into(), meta: err })
278                    }
279    ///
280    /// Returns error metadata, which includes the error code, message,
281    /// request ID, and potentially additional information.
282    ///
283    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
284        match self {
285            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
286            Self::InternalServerException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
287            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
288            Self::TooManyRequestsError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
289            Self::ValidationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
290            Self::Unhandled(e) => &e.meta,
291        }
292    }
293    /// Returns `true` if the error kind is `ListResourcePermissionStatementsError::AccessDeniedException`.
294    pub fn is_access_denied_exception(&self) -> bool {
295        matches!(self, Self::AccessDeniedException(_))
296    }
297    /// Returns `true` if the error kind is `ListResourcePermissionStatementsError::InternalServerException`.
298    pub fn is_internal_server_exception(&self) -> bool {
299        matches!(self, Self::InternalServerException(_))
300    }
301    /// Returns `true` if the error kind is `ListResourcePermissionStatementsError::ResourceNotFoundException`.
302    pub fn is_resource_not_found_exception(&self) -> bool {
303        matches!(self, Self::ResourceNotFoundException(_))
304    }
305    /// Returns `true` if the error kind is `ListResourcePermissionStatementsError::TooManyRequestsError`.
306    pub fn is_too_many_requests_error(&self) -> bool {
307        matches!(self, Self::TooManyRequestsError(_))
308    }
309    /// Returns `true` if the error kind is `ListResourcePermissionStatementsError::ValidationException`.
310    pub fn is_validation_exception(&self) -> bool {
311        matches!(self, Self::ValidationException(_))
312    }
313}
314impl ::std::error::Error for ListResourcePermissionStatementsError {
315    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
316        match self {
317            Self::AccessDeniedException(_inner) =>
318            ::std::option::Option::Some(_inner)
319            ,
320            Self::InternalServerException(_inner) =>
321            ::std::option::Option::Some(_inner)
322            ,
323            Self::ResourceNotFoundException(_inner) =>
324            ::std::option::Option::Some(_inner)
325            ,
326            Self::TooManyRequestsError(_inner) =>
327            ::std::option::Option::Some(_inner)
328            ,
329            Self::ValidationException(_inner) =>
330            ::std::option::Option::Some(_inner)
331            ,
332            Self::Unhandled(_inner) => {
333                ::std::option::Option::Some(&*_inner.source)
334            }
335        }
336    }
337}
338impl ::std::fmt::Display for ListResourcePermissionStatementsError {
339    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
340        match self {
341            Self::AccessDeniedException(_inner) =>
342            _inner.fmt(f)
343            ,
344            Self::InternalServerException(_inner) =>
345            _inner.fmt(f)
346            ,
347            Self::ResourceNotFoundException(_inner) =>
348            _inner.fmt(f)
349            ,
350            Self::TooManyRequestsError(_inner) =>
351            _inner.fmt(f)
352            ,
353            Self::ValidationException(_inner) =>
354            _inner.fmt(f)
355            ,
356            Self::Unhandled(_inner) => {
357                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
358                                                        write!(f, "unhandled error ({code})")
359                                                    } else {
360                                                        f.write_str("unhandled error")
361                                                    }
362            }
363        }
364    }
365}
366impl ::aws_smithy_types::retry::ProvideErrorKind for ListResourcePermissionStatementsError {
367    fn code(&self) -> ::std::option::Option<&str> {
368        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
369    }
370    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
371        ::std::option::Option::None
372    }
373}
374impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for ListResourcePermissionStatementsError {
375    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
376        match self {
377            Self::AccessDeniedException(_inner) =>
378            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
379            ,
380            Self::InternalServerException(_inner) =>
381            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
382            ,
383            Self::ResourceNotFoundException(_inner) =>
384            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
385            ,
386            Self::TooManyRequestsError(_inner) =>
387            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
388            ,
389            Self::ValidationException(_inner) =>
390            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
391            ,
392            Self::Unhandled(_inner) => {
393                &_inner.meta
394            }
395        }
396    }
397}
398impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for ListResourcePermissionStatementsError {
399    fn create_unhandled_error(
400                        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
401                        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>
402                    ) -> Self {
403        Self::Unhandled(crate::error::sealed_unhandled::Unhandled { source, meta: meta.unwrap_or_default() })
404    }
405}
406impl ::aws_types::request_id::RequestId for crate::operation::list_resource_permission_statements::ListResourcePermissionStatementsError {
407                                fn request_id(&self) -> Option<&str> {
408                                    self.meta().request_id()
409                                }
410                            }
411
412pub use crate::operation::list_resource_permission_statements::_list_resource_permission_statements_input::ListResourcePermissionStatementsInput;
413
414pub use crate::operation::list_resource_permission_statements::_list_resource_permission_statements_output::ListResourcePermissionStatementsOutput;
415
416mod _list_resource_permission_statements_input;
417
418mod _list_resource_permission_statements_output;
419
420/// Builders
421pub mod builders;
422
423/// Paginator for this operation
424pub mod paginator;
425