Skip to main content

aws_sdk_redshift/operation/
create_integration.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `CreateIntegration`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct CreateIntegration;
6impl CreateIntegration {
7    /// Creates a new `CreateIntegration`
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_integration::CreateIntegrationInput,
14    ) -> ::std::result::Result<
15        crate::operation::create_integration::CreateIntegrationOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::create_integration::CreateIntegrationError,
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_integration::CreateIntegrationError>()
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::create_integration::CreateIntegrationOutput>()
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::create_integration::CreateIntegrationInput,
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("Redshift", "CreateIntegration", input, runtime_plugins, stop_point)
55            // Create a parent span for the entire operation. Includes a random, internal-only,
56            // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
57            .instrument(::tracing::debug_span!(
58                "Redshift.CreateIntegration",
59                "rpc.service" = "Redshift",
60                "rpc.method" = "CreateIntegration",
61                "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
62                "rpc.system" = "aws-api",
63            ))
64            .await
65    }
66
67    pub(crate) fn operation_runtime_plugins(
68        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
69        client_config: &crate::config::Config,
70        config_override: ::std::option::Option<crate::config::Builder>,
71    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
72        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
73
74        if let ::std::option::Option::Some(config_override) = config_override {
75            for plugin in config_override.runtime_plugins.iter().cloned() {
76                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
77            }
78            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
79                config_override,
80                client_config.config.clone(),
81                &client_config.runtime_components,
82            ));
83        }
84        runtime_plugins
85    }
86}
87impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for CreateIntegration {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("CreateIntegration");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            CreateIntegrationRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            CreateIntegrationResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("CreateIntegration")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
106            "CreateIntegration",
107            "Redshift",
108        ));
109        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
110        signing_options.double_uri_encode = true;
111        signing_options.content_sha256_header = false;
112        signing_options.normalize_uri_path = true;
113        signing_options.payload_override = None;
114
115        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
116            signing_options,
117            ..::std::default::Default::default()
118        });
119
120        ::std::option::Option::Some(cfg.freeze())
121    }
122
123    fn runtime_components(
124        &self,
125        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
126    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
127        #[allow(unused_mut)]
128        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("CreateIntegration")
129            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
130                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
131            ))
132            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
133                CreateIntegrationEndpointParamsInterceptor,
134            ))
135            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
136                crate::operation::create_integration::CreateIntegrationError,
137            >::new())
138            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
139                crate::operation::create_integration::CreateIntegrationError,
140            >::new())
141            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
142                crate::operation::create_integration::CreateIntegrationError,
143            >::new());
144
145        ::std::borrow::Cow::Owned(rcb)
146    }
147}
148
149#[derive(Debug)]
150struct CreateIntegrationResponseDeserializer;
151impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateIntegrationResponseDeserializer {
152    fn deserialize_nonstreaming(
153        &self,
154        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
155    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
156        let (success, status) = (response.status().is_success(), response.status().as_u16());
157        let headers = response.headers();
158        let body = response.body().bytes().expect("body loaded");
159        #[allow(unused_mut)]
160        let mut force_error = false;
161        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
162        let parse_result = if !success && status != 200 || force_error {
163            crate::protocol_serde::shape_create_integration::de_create_integration_http_error(status, headers, body)
164        } else {
165            crate::protocol_serde::shape_create_integration::de_create_integration_http_response(status, headers, body)
166        };
167        crate::protocol_serde::type_erase_result(parse_result)
168    }
169}
170#[derive(Debug)]
171struct CreateIntegrationRequestSerializer;
172impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateIntegrationRequestSerializer {
173    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
174    fn serialize_input(
175        &self,
176        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
177        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
178    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
179        let input = input
180            .downcast::<crate::operation::create_integration::CreateIntegrationInput>()
181            .expect("correct type");
182        let _header_serialization_settings = _cfg
183            .load::<crate::serialization_settings::HeaderSerializationSettings>()
184            .cloned()
185            .unwrap_or_default();
186        let mut request_builder = {
187            #[allow(clippy::uninlined_format_args)]
188            fn uri_base(
189                _input: &crate::operation::create_integration::CreateIntegrationInput,
190                output: &mut ::std::string::String,
191            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
192                use ::std::fmt::Write as _;
193                ::std::write!(output, "/").expect("formatting should succeed");
194                ::std::result::Result::Ok(())
195            }
196            #[allow(clippy::unnecessary_wraps)]
197            fn update_http_builder(
198                input: &crate::operation::create_integration::CreateIntegrationInput,
199                builder: ::http_1x::request::Builder,
200            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
201                let mut uri = ::std::string::String::new();
202                uri_base(input, &mut uri)?;
203                ::std::result::Result::Ok(builder.method("POST").uri(uri))
204            }
205            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
206            builder =
207                _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-www-form-urlencoded");
208            builder
209        };
210        let body = ::aws_smithy_types::body::SdkBody::from(
211            crate::protocol_serde::shape_create_integration_input::ser_create_integration_input_input_input(&input)?,
212        );
213        if let Some(content_length) = body.content_length() {
214            let content_length = content_length.to_string();
215            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
216        }
217        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
218    }
219}
220#[derive(Debug)]
221struct CreateIntegrationEndpointParamsInterceptor;
222
223#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
224impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateIntegrationEndpointParamsInterceptor {
225    fn name(&self) -> &'static str {
226        "CreateIntegrationEndpointParamsInterceptor"
227    }
228
229    fn read_before_execution(
230        &self,
231        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
232            '_,
233            ::aws_smithy_runtime_api::client::interceptors::context::Input,
234            ::aws_smithy_runtime_api::client::interceptors::context::Output,
235            ::aws_smithy_runtime_api::client::interceptors::context::Error,
236        >,
237        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
238    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
239        let _input = context
240            .input()
241            .downcast_ref::<CreateIntegrationInput>()
242            .ok_or("failed to downcast to CreateIntegrationInput")?;
243
244        let params = crate::config::endpoint::Params::builder()
245            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
246            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
247            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
248            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
249            .build()
250            .map_err(|err| {
251                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
252            })?;
253        cfg.interceptor_state()
254            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
255        ::std::result::Result::Ok(())
256    }
257}
258
259// The get_* functions below are generated from JMESPath expressions in the
260// operationContextParams trait. They target the operation's input shape.
261
262/// Error type for the `CreateIntegrationError` operation.
263#[non_exhaustive]
264#[derive(::std::fmt::Debug)]
265pub enum CreateIntegrationError {
266    /// <p>The integration you are trying to create already exists.</p>
267    IntegrationAlreadyExistsFault(crate::types::error::IntegrationAlreadyExistsFault),
268    /// <p>A conflicting conditional operation is currently in progress against this resource. This typically occurs when there are multiple requests being made to the same resource at the same time, and these requests conflict with each other.</p>
269    IntegrationConflictOperationFault(crate::types::error::IntegrationConflictOperationFault),
270    /// <p>You can't create any more zero-ETL or S3 event integrations because the quota has been reached.</p>
271    IntegrationQuotaExceededFault(crate::types::error::IntegrationQuotaExceededFault),
272    /// <p>The specified integration source can't be found.</p>
273    IntegrationSourceNotFoundFault(crate::types::error::IntegrationSourceNotFoundFault),
274    /// <p>The specified integration target can't be found.</p>
275    IntegrationTargetNotFoundFault(crate::types::error::IntegrationTargetNotFoundFault),
276    /// <p>The specified cluster is not in the <code>available</code> state.</p>
277    InvalidClusterStateFault(crate::types::error::InvalidClusterStateFault),
278    /// <p>The tag is invalid.</p>
279    InvalidTagFault(crate::types::error::InvalidTagFault),
280    /// <p>You have exceeded the number of tags allowed.</p>
281    TagLimitExceededFault(crate::types::error::TagLimitExceededFault),
282    /// <p>The requested operation isn't supported.</p>
283    UnsupportedOperationFault(crate::types::error::UnsupportedOperationFault),
284    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
285    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
286    variable wildcard pattern and check `.code()`:
287     \
288    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
289     \
290    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateIntegrationError) for what information is available for the error.")]
291    Unhandled(crate::error::sealed_unhandled::Unhandled),
292}
293impl CreateIntegrationError {
294    /// Creates the `CreateIntegrationError::Unhandled` variant from any error type.
295    pub fn unhandled(
296        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
297    ) -> Self {
298        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
299            source: err.into(),
300            meta: ::std::default::Default::default(),
301        })
302    }
303
304    /// Creates the `CreateIntegrationError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
305    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
306        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
307            source: err.clone().into(),
308            meta: err,
309        })
310    }
311    ///
312    /// Returns error metadata, which includes the error code, message,
313    /// request ID, and potentially additional information.
314    ///
315    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
316        match self {
317            Self::IntegrationAlreadyExistsFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
318            Self::IntegrationConflictOperationFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
319            Self::IntegrationQuotaExceededFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
320            Self::IntegrationSourceNotFoundFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
321            Self::IntegrationTargetNotFoundFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
322            Self::InvalidClusterStateFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
323            Self::InvalidTagFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
324            Self::TagLimitExceededFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
325            Self::UnsupportedOperationFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
326            Self::Unhandled(e) => &e.meta,
327        }
328    }
329    /// Returns `true` if the error kind is `CreateIntegrationError::IntegrationAlreadyExistsFault`.
330    pub fn is_integration_already_exists_fault(&self) -> bool {
331        matches!(self, Self::IntegrationAlreadyExistsFault(_))
332    }
333    /// Returns `true` if the error kind is `CreateIntegrationError::IntegrationConflictOperationFault`.
334    pub fn is_integration_conflict_operation_fault(&self) -> bool {
335        matches!(self, Self::IntegrationConflictOperationFault(_))
336    }
337    /// Returns `true` if the error kind is `CreateIntegrationError::IntegrationQuotaExceededFault`.
338    pub fn is_integration_quota_exceeded_fault(&self) -> bool {
339        matches!(self, Self::IntegrationQuotaExceededFault(_))
340    }
341    /// Returns `true` if the error kind is `CreateIntegrationError::IntegrationSourceNotFoundFault`.
342    pub fn is_integration_source_not_found_fault(&self) -> bool {
343        matches!(self, Self::IntegrationSourceNotFoundFault(_))
344    }
345    /// Returns `true` if the error kind is `CreateIntegrationError::IntegrationTargetNotFoundFault`.
346    pub fn is_integration_target_not_found_fault(&self) -> bool {
347        matches!(self, Self::IntegrationTargetNotFoundFault(_))
348    }
349    /// Returns `true` if the error kind is `CreateIntegrationError::InvalidClusterStateFault`.
350    pub fn is_invalid_cluster_state_fault(&self) -> bool {
351        matches!(self, Self::InvalidClusterStateFault(_))
352    }
353    /// Returns `true` if the error kind is `CreateIntegrationError::InvalidTagFault`.
354    pub fn is_invalid_tag_fault(&self) -> bool {
355        matches!(self, Self::InvalidTagFault(_))
356    }
357    /// Returns `true` if the error kind is `CreateIntegrationError::TagLimitExceededFault`.
358    pub fn is_tag_limit_exceeded_fault(&self) -> bool {
359        matches!(self, Self::TagLimitExceededFault(_))
360    }
361    /// Returns `true` if the error kind is `CreateIntegrationError::UnsupportedOperationFault`.
362    pub fn is_unsupported_operation_fault(&self) -> bool {
363        matches!(self, Self::UnsupportedOperationFault(_))
364    }
365}
366impl ::std::error::Error for CreateIntegrationError {
367    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
368        match self {
369            Self::IntegrationAlreadyExistsFault(_inner) => ::std::option::Option::Some(_inner),
370            Self::IntegrationConflictOperationFault(_inner) => ::std::option::Option::Some(_inner),
371            Self::IntegrationQuotaExceededFault(_inner) => ::std::option::Option::Some(_inner),
372            Self::IntegrationSourceNotFoundFault(_inner) => ::std::option::Option::Some(_inner),
373            Self::IntegrationTargetNotFoundFault(_inner) => ::std::option::Option::Some(_inner),
374            Self::InvalidClusterStateFault(_inner) => ::std::option::Option::Some(_inner),
375            Self::InvalidTagFault(_inner) => ::std::option::Option::Some(_inner),
376            Self::TagLimitExceededFault(_inner) => ::std::option::Option::Some(_inner),
377            Self::UnsupportedOperationFault(_inner) => ::std::option::Option::Some(_inner),
378            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
379        }
380    }
381}
382impl ::std::fmt::Display for CreateIntegrationError {
383    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
384        match self {
385            Self::IntegrationAlreadyExistsFault(_inner) => _inner.fmt(f),
386            Self::IntegrationConflictOperationFault(_inner) => _inner.fmt(f),
387            Self::IntegrationQuotaExceededFault(_inner) => _inner.fmt(f),
388            Self::IntegrationSourceNotFoundFault(_inner) => _inner.fmt(f),
389            Self::IntegrationTargetNotFoundFault(_inner) => _inner.fmt(f),
390            Self::InvalidClusterStateFault(_inner) => _inner.fmt(f),
391            Self::InvalidTagFault(_inner) => _inner.fmt(f),
392            Self::TagLimitExceededFault(_inner) => _inner.fmt(f),
393            Self::UnsupportedOperationFault(_inner) => _inner.fmt(f),
394            Self::Unhandled(_inner) => {
395                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
396                    write!(f, "unhandled error ({code})")
397                } else {
398                    f.write_str("unhandled error")
399                }
400            }
401        }
402    }
403}
404impl ::aws_smithy_types::retry::ProvideErrorKind for CreateIntegrationError {
405    fn code(&self) -> ::std::option::Option<&str> {
406        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
407    }
408    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
409        ::std::option::Option::None
410    }
411}
412impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateIntegrationError {
413    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
414        match self {
415            Self::IntegrationAlreadyExistsFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
416            Self::IntegrationConflictOperationFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
417            Self::IntegrationQuotaExceededFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
418            Self::IntegrationSourceNotFoundFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
419            Self::IntegrationTargetNotFoundFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
420            Self::InvalidClusterStateFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
421            Self::InvalidTagFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
422            Self::TagLimitExceededFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
423            Self::UnsupportedOperationFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
424            Self::Unhandled(_inner) => &_inner.meta,
425        }
426    }
427}
428impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateIntegrationError {
429    fn create_unhandled_error(
430        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
431        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
432    ) -> Self {
433        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
434            source,
435            meta: meta.unwrap_or_default(),
436        })
437    }
438}
439impl ::aws_types::request_id::RequestId for crate::operation::create_integration::CreateIntegrationError {
440    fn request_id(&self) -> Option<&str> {
441        self.meta().request_id()
442    }
443}
444
445pub use crate::operation::create_integration::_create_integration_input::CreateIntegrationInput;
446
447pub use crate::operation::create_integration::_create_integration_output::CreateIntegrationOutput;
448
449mod _create_integration_input;
450
451mod _create_integration_output;
452
453/// Builders
454pub mod builders;