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