Skip to main content

aws_sdk_applicationdiscovery/operation/
stop_continuous_export.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `StopContinuousExport`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct StopContinuousExport;
6impl StopContinuousExport {
7    /// Creates a new `StopContinuousExport`
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::stop_continuous_export::StopContinuousExportInput,
14    ) -> ::std::result::Result<
15        crate::operation::stop_continuous_export::StopContinuousExportOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::stop_continuous_export::StopContinuousExportError,
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::stop_continuous_export::StopContinuousExportError>()
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::stop_continuous_export::StopContinuousExportOutput>()
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::stop_continuous_export::StopContinuousExportInput,
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            "Application Discovery Service",
56            "StopContinuousExport",
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            "Application Discovery Service.StopContinuousExport",
65            "rpc.service" = "Application Discovery Service",
66            "rpc.method" = "StopContinuousExport",
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 StopContinuousExport {
94    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
95        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("StopContinuousExport");
96
97        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
98            StopContinuousExportRequestSerializer,
99        ));
100        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
101            StopContinuousExportResponseDeserializer,
102        ));
103
104        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
105            crate::config::auth::Params::builder()
106                .operation_name("StopContinuousExport")
107                .build()
108                .expect("required fields set"),
109        ));
110
111        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
112            "StopContinuousExport",
113            "Application Discovery Service",
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("StopContinuousExport")
135            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
136                StopContinuousExportTelemetryInputCaptureInterceptor,
137            ))
138            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
139                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
140            ))
141            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
142                StopContinuousExportEndpointParamsInterceptor,
143            ))
144            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
145                crate::operation::stop_continuous_export::StopContinuousExportError,
146            >::new())
147            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
148                crate::operation::stop_continuous_export::StopContinuousExportError,
149            >::new())
150            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
151                crate::operation::stop_continuous_export::StopContinuousExportError,
152            >::new())
153            .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
154                crate::operation::stop_continuous_export::StopContinuousExportError,
155            >::new());
156
157        ::std::borrow::Cow::Owned(rcb)
158    }
159}
160
161#[derive(Debug)]
162struct StopContinuousExportTelemetryInputCaptureInterceptor;
163
164#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
165impl ::aws_smithy_runtime_api::client::interceptors::Intercept for StopContinuousExportTelemetryInputCaptureInterceptor {
166    fn name(&self) -> &'static str {
167        "StopContinuousExportTelemetryInputCaptureInterceptor"
168    }
169
170    fn read_before_execution(
171        &self,
172        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
173            '_,
174            ::aws_smithy_runtime_api::client::interceptors::context::Input,
175            ::aws_smithy_runtime_api::client::interceptors::context::Output,
176            ::aws_smithy_runtime_api::client::interceptors::context::Error,
177        >,
178        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
179    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
180        // Nothing to do unless the customer opted in by naming members to record.
181        let ::std::option::Option::Some(requested) = cfg
182            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
183            .filter(|r| !r.is_empty())
184        else {
185            return ::std::result::Result::Ok(());
186        };
187
188        let ::std::option::Option::Some(input) = context.input().downcast_ref::<StopContinuousExportInput>() else {
189            // A mismatched input is not this interceptor's concern; skip quietly.
190            return ::std::result::Result::Ok(());
191        };
192
193        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
194        if requested.should_capture("exportId") {
195            if let ::std::option::Option::Some(value) = input.export_id.as_deref() {
196                captured.insert("exportId", value);
197            }
198        }
199
200        cfg.interceptor_state().store_put(captured);
201        ::std::result::Result::Ok(())
202    }
203}
204#[derive(Debug)]
205struct StopContinuousExportResponseDeserializer;
206impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for StopContinuousExportResponseDeserializer {
207    fn deserialize_nonstreaming_with_config(
208        &self,
209        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
210        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
211    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
212        let (success, status) = (response.status().is_success(), response.status().as_u16());
213        let headers = response.headers();
214        let body = response.body().bytes().expect("body loaded");
215        #[allow(unused_mut)]
216        let mut force_error = false;
217        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
218        let parse_result = if !success && status != 200 || force_error {
219            crate::protocol_serde::shape_stop_continuous_export::de_stop_continuous_export_http_error(status, headers, body)
220        } else {
221            crate::protocol_serde::shape_stop_continuous_export::de_stop_continuous_export_http_response(status, headers, body)
222        };
223        crate::protocol_serde::type_erase_result(parse_result)
224    }
225}
226#[derive(Debug)]
227struct StopContinuousExportRequestSerializer;
228impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for StopContinuousExportRequestSerializer {
229    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
230    fn serialize_input(
231        &self,
232        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
233        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
234    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
235        let input = input
236            .downcast::<crate::operation::stop_continuous_export::StopContinuousExportInput>()
237            .expect("correct type");
238        let _header_serialization_settings = _cfg
239            .load::<crate::serialization_settings::HeaderSerializationSettings>()
240            .cloned()
241            .unwrap_or_default();
242        let mut request_builder = {
243            #[allow(clippy::uninlined_format_args)]
244            fn uri_base(
245                _input: &crate::operation::stop_continuous_export::StopContinuousExportInput,
246                output: &mut ::std::string::String,
247            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
248                use ::std::fmt::Write as _;
249                ::std::write!(output, "/").expect("formatting should succeed");
250                ::std::result::Result::Ok(())
251            }
252            #[allow(clippy::unnecessary_wraps)]
253            fn update_http_builder(
254                input: &crate::operation::stop_continuous_export::StopContinuousExportInput,
255                builder: ::http_1x::request::Builder,
256            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
257                let mut uri = ::std::string::String::new();
258                uri_base(input, &mut uri)?;
259                ::std::result::Result::Ok(builder.method("POST").uri(uri))
260            }
261            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
262            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
263            builder = _header_serialization_settings.set_default_header(
264                builder,
265                ::http_1x::header::HeaderName::from_static("x-amz-target"),
266                "AWSPoseidonService_V2015_11_01.StopContinuousExport",
267            );
268            builder
269        };
270        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_stop_continuous_export::ser_stop_continuous_export_input(
271            &input,
272        )?);
273        if let Some(content_length) = body.content_length() {
274            let content_length = content_length.to_string();
275            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
276        }
277        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
278    }
279}
280#[derive(Debug)]
281struct StopContinuousExportEndpointParamsInterceptor;
282
283#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
284impl ::aws_smithy_runtime_api::client::interceptors::Intercept for StopContinuousExportEndpointParamsInterceptor {
285    fn name(&self) -> &'static str {
286        "StopContinuousExportEndpointParamsInterceptor"
287    }
288
289    fn read_before_execution(
290        &self,
291        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
292            '_,
293            ::aws_smithy_runtime_api::client::interceptors::context::Input,
294            ::aws_smithy_runtime_api::client::interceptors::context::Output,
295            ::aws_smithy_runtime_api::client::interceptors::context::Error,
296        >,
297        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
298    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
299        let _input = context
300            .input()
301            .downcast_ref::<StopContinuousExportInput>()
302            .ok_or("failed to downcast to StopContinuousExportInput")?;
303
304        let params = crate::config::endpoint::Params::builder()
305            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
306            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
307            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
308            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
309            .build()
310            .map_err(|err| {
311                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
312            })?;
313        cfg.interceptor_state()
314            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
315        ::std::result::Result::Ok(())
316    }
317}
318
319// The get_* functions below are generated from JMESPath expressions in the
320// operationContextParams trait. They target the operation's input shape.
321
322/// Error type for the `StopContinuousExportError` operation.
323#[non_exhaustive]
324#[derive(::std::fmt::Debug)]
325pub enum StopContinuousExportError {
326    /// <p>The user does not have permission to perform the action. Check the IAM policy associated with this user.</p>
327    AuthorizationErrorException(crate::types::error::AuthorizationErrorException),
328    /// <p>The home Region is not set. Set the home Region to continue.</p>
329    HomeRegionNotSetException(crate::types::error::HomeRegionNotSetException),
330    /// <p>One or more parameters are not valid. Verify the parameters and try again.</p>
331    InvalidParameterException(crate::types::error::InvalidParameterException),
332    /// <p>The value of one or more parameters are either invalid or out of range. Verify the parameter values and try again.</p>
333    InvalidParameterValueException(crate::types::error::InvalidParameterValueException),
334    /// <p>This operation is not permitted.</p>
335    OperationNotPermittedException(crate::types::error::OperationNotPermittedException),
336    /// <p>This issue occurs when the same <code>clientRequestToken</code> is used with the <code>StartImportTask</code> action, but with different parameters. For example, you use the same request token but have two different import URLs, you can encounter this issue. If the import tasks are meant to be different, use a different <code>clientRequestToken</code>, and try again.</p>
337    ResourceInUseException(crate::types::error::ResourceInUseException),
338    /// <p>The specified configuration ID was not located. Verify the configuration ID and try again.</p>
339    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
340    /// <p>The server experienced an internal error. Try again.</p>
341    ServerInternalErrorException(crate::types::error::ServerInternalErrorException),
342    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
343    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
344    variable wildcard pattern and check `.code()`:
345     \
346    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
347     \
348    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-StopContinuousExportError) for what information is available for the error.")]
349    Unhandled(crate::error::sealed_unhandled::Unhandled),
350}
351impl StopContinuousExportError {
352    /// Creates the `StopContinuousExportError::Unhandled` variant from any error type.
353    pub fn unhandled(
354        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
355    ) -> Self {
356        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
357            source: err.into(),
358            meta: ::std::default::Default::default(),
359        })
360    }
361
362    /// Creates the `StopContinuousExportError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
363    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
364        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
365            source: err.clone().into(),
366            meta: err,
367        })
368    }
369    ///
370    /// Returns error metadata, which includes the error code, message,
371    /// request ID, and potentially additional information.
372    ///
373    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
374        match self {
375            Self::AuthorizationErrorException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
376            Self::HomeRegionNotSetException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
377            Self::InvalidParameterException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
378            Self::InvalidParameterValueException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
379            Self::OperationNotPermittedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
380            Self::ResourceInUseException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
381            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
382            Self::ServerInternalErrorException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
383            Self::Unhandled(e) => &e.meta,
384        }
385    }
386    /// Returns `true` if the error kind is `StopContinuousExportError::AuthorizationErrorException`.
387    pub fn is_authorization_error_exception(&self) -> bool {
388        matches!(self, Self::AuthorizationErrorException(_))
389    }
390    /// Returns `true` if the error kind is `StopContinuousExportError::HomeRegionNotSetException`.
391    pub fn is_home_region_not_set_exception(&self) -> bool {
392        matches!(self, Self::HomeRegionNotSetException(_))
393    }
394    /// Returns `true` if the error kind is `StopContinuousExportError::InvalidParameterException`.
395    pub fn is_invalid_parameter_exception(&self) -> bool {
396        matches!(self, Self::InvalidParameterException(_))
397    }
398    /// Returns `true` if the error kind is `StopContinuousExportError::InvalidParameterValueException`.
399    pub fn is_invalid_parameter_value_exception(&self) -> bool {
400        matches!(self, Self::InvalidParameterValueException(_))
401    }
402    /// Returns `true` if the error kind is `StopContinuousExportError::OperationNotPermittedException`.
403    pub fn is_operation_not_permitted_exception(&self) -> bool {
404        matches!(self, Self::OperationNotPermittedException(_))
405    }
406    /// Returns `true` if the error kind is `StopContinuousExportError::ResourceInUseException`.
407    pub fn is_resource_in_use_exception(&self) -> bool {
408        matches!(self, Self::ResourceInUseException(_))
409    }
410    /// Returns `true` if the error kind is `StopContinuousExportError::ResourceNotFoundException`.
411    pub fn is_resource_not_found_exception(&self) -> bool {
412        matches!(self, Self::ResourceNotFoundException(_))
413    }
414    /// Returns `true` if the error kind is `StopContinuousExportError::ServerInternalErrorException`.
415    pub fn is_server_internal_error_exception(&self) -> bool {
416        matches!(self, Self::ServerInternalErrorException(_))
417    }
418}
419impl ::std::error::Error for StopContinuousExportError {
420    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
421        match self {
422            Self::AuthorizationErrorException(_inner) => ::std::option::Option::Some(_inner),
423            Self::HomeRegionNotSetException(_inner) => ::std::option::Option::Some(_inner),
424            Self::InvalidParameterException(_inner) => ::std::option::Option::Some(_inner),
425            Self::InvalidParameterValueException(_inner) => ::std::option::Option::Some(_inner),
426            Self::OperationNotPermittedException(_inner) => ::std::option::Option::Some(_inner),
427            Self::ResourceInUseException(_inner) => ::std::option::Option::Some(_inner),
428            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
429            Self::ServerInternalErrorException(_inner) => ::std::option::Option::Some(_inner),
430            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
431        }
432    }
433}
434impl ::std::fmt::Display for StopContinuousExportError {
435    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
436        match self {
437            Self::AuthorizationErrorException(_inner) => _inner.fmt(f),
438            Self::HomeRegionNotSetException(_inner) => _inner.fmt(f),
439            Self::InvalidParameterException(_inner) => _inner.fmt(f),
440            Self::InvalidParameterValueException(_inner) => _inner.fmt(f),
441            Self::OperationNotPermittedException(_inner) => _inner.fmt(f),
442            Self::ResourceInUseException(_inner) => _inner.fmt(f),
443            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
444            Self::ServerInternalErrorException(_inner) => _inner.fmt(f),
445            Self::Unhandled(_inner) => {
446                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
447                    write!(f, "unhandled error ({code})")
448                } else {
449                    f.write_str("unhandled error")
450                }
451            }
452        }
453    }
454}
455impl ::aws_smithy_types::retry::ProvideErrorKind for StopContinuousExportError {
456    fn code(&self) -> ::std::option::Option<&str> {
457        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
458    }
459    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
460        ::std::option::Option::None
461    }
462}
463impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for StopContinuousExportError {
464    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
465        match self {
466            Self::AuthorizationErrorException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
467            Self::HomeRegionNotSetException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
468            Self::InvalidParameterException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
469            Self::InvalidParameterValueException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
470            Self::OperationNotPermittedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
471            Self::ResourceInUseException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
472            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
473            Self::ServerInternalErrorException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
474            Self::Unhandled(_inner) => &_inner.meta,
475        }
476    }
477}
478impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for StopContinuousExportError {
479    fn create_unhandled_error(
480        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
481        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
482    ) -> Self {
483        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
484            source,
485            meta: meta.unwrap_or_default(),
486        })
487    }
488}
489impl ::aws_types::request_id::RequestId for crate::operation::stop_continuous_export::StopContinuousExportError {
490    fn request_id(&self) -> Option<&str> {
491        self.meta().request_id()
492    }
493}
494
495pub use crate::operation::stop_continuous_export::_stop_continuous_export_input::StopContinuousExportInput;
496
497pub use crate::operation::stop_continuous_export::_stop_continuous_export_output::StopContinuousExportOutput;
498
499mod _stop_continuous_export_input;
500
501mod _stop_continuous_export_output;
502
503/// Builders
504pub mod builders;