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