Skip to main content

aws_sdk_codedeploy/operation/
create_deployment.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `CreateDeployment`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct CreateDeployment;
6impl CreateDeployment {
7    /// Creates a new `CreateDeployment`
8    pub fn new() -> Self {
9        Self
10    }
11    pub(crate) async fn orchestrate(
12        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
13        input: crate::operation::create_deployment::CreateDeploymentInput,
14    ) -> ::std::result::Result<
15        crate::operation::create_deployment::CreateDeploymentOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::create_deployment::CreateDeploymentError,
18            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
19        >,
20    > {
21        let map_err = |err: ::aws_smithy_runtime_api::client::result::SdkError<
22            ::aws_smithy_runtime_api::client::interceptors::context::Error,
23            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
24        >| {
25            err.map_service_error(|err| {
26                err.downcast::<crate::operation::create_deployment::CreateDeploymentError>()
27                    .expect("correct error type")
28            })
29        };
30        let context = Self::orchestrate_with_stop_point(runtime_plugins, input, ::aws_smithy_runtime::client::orchestrator::StopPoint::None)
31            .await
32            .map_err(map_err)?;
33        let output = context.finalize().map_err(map_err)?;
34        ::std::result::Result::Ok(
35            output
36                .downcast::<crate::operation::create_deployment::CreateDeploymentOutput>()
37                .expect("correct output type"),
38        )
39    }
40
41    pub(crate) async fn orchestrate_with_stop_point(
42        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
43        input: crate::operation::create_deployment::CreateDeploymentInput,
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("CodeDeploy", "CreateDeployment", 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                "CodeDeploy.CreateDeployment",
59                "rpc.service" = "CodeDeploy",
60                "rpc.method" = "CreateDeployment",
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 CreateDeployment {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("CreateDeployment");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            CreateDeploymentRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            CreateDeploymentResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("CreateDeployment")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
106            "CreateDeployment",
107            "CodeDeploy",
108        ));
109        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
110        signing_options.double_uri_encode = true;
111        signing_options.content_sha256_header = false;
112        signing_options.normalize_uri_path = true;
113        signing_options.payload_override = None;
114
115        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
116            signing_options,
117            ..::std::default::Default::default()
118        });
119
120        ::std::option::Option::Some(cfg.freeze())
121    }
122
123    fn runtime_components(
124        &self,
125        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
126    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
127        #[allow(unused_mut)]
128        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("CreateDeployment")
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                CreateDeploymentEndpointParamsInterceptor,
134            ))
135            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
136                crate::operation::create_deployment::CreateDeploymentError,
137            >::new())
138            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
139                crate::operation::create_deployment::CreateDeploymentError,
140            >::new())
141            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
142                crate::operation::create_deployment::CreateDeploymentError,
143            >::new());
144
145        ::std::borrow::Cow::Owned(rcb)
146    }
147}
148
149#[derive(Debug)]
150struct CreateDeploymentResponseDeserializer;
151impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateDeploymentResponseDeserializer {
152    fn deserialize_nonstreaming(
153        &self,
154        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
155    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
156        let (success, status) = (response.status().is_success(), response.status().as_u16());
157        let headers = response.headers();
158        let body = response.body().bytes().expect("body loaded");
159        #[allow(unused_mut)]
160        let mut force_error = false;
161        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
162        let parse_result = if !success && status != 200 || force_error {
163            crate::protocol_serde::shape_create_deployment::de_create_deployment_http_error(status, headers, body)
164        } else {
165            crate::protocol_serde::shape_create_deployment::de_create_deployment_http_response(status, headers, body)
166        };
167        crate::protocol_serde::type_erase_result(parse_result)
168    }
169}
170#[derive(Debug)]
171struct CreateDeploymentRequestSerializer;
172impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateDeploymentRequestSerializer {
173    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
174    fn serialize_input(
175        &self,
176        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
177        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
178    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
179        let input = input
180            .downcast::<crate::operation::create_deployment::CreateDeploymentInput>()
181            .expect("correct type");
182        let _header_serialization_settings = _cfg
183            .load::<crate::serialization_settings::HeaderSerializationSettings>()
184            .cloned()
185            .unwrap_or_default();
186        let mut request_builder = {
187            #[allow(clippy::uninlined_format_args)]
188            fn uri_base(
189                _input: &crate::operation::create_deployment::CreateDeploymentInput,
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::create_deployment::CreateDeploymentInput,
199                builder: ::http_1x::request::Builder,
200            ) -> ::std::result::Result<::http_1x::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_1x::request::Builder::new())?;
206            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
207            builder = _header_serialization_settings.set_default_header(
208                builder,
209                ::http_1x::header::HeaderName::from_static("x-amz-target"),
210                "CodeDeploy_20141006.CreateDeployment",
211            );
212            builder
213        };
214        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_create_deployment::ser_create_deployment_input(&input)?);
215        if let Some(content_length) = body.content_length() {
216            let content_length = content_length.to_string();
217            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
218        }
219        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
220    }
221}
222#[derive(Debug)]
223struct CreateDeploymentEndpointParamsInterceptor;
224
225#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
226impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateDeploymentEndpointParamsInterceptor {
227    fn name(&self) -> &'static str {
228        "CreateDeploymentEndpointParamsInterceptor"
229    }
230
231    fn read_before_execution(
232        &self,
233        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
234            '_,
235            ::aws_smithy_runtime_api::client::interceptors::context::Input,
236            ::aws_smithy_runtime_api::client::interceptors::context::Output,
237            ::aws_smithy_runtime_api::client::interceptors::context::Error,
238        >,
239        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
240    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
241        let _input = context
242            .input()
243            .downcast_ref::<CreateDeploymentInput>()
244            .ok_or("failed to downcast to CreateDeploymentInput")?;
245
246        let params = crate::config::endpoint::Params::builder()
247            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
248            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
249            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
250            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
251            .build()
252            .map_err(|err| {
253                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
254            })?;
255        cfg.interceptor_state()
256            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
257        ::std::result::Result::Ok(())
258    }
259}
260
261// The get_* functions below are generated from JMESPath expressions in the
262// operationContextParams trait. They target the operation's input shape.
263
264/// Error type for the `CreateDeploymentError` operation.
265#[non_exhaustive]
266#[derive(::std::fmt::Debug)]
267pub enum CreateDeploymentError {
268    /// <p>The maximum number of alarms for a deployment group (10) was exceeded.</p>
269    AlarmsLimitExceededException(crate::types::error::AlarmsLimitExceededException),
270    /// <p>The application does not exist with the user or Amazon Web Services account.</p>
271    ApplicationDoesNotExistException(crate::types::error::ApplicationDoesNotExistException),
272    /// <p>The minimum number of required application names was not specified.</p>
273    ApplicationNameRequiredException(crate::types::error::ApplicationNameRequiredException),
274    /// <p>The deployment configuration does not exist with the user or Amazon Web Services account.</p>
275    DeploymentConfigDoesNotExistException(crate::types::error::DeploymentConfigDoesNotExistException),
276    /// <p>The named deployment group with the user or Amazon Web Services account does not exist.</p>
277    DeploymentGroupDoesNotExistException(crate::types::error::DeploymentGroupDoesNotExistException),
278    /// <p>The deployment group name was not specified.</p>
279    DeploymentGroupNameRequiredException(crate::types::error::DeploymentGroupNameRequiredException),
280    /// <p>The number of allowed deployments was exceeded.</p>
281    DeploymentLimitExceededException(crate::types::error::DeploymentLimitExceededException),
282    /// <p>The description is too long.</p>
283    DescriptionTooLongException(crate::types::error::DescriptionTooLongException),
284    /// <p>The format of the alarm configuration is invalid. Possible causes include:</p>
285    /// <ul>
286    /// <li>
287    /// <p>The alarm list is null.</p></li>
288    /// <li>
289    /// <p>The alarm object is null.</p></li>
290    /// <li>
291    /// <p>The alarm name is empty or null or exceeds the limit of 255 characters.</p></li>
292    /// <li>
293    /// <p>Two alarms with the same name have been specified.</p></li>
294    /// <li>
295    /// <p>The alarm configuration is enabled, but the alarm list is empty.</p></li>
296    /// </ul>
297    InvalidAlarmConfigException(crate::types::error::InvalidAlarmConfigException),
298    /// <p>The application name was specified in an invalid format.</p>
299    InvalidApplicationNameException(crate::types::error::InvalidApplicationNameException),
300    /// <p>The automatic rollback configuration was specified in an invalid format. For example, automatic rollback is enabled, but an invalid triggering event type or no event types were listed.</p>
301    InvalidAutoRollbackConfigException(crate::types::error::InvalidAutoRollbackConfigException),
302    /// <p>The Auto Scaling group was specified in an invalid format or does not exist.</p>
303    InvalidAutoScalingGroupException(crate::types::error::InvalidAutoScalingGroupException),
304    /// <p>The deployment configuration name was specified in an invalid format.</p>
305    InvalidDeploymentConfigNameException(crate::types::error::InvalidDeploymentConfigNameException),
306    /// <p>The deployment group name was specified in an invalid format.</p>
307    InvalidDeploymentGroupNameException(crate::types::error::InvalidDeploymentGroupNameException),
308    /// <p>An invalid fileExistsBehavior option was specified to determine how CodeDeploy handles files or directories that already exist in a deployment target location, but weren't part of the previous successful deployment. Valid values include "DISALLOW," "OVERWRITE," and "RETAIN."</p>
309    InvalidFileExistsBehaviorException(crate::types::error::InvalidFileExistsBehaviorException),
310    /// <p>The GitHub token is not valid.</p>
311    InvalidGitHubAccountTokenException(crate::types::error::InvalidGitHubAccountTokenException),
312    /// <p>The IgnoreApplicationStopFailures value is invalid. For Lambda deployments, <code>false</code> is expected. For EC2/On-premises deployments, <code>true</code> or <code>false</code> is expected.</p>
313    InvalidIgnoreApplicationStopFailuresValueException(crate::types::error::InvalidIgnoreApplicationStopFailuresValueException),
314    /// <p>An invalid load balancer name, or no load balancer name, was specified.</p>
315    InvalidLoadBalancerInfoException(crate::types::error::InvalidLoadBalancerInfoException),
316    /// <p>The revision was specified in an invalid format.</p>
317    InvalidRevisionException(crate::types::error::InvalidRevisionException),
318    /// <p>The service role ARN was specified in an invalid format. Or, if an Auto Scaling group was specified, the specified service role does not grant the appropriate permissions to Amazon EC2 Auto Scaling.</p>
319    InvalidRoleException(crate::types::error::InvalidRoleException),
320    /// <p>The target instance configuration is invalid. Possible causes include:</p>
321    /// <ul>
322    /// <li>
323    /// <p>Configuration data for target instances was entered for an in-place deployment.</p></li>
324    /// <li>
325    /// <p>The limit of 10 tags for a tag type was exceeded.</p></li>
326    /// <li>
327    /// <p>The combined length of the tag names exceeded the limit.</p></li>
328    /// <li>
329    /// <p>A specified tag is not currently applied to any instances.</p></li>
330    /// </ul>
331    InvalidTargetInstancesException(crate::types::error::InvalidTargetInstancesException),
332    /// <p>The configuration that specifies how traffic is routed during a deployment is invalid.</p>
333    InvalidTrafficRoutingConfigurationException(crate::types::error::InvalidTrafficRoutingConfigurationException),
334    /// <p>The UpdateOutdatedInstancesOnly value is invalid. For Lambda deployments, <code>false</code> is expected. For EC2/On-premises deployments, <code>true</code> or <code>false</code> is expected.</p>
335    InvalidUpdateOutdatedInstancesOnlyValueException(crate::types::error::InvalidUpdateOutdatedInstancesOnlyValueException),
336    /// <p>The named revision does not exist with the user or Amazon Web Services account.</p>
337    RevisionDoesNotExistException(crate::types::error::RevisionDoesNotExistException),
338    /// <p>The revision ID was not specified.</p>
339    RevisionRequiredException(crate::types::error::RevisionRequiredException),
340    /// <p>An API function was called too frequently.</p>
341    ThrottlingException(crate::types::error::ThrottlingException),
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-CreateDeploymentError) for what information is available for the error.")]
349    Unhandled(crate::error::sealed_unhandled::Unhandled),
350}
351impl CreateDeploymentError {
352    /// Creates the `CreateDeploymentError::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 `CreateDeploymentError::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::AlarmsLimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
376            Self::ApplicationDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
377            Self::ApplicationNameRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
378            Self::DeploymentConfigDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
379            Self::DeploymentGroupDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
380            Self::DeploymentGroupNameRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
381            Self::DeploymentLimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
382            Self::DescriptionTooLongException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
383            Self::InvalidAlarmConfigException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
384            Self::InvalidApplicationNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
385            Self::InvalidAutoRollbackConfigException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
386            Self::InvalidAutoScalingGroupException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
387            Self::InvalidDeploymentConfigNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
388            Self::InvalidDeploymentGroupNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
389            Self::InvalidFileExistsBehaviorException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
390            Self::InvalidGitHubAccountTokenException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
391            Self::InvalidIgnoreApplicationStopFailuresValueException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
392            Self::InvalidLoadBalancerInfoException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
393            Self::InvalidRevisionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
394            Self::InvalidRoleException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
395            Self::InvalidTargetInstancesException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
396            Self::InvalidTrafficRoutingConfigurationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
397            Self::InvalidUpdateOutdatedInstancesOnlyValueException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
398            Self::RevisionDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
399            Self::RevisionRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
400            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
401            Self::Unhandled(e) => &e.meta,
402        }
403    }
404    /// Returns `true` if the error kind is `CreateDeploymentError::AlarmsLimitExceededException`.
405    pub fn is_alarms_limit_exceeded_exception(&self) -> bool {
406        matches!(self, Self::AlarmsLimitExceededException(_))
407    }
408    /// Returns `true` if the error kind is `CreateDeploymentError::ApplicationDoesNotExistException`.
409    pub fn is_application_does_not_exist_exception(&self) -> bool {
410        matches!(self, Self::ApplicationDoesNotExistException(_))
411    }
412    /// Returns `true` if the error kind is `CreateDeploymentError::ApplicationNameRequiredException`.
413    pub fn is_application_name_required_exception(&self) -> bool {
414        matches!(self, Self::ApplicationNameRequiredException(_))
415    }
416    /// Returns `true` if the error kind is `CreateDeploymentError::DeploymentConfigDoesNotExistException`.
417    pub fn is_deployment_config_does_not_exist_exception(&self) -> bool {
418        matches!(self, Self::DeploymentConfigDoesNotExistException(_))
419    }
420    /// Returns `true` if the error kind is `CreateDeploymentError::DeploymentGroupDoesNotExistException`.
421    pub fn is_deployment_group_does_not_exist_exception(&self) -> bool {
422        matches!(self, Self::DeploymentGroupDoesNotExistException(_))
423    }
424    /// Returns `true` if the error kind is `CreateDeploymentError::DeploymentGroupNameRequiredException`.
425    pub fn is_deployment_group_name_required_exception(&self) -> bool {
426        matches!(self, Self::DeploymentGroupNameRequiredException(_))
427    }
428    /// Returns `true` if the error kind is `CreateDeploymentError::DeploymentLimitExceededException`.
429    pub fn is_deployment_limit_exceeded_exception(&self) -> bool {
430        matches!(self, Self::DeploymentLimitExceededException(_))
431    }
432    /// Returns `true` if the error kind is `CreateDeploymentError::DescriptionTooLongException`.
433    pub fn is_description_too_long_exception(&self) -> bool {
434        matches!(self, Self::DescriptionTooLongException(_))
435    }
436    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidAlarmConfigException`.
437    pub fn is_invalid_alarm_config_exception(&self) -> bool {
438        matches!(self, Self::InvalidAlarmConfigException(_))
439    }
440    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidApplicationNameException`.
441    pub fn is_invalid_application_name_exception(&self) -> bool {
442        matches!(self, Self::InvalidApplicationNameException(_))
443    }
444    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidAutoRollbackConfigException`.
445    pub fn is_invalid_auto_rollback_config_exception(&self) -> bool {
446        matches!(self, Self::InvalidAutoRollbackConfigException(_))
447    }
448    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidAutoScalingGroupException`.
449    pub fn is_invalid_auto_scaling_group_exception(&self) -> bool {
450        matches!(self, Self::InvalidAutoScalingGroupException(_))
451    }
452    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidDeploymentConfigNameException`.
453    pub fn is_invalid_deployment_config_name_exception(&self) -> bool {
454        matches!(self, Self::InvalidDeploymentConfigNameException(_))
455    }
456    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidDeploymentGroupNameException`.
457    pub fn is_invalid_deployment_group_name_exception(&self) -> bool {
458        matches!(self, Self::InvalidDeploymentGroupNameException(_))
459    }
460    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidFileExistsBehaviorException`.
461    pub fn is_invalid_file_exists_behavior_exception(&self) -> bool {
462        matches!(self, Self::InvalidFileExistsBehaviorException(_))
463    }
464    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidGitHubAccountTokenException`.
465    pub fn is_invalid_git_hub_account_token_exception(&self) -> bool {
466        matches!(self, Self::InvalidGitHubAccountTokenException(_))
467    }
468    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidIgnoreApplicationStopFailuresValueException`.
469    pub fn is_invalid_ignore_application_stop_failures_value_exception(&self) -> bool {
470        matches!(self, Self::InvalidIgnoreApplicationStopFailuresValueException(_))
471    }
472    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidLoadBalancerInfoException`.
473    pub fn is_invalid_load_balancer_info_exception(&self) -> bool {
474        matches!(self, Self::InvalidLoadBalancerInfoException(_))
475    }
476    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidRevisionException`.
477    pub fn is_invalid_revision_exception(&self) -> bool {
478        matches!(self, Self::InvalidRevisionException(_))
479    }
480    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidRoleException`.
481    pub fn is_invalid_role_exception(&self) -> bool {
482        matches!(self, Self::InvalidRoleException(_))
483    }
484    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidTargetInstancesException`.
485    pub fn is_invalid_target_instances_exception(&self) -> bool {
486        matches!(self, Self::InvalidTargetInstancesException(_))
487    }
488    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidTrafficRoutingConfigurationException`.
489    pub fn is_invalid_traffic_routing_configuration_exception(&self) -> bool {
490        matches!(self, Self::InvalidTrafficRoutingConfigurationException(_))
491    }
492    /// Returns `true` if the error kind is `CreateDeploymentError::InvalidUpdateOutdatedInstancesOnlyValueException`.
493    pub fn is_invalid_update_outdated_instances_only_value_exception(&self) -> bool {
494        matches!(self, Self::InvalidUpdateOutdatedInstancesOnlyValueException(_))
495    }
496    /// Returns `true` if the error kind is `CreateDeploymentError::RevisionDoesNotExistException`.
497    pub fn is_revision_does_not_exist_exception(&self) -> bool {
498        matches!(self, Self::RevisionDoesNotExistException(_))
499    }
500    /// Returns `true` if the error kind is `CreateDeploymentError::RevisionRequiredException`.
501    pub fn is_revision_required_exception(&self) -> bool {
502        matches!(self, Self::RevisionRequiredException(_))
503    }
504    /// Returns `true` if the error kind is `CreateDeploymentError::ThrottlingException`.
505    pub fn is_throttling_exception(&self) -> bool {
506        matches!(self, Self::ThrottlingException(_))
507    }
508}
509impl ::std::error::Error for CreateDeploymentError {
510    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
511        match self {
512            Self::AlarmsLimitExceededException(_inner) => ::std::option::Option::Some(_inner),
513            Self::ApplicationDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
514            Self::ApplicationNameRequiredException(_inner) => ::std::option::Option::Some(_inner),
515            Self::DeploymentConfigDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
516            Self::DeploymentGroupDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
517            Self::DeploymentGroupNameRequiredException(_inner) => ::std::option::Option::Some(_inner),
518            Self::DeploymentLimitExceededException(_inner) => ::std::option::Option::Some(_inner),
519            Self::DescriptionTooLongException(_inner) => ::std::option::Option::Some(_inner),
520            Self::InvalidAlarmConfigException(_inner) => ::std::option::Option::Some(_inner),
521            Self::InvalidApplicationNameException(_inner) => ::std::option::Option::Some(_inner),
522            Self::InvalidAutoRollbackConfigException(_inner) => ::std::option::Option::Some(_inner),
523            Self::InvalidAutoScalingGroupException(_inner) => ::std::option::Option::Some(_inner),
524            Self::InvalidDeploymentConfigNameException(_inner) => ::std::option::Option::Some(_inner),
525            Self::InvalidDeploymentGroupNameException(_inner) => ::std::option::Option::Some(_inner),
526            Self::InvalidFileExistsBehaviorException(_inner) => ::std::option::Option::Some(_inner),
527            Self::InvalidGitHubAccountTokenException(_inner) => ::std::option::Option::Some(_inner),
528            Self::InvalidIgnoreApplicationStopFailuresValueException(_inner) => ::std::option::Option::Some(_inner),
529            Self::InvalidLoadBalancerInfoException(_inner) => ::std::option::Option::Some(_inner),
530            Self::InvalidRevisionException(_inner) => ::std::option::Option::Some(_inner),
531            Self::InvalidRoleException(_inner) => ::std::option::Option::Some(_inner),
532            Self::InvalidTargetInstancesException(_inner) => ::std::option::Option::Some(_inner),
533            Self::InvalidTrafficRoutingConfigurationException(_inner) => ::std::option::Option::Some(_inner),
534            Self::InvalidUpdateOutdatedInstancesOnlyValueException(_inner) => ::std::option::Option::Some(_inner),
535            Self::RevisionDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
536            Self::RevisionRequiredException(_inner) => ::std::option::Option::Some(_inner),
537            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
538            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
539        }
540    }
541}
542impl ::std::fmt::Display for CreateDeploymentError {
543    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
544        match self {
545            Self::AlarmsLimitExceededException(_inner) => _inner.fmt(f),
546            Self::ApplicationDoesNotExistException(_inner) => _inner.fmt(f),
547            Self::ApplicationNameRequiredException(_inner) => _inner.fmt(f),
548            Self::DeploymentConfigDoesNotExistException(_inner) => _inner.fmt(f),
549            Self::DeploymentGroupDoesNotExistException(_inner) => _inner.fmt(f),
550            Self::DeploymentGroupNameRequiredException(_inner) => _inner.fmt(f),
551            Self::DeploymentLimitExceededException(_inner) => _inner.fmt(f),
552            Self::DescriptionTooLongException(_inner) => _inner.fmt(f),
553            Self::InvalidAlarmConfigException(_inner) => _inner.fmt(f),
554            Self::InvalidApplicationNameException(_inner) => _inner.fmt(f),
555            Self::InvalidAutoRollbackConfigException(_inner) => _inner.fmt(f),
556            Self::InvalidAutoScalingGroupException(_inner) => _inner.fmt(f),
557            Self::InvalidDeploymentConfigNameException(_inner) => _inner.fmt(f),
558            Self::InvalidDeploymentGroupNameException(_inner) => _inner.fmt(f),
559            Self::InvalidFileExistsBehaviorException(_inner) => _inner.fmt(f),
560            Self::InvalidGitHubAccountTokenException(_inner) => _inner.fmt(f),
561            Self::InvalidIgnoreApplicationStopFailuresValueException(_inner) => _inner.fmt(f),
562            Self::InvalidLoadBalancerInfoException(_inner) => _inner.fmt(f),
563            Self::InvalidRevisionException(_inner) => _inner.fmt(f),
564            Self::InvalidRoleException(_inner) => _inner.fmt(f),
565            Self::InvalidTargetInstancesException(_inner) => _inner.fmt(f),
566            Self::InvalidTrafficRoutingConfigurationException(_inner) => _inner.fmt(f),
567            Self::InvalidUpdateOutdatedInstancesOnlyValueException(_inner) => _inner.fmt(f),
568            Self::RevisionDoesNotExistException(_inner) => _inner.fmt(f),
569            Self::RevisionRequiredException(_inner) => _inner.fmt(f),
570            Self::ThrottlingException(_inner) => _inner.fmt(f),
571            Self::Unhandled(_inner) => {
572                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
573                    write!(f, "unhandled error ({code})")
574                } else {
575                    f.write_str("unhandled error")
576                }
577            }
578        }
579    }
580}
581impl ::aws_smithy_types::retry::ProvideErrorKind for CreateDeploymentError {
582    fn code(&self) -> ::std::option::Option<&str> {
583        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
584    }
585    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
586        ::std::option::Option::None
587    }
588}
589impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateDeploymentError {
590    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
591        match self {
592            Self::AlarmsLimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
593            Self::ApplicationDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
594            Self::ApplicationNameRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
595            Self::DeploymentConfigDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
596            Self::DeploymentGroupDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
597            Self::DeploymentGroupNameRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
598            Self::DeploymentLimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
599            Self::DescriptionTooLongException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
600            Self::InvalidAlarmConfigException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
601            Self::InvalidApplicationNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
602            Self::InvalidAutoRollbackConfigException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
603            Self::InvalidAutoScalingGroupException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
604            Self::InvalidDeploymentConfigNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
605            Self::InvalidDeploymentGroupNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
606            Self::InvalidFileExistsBehaviorException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
607            Self::InvalidGitHubAccountTokenException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
608            Self::InvalidIgnoreApplicationStopFailuresValueException(_inner) => {
609                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
610            }
611            Self::InvalidLoadBalancerInfoException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
612            Self::InvalidRevisionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
613            Self::InvalidRoleException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
614            Self::InvalidTargetInstancesException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
615            Self::InvalidTrafficRoutingConfigurationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
616            Self::InvalidUpdateOutdatedInstancesOnlyValueException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
617            Self::RevisionDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
618            Self::RevisionRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
619            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
620            Self::Unhandled(_inner) => &_inner.meta,
621        }
622    }
623}
624impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateDeploymentError {
625    fn create_unhandled_error(
626        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
627        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
628    ) -> Self {
629        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
630            source,
631            meta: meta.unwrap_or_default(),
632        })
633    }
634}
635impl ::aws_types::request_id::RequestId for crate::operation::create_deployment::CreateDeploymentError {
636    fn request_id(&self) -> Option<&str> {
637        self.meta().request_id()
638    }
639}
640
641pub use crate::operation::create_deployment::_create_deployment_input::CreateDeploymentInput;
642
643pub use crate::operation::create_deployment::_create_deployment_output::CreateDeploymentOutput;
644
645mod _create_deployment_input;
646
647mod _create_deployment_output;
648
649/// Builders
650pub mod builders;