Skip to main content

aws_sdk_codedeploy/operation/
batch_get_deployment_targets.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `BatchGetDeploymentTargets`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct BatchGetDeploymentTargets;
6impl BatchGetDeploymentTargets {
7    /// Creates a new `BatchGetDeploymentTargets`
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::batch_get_deployment_targets::BatchGetDeploymentTargetsInput,
14    ) -> ::std::result::Result<
15        crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsError,
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::batch_get_deployment_targets::BatchGetDeploymentTargetsError>()
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::batch_get_deployment_targets::BatchGetDeploymentTargetsOutput>()
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::batch_get_deployment_targets::BatchGetDeploymentTargetsInput,
44        stop_point: ::aws_smithy_runtime::client::orchestrator::StopPoint,
45    ) -> ::std::result::Result<
46        ::aws_smithy_runtime_api::client::interceptors::context::InterceptorContext,
47        ::aws_smithy_runtime_api::client::result::SdkError<
48            ::aws_smithy_runtime_api::client::interceptors::context::Error,
49            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
50        >,
51    > {
52        let input = ::aws_smithy_runtime_api::client::interceptors::context::Input::erase(input);
53        use ::tracing::Instrument;
54        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point(
55            "CodeDeploy",
56            "BatchGetDeploymentTargets",
57            input,
58            runtime_plugins,
59            stop_point,
60        )
61        // Create a parent span for the entire operation. Includes a random, internal-only,
62        // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
63        .instrument(::tracing::debug_span!(
64            "CodeDeploy.BatchGetDeploymentTargets",
65            "rpc.service" = "CodeDeploy",
66            "rpc.method" = "BatchGetDeploymentTargets",
67            "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
68            "rpc.system" = "aws-api",
69        ))
70        .await
71    }
72
73    pub(crate) fn operation_runtime_plugins(
74        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
75        client_config: &crate::config::Config,
76        config_override: ::std::option::Option<crate::config::Builder>,
77    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
78        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
79
80        if let ::std::option::Option::Some(config_override) = config_override {
81            for plugin in config_override.runtime_plugins.iter().cloned() {
82                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
83            }
84            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
85                config_override,
86                client_config.config.clone(),
87                &client_config.runtime_components,
88            ));
89        }
90        runtime_plugins
91    }
92}
93impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for BatchGetDeploymentTargets {
94    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
95        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("BatchGetDeploymentTargets");
96
97        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
98            BatchGetDeploymentTargetsRequestSerializer,
99        ));
100        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
101            BatchGetDeploymentTargetsResponseDeserializer,
102        ));
103
104        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
105            crate::config::auth::Params::builder()
106                .operation_name("BatchGetDeploymentTargets")
107                .build()
108                .expect("required fields set"),
109        ));
110
111        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
112            "BatchGetDeploymentTargets",
113            "CodeDeploy",
114        ));
115        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
116        signing_options.double_uri_encode = true;
117        signing_options.content_sha256_header = false;
118        signing_options.normalize_uri_path = true;
119        signing_options.payload_override = None;
120
121        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
122            signing_options,
123            ..::std::default::Default::default()
124        });
125
126        ::std::option::Option::Some(cfg.freeze())
127    }
128
129    fn runtime_components(
130        &self,
131        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
132    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
133        #[allow(unused_mut)]
134        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("BatchGetDeploymentTargets")
135            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
136                BatchGetDeploymentTargetsTelemetryInputCaptureInterceptor,
137            ))
138            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
139                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
140            ))
141            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
142                BatchGetDeploymentTargetsEndpointParamsInterceptor,
143            ))
144            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
145                crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsError,
146            >::new())
147            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
148                crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsError,
149            >::new())
150            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
151                crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsError,
152            >::new());
153
154        ::std::borrow::Cow::Owned(rcb)
155    }
156}
157
158#[derive(Debug)]
159struct BatchGetDeploymentTargetsTelemetryInputCaptureInterceptor;
160
161#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
162impl ::aws_smithy_runtime_api::client::interceptors::Intercept for BatchGetDeploymentTargetsTelemetryInputCaptureInterceptor {
163    fn name(&self) -> &'static str {
164        "BatchGetDeploymentTargetsTelemetryInputCaptureInterceptor"
165    }
166
167    fn read_before_execution(
168        &self,
169        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
170            '_,
171            ::aws_smithy_runtime_api::client::interceptors::context::Input,
172            ::aws_smithy_runtime_api::client::interceptors::context::Output,
173            ::aws_smithy_runtime_api::client::interceptors::context::Error,
174        >,
175        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
176    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
177        // Nothing to do unless the customer opted in by naming members to record.
178        let ::std::option::Option::Some(requested) = cfg
179            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
180            .filter(|r| !r.is_empty())
181        else {
182            return ::std::result::Result::Ok(());
183        };
184
185        let ::std::option::Option::Some(input) = context.input().downcast_ref::<BatchGetDeploymentTargetsInput>() else {
186            // A mismatched input is not this interceptor's concern; skip quietly.
187            return ::std::result::Result::Ok(());
188        };
189
190        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
191        if requested.should_capture("deploymentId") {
192            if let ::std::option::Option::Some(value) = input.deployment_id.as_deref() {
193                captured.insert("deploymentId", value);
194            }
195        }
196
197        cfg.interceptor_state().store_put(captured);
198        ::std::result::Result::Ok(())
199    }
200}
201#[derive(Debug)]
202struct BatchGetDeploymentTargetsResponseDeserializer;
203impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for BatchGetDeploymentTargetsResponseDeserializer {
204    fn deserialize_nonstreaming_with_config(
205        &self,
206        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
207        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
208    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
209        let (success, status) = (response.status().is_success(), response.status().as_u16());
210        let headers = response.headers();
211        let body = response.body().bytes().expect("body loaded");
212        #[allow(unused_mut)]
213        let mut force_error = false;
214        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
215        let parse_result = if !success && status != 200 || force_error {
216            crate::protocol_serde::shape_batch_get_deployment_targets::de_batch_get_deployment_targets_http_error(status, headers, body)
217        } else {
218            crate::protocol_serde::shape_batch_get_deployment_targets::de_batch_get_deployment_targets_http_response(status, headers, body)
219        };
220        crate::protocol_serde::type_erase_result(parse_result)
221    }
222}
223#[derive(Debug)]
224struct BatchGetDeploymentTargetsRequestSerializer;
225impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for BatchGetDeploymentTargetsRequestSerializer {
226    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
227    fn serialize_input(
228        &self,
229        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
230        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
231    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
232        let input = input
233            .downcast::<crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsInput>()
234            .expect("correct type");
235        let _header_serialization_settings = _cfg
236            .load::<crate::serialization_settings::HeaderSerializationSettings>()
237            .cloned()
238            .unwrap_or_default();
239        let mut request_builder = {
240            #[allow(clippy::uninlined_format_args)]
241            fn uri_base(
242                _input: &crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsInput,
243                output: &mut ::std::string::String,
244            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
245                use ::std::fmt::Write as _;
246                ::std::write!(output, "/").expect("formatting should succeed");
247                ::std::result::Result::Ok(())
248            }
249            #[allow(clippy::unnecessary_wraps)]
250            fn update_http_builder(
251                input: &crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsInput,
252                builder: ::http_1x::request::Builder,
253            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
254                let mut uri = ::std::string::String::new();
255                uri_base(input, &mut uri)?;
256                ::std::result::Result::Ok(builder.method("POST").uri(uri))
257            }
258            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
259            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
260            builder = _header_serialization_settings.set_default_header(
261                builder,
262                ::http_1x::header::HeaderName::from_static("x-amz-target"),
263                "CodeDeploy_20141006.BatchGetDeploymentTargets",
264            );
265            builder
266        };
267        let body = ::aws_smithy_types::body::SdkBody::from(
268            crate::protocol_serde::shape_batch_get_deployment_targets::ser_batch_get_deployment_targets_input(&input)?,
269        );
270        if let Some(content_length) = body.content_length() {
271            let content_length = content_length.to_string();
272            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
273        }
274        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
275    }
276}
277#[derive(Debug)]
278struct BatchGetDeploymentTargetsEndpointParamsInterceptor;
279
280#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
281impl ::aws_smithy_runtime_api::client::interceptors::Intercept for BatchGetDeploymentTargetsEndpointParamsInterceptor {
282    fn name(&self) -> &'static str {
283        "BatchGetDeploymentTargetsEndpointParamsInterceptor"
284    }
285
286    fn read_before_execution(
287        &self,
288        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
289            '_,
290            ::aws_smithy_runtime_api::client::interceptors::context::Input,
291            ::aws_smithy_runtime_api::client::interceptors::context::Output,
292            ::aws_smithy_runtime_api::client::interceptors::context::Error,
293        >,
294        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
295    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
296        let _input = context
297            .input()
298            .downcast_ref::<BatchGetDeploymentTargetsInput>()
299            .ok_or("failed to downcast to BatchGetDeploymentTargetsInput")?;
300
301        let params = crate::config::endpoint::Params::builder()
302            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
303            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
304            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
305            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
306            .build()
307            .map_err(|err| {
308                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
309            })?;
310        cfg.interceptor_state()
311            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
312        ::std::result::Result::Ok(())
313    }
314}
315
316// The get_* functions below are generated from JMESPath expressions in the
317// operationContextParams trait. They target the operation's input shape.
318
319/// Error type for the `BatchGetDeploymentTargetsError` operation.
320#[non_exhaustive]
321#[derive(::std::fmt::Debug)]
322pub enum BatchGetDeploymentTargetsError {
323    /// <p>The deployment with the user or Amazon Web Services account does not exist.</p>
324    DeploymentDoesNotExistException(crate::types::error::DeploymentDoesNotExistException),
325    /// <p>At least one deployment ID must be specified.</p>
326    DeploymentIdRequiredException(crate::types::error::DeploymentIdRequiredException),
327    /// <p>The specified deployment has not started.</p>
328    DeploymentNotStartedException(crate::types::error::DeploymentNotStartedException),
329    /// <p>The provided target ID does not belong to the attempted deployment.</p>
330    DeploymentTargetDoesNotExistException(crate::types::error::DeploymentTargetDoesNotExistException),
331    /// <p>A deployment target ID was not provided.</p>
332    DeploymentTargetIdRequiredException(crate::types::error::DeploymentTargetIdRequiredException),
333    /// <p>The maximum number of targets that can be associated with an Amazon ECS or Lambda deployment was exceeded. The target list of both types of deployments must have exactly one item. This exception does not apply to EC2/On-premises deployments.</p>
334    DeploymentTargetListSizeExceededException(crate::types::error::DeploymentTargetListSizeExceededException),
335    /// <p>The specified instance does not exist in the deployment group.</p>
336    #[deprecated(note = "This exception is deprecated, use DeploymentTargetDoesNotExistException instead.")]
337    InstanceDoesNotExistException(crate::types::error::InstanceDoesNotExistException),
338    /// <p>At least one of the deployment IDs was specified in an invalid format.</p>
339    InvalidDeploymentIdException(crate::types::error::InvalidDeploymentIdException),
340    /// <p>The target ID provided was not valid.</p>
341    InvalidDeploymentTargetIdException(crate::types::error::InvalidDeploymentTargetIdException),
342    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
343    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
344    variable wildcard pattern and check `.code()`:
345     \
346    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
347     \
348    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-BatchGetDeploymentTargetsError) for what information is available for the error.")]
349    Unhandled(crate::error::sealed_unhandled::Unhandled),
350}
351impl BatchGetDeploymentTargetsError {
352    /// Creates the `BatchGetDeploymentTargetsError::Unhandled` variant from any error type.
353    pub fn unhandled(
354        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
355    ) -> Self {
356        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
357            source: err.into(),
358            meta: ::std::default::Default::default(),
359        })
360    }
361
362    /// Creates the `BatchGetDeploymentTargetsError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
363    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
364        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
365            source: err.clone().into(),
366            meta: err,
367        })
368    }
369    ///
370    /// Returns error metadata, which includes the error code, message,
371    /// request ID, and potentially additional information.
372    ///
373    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
374        match self {
375            Self::DeploymentDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
376            Self::DeploymentIdRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
377            Self::DeploymentNotStartedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
378            Self::DeploymentTargetDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
379            Self::DeploymentTargetIdRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
380            Self::DeploymentTargetListSizeExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
381            Self::InstanceDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
382            Self::InvalidDeploymentIdException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
383            Self::InvalidDeploymentTargetIdException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
384            Self::Unhandled(e) => &e.meta,
385        }
386    }
387    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::DeploymentDoesNotExistException`.
388    pub fn is_deployment_does_not_exist_exception(&self) -> bool {
389        matches!(self, Self::DeploymentDoesNotExistException(_))
390    }
391    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::DeploymentIdRequiredException`.
392    pub fn is_deployment_id_required_exception(&self) -> bool {
393        matches!(self, Self::DeploymentIdRequiredException(_))
394    }
395    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::DeploymentNotStartedException`.
396    pub fn is_deployment_not_started_exception(&self) -> bool {
397        matches!(self, Self::DeploymentNotStartedException(_))
398    }
399    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::DeploymentTargetDoesNotExistException`.
400    pub fn is_deployment_target_does_not_exist_exception(&self) -> bool {
401        matches!(self, Self::DeploymentTargetDoesNotExistException(_))
402    }
403    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::DeploymentTargetIdRequiredException`.
404    pub fn is_deployment_target_id_required_exception(&self) -> bool {
405        matches!(self, Self::DeploymentTargetIdRequiredException(_))
406    }
407    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::DeploymentTargetListSizeExceededException`.
408    pub fn is_deployment_target_list_size_exceeded_exception(&self) -> bool {
409        matches!(self, Self::DeploymentTargetListSizeExceededException(_))
410    }
411    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::InstanceDoesNotExistException`.
412    pub fn is_instance_does_not_exist_exception(&self) -> bool {
413        matches!(self, Self::InstanceDoesNotExistException(_))
414    }
415    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::InvalidDeploymentIdException`.
416    pub fn is_invalid_deployment_id_exception(&self) -> bool {
417        matches!(self, Self::InvalidDeploymentIdException(_))
418    }
419    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::InvalidDeploymentTargetIdException`.
420    pub fn is_invalid_deployment_target_id_exception(&self) -> bool {
421        matches!(self, Self::InvalidDeploymentTargetIdException(_))
422    }
423}
424impl ::std::error::Error for BatchGetDeploymentTargetsError {
425    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
426        match self {
427            Self::DeploymentDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
428            Self::DeploymentIdRequiredException(_inner) => ::std::option::Option::Some(_inner),
429            Self::DeploymentNotStartedException(_inner) => ::std::option::Option::Some(_inner),
430            Self::DeploymentTargetDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
431            Self::DeploymentTargetIdRequiredException(_inner) => ::std::option::Option::Some(_inner),
432            Self::DeploymentTargetListSizeExceededException(_inner) => ::std::option::Option::Some(_inner),
433            Self::InstanceDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
434            Self::InvalidDeploymentIdException(_inner) => ::std::option::Option::Some(_inner),
435            Self::InvalidDeploymentTargetIdException(_inner) => ::std::option::Option::Some(_inner),
436            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
437        }
438    }
439}
440impl ::std::fmt::Display for BatchGetDeploymentTargetsError {
441    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
442        match self {
443            Self::DeploymentDoesNotExistException(_inner) => _inner.fmt(f),
444            Self::DeploymentIdRequiredException(_inner) => _inner.fmt(f),
445            Self::DeploymentNotStartedException(_inner) => _inner.fmt(f),
446            Self::DeploymentTargetDoesNotExistException(_inner) => _inner.fmt(f),
447            Self::DeploymentTargetIdRequiredException(_inner) => _inner.fmt(f),
448            Self::DeploymentTargetListSizeExceededException(_inner) => _inner.fmt(f),
449            Self::InstanceDoesNotExistException(_inner) => _inner.fmt(f),
450            Self::InvalidDeploymentIdException(_inner) => _inner.fmt(f),
451            Self::InvalidDeploymentTargetIdException(_inner) => _inner.fmt(f),
452            Self::Unhandled(_inner) => {
453                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
454                    write!(f, "unhandled error ({code})")
455                } else {
456                    f.write_str("unhandled error")
457                }
458            }
459        }
460    }
461}
462impl ::aws_smithy_types::retry::ProvideErrorKind for BatchGetDeploymentTargetsError {
463    fn code(&self) -> ::std::option::Option<&str> {
464        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
465    }
466    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
467        ::std::option::Option::None
468    }
469}
470impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for BatchGetDeploymentTargetsError {
471    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
472        match self {
473            Self::DeploymentDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
474            Self::DeploymentIdRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
475            Self::DeploymentNotStartedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
476            Self::DeploymentTargetDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
477            Self::DeploymentTargetIdRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
478            Self::DeploymentTargetListSizeExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
479            Self::InstanceDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
480            Self::InvalidDeploymentIdException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
481            Self::InvalidDeploymentTargetIdException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
482            Self::Unhandled(_inner) => &_inner.meta,
483        }
484    }
485}
486impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for BatchGetDeploymentTargetsError {
487    fn create_unhandled_error(
488        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
489        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
490    ) -> Self {
491        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
492            source,
493            meta: meta.unwrap_or_default(),
494        })
495    }
496}
497impl ::aws_types::request_id::RequestId for crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsError {
498    fn request_id(&self) -> Option<&str> {
499        self.meta().request_id()
500    }
501}
502
503pub use crate::operation::batch_get_deployment_targets::_batch_get_deployment_targets_input::BatchGetDeploymentTargetsInput;
504
505pub use crate::operation::batch_get_deployment_targets::_batch_get_deployment_targets_output::BatchGetDeploymentTargetsOutput;
506
507mod _batch_get_deployment_targets_input;
508
509mod _batch_get_deployment_targets_output;
510
511/// Builders
512pub mod builders;