Skip to main content

aws_sdk_signin/operation/
delete_resource_permission_statement.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `DeleteResourcePermissionStatement`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct DeleteResourcePermissionStatement;
6impl DeleteResourcePermissionStatement {
7    /// Creates a new `DeleteResourcePermissionStatement`
8    pub fn new() -> Self {
9        Self
10    }
11    pub(crate) async fn orchestrate(
12                        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
13                        input: crate::operation::delete_resource_permission_statement::DeleteResourcePermissionStatementInput,
14                    ) -> ::std::result::Result<crate::operation::delete_resource_permission_statement::DeleteResourcePermissionStatementOutput, ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::delete_resource_permission_statement::DeleteResourcePermissionStatementError, ::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::delete_resource_permission_statement::DeleteResourcePermissionStatementError>().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::delete_resource_permission_statement::DeleteResourcePermissionStatementOutput>().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::delete_resource_permission_statement::DeleteResourcePermissionStatementInput,
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                            "DeleteResourcePermissionStatement",
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.DeleteResourcePermissionStatement",
45                                "rpc.service" = "Signin",
46                                "rpc.method" = "DeleteResourcePermissionStatement",
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                        runtime_plugins = runtime_plugins
60                                        .with_operation_plugin(crate::client_idempotency_token::IdempotencyTokenRuntimePlugin::new(|token_provider, input| {
61                                    let input: &mut crate::operation::delete_resource_permission_statement::DeleteResourcePermissionStatementInput = input.downcast_mut().expect("correct type");
62                                    if input.client_token.is_none() {
63                                        input.client_token = ::std::option::Option::Some(token_provider.make_idempotency_token());
64                                    }
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(
71                                crate::config::ConfigOverrideRuntimePlugin::new(config_override, client_config.config.clone(), &client_config.runtime_components)
72                            );
73                        }
74                        runtime_plugins
75                    }
76}
77impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for DeleteResourcePermissionStatement {
78                fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
79                    let mut cfg = ::aws_smithy_types::config_bag::Layer::new("DeleteResourcePermissionStatement");
80
81                    cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(DeleteResourcePermissionStatementRequestSerializer));
82                    cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(DeleteResourcePermissionStatementResponseDeserializer));
83
84                    cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
85                        crate::config::auth::Params::builder()
86                            .operation_name("DeleteResourcePermissionStatement")
87                            .build()
88                            .expect("required fields set")
89                    ));
90
91                    cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
92                            "DeleteResourcePermissionStatement",
93                            "Signin",
94                        ));
95let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
96                            signing_options.double_uri_encode = true;
97                            signing_options.content_sha256_header = false;
98                            signing_options.normalize_uri_path = true;
99                            signing_options.payload_override = None;
100
101                            cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
102                                signing_options,
103                                ..::std::default::Default::default()
104                            });
105
106                    ::std::option::Option::Some(cfg.freeze())
107                }
108
109                fn runtime_components(&self, _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
110                    #[allow(unused_mut)]
111                    let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("DeleteResourcePermissionStatement")
112                            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(DeleteResourcePermissionStatementTelemetryInputCaptureInterceptor))
113.with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default()))
114.with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(DeleteResourcePermissionStatementEndpointParamsInterceptor))
115                            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<crate::operation::delete_resource_permission_statement::DeleteResourcePermissionStatementError>::new())
116.with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<crate::operation::delete_resource_permission_statement::DeleteResourcePermissionStatementError>::new())
117.with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<crate::operation::delete_resource_permission_statement::DeleteResourcePermissionStatementError>::new());
118
119                    ::std::borrow::Cow::Owned(rcb)
120                }
121            }
122
123            #[derive(Debug)]
124            struct DeleteResourcePermissionStatementTelemetryInputCaptureInterceptor;
125
126            #[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
127            impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DeleteResourcePermissionStatementTelemetryInputCaptureInterceptor {
128                fn name(&self) -> &'static str {
129                    "DeleteResourcePermissionStatementTelemetryInputCaptureInterceptor"
130                }
131
132                fn read_before_execution(
133                    &self,
134                    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>,
135                    cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
136                ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
137                    // Nothing to do unless the customer opted in by naming members to record.
138                    let ::std::option::Option::Some(requested) = cfg.load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>().filter(|r| !r.is_empty()) else {
139                        return ::std::result::Result::Ok(());
140                    };
141
142                    let ::std::option::Option::Some(input) = context.input().downcast_ref::<DeleteResourcePermissionStatementInput>() else {
143                        // A mismatched input is not this interceptor's concern; skip quietly.
144                        return ::std::result::Result::Ok(());
145                    };
146
147                    let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
148                    if requested.should_capture("statementId") {
149                        if let ::std::option::Option::Some(value) = input.statement_id.as_deref() {
150                            captured.insert("statementId", value);
151                        }
152                    }
153if requested.should_capture("clientToken") {
154                        if let ::std::option::Option::Some(value) = input.client_token.as_deref() {
155                            captured.insert("clientToken", value);
156                        }
157                    }
158
159                    cfg.interceptor_state().store_put(captured);
160                    ::std::result::Result::Ok(())
161                }
162            }
163#[derive(Debug)]
164            struct DeleteResourcePermissionStatementResponseDeserializer;
165            impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for DeleteResourcePermissionStatementResponseDeserializer {
166
167
168                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 {
169                    let (success, status) = (response.status().is_success(), response.status().as_u16());
170            let headers = response.headers();
171            let body = response.body().bytes().expect("body loaded");
172            #[allow(unused_mut)]
173            let mut force_error = false;
174            ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
175            let parse_result = if !success && status != 200 || force_error {
176                crate::protocol_serde::shape_delete_resource_permission_statement::de_delete_resource_permission_statement_http_error(status, headers, body)
177            } else {
178                crate::protocol_serde::shape_delete_resource_permission_statement::de_delete_resource_permission_statement_http_response(status, headers, body)
179            };
180            crate::protocol_serde::type_erase_result(parse_result)
181                }
182            }
183#[derive(Debug)]
184            struct DeleteResourcePermissionStatementRequestSerializer;
185            impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for DeleteResourcePermissionStatementRequestSerializer {
186                #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
187                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> {
188                    let input = input.downcast::<crate::operation::delete_resource_permission_statement::DeleteResourcePermissionStatementInput>().expect("correct type");
189                    let _header_serialization_settings = _cfg.load::<crate::serialization_settings::HeaderSerializationSettings>().cloned().unwrap_or_default();
190                    let mut request_builder = {
191                        #[allow(clippy::uninlined_format_args)]
192fn uri_base(_input: &crate::operation::delete_resource_permission_statement::DeleteResourcePermissionStatementInput, output: &mut ::std::string::String) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
193    use ::std::fmt::Write as _;
194    ::std::write!(output, "/delete-resource-permission-statement").expect("formatting should succeed");
195    ::std::result::Result::Ok(())
196}
197#[allow(clippy::unnecessary_wraps)]
198fn update_http_builder(
199                input: &crate::operation::delete_resource_permission_statement::DeleteResourcePermissionStatementInput,
200                builder: ::http_1x::request::Builder
201            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
202    let mut uri = ::std::string::String::new();
203    uri_base(input, &mut uri)?;
204    ::std::result::Result::Ok(builder.method("POST").uri(uri))
205}
206let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
207builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/json");
208builder
209                    };
210                    let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_delete_resource_permission_statement::ser_delete_resource_permission_statement_input(&input)?);
211                    if let Some(content_length) = body.content_length() {
212                                let content_length = content_length.to_string();
213                                request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
214                            }
215                    ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
216                }
217            }
218#[derive(Debug)]
219            struct DeleteResourcePermissionStatementEndpointParamsInterceptor;
220
221            #[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
222            impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DeleteResourcePermissionStatementEndpointParamsInterceptor {
223                fn name(&self) -> &'static str {
224                    "DeleteResourcePermissionStatementEndpointParamsInterceptor"
225                }
226
227                fn read_before_execution(
228                    &self,
229                    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>,
230                    cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
231                ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
232                    let _input = context.input()
233                        .downcast_ref::<DeleteResourcePermissionStatementInput>()
234                        .ok_or("failed to downcast to DeleteResourcePermissionStatementInput")?;
235
236
237
238                    let params = crate::config::endpoint::Params::builder()
239                        .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
240.set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
241.set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
242.set_region(cfg.load::<::aws_types::region::Region>().map(|r|r.as_ref().to_owned()))
243.set_is_control_plane(Some(true))
244                        .build()
245                        .map_err(|err| ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err))?;
246                    cfg.interceptor_state().store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
247                    ::std::result::Result::Ok(())
248                }
249            }
250
251            // The get_* functions below are generated from JMESPath expressions in the
252            // operationContextParams trait. They target the operation's input shape.
253
254
255
256/// Error type for the `DeleteResourcePermissionStatementError` operation.
257#[non_exhaustive]
258#[derive(::std::fmt::Debug)]
259pub enum DeleteResourcePermissionStatementError {
260    /// 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.
261    AccessDeniedException(crate::types::error::AccessDeniedException),
262    /// 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.
263    InternalServerException(crate::types::error::InternalServerException),
264    /// Error thrown when requested resource is not found HTTP Status Code: 404 Not Found Used when the specified resource does not exist
265    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
266    /// 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
267    TooManyRequestsError(crate::types::error::TooManyRequestsError),
268    /// 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.
269    ValidationException(crate::types::error::ValidationException),
270    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
271                    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
272    variable wildcard pattern and check `.code()`:
273     \
274    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
275     \
276    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-DeleteResourcePermissionStatementError) for what information is available for the error.")]
277                    Unhandled(crate::error::sealed_unhandled::Unhandled),
278}
279impl DeleteResourcePermissionStatementError {
280    /// Creates the `DeleteResourcePermissionStatementError::Unhandled` variant from any error type.
281                    pub fn unhandled(err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>) -> Self {
282                        Self::Unhandled(crate::error::sealed_unhandled::Unhandled { source: err.into(), meta: ::std::default::Default::default() })
283                    }
284
285                    /// Creates the `DeleteResourcePermissionStatementError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
286                    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
287                        Self::Unhandled(crate::error::sealed_unhandled::Unhandled { source: err.clone().into(), meta: err })
288                    }
289    ///
290    /// Returns error metadata, which includes the error code, message,
291    /// request ID, and potentially additional information.
292    ///
293    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
294        match self {
295            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
296            Self::InternalServerException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
297            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
298            Self::TooManyRequestsError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
299            Self::ValidationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
300            Self::Unhandled(e) => &e.meta,
301        }
302    }
303    /// Returns `true` if the error kind is `DeleteResourcePermissionStatementError::AccessDeniedException`.
304    pub fn is_access_denied_exception(&self) -> bool {
305        matches!(self, Self::AccessDeniedException(_))
306    }
307    /// Returns `true` if the error kind is `DeleteResourcePermissionStatementError::InternalServerException`.
308    pub fn is_internal_server_exception(&self) -> bool {
309        matches!(self, Self::InternalServerException(_))
310    }
311    /// Returns `true` if the error kind is `DeleteResourcePermissionStatementError::ResourceNotFoundException`.
312    pub fn is_resource_not_found_exception(&self) -> bool {
313        matches!(self, Self::ResourceNotFoundException(_))
314    }
315    /// Returns `true` if the error kind is `DeleteResourcePermissionStatementError::TooManyRequestsError`.
316    pub fn is_too_many_requests_error(&self) -> bool {
317        matches!(self, Self::TooManyRequestsError(_))
318    }
319    /// Returns `true` if the error kind is `DeleteResourcePermissionStatementError::ValidationException`.
320    pub fn is_validation_exception(&self) -> bool {
321        matches!(self, Self::ValidationException(_))
322    }
323}
324impl ::std::error::Error for DeleteResourcePermissionStatementError {
325    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
326        match self {
327            Self::AccessDeniedException(_inner) =>
328            ::std::option::Option::Some(_inner)
329            ,
330            Self::InternalServerException(_inner) =>
331            ::std::option::Option::Some(_inner)
332            ,
333            Self::ResourceNotFoundException(_inner) =>
334            ::std::option::Option::Some(_inner)
335            ,
336            Self::TooManyRequestsError(_inner) =>
337            ::std::option::Option::Some(_inner)
338            ,
339            Self::ValidationException(_inner) =>
340            ::std::option::Option::Some(_inner)
341            ,
342            Self::Unhandled(_inner) => {
343                ::std::option::Option::Some(&*_inner.source)
344            }
345        }
346    }
347}
348impl ::std::fmt::Display for DeleteResourcePermissionStatementError {
349    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
350        match self {
351            Self::AccessDeniedException(_inner) =>
352            _inner.fmt(f)
353            ,
354            Self::InternalServerException(_inner) =>
355            _inner.fmt(f)
356            ,
357            Self::ResourceNotFoundException(_inner) =>
358            _inner.fmt(f)
359            ,
360            Self::TooManyRequestsError(_inner) =>
361            _inner.fmt(f)
362            ,
363            Self::ValidationException(_inner) =>
364            _inner.fmt(f)
365            ,
366            Self::Unhandled(_inner) => {
367                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
368                                                        write!(f, "unhandled error ({code})")
369                                                    } else {
370                                                        f.write_str("unhandled error")
371                                                    }
372            }
373        }
374    }
375}
376impl ::aws_smithy_types::retry::ProvideErrorKind for DeleteResourcePermissionStatementError {
377    fn code(&self) -> ::std::option::Option<&str> {
378        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
379    }
380    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
381        ::std::option::Option::None
382    }
383}
384impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for DeleteResourcePermissionStatementError {
385    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
386        match self {
387            Self::AccessDeniedException(_inner) =>
388            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
389            ,
390            Self::InternalServerException(_inner) =>
391            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
392            ,
393            Self::ResourceNotFoundException(_inner) =>
394            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
395            ,
396            Self::TooManyRequestsError(_inner) =>
397            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
398            ,
399            Self::ValidationException(_inner) =>
400            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
401            ,
402            Self::Unhandled(_inner) => {
403                &_inner.meta
404            }
405        }
406    }
407}
408impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for DeleteResourcePermissionStatementError {
409    fn create_unhandled_error(
410                        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
411                        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>
412                    ) -> Self {
413        Self::Unhandled(crate::error::sealed_unhandled::Unhandled { source, meta: meta.unwrap_or_default() })
414    }
415}
416impl ::aws_types::request_id::RequestId for crate::operation::delete_resource_permission_statement::DeleteResourcePermissionStatementError {
417                                fn request_id(&self) -> Option<&str> {
418                                    self.meta().request_id()
419                                }
420                            }
421
422pub use crate::operation::delete_resource_permission_statement::_delete_resource_permission_statement_input::DeleteResourcePermissionStatementInput;
423
424pub use crate::operation::delete_resource_permission_statement::_delete_resource_permission_statement_output::DeleteResourcePermissionStatementOutput;
425
426mod _delete_resource_permission_statement_input;
427
428mod _delete_resource_permission_statement_output;
429
430/// Builders
431pub mod builders;
432