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            #[allow(clippy::uninlined_format_args)]
192            fn uri_base(
193                _input: &crate::operation::batch_delete_topic_reviewed_answer::BatchDeleteTopicReviewedAnswerInput,
194                output: &mut ::std::string::String,
195            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
196                use ::std::fmt::Write as _;
197                let input_1 = &_input.aws_account_id;
198                let input_1 = input_1
199                    .as_ref()
200                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("aws_account_id", "cannot be empty or unset"))?;
201                let aws_account_id = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Default);
202                if aws_account_id.is_empty() {
203                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
204                        "aws_account_id",
205                        "cannot be empty or unset",
206                    ));
207                }
208                let input_2 = &_input.topic_id;
209                let input_2 = input_2
210                    .as_ref()
211                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("topic_id", "cannot be empty or unset"))?;
212                let topic_id = ::aws_smithy_http::label::fmt_string(input_2, ::aws_smithy_http::label::EncodingStrategy::Default);
213                if topic_id.is_empty() {
214                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
215                        "topic_id",
216                        "cannot be empty or unset",
217                    ));
218                }
219                ::std::write!(
220                    output,
221                    "/accounts/{AwsAccountId}/topics/{TopicId}/batch-delete-reviewed-answers",
222                    AwsAccountId = aws_account_id,
223                    TopicId = topic_id
224                )
225                .expect("formatting should succeed");
226                ::std::result::Result::Ok(())
227            }
228            #[allow(clippy::unnecessary_wraps)]
229            fn update_http_builder(
230                input: &crate::operation::batch_delete_topic_reviewed_answer::BatchDeleteTopicReviewedAnswerInput,
231                builder: ::http::request::Builder,
232            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
233                let mut uri = ::std::string::String::new();
234                uri_base(input, &mut uri)?;
235                ::std::result::Result::Ok(builder.method("POST").uri(uri))
236            }
237            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
238            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/json");
239            builder
240        };
241        let body = ::aws_smithy_types::body::SdkBody::from(
242            crate::protocol_serde::shape_batch_delete_topic_reviewed_answer::ser_batch_delete_topic_reviewed_answer_input(&input)?,
243        );
244        if let Some(content_length) = body.content_length() {
245            let content_length = content_length.to_string();
246            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
247        }
248        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
249    }
250}
251#[derive(Debug)]
252struct BatchDeleteTopicReviewedAnswerEndpointParamsInterceptor;
253
254impl ::aws_smithy_runtime_api::client::interceptors::Intercept for BatchDeleteTopicReviewedAnswerEndpointParamsInterceptor {
255    fn name(&self) -> &'static str {
256        "BatchDeleteTopicReviewedAnswerEndpointParamsInterceptor"
257    }
258
259    fn read_before_execution(
260        &self,
261        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
262            '_,
263            ::aws_smithy_runtime_api::client::interceptors::context::Input,
264            ::aws_smithy_runtime_api::client::interceptors::context::Output,
265            ::aws_smithy_runtime_api::client::interceptors::context::Error,
266        >,
267        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
268    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
269        let _input = context
270            .input()
271            .downcast_ref::<BatchDeleteTopicReviewedAnswerInput>()
272            .ok_or("failed to downcast to BatchDeleteTopicReviewedAnswerInput")?;
273
274        let params = crate::config::endpoint::Params::builder()
275            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
276            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
277            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
278            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
279            .build()
280            .map_err(|err| {
281                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
282            })?;
283        cfg.interceptor_state()
284            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
285        ::std::result::Result::Ok(())
286    }
287}
288
289// The get_* functions below are generated from JMESPath expressions in the
290// operationContextParams trait. They target the operation's input shape.
291
292/// Error type for the `BatchDeleteTopicReviewedAnswerError` operation.
293#[non_exhaustive]
294#[derive(::std::fmt::Debug)]
295pub enum BatchDeleteTopicReviewedAnswerError {
296    /// <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 Quick Sight service, that your policies have the correct permissions, and that you are using the correct credentials.</p>
297    AccessDeniedException(crate::types::error::AccessDeniedException),
298    /// <p>Updating or deleting a resource can cause an inconsistent state.</p>
299    ConflictException(crate::types::error::ConflictException),
300    /// <p>An internal failure occurred.</p>
301    InternalFailureException(crate::types::error::InternalFailureException),
302    /// <p>One or more parameters has a value that isn't valid.</p>
303    InvalidParameterValueException(crate::types::error::InvalidParameterValueException),
304    /// <p>One or more resources can't be found.</p>
305    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
306    /// <p>Access is throttled.</p>
307    ThrottlingException(crate::types::error::ThrottlingException),
308    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
309    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
310    variable wildcard pattern and check `.code()`:
311     \
312    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
313     \
314    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-BatchDeleteTopicReviewedAnswerError) for what information is available for the error.")]
315    Unhandled(crate::error::sealed_unhandled::Unhandled),
316}
317impl BatchDeleteTopicReviewedAnswerError {
318    /// Creates the `BatchDeleteTopicReviewedAnswerError::Unhandled` variant from any error type.
319    pub fn unhandled(
320        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
321    ) -> Self {
322        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
323            source: err.into(),
324            meta: ::std::default::Default::default(),
325        })
326    }
327
328    /// Creates the `BatchDeleteTopicReviewedAnswerError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
329    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
330        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
331            source: err.clone().into(),
332            meta: err,
333        })
334    }
335    ///
336    /// Returns error metadata, which includes the error code, message,
337    /// request ID, and potentially additional information.
338    ///
339    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
340        match self {
341            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
342            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
343            Self::InternalFailureException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
344            Self::InvalidParameterValueException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
345            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
346            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
347            Self::Unhandled(e) => &e.meta,
348        }
349    }
350    /// Returns `true` if the error kind is `BatchDeleteTopicReviewedAnswerError::AccessDeniedException`.
351    pub fn is_access_denied_exception(&self) -> bool {
352        matches!(self, Self::AccessDeniedException(_))
353    }
354    /// Returns `true` if the error kind is `BatchDeleteTopicReviewedAnswerError::ConflictException`.
355    pub fn is_conflict_exception(&self) -> bool {
356        matches!(self, Self::ConflictException(_))
357    }
358    /// Returns `true` if the error kind is `BatchDeleteTopicReviewedAnswerError::InternalFailureException`.
359    pub fn is_internal_failure_exception(&self) -> bool {
360        matches!(self, Self::InternalFailureException(_))
361    }
362    /// Returns `true` if the error kind is `BatchDeleteTopicReviewedAnswerError::InvalidParameterValueException`.
363    pub fn is_invalid_parameter_value_exception(&self) -> bool {
364        matches!(self, Self::InvalidParameterValueException(_))
365    }
366    /// Returns `true` if the error kind is `BatchDeleteTopicReviewedAnswerError::ResourceNotFoundException`.
367    pub fn is_resource_not_found_exception(&self) -> bool {
368        matches!(self, Self::ResourceNotFoundException(_))
369    }
370    /// Returns `true` if the error kind is `BatchDeleteTopicReviewedAnswerError::ThrottlingException`.
371    pub fn is_throttling_exception(&self) -> bool {
372        matches!(self, Self::ThrottlingException(_))
373    }
374}
375impl ::std::error::Error for BatchDeleteTopicReviewedAnswerError {
376    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
377        match self {
378            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
379            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
380            Self::InternalFailureException(_inner) => ::std::option::Option::Some(_inner),
381            Self::InvalidParameterValueException(_inner) => ::std::option::Option::Some(_inner),
382            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
383            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
384            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
385        }
386    }
387}
388impl ::std::fmt::Display for BatchDeleteTopicReviewedAnswerError {
389    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
390        match self {
391            Self::AccessDeniedException(_inner) => _inner.fmt(f),
392            Self::ConflictException(_inner) => _inner.fmt(f),
393            Self::InternalFailureException(_inner) => _inner.fmt(f),
394            Self::InvalidParameterValueException(_inner) => _inner.fmt(f),
395            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
396            Self::ThrottlingException(_inner) => _inner.fmt(f),
397            Self::Unhandled(_inner) => {
398                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
399                    write!(f, "unhandled error ({code})")
400                } else {
401                    f.write_str("unhandled error")
402                }
403            }
404        }
405    }
406}
407impl ::aws_smithy_types::retry::ProvideErrorKind for BatchDeleteTopicReviewedAnswerError {
408    fn code(&self) -> ::std::option::Option<&str> {
409        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
410    }
411    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
412        ::std::option::Option::None
413    }
414}
415impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for BatchDeleteTopicReviewedAnswerError {
416    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
417        match self {
418            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
419            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
420            Self::InternalFailureException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
421            Self::InvalidParameterValueException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
422            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
423            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
424            Self::Unhandled(_inner) => &_inner.meta,
425        }
426    }
427}
428impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for BatchDeleteTopicReviewedAnswerError {
429    fn create_unhandled_error(
430        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
431        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
432    ) -> Self {
433        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
434            source,
435            meta: meta.unwrap_or_default(),
436        })
437    }
438}
439impl ::aws_types::request_id::RequestId for crate::operation::batch_delete_topic_reviewed_answer::BatchDeleteTopicReviewedAnswerError {
440    fn request_id(&self) -> Option<&str> {
441        self.meta().request_id()
442    }
443}
444
445pub use crate::operation::batch_delete_topic_reviewed_answer::_batch_delete_topic_reviewed_answer_output::BatchDeleteTopicReviewedAnswerOutput;
446
447pub use crate::operation::batch_delete_topic_reviewed_answer::_batch_delete_topic_reviewed_answer_input::BatchDeleteTopicReviewedAnswerInput;
448
449mod _batch_delete_topic_reviewed_answer_input;
450
451mod _batch_delete_topic_reviewed_answer_output;
452
453/// Builders
454pub mod builders;