aws_sdk_quicksight/operation/
create_ingestion.rs

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