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