Skip to main content

aws_sdk_applicationdiscovery/operation/
start_import_task.rs

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