Skip to main content

aws_sdk_rds/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("RDS", "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                "RDS.CreateIntegration",
59                "rpc.service" = "RDS",
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("CreateIntegration", "RDS"));
106        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
107        signing_options.double_uri_encode = true;
108        signing_options.content_sha256_header = false;
109        signing_options.normalize_uri_path = true;
110        signing_options.payload_override = None;
111
112        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
113            signing_options,
114            ..::std::default::Default::default()
115        });
116
117        ::std::option::Option::Some(cfg.freeze())
118    }
119
120    fn runtime_components(
121        &self,
122        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
123    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
124        #[allow(unused_mut)]
125        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("CreateIntegration")
126            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
127                CreateIntegrationTelemetryInputCaptureInterceptor,
128            ))
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            .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
145                crate::operation::create_integration::CreateIntegrationError,
146            >::new());
147
148        ::std::borrow::Cow::Owned(rcb)
149    }
150}
151
152#[derive(Debug)]
153struct CreateIntegrationTelemetryInputCaptureInterceptor;
154
155#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
156impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateIntegrationTelemetryInputCaptureInterceptor {
157    fn name(&self) -> &'static str {
158        "CreateIntegrationTelemetryInputCaptureInterceptor"
159    }
160
161    fn read_before_execution(
162        &self,
163        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
164            '_,
165            ::aws_smithy_runtime_api::client::interceptors::context::Input,
166            ::aws_smithy_runtime_api::client::interceptors::context::Output,
167            ::aws_smithy_runtime_api::client::interceptors::context::Error,
168        >,
169        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
170    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
171        // Nothing to do unless the customer opted in by naming members to record.
172        let ::std::option::Option::Some(requested) = cfg
173            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
174            .filter(|r| !r.is_empty())
175        else {
176            return ::std::result::Result::Ok(());
177        };
178
179        let ::std::option::Option::Some(input) = context.input().downcast_ref::<CreateIntegrationInput>() else {
180            // A mismatched input is not this interceptor's concern; skip quietly.
181            return ::std::result::Result::Ok(());
182        };
183
184        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
185        if requested.should_capture("SourceArn") {
186            if let ::std::option::Option::Some(value) = input.source_arn.as_deref() {
187                captured.insert("SourceArn", value);
188            }
189        }
190        if requested.should_capture("TargetArn") {
191            if let ::std::option::Option::Some(value) = input.target_arn.as_deref() {
192                captured.insert("TargetArn", value);
193            }
194        }
195        if requested.should_capture("IntegrationName") {
196            if let ::std::option::Option::Some(value) = input.integration_name.as_deref() {
197                captured.insert("IntegrationName", value);
198            }
199        }
200        if requested.should_capture("KMSKeyId") {
201            if let ::std::option::Option::Some(value) = input.kms_key_id.as_deref() {
202                captured.insert("KMSKeyId", value);
203            }
204        }
205        if requested.should_capture("DataFilter") {
206            if let ::std::option::Option::Some(value) = input.data_filter.as_deref() {
207                captured.insert("DataFilter", value);
208            }
209        }
210        if requested.should_capture("Description") {
211            if let ::std::option::Option::Some(value) = input.description.as_deref() {
212                captured.insert("Description", value);
213            }
214        }
215
216        cfg.interceptor_state().store_put(captured);
217        ::std::result::Result::Ok(())
218    }
219}
220#[derive(Debug)]
221struct CreateIntegrationResponseDeserializer;
222impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateIntegrationResponseDeserializer {
223    fn deserialize_nonstreaming_with_config(
224        &self,
225        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
226        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
227    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
228        let (success, status) = (response.status().is_success(), response.status().as_u16());
229        let headers = response.headers();
230        let body = response.body().bytes().expect("body loaded");
231        #[allow(unused_mut)]
232        let mut force_error = false;
233        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
234        let parse_result = if !success && status != 200 || force_error {
235            crate::protocol_serde::shape_create_integration::de_create_integration_http_error(status, headers, body)
236        } else {
237            crate::protocol_serde::shape_create_integration::de_create_integration_http_response(status, headers, body)
238        };
239        crate::protocol_serde::type_erase_result(parse_result)
240    }
241}
242#[derive(Debug)]
243struct CreateIntegrationRequestSerializer;
244impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateIntegrationRequestSerializer {
245    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
246    fn serialize_input(
247        &self,
248        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
249        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
250    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
251        let input = input
252            .downcast::<crate::operation::create_integration::CreateIntegrationInput>()
253            .expect("correct type");
254        let _header_serialization_settings = _cfg
255            .load::<crate::serialization_settings::HeaderSerializationSettings>()
256            .cloned()
257            .unwrap_or_default();
258        let mut request_builder = {
259            #[allow(clippy::uninlined_format_args)]
260            fn uri_base(
261                _input: &crate::operation::create_integration::CreateIntegrationInput,
262                output: &mut ::std::string::String,
263            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
264                use ::std::fmt::Write as _;
265                ::std::write!(output, "/").expect("formatting should succeed");
266                ::std::result::Result::Ok(())
267            }
268            #[allow(clippy::unnecessary_wraps)]
269            fn update_http_builder(
270                input: &crate::operation::create_integration::CreateIntegrationInput,
271                builder: ::http_1x::request::Builder,
272            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
273                let mut uri = ::std::string::String::new();
274                uri_base(input, &mut uri)?;
275                ::std::result::Result::Ok(builder.method("POST").uri(uri))
276            }
277            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
278            builder =
279                _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-www-form-urlencoded");
280            builder
281        };
282        let body = ::aws_smithy_types::body::SdkBody::from(
283            crate::protocol_serde::shape_create_integration_input::ser_create_integration_input_input_input(&input)?,
284        );
285        if let Some(content_length) = body.content_length() {
286            let content_length = content_length.to_string();
287            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
288        }
289        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
290    }
291}
292#[derive(Debug)]
293struct CreateIntegrationEndpointParamsInterceptor;
294
295#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
296impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateIntegrationEndpointParamsInterceptor {
297    fn name(&self) -> &'static str {
298        "CreateIntegrationEndpointParamsInterceptor"
299    }
300
301    fn read_before_execution(
302        &self,
303        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
304            '_,
305            ::aws_smithy_runtime_api::client::interceptors::context::Input,
306            ::aws_smithy_runtime_api::client::interceptors::context::Output,
307            ::aws_smithy_runtime_api::client::interceptors::context::Error,
308        >,
309        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
310    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
311        let _input = context
312            .input()
313            .downcast_ref::<CreateIntegrationInput>()
314            .ok_or("failed to downcast to CreateIntegrationInput")?;
315
316        let params = crate::config::endpoint::Params::builder()
317            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
318            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
319            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
320            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
321            .build()
322            .map_err(|err| {
323                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
324            })?;
325        cfg.interceptor_state()
326            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
327        ::std::result::Result::Ok(())
328    }
329}
330
331// The get_* functions below are generated from JMESPath expressions in the
332// operationContextParams trait. They target the operation's input shape.
333
334/// Error type for the `CreateIntegrationError` operation.
335#[non_exhaustive]
336#[derive(::std::fmt::Debug)]
337pub enum CreateIntegrationError {
338    /// <p><code>DBClusterIdentifier</code> doesn't refer to an existing DB cluster.</p>
339    DbClusterNotFoundFault(crate::types::error::DbClusterNotFoundFault),
340    /// <p><code>DBInstanceIdentifier</code> doesn't refer to an existing DB instance.</p>
341    DbInstanceNotFoundFault(crate::types::error::DbInstanceNotFoundFault),
342    /// <p>The integration you are trying to create already exists.</p>
343    IntegrationAlreadyExistsFault(crate::types::error::IntegrationAlreadyExistsFault),
344    /// <p>A conflicting conditional operation is currently in progress against this resource. 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>
345    IntegrationConflictOperationFault(crate::types::error::IntegrationConflictOperationFault),
346    /// <p>You can't crate any more zero-ETL integrations because the quota has been reached.</p>
347    IntegrationQuotaExceededFault(crate::types::error::IntegrationQuotaExceededFault),
348    /// <p>An error occurred accessing an Amazon Web Services KMS key.</p>
349    KmsKeyNotAccessibleFault(crate::types::error::KmsKeyNotAccessibleFault),
350    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
351    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
352    variable wildcard pattern and check `.code()`:
353     \
354    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
355     \
356    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateIntegrationError) for what information is available for the error.")]
357    Unhandled(crate::error::sealed_unhandled::Unhandled),
358}
359impl CreateIntegrationError {
360    /// Creates the `CreateIntegrationError::Unhandled` variant from any error type.
361    pub fn unhandled(
362        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
363    ) -> Self {
364        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
365            source: err.into(),
366            meta: ::std::default::Default::default(),
367        })
368    }
369
370    /// Creates the `CreateIntegrationError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
371    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
372        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
373            source: err.clone().into(),
374            meta: err,
375        })
376    }
377    ///
378    /// Returns error metadata, which includes the error code, message,
379    /// request ID, and potentially additional information.
380    ///
381    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
382        match self {
383            Self::DbClusterNotFoundFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
384            Self::DbInstanceNotFoundFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
385            Self::IntegrationAlreadyExistsFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
386            Self::IntegrationConflictOperationFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
387            Self::IntegrationQuotaExceededFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
388            Self::KmsKeyNotAccessibleFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
389            Self::Unhandled(e) => &e.meta,
390        }
391    }
392    /// Returns `true` if the error kind is `CreateIntegrationError::DbClusterNotFoundFault`.
393    pub fn is_db_cluster_not_found_fault(&self) -> bool {
394        matches!(self, Self::DbClusterNotFoundFault(_))
395    }
396    /// Returns `true` if the error kind is `CreateIntegrationError::DbInstanceNotFoundFault`.
397    pub fn is_db_instance_not_found_fault(&self) -> bool {
398        matches!(self, Self::DbInstanceNotFoundFault(_))
399    }
400    /// Returns `true` if the error kind is `CreateIntegrationError::IntegrationAlreadyExistsFault`.
401    pub fn is_integration_already_exists_fault(&self) -> bool {
402        matches!(self, Self::IntegrationAlreadyExistsFault(_))
403    }
404    /// Returns `true` if the error kind is `CreateIntegrationError::IntegrationConflictOperationFault`.
405    pub fn is_integration_conflict_operation_fault(&self) -> bool {
406        matches!(self, Self::IntegrationConflictOperationFault(_))
407    }
408    /// Returns `true` if the error kind is `CreateIntegrationError::IntegrationQuotaExceededFault`.
409    pub fn is_integration_quota_exceeded_fault(&self) -> bool {
410        matches!(self, Self::IntegrationQuotaExceededFault(_))
411    }
412    /// Returns `true` if the error kind is `CreateIntegrationError::KmsKeyNotAccessibleFault`.
413    pub fn is_kms_key_not_accessible_fault(&self) -> bool {
414        matches!(self, Self::KmsKeyNotAccessibleFault(_))
415    }
416}
417impl ::std::error::Error for CreateIntegrationError {
418    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
419        match self {
420            Self::DbClusterNotFoundFault(_inner) => ::std::option::Option::Some(_inner),
421            Self::DbInstanceNotFoundFault(_inner) => ::std::option::Option::Some(_inner),
422            Self::IntegrationAlreadyExistsFault(_inner) => ::std::option::Option::Some(_inner),
423            Self::IntegrationConflictOperationFault(_inner) => ::std::option::Option::Some(_inner),
424            Self::IntegrationQuotaExceededFault(_inner) => ::std::option::Option::Some(_inner),
425            Self::KmsKeyNotAccessibleFault(_inner) => ::std::option::Option::Some(_inner),
426            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
427        }
428    }
429}
430impl ::std::fmt::Display for CreateIntegrationError {
431    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
432        match self {
433            Self::DbClusterNotFoundFault(_inner) => _inner.fmt(f),
434            Self::DbInstanceNotFoundFault(_inner) => _inner.fmt(f),
435            Self::IntegrationAlreadyExistsFault(_inner) => _inner.fmt(f),
436            Self::IntegrationConflictOperationFault(_inner) => _inner.fmt(f),
437            Self::IntegrationQuotaExceededFault(_inner) => _inner.fmt(f),
438            Self::KmsKeyNotAccessibleFault(_inner) => _inner.fmt(f),
439            Self::Unhandled(_inner) => {
440                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
441                    write!(f, "unhandled error ({code})")
442                } else {
443                    f.write_str("unhandled error")
444                }
445            }
446        }
447    }
448}
449impl ::aws_smithy_types::retry::ProvideErrorKind for CreateIntegrationError {
450    fn code(&self) -> ::std::option::Option<&str> {
451        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
452    }
453    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
454        ::std::option::Option::None
455    }
456}
457impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateIntegrationError {
458    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
459        match self {
460            Self::DbClusterNotFoundFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
461            Self::DbInstanceNotFoundFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
462            Self::IntegrationAlreadyExistsFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
463            Self::IntegrationConflictOperationFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
464            Self::IntegrationQuotaExceededFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
465            Self::KmsKeyNotAccessibleFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
466            Self::Unhandled(_inner) => &_inner.meta,
467        }
468    }
469}
470impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateIntegrationError {
471    fn create_unhandled_error(
472        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
473        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
474    ) -> Self {
475        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
476            source,
477            meta: meta.unwrap_or_default(),
478        })
479    }
480}
481impl ::aws_types::request_id::RequestId for crate::operation::create_integration::CreateIntegrationError {
482    fn request_id(&self) -> Option<&str> {
483        self.meta().request_id()
484    }
485}
486
487pub use crate::operation::create_integration::_create_integration_input::CreateIntegrationInput;
488
489pub use crate::operation::create_integration::_create_integration_output::CreateIntegrationOutput;
490
491mod _create_integration_input;
492
493mod _create_integration_output;
494
495/// Builders
496pub mod builders;