aws_sdk_quicksight/operation/
batch_delete_topic_reviewed_answer.rs

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