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                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
137            ))
138            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
139                BatchGetDeploymentTargetsEndpointParamsInterceptor,
140            ))
141            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
142                crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsError,
143            >::new())
144            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
145                crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsError,
146            >::new())
147            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
148                crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsError,
149            >::new());
150
151        ::std::borrow::Cow::Owned(rcb)
152    }
153}
154
155#[derive(Debug)]
156struct BatchGetDeploymentTargetsResponseDeserializer;
157impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for BatchGetDeploymentTargetsResponseDeserializer {
158    fn deserialize_nonstreaming(
159        &self,
160        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
161    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
162        let (success, status) = (response.status().is_success(), response.status().as_u16());
163        let headers = response.headers();
164        let body = response.body().bytes().expect("body loaded");
165        #[allow(unused_mut)]
166        let mut force_error = false;
167        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
168        let parse_result = if !success && status != 200 || force_error {
169            crate::protocol_serde::shape_batch_get_deployment_targets::de_batch_get_deployment_targets_http_error(status, headers, body)
170        } else {
171            crate::protocol_serde::shape_batch_get_deployment_targets::de_batch_get_deployment_targets_http_response(status, headers, body)
172        };
173        crate::protocol_serde::type_erase_result(parse_result)
174    }
175}
176#[derive(Debug)]
177struct BatchGetDeploymentTargetsRequestSerializer;
178impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for BatchGetDeploymentTargetsRequestSerializer {
179    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
180    fn serialize_input(
181        &self,
182        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
183        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
184    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
185        let input = input
186            .downcast::<crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsInput>()
187            .expect("correct type");
188        let _header_serialization_settings = _cfg
189            .load::<crate::serialization_settings::HeaderSerializationSettings>()
190            .cloned()
191            .unwrap_or_default();
192        let mut request_builder = {
193            #[allow(clippy::uninlined_format_args)]
194            fn uri_base(
195                _input: &crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsInput,
196                output: &mut ::std::string::String,
197            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
198                use ::std::fmt::Write as _;
199                ::std::write!(output, "/").expect("formatting should succeed");
200                ::std::result::Result::Ok(())
201            }
202            #[allow(clippy::unnecessary_wraps)]
203            fn update_http_builder(
204                input: &crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsInput,
205                builder: ::http_1x::request::Builder,
206            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
207                let mut uri = ::std::string::String::new();
208                uri_base(input, &mut uri)?;
209                ::std::result::Result::Ok(builder.method("POST").uri(uri))
210            }
211            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
212            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
213            builder = _header_serialization_settings.set_default_header(
214                builder,
215                ::http_1x::header::HeaderName::from_static("x-amz-target"),
216                "CodeDeploy_20141006.BatchGetDeploymentTargets",
217            );
218            builder
219        };
220        let body = ::aws_smithy_types::body::SdkBody::from(
221            crate::protocol_serde::shape_batch_get_deployment_targets::ser_batch_get_deployment_targets_input(&input)?,
222        );
223        if let Some(content_length) = body.content_length() {
224            let content_length = content_length.to_string();
225            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
226        }
227        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
228    }
229}
230#[derive(Debug)]
231struct BatchGetDeploymentTargetsEndpointParamsInterceptor;
232
233#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
234impl ::aws_smithy_runtime_api::client::interceptors::Intercept for BatchGetDeploymentTargetsEndpointParamsInterceptor {
235    fn name(&self) -> &'static str {
236        "BatchGetDeploymentTargetsEndpointParamsInterceptor"
237    }
238
239    fn read_before_execution(
240        &self,
241        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
242            '_,
243            ::aws_smithy_runtime_api::client::interceptors::context::Input,
244            ::aws_smithy_runtime_api::client::interceptors::context::Output,
245            ::aws_smithy_runtime_api::client::interceptors::context::Error,
246        >,
247        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
248    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
249        let _input = context
250            .input()
251            .downcast_ref::<BatchGetDeploymentTargetsInput>()
252            .ok_or("failed to downcast to BatchGetDeploymentTargetsInput")?;
253
254        let params = crate::config::endpoint::Params::builder()
255            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
256            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
257            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
258            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
259            .build()
260            .map_err(|err| {
261                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
262            })?;
263        cfg.interceptor_state()
264            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
265        ::std::result::Result::Ok(())
266    }
267}
268
269// The get_* functions below are generated from JMESPath expressions in the
270// operationContextParams trait. They target the operation's input shape.
271
272/// Error type for the `BatchGetDeploymentTargetsError` operation.
273#[non_exhaustive]
274#[derive(::std::fmt::Debug)]
275pub enum BatchGetDeploymentTargetsError {
276    /// <p>The deployment with the user or Amazon Web Services account does not exist.</p>
277    DeploymentDoesNotExistException(crate::types::error::DeploymentDoesNotExistException),
278    /// <p>At least one deployment ID must be specified.</p>
279    DeploymentIdRequiredException(crate::types::error::DeploymentIdRequiredException),
280    /// <p>The specified deployment has not started.</p>
281    DeploymentNotStartedException(crate::types::error::DeploymentNotStartedException),
282    /// <p>The provided target ID does not belong to the attempted deployment.</p>
283    DeploymentTargetDoesNotExistException(crate::types::error::DeploymentTargetDoesNotExistException),
284    /// <p>A deployment target ID was not provided.</p>
285    DeploymentTargetIdRequiredException(crate::types::error::DeploymentTargetIdRequiredException),
286    /// <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>
287    DeploymentTargetListSizeExceededException(crate::types::error::DeploymentTargetListSizeExceededException),
288    /// <p>The specified instance does not exist in the deployment group.</p>
289    #[deprecated(note = "This exception is deprecated, use DeploymentTargetDoesNotExistException instead.")]
290    InstanceDoesNotExistException(crate::types::error::InstanceDoesNotExistException),
291    /// <p>At least one of the deployment IDs was specified in an invalid format.</p>
292    InvalidDeploymentIdException(crate::types::error::InvalidDeploymentIdException),
293    /// <p>The target ID provided was not valid.</p>
294    InvalidDeploymentTargetIdException(crate::types::error::InvalidDeploymentTargetIdException),
295    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
296    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
297    variable wildcard pattern and check `.code()`:
298     \
299    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
300     \
301    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-BatchGetDeploymentTargetsError) for what information is available for the error.")]
302    Unhandled(crate::error::sealed_unhandled::Unhandled),
303}
304impl BatchGetDeploymentTargetsError {
305    /// Creates the `BatchGetDeploymentTargetsError::Unhandled` variant from any error type.
306    pub fn unhandled(
307        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
308    ) -> Self {
309        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
310            source: err.into(),
311            meta: ::std::default::Default::default(),
312        })
313    }
314
315    /// Creates the `BatchGetDeploymentTargetsError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
316    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
317        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
318            source: err.clone().into(),
319            meta: err,
320        })
321    }
322    ///
323    /// Returns error metadata, which includes the error code, message,
324    /// request ID, and potentially additional information.
325    ///
326    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
327        match self {
328            Self::DeploymentDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
329            Self::DeploymentIdRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
330            Self::DeploymentNotStartedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
331            Self::DeploymentTargetDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
332            Self::DeploymentTargetIdRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
333            Self::DeploymentTargetListSizeExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
334            Self::InstanceDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
335            Self::InvalidDeploymentIdException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
336            Self::InvalidDeploymentTargetIdException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
337            Self::Unhandled(e) => &e.meta,
338        }
339    }
340    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::DeploymentDoesNotExistException`.
341    pub fn is_deployment_does_not_exist_exception(&self) -> bool {
342        matches!(self, Self::DeploymentDoesNotExistException(_))
343    }
344    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::DeploymentIdRequiredException`.
345    pub fn is_deployment_id_required_exception(&self) -> bool {
346        matches!(self, Self::DeploymentIdRequiredException(_))
347    }
348    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::DeploymentNotStartedException`.
349    pub fn is_deployment_not_started_exception(&self) -> bool {
350        matches!(self, Self::DeploymentNotStartedException(_))
351    }
352    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::DeploymentTargetDoesNotExistException`.
353    pub fn is_deployment_target_does_not_exist_exception(&self) -> bool {
354        matches!(self, Self::DeploymentTargetDoesNotExistException(_))
355    }
356    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::DeploymentTargetIdRequiredException`.
357    pub fn is_deployment_target_id_required_exception(&self) -> bool {
358        matches!(self, Self::DeploymentTargetIdRequiredException(_))
359    }
360    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::DeploymentTargetListSizeExceededException`.
361    pub fn is_deployment_target_list_size_exceeded_exception(&self) -> bool {
362        matches!(self, Self::DeploymentTargetListSizeExceededException(_))
363    }
364    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::InstanceDoesNotExistException`.
365    pub fn is_instance_does_not_exist_exception(&self) -> bool {
366        matches!(self, Self::InstanceDoesNotExistException(_))
367    }
368    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::InvalidDeploymentIdException`.
369    pub fn is_invalid_deployment_id_exception(&self) -> bool {
370        matches!(self, Self::InvalidDeploymentIdException(_))
371    }
372    /// Returns `true` if the error kind is `BatchGetDeploymentTargetsError::InvalidDeploymentTargetIdException`.
373    pub fn is_invalid_deployment_target_id_exception(&self) -> bool {
374        matches!(self, Self::InvalidDeploymentTargetIdException(_))
375    }
376}
377impl ::std::error::Error for BatchGetDeploymentTargetsError {
378    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
379        match self {
380            Self::DeploymentDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
381            Self::DeploymentIdRequiredException(_inner) => ::std::option::Option::Some(_inner),
382            Self::DeploymentNotStartedException(_inner) => ::std::option::Option::Some(_inner),
383            Self::DeploymentTargetDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
384            Self::DeploymentTargetIdRequiredException(_inner) => ::std::option::Option::Some(_inner),
385            Self::DeploymentTargetListSizeExceededException(_inner) => ::std::option::Option::Some(_inner),
386            Self::InstanceDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
387            Self::InvalidDeploymentIdException(_inner) => ::std::option::Option::Some(_inner),
388            Self::InvalidDeploymentTargetIdException(_inner) => ::std::option::Option::Some(_inner),
389            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
390        }
391    }
392}
393impl ::std::fmt::Display for BatchGetDeploymentTargetsError {
394    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
395        match self {
396            Self::DeploymentDoesNotExistException(_inner) => _inner.fmt(f),
397            Self::DeploymentIdRequiredException(_inner) => _inner.fmt(f),
398            Self::DeploymentNotStartedException(_inner) => _inner.fmt(f),
399            Self::DeploymentTargetDoesNotExistException(_inner) => _inner.fmt(f),
400            Self::DeploymentTargetIdRequiredException(_inner) => _inner.fmt(f),
401            Self::DeploymentTargetListSizeExceededException(_inner) => _inner.fmt(f),
402            Self::InstanceDoesNotExistException(_inner) => _inner.fmt(f),
403            Self::InvalidDeploymentIdException(_inner) => _inner.fmt(f),
404            Self::InvalidDeploymentTargetIdException(_inner) => _inner.fmt(f),
405            Self::Unhandled(_inner) => {
406                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
407                    write!(f, "unhandled error ({code})")
408                } else {
409                    f.write_str("unhandled error")
410                }
411            }
412        }
413    }
414}
415impl ::aws_smithy_types::retry::ProvideErrorKind for BatchGetDeploymentTargetsError {
416    fn code(&self) -> ::std::option::Option<&str> {
417        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
418    }
419    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
420        ::std::option::Option::None
421    }
422}
423impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for BatchGetDeploymentTargetsError {
424    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
425        match self {
426            Self::DeploymentDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
427            Self::DeploymentIdRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
428            Self::DeploymentNotStartedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
429            Self::DeploymentTargetDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
430            Self::DeploymentTargetIdRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
431            Self::DeploymentTargetListSizeExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
432            Self::InstanceDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
433            Self::InvalidDeploymentIdException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
434            Self::InvalidDeploymentTargetIdException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
435            Self::Unhandled(_inner) => &_inner.meta,
436        }
437    }
438}
439impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for BatchGetDeploymentTargetsError {
440    fn create_unhandled_error(
441        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
442        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
443    ) -> Self {
444        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
445            source,
446            meta: meta.unwrap_or_default(),
447        })
448    }
449}
450impl ::aws_types::request_id::RequestId for crate::operation::batch_get_deployment_targets::BatchGetDeploymentTargetsError {
451    fn request_id(&self) -> Option<&str> {
452        self.meta().request_id()
453    }
454}
455
456pub use crate::operation::batch_get_deployment_targets::_batch_get_deployment_targets_input::BatchGetDeploymentTargetsInput;
457
458pub use crate::operation::batch_get_deployment_targets::_batch_get_deployment_targets_output::BatchGetDeploymentTargetsOutput;
459
460mod _batch_get_deployment_targets_input;
461
462mod _batch_get_deployment_targets_output;
463
464/// Builders
465pub mod builders;