Skip to main content

aws_sdk_rds/operation/
delete_integration.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `DeleteIntegration`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct DeleteIntegration;
6impl DeleteIntegration {
7    /// Creates a new `DeleteIntegration`
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::delete_integration::DeleteIntegrationInput,
14    ) -> ::std::result::Result<
15        crate::operation::delete_integration::DeleteIntegrationOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::delete_integration::DeleteIntegrationError,
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::delete_integration::DeleteIntegrationError>()
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::delete_integration::DeleteIntegrationOutput>()
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::delete_integration::DeleteIntegrationInput,
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", "DeleteIntegration", 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.DeleteIntegration",
59                "rpc.service" = "RDS",
60                "rpc.method" = "DeleteIntegration",
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 DeleteIntegration {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("DeleteIntegration");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            DeleteIntegrationRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            DeleteIntegrationResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("DeleteIntegration")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("DeleteIntegration", "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("DeleteIntegration")
126            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
127                DeleteIntegrationTelemetryInputCaptureInterceptor,
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                DeleteIntegrationEndpointParamsInterceptor,
134            ))
135            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
136                crate::operation::delete_integration::DeleteIntegrationError,
137            >::new())
138            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
139                crate::operation::delete_integration::DeleteIntegrationError,
140            >::new())
141            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
142                crate::operation::delete_integration::DeleteIntegrationError,
143            >::new())
144            .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
145                crate::operation::delete_integration::DeleteIntegrationError,
146            >::new());
147
148        ::std::borrow::Cow::Owned(rcb)
149    }
150}
151
152#[derive(Debug)]
153struct DeleteIntegrationTelemetryInputCaptureInterceptor;
154
155#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
156impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DeleteIntegrationTelemetryInputCaptureInterceptor {
157    fn name(&self) -> &'static str {
158        "DeleteIntegrationTelemetryInputCaptureInterceptor"
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::<DeleteIntegrationInput>() 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("IntegrationIdentifier") {
186            if let ::std::option::Option::Some(value) = input.integration_identifier.as_deref() {
187                captured.insert("IntegrationIdentifier", value);
188            }
189        }
190
191        cfg.interceptor_state().store_put(captured);
192        ::std::result::Result::Ok(())
193    }
194}
195#[derive(Debug)]
196struct DeleteIntegrationResponseDeserializer;
197impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for DeleteIntegrationResponseDeserializer {
198    fn deserialize_nonstreaming_with_config(
199        &self,
200        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
201        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
202    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
203        let (success, status) = (response.status().is_success(), response.status().as_u16());
204        let headers = response.headers();
205        let body = response.body().bytes().expect("body loaded");
206        #[allow(unused_mut)]
207        let mut force_error = false;
208        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
209        let parse_result = if !success && status != 200 || force_error {
210            crate::protocol_serde::shape_delete_integration::de_delete_integration_http_error(status, headers, body)
211        } else {
212            crate::protocol_serde::shape_delete_integration::de_delete_integration_http_response(status, headers, body)
213        };
214        crate::protocol_serde::type_erase_result(parse_result)
215    }
216}
217#[derive(Debug)]
218struct DeleteIntegrationRequestSerializer;
219impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for DeleteIntegrationRequestSerializer {
220    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
221    fn serialize_input(
222        &self,
223        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
224        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
225    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
226        let input = input
227            .downcast::<crate::operation::delete_integration::DeleteIntegrationInput>()
228            .expect("correct type");
229        let _header_serialization_settings = _cfg
230            .load::<crate::serialization_settings::HeaderSerializationSettings>()
231            .cloned()
232            .unwrap_or_default();
233        let mut request_builder = {
234            #[allow(clippy::uninlined_format_args)]
235            fn uri_base(
236                _input: &crate::operation::delete_integration::DeleteIntegrationInput,
237                output: &mut ::std::string::String,
238            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
239                use ::std::fmt::Write as _;
240                ::std::write!(output, "/").expect("formatting should succeed");
241                ::std::result::Result::Ok(())
242            }
243            #[allow(clippy::unnecessary_wraps)]
244            fn update_http_builder(
245                input: &crate::operation::delete_integration::DeleteIntegrationInput,
246                builder: ::http_1x::request::Builder,
247            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
248                let mut uri = ::std::string::String::new();
249                uri_base(input, &mut uri)?;
250                ::std::result::Result::Ok(builder.method("POST").uri(uri))
251            }
252            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
253            builder =
254                _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-www-form-urlencoded");
255            builder
256        };
257        let body = ::aws_smithy_types::body::SdkBody::from(
258            crate::protocol_serde::shape_delete_integration_input::ser_delete_integration_input_input_input(&input)?,
259        );
260        if let Some(content_length) = body.content_length() {
261            let content_length = content_length.to_string();
262            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
263        }
264        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
265    }
266}
267#[derive(Debug)]
268struct DeleteIntegrationEndpointParamsInterceptor;
269
270#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
271impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DeleteIntegrationEndpointParamsInterceptor {
272    fn name(&self) -> &'static str {
273        "DeleteIntegrationEndpointParamsInterceptor"
274    }
275
276    fn read_before_execution(
277        &self,
278        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
279            '_,
280            ::aws_smithy_runtime_api::client::interceptors::context::Input,
281            ::aws_smithy_runtime_api::client::interceptors::context::Output,
282            ::aws_smithy_runtime_api::client::interceptors::context::Error,
283        >,
284        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
285    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
286        let _input = context
287            .input()
288            .downcast_ref::<DeleteIntegrationInput>()
289            .ok_or("failed to downcast to DeleteIntegrationInput")?;
290
291        let params = crate::config::endpoint::Params::builder()
292            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
293            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
294            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
295            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
296            .build()
297            .map_err(|err| {
298                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
299            })?;
300        cfg.interceptor_state()
301            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
302        ::std::result::Result::Ok(())
303    }
304}
305
306// The get_* functions below are generated from JMESPath expressions in the
307// operationContextParams trait. They target the operation's input shape.
308
309/// Error type for the `DeleteIntegrationError` operation.
310#[non_exhaustive]
311#[derive(::std::fmt::Debug)]
312pub enum DeleteIntegrationError {
313    /// <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>
314    IntegrationConflictOperationFault(crate::types::error::IntegrationConflictOperationFault),
315    /// <p>The specified integration could not be found.</p>
316    IntegrationNotFoundFault(crate::types::error::IntegrationNotFoundFault),
317    /// <p>The integration is in an invalid state and can't perform the requested operation.</p>
318    InvalidIntegrationStateFault(crate::types::error::InvalidIntegrationStateFault),
319    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
320    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
321    variable wildcard pattern and check `.code()`:
322     \
323    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
324     \
325    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-DeleteIntegrationError) for what information is available for the error.")]
326    Unhandled(crate::error::sealed_unhandled::Unhandled),
327}
328impl DeleteIntegrationError {
329    /// Creates the `DeleteIntegrationError::Unhandled` variant from any error type.
330    pub fn unhandled(
331        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
332    ) -> Self {
333        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
334            source: err.into(),
335            meta: ::std::default::Default::default(),
336        })
337    }
338
339    /// Creates the `DeleteIntegrationError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
340    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
341        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
342            source: err.clone().into(),
343            meta: err,
344        })
345    }
346    ///
347    /// Returns error metadata, which includes the error code, message,
348    /// request ID, and potentially additional information.
349    ///
350    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
351        match self {
352            Self::IntegrationConflictOperationFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
353            Self::IntegrationNotFoundFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
354            Self::InvalidIntegrationStateFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
355            Self::Unhandled(e) => &e.meta,
356        }
357    }
358    /// Returns `true` if the error kind is `DeleteIntegrationError::IntegrationConflictOperationFault`.
359    pub fn is_integration_conflict_operation_fault(&self) -> bool {
360        matches!(self, Self::IntegrationConflictOperationFault(_))
361    }
362    /// Returns `true` if the error kind is `DeleteIntegrationError::IntegrationNotFoundFault`.
363    pub fn is_integration_not_found_fault(&self) -> bool {
364        matches!(self, Self::IntegrationNotFoundFault(_))
365    }
366    /// Returns `true` if the error kind is `DeleteIntegrationError::InvalidIntegrationStateFault`.
367    pub fn is_invalid_integration_state_fault(&self) -> bool {
368        matches!(self, Self::InvalidIntegrationStateFault(_))
369    }
370}
371impl ::std::error::Error for DeleteIntegrationError {
372    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
373        match self {
374            Self::IntegrationConflictOperationFault(_inner) => ::std::option::Option::Some(_inner),
375            Self::IntegrationNotFoundFault(_inner) => ::std::option::Option::Some(_inner),
376            Self::InvalidIntegrationStateFault(_inner) => ::std::option::Option::Some(_inner),
377            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
378        }
379    }
380}
381impl ::std::fmt::Display for DeleteIntegrationError {
382    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
383        match self {
384            Self::IntegrationConflictOperationFault(_inner) => _inner.fmt(f),
385            Self::IntegrationNotFoundFault(_inner) => _inner.fmt(f),
386            Self::InvalidIntegrationStateFault(_inner) => _inner.fmt(f),
387            Self::Unhandled(_inner) => {
388                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
389                    write!(f, "unhandled error ({code})")
390                } else {
391                    f.write_str("unhandled error")
392                }
393            }
394        }
395    }
396}
397impl ::aws_smithy_types::retry::ProvideErrorKind for DeleteIntegrationError {
398    fn code(&self) -> ::std::option::Option<&str> {
399        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
400    }
401    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
402        ::std::option::Option::None
403    }
404}
405impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for DeleteIntegrationError {
406    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
407        match self {
408            Self::IntegrationConflictOperationFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
409            Self::IntegrationNotFoundFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
410            Self::InvalidIntegrationStateFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
411            Self::Unhandled(_inner) => &_inner.meta,
412        }
413    }
414}
415impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for DeleteIntegrationError {
416    fn create_unhandled_error(
417        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
418        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
419    ) -> Self {
420        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
421            source,
422            meta: meta.unwrap_or_default(),
423        })
424    }
425}
426impl ::aws_types::request_id::RequestId for crate::operation::delete_integration::DeleteIntegrationError {
427    fn request_id(&self) -> Option<&str> {
428        self.meta().request_id()
429    }
430}
431
432pub use crate::operation::delete_integration::_delete_integration_input::DeleteIntegrationInput;
433
434pub use crate::operation::delete_integration::_delete_integration_output::DeleteIntegrationOutput;
435
436mod _delete_integration_input;
437
438mod _delete_integration_output;
439
440/// Builders
441pub mod builders;