aws_sdk_codedeploy/operation/create_deployment_group/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_deployment_group::_create_deployment_group_output::CreateDeploymentGroupOutputBuilder;
3
4pub use crate::operation::create_deployment_group::_create_deployment_group_input::CreateDeploymentGroupInputBuilder;
5
6impl crate::operation::create_deployment_group::builders::CreateDeploymentGroupInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::create_deployment_group::CreateDeploymentGroupOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_deployment_group::CreateDeploymentGroupError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_deployment_group();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateDeploymentGroup`.
24///
25/// <p>Creates a deployment group to which application revisions are deployed.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateDeploymentGroupFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_deployment_group::builders::CreateDeploymentGroupInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_deployment_group::CreateDeploymentGroupOutput,
35        crate::operation::create_deployment_group::CreateDeploymentGroupError,
36    > for CreateDeploymentGroupFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::create_deployment_group::CreateDeploymentGroupOutput,
44            crate::operation::create_deployment_group::CreateDeploymentGroupError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateDeploymentGroupFluentBuilder {
51    /// Creates a new `CreateDeploymentGroupFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the CreateDeploymentGroup as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_deployment_group::builders::CreateDeploymentGroupInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::create_deployment_group::CreateDeploymentGroupOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_deployment_group::CreateDeploymentGroupError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::create_deployment_group::CreateDeploymentGroup::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_deployment_group::CreateDeploymentGroup::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::create_deployment_group::CreateDeploymentGroupOutput,
97        crate::operation::create_deployment_group::CreateDeploymentGroupError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// <p>The name of an CodeDeploy application associated with the user or Amazon Web Services account.</p>
112    pub fn application_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.application_name(input.into());
114        self
115    }
116    /// <p>The name of an CodeDeploy application associated with the user or Amazon Web Services account.</p>
117    pub fn set_application_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_application_name(input);
119        self
120    }
121    /// <p>The name of an CodeDeploy application associated with the user or Amazon Web Services account.</p>
122    pub fn get_application_name(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_application_name()
124    }
125    /// <p>The name of a new deployment group for the specified application.</p>
126    pub fn deployment_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.deployment_group_name(input.into());
128        self
129    }
130    /// <p>The name of a new deployment group for the specified application.</p>
131    pub fn set_deployment_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_deployment_group_name(input);
133        self
134    }
135    /// <p>The name of a new deployment group for the specified application.</p>
136    pub fn get_deployment_group_name(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_deployment_group_name()
138    }
139    /// <p>If specified, the deployment configuration name can be either one of the predefined configurations provided with CodeDeploy or a custom deployment configuration that you create by calling the create deployment configuration operation.</p>
140    /// <p><code>CodeDeployDefault.OneAtATime</code> is the default deployment configuration. It is used if a configuration isn't specified for the deployment or deployment group.</p>
141    /// <p>For more information about the predefined deployment configurations in CodeDeploy, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html">Working with Deployment Configurations in CodeDeploy</a> in the <i>CodeDeploy User Guide</i>.</p>
142    pub fn deployment_config_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
143        self.inner = self.inner.deployment_config_name(input.into());
144        self
145    }
146    /// <p>If specified, the deployment configuration name can be either one of the predefined configurations provided with CodeDeploy or a custom deployment configuration that you create by calling the create deployment configuration operation.</p>
147    /// <p><code>CodeDeployDefault.OneAtATime</code> is the default deployment configuration. It is used if a configuration isn't specified for the deployment or deployment group.</p>
148    /// <p>For more information about the predefined deployment configurations in CodeDeploy, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html">Working with Deployment Configurations in CodeDeploy</a> in the <i>CodeDeploy User Guide</i>.</p>
149    pub fn set_deployment_config_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
150        self.inner = self.inner.set_deployment_config_name(input);
151        self
152    }
153    /// <p>If specified, the deployment configuration name can be either one of the predefined configurations provided with CodeDeploy or a custom deployment configuration that you create by calling the create deployment configuration operation.</p>
154    /// <p><code>CodeDeployDefault.OneAtATime</code> is the default deployment configuration. It is used if a configuration isn't specified for the deployment or deployment group.</p>
155    /// <p>For more information about the predefined deployment configurations in CodeDeploy, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html">Working with Deployment Configurations in CodeDeploy</a> in the <i>CodeDeploy User Guide</i>.</p>
156    pub fn get_deployment_config_name(&self) -> &::std::option::Option<::std::string::String> {
157        self.inner.get_deployment_config_name()
158    }
159    ///
160    /// Appends an item to `ec2TagFilters`.
161    ///
162    /// To override the contents of this collection use [`set_ec2_tag_filters`](Self::set_ec2_tag_filters).
163    ///
164    /// <p>The Amazon EC2 tags on which to filter. The deployment group includes Amazon EC2 instances with any of the specified tags. Cannot be used in the same call as ec2TagSet.</p>
165    pub fn ec2_tag_filters(mut self, input: crate::types::Ec2TagFilter) -> Self {
166        self.inner = self.inner.ec2_tag_filters(input);
167        self
168    }
169    /// <p>The Amazon EC2 tags on which to filter. The deployment group includes Amazon EC2 instances with any of the specified tags. Cannot be used in the same call as ec2TagSet.</p>
170    pub fn set_ec2_tag_filters(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Ec2TagFilter>>) -> Self {
171        self.inner = self.inner.set_ec2_tag_filters(input);
172        self
173    }
174    /// <p>The Amazon EC2 tags on which to filter. The deployment group includes Amazon EC2 instances with any of the specified tags. Cannot be used in the same call as ec2TagSet.</p>
175    pub fn get_ec2_tag_filters(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Ec2TagFilter>> {
176        self.inner.get_ec2_tag_filters()
177    }
178    ///
179    /// Appends an item to `onPremisesInstanceTagFilters`.
180    ///
181    /// To override the contents of this collection use [`set_on_premises_instance_tag_filters`](Self::set_on_premises_instance_tag_filters).
182    ///
183    /// <p>The on-premises instance tags on which to filter. The deployment group includes on-premises instances with any of the specified tags. Cannot be used in the same call as <code>OnPremisesTagSet</code>.</p>
184    pub fn on_premises_instance_tag_filters(mut self, input: crate::types::TagFilter) -> Self {
185        self.inner = self.inner.on_premises_instance_tag_filters(input);
186        self
187    }
188    /// <p>The on-premises instance tags on which to filter. The deployment group includes on-premises instances with any of the specified tags. Cannot be used in the same call as <code>OnPremisesTagSet</code>.</p>
189    pub fn set_on_premises_instance_tag_filters(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TagFilter>>) -> Self {
190        self.inner = self.inner.set_on_premises_instance_tag_filters(input);
191        self
192    }
193    /// <p>The on-premises instance tags on which to filter. The deployment group includes on-premises instances with any of the specified tags. Cannot be used in the same call as <code>OnPremisesTagSet</code>.</p>
194    pub fn get_on_premises_instance_tag_filters(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TagFilter>> {
195        self.inner.get_on_premises_instance_tag_filters()
196    }
197    ///
198    /// Appends an item to `autoScalingGroups`.
199    ///
200    /// To override the contents of this collection use [`set_auto_scaling_groups`](Self::set_auto_scaling_groups).
201    ///
202    /// <p>A list of associated Amazon EC2 Auto Scaling groups.</p>
203    pub fn auto_scaling_groups(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
204        self.inner = self.inner.auto_scaling_groups(input.into());
205        self
206    }
207    /// <p>A list of associated Amazon EC2 Auto Scaling groups.</p>
208    pub fn set_auto_scaling_groups(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
209        self.inner = self.inner.set_auto_scaling_groups(input);
210        self
211    }
212    /// <p>A list of associated Amazon EC2 Auto Scaling groups.</p>
213    pub fn get_auto_scaling_groups(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
214        self.inner.get_auto_scaling_groups()
215    }
216    /// <p>A service role Amazon Resource Name (ARN) that allows CodeDeploy to act on the user's behalf when interacting with Amazon Web Services services.</p>
217    pub fn service_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
218        self.inner = self.inner.service_role_arn(input.into());
219        self
220    }
221    /// <p>A service role Amazon Resource Name (ARN) that allows CodeDeploy to act on the user's behalf when interacting with Amazon Web Services services.</p>
222    pub fn set_service_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
223        self.inner = self.inner.set_service_role_arn(input);
224        self
225    }
226    /// <p>A service role Amazon Resource Name (ARN) that allows CodeDeploy to act on the user's behalf when interacting with Amazon Web Services services.</p>
227    pub fn get_service_role_arn(&self) -> &::std::option::Option<::std::string::String> {
228        self.inner.get_service_role_arn()
229    }
230    ///
231    /// Appends an item to `triggerConfigurations`.
232    ///
233    /// To override the contents of this collection use [`set_trigger_configurations`](Self::set_trigger_configurations).
234    ///
235    /// <p>Information about triggers to create when the deployment group is created. For examples, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-sns.html">Create a Trigger for an CodeDeploy Event</a> in the <i>CodeDeploy User Guide</i>.</p>
236    pub fn trigger_configurations(mut self, input: crate::types::TriggerConfig) -> Self {
237        self.inner = self.inner.trigger_configurations(input);
238        self
239    }
240    /// <p>Information about triggers to create when the deployment group is created. For examples, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-sns.html">Create a Trigger for an CodeDeploy Event</a> in the <i>CodeDeploy User Guide</i>.</p>
241    pub fn set_trigger_configurations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TriggerConfig>>) -> Self {
242        self.inner = self.inner.set_trigger_configurations(input);
243        self
244    }
245    /// <p>Information about triggers to create when the deployment group is created. For examples, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-sns.html">Create a Trigger for an CodeDeploy Event</a> in the <i>CodeDeploy User Guide</i>.</p>
246    pub fn get_trigger_configurations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TriggerConfig>> {
247        self.inner.get_trigger_configurations()
248    }
249    /// <p>Information to add about Amazon CloudWatch alarms when the deployment group is created.</p>
250    pub fn alarm_configuration(mut self, input: crate::types::AlarmConfiguration) -> Self {
251        self.inner = self.inner.alarm_configuration(input);
252        self
253    }
254    /// <p>Information to add about Amazon CloudWatch alarms when the deployment group is created.</p>
255    pub fn set_alarm_configuration(mut self, input: ::std::option::Option<crate::types::AlarmConfiguration>) -> Self {
256        self.inner = self.inner.set_alarm_configuration(input);
257        self
258    }
259    /// <p>Information to add about Amazon CloudWatch alarms when the deployment group is created.</p>
260    pub fn get_alarm_configuration(&self) -> &::std::option::Option<crate::types::AlarmConfiguration> {
261        self.inner.get_alarm_configuration()
262    }
263    /// <p>Configuration information for an automatic rollback that is added when a deployment group is created.</p>
264    pub fn auto_rollback_configuration(mut self, input: crate::types::AutoRollbackConfiguration) -> Self {
265        self.inner = self.inner.auto_rollback_configuration(input);
266        self
267    }
268    /// <p>Configuration information for an automatic rollback that is added when a deployment group is created.</p>
269    pub fn set_auto_rollback_configuration(mut self, input: ::std::option::Option<crate::types::AutoRollbackConfiguration>) -> Self {
270        self.inner = self.inner.set_auto_rollback_configuration(input);
271        self
272    }
273    /// <p>Configuration information for an automatic rollback that is added when a deployment group is created.</p>
274    pub fn get_auto_rollback_configuration(&self) -> &::std::option::Option<crate::types::AutoRollbackConfiguration> {
275        self.inner.get_auto_rollback_configuration()
276    }
277    /// <p>Indicates what happens when new Amazon EC2 instances are launched mid-deployment and do not receive the deployed application revision.</p>
278    /// <p>If this option is set to <code>UPDATE</code> or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new Amazon EC2 instances.</p>
279    /// <p>If this option is set to <code>IGNORE</code>, CodeDeploy does not initiate a deployment to update the new Amazon EC2 instances. This may result in instances having different revisions.</p>
280    pub fn outdated_instances_strategy(mut self, input: crate::types::OutdatedInstancesStrategy) -> Self {
281        self.inner = self.inner.outdated_instances_strategy(input);
282        self
283    }
284    /// <p>Indicates what happens when new Amazon EC2 instances are launched mid-deployment and do not receive the deployed application revision.</p>
285    /// <p>If this option is set to <code>UPDATE</code> or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new Amazon EC2 instances.</p>
286    /// <p>If this option is set to <code>IGNORE</code>, CodeDeploy does not initiate a deployment to update the new Amazon EC2 instances. This may result in instances having different revisions.</p>
287    pub fn set_outdated_instances_strategy(mut self, input: ::std::option::Option<crate::types::OutdatedInstancesStrategy>) -> Self {
288        self.inner = self.inner.set_outdated_instances_strategy(input);
289        self
290    }
291    /// <p>Indicates what happens when new Amazon EC2 instances are launched mid-deployment and do not receive the deployed application revision.</p>
292    /// <p>If this option is set to <code>UPDATE</code> or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new Amazon EC2 instances.</p>
293    /// <p>If this option is set to <code>IGNORE</code>, CodeDeploy does not initiate a deployment to update the new Amazon EC2 instances. This may result in instances having different revisions.</p>
294    pub fn get_outdated_instances_strategy(&self) -> &::std::option::Option<crate::types::OutdatedInstancesStrategy> {
295        self.inner.get_outdated_instances_strategy()
296    }
297    /// <p>Information about the type of deployment, in-place or blue/green, that you want to run and whether to route deployment traffic behind a load balancer.</p>
298    pub fn deployment_style(mut self, input: crate::types::DeploymentStyle) -> Self {
299        self.inner = self.inner.deployment_style(input);
300        self
301    }
302    /// <p>Information about the type of deployment, in-place or blue/green, that you want to run and whether to route deployment traffic behind a load balancer.</p>
303    pub fn set_deployment_style(mut self, input: ::std::option::Option<crate::types::DeploymentStyle>) -> Self {
304        self.inner = self.inner.set_deployment_style(input);
305        self
306    }
307    /// <p>Information about the type of deployment, in-place or blue/green, that you want to run and whether to route deployment traffic behind a load balancer.</p>
308    pub fn get_deployment_style(&self) -> &::std::option::Option<crate::types::DeploymentStyle> {
309        self.inner.get_deployment_style()
310    }
311    /// <p>Information about blue/green deployment options for a deployment group.</p>
312    pub fn blue_green_deployment_configuration(mut self, input: crate::types::BlueGreenDeploymentConfiguration) -> Self {
313        self.inner = self.inner.blue_green_deployment_configuration(input);
314        self
315    }
316    /// <p>Information about blue/green deployment options for a deployment group.</p>
317    pub fn set_blue_green_deployment_configuration(mut self, input: ::std::option::Option<crate::types::BlueGreenDeploymentConfiguration>) -> Self {
318        self.inner = self.inner.set_blue_green_deployment_configuration(input);
319        self
320    }
321    /// <p>Information about blue/green deployment options for a deployment group.</p>
322    pub fn get_blue_green_deployment_configuration(&self) -> &::std::option::Option<crate::types::BlueGreenDeploymentConfiguration> {
323        self.inner.get_blue_green_deployment_configuration()
324    }
325    /// <p>Information about the load balancer used in a deployment.</p>
326    pub fn load_balancer_info(mut self, input: crate::types::LoadBalancerInfo) -> Self {
327        self.inner = self.inner.load_balancer_info(input);
328        self
329    }
330    /// <p>Information about the load balancer used in a deployment.</p>
331    pub fn set_load_balancer_info(mut self, input: ::std::option::Option<crate::types::LoadBalancerInfo>) -> Self {
332        self.inner = self.inner.set_load_balancer_info(input);
333        self
334    }
335    /// <p>Information about the load balancer used in a deployment.</p>
336    pub fn get_load_balancer_info(&self) -> &::std::option::Option<crate::types::LoadBalancerInfo> {
337        self.inner.get_load_balancer_info()
338    }
339    /// <p>Information about groups of tags applied to Amazon EC2 instances. The deployment group includes only Amazon EC2 instances identified by all the tag groups. Cannot be used in the same call as <code>ec2TagFilters</code>.</p>
340    pub fn ec2_tag_set(mut self, input: crate::types::Ec2TagSet) -> Self {
341        self.inner = self.inner.ec2_tag_set(input);
342        self
343    }
344    /// <p>Information about groups of tags applied to Amazon EC2 instances. The deployment group includes only Amazon EC2 instances identified by all the tag groups. Cannot be used in the same call as <code>ec2TagFilters</code>.</p>
345    pub fn set_ec2_tag_set(mut self, input: ::std::option::Option<crate::types::Ec2TagSet>) -> Self {
346        self.inner = self.inner.set_ec2_tag_set(input);
347        self
348    }
349    /// <p>Information about groups of tags applied to Amazon EC2 instances. The deployment group includes only Amazon EC2 instances identified by all the tag groups. Cannot be used in the same call as <code>ec2TagFilters</code>.</p>
350    pub fn get_ec2_tag_set(&self) -> &::std::option::Option<crate::types::Ec2TagSet> {
351        self.inner.get_ec2_tag_set()
352    }
353    ///
354    /// Appends an item to `ecsServices`.
355    ///
356    /// To override the contents of this collection use [`set_ecs_services`](Self::set_ecs_services).
357    ///
358    /// <p>The target Amazon ECS services in the deployment group. This applies only to deployment groups that use the Amazon ECS compute platform. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format <code><clustername>
359    /// :
360    /// <servicename></servicename>
361    /// </clustername></code>.</p>
362    pub fn ecs_services(mut self, input: crate::types::EcsService) -> Self {
363        self.inner = self.inner.ecs_services(input);
364        self
365    }
366    /// <p>The target Amazon ECS services in the deployment group. This applies only to deployment groups that use the Amazon ECS compute platform. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format <code><clustername>
367    /// :
368    /// <servicename></servicename>
369    /// </clustername></code>.</p>
370    pub fn set_ecs_services(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::EcsService>>) -> Self {
371        self.inner = self.inner.set_ecs_services(input);
372        self
373    }
374    /// <p>The target Amazon ECS services in the deployment group. This applies only to deployment groups that use the Amazon ECS compute platform. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format <code><clustername>
375    /// :
376    /// <servicename></servicename>
377    /// </clustername></code>.</p>
378    pub fn get_ecs_services(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::EcsService>> {
379        self.inner.get_ecs_services()
380    }
381    /// <p>Information about groups of tags applied to on-premises instances. The deployment group includes only on-premises instances identified by all of the tag groups. Cannot be used in the same call as <code>onPremisesInstanceTagFilters</code>.</p>
382    pub fn on_premises_tag_set(mut self, input: crate::types::OnPremisesTagSet) -> Self {
383        self.inner = self.inner.on_premises_tag_set(input);
384        self
385    }
386    /// <p>Information about groups of tags applied to on-premises instances. The deployment group includes only on-premises instances identified by all of the tag groups. Cannot be used in the same call as <code>onPremisesInstanceTagFilters</code>.</p>
387    pub fn set_on_premises_tag_set(mut self, input: ::std::option::Option<crate::types::OnPremisesTagSet>) -> Self {
388        self.inner = self.inner.set_on_premises_tag_set(input);
389        self
390    }
391    /// <p>Information about groups of tags applied to on-premises instances. The deployment group includes only on-premises instances identified by all of the tag groups. Cannot be used in the same call as <code>onPremisesInstanceTagFilters</code>.</p>
392    pub fn get_on_premises_tag_set(&self) -> &::std::option::Option<crate::types::OnPremisesTagSet> {
393        self.inner.get_on_premises_tag_set()
394    }
395    ///
396    /// Appends an item to `tags`.
397    ///
398    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
399    ///
400    /// <p>The metadata that you apply to CodeDeploy deployment groups to help you organize and categorize them. Each tag consists of a key and an optional value, both of which you define.</p>
401    pub fn tags(mut self, input: crate::types::Tag) -> Self {
402        self.inner = self.inner.tags(input);
403        self
404    }
405    /// <p>The metadata that you apply to CodeDeploy deployment groups to help you organize and categorize them. Each tag consists of a key and an optional value, both of which you define.</p>
406    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
407        self.inner = self.inner.set_tags(input);
408        self
409    }
410    /// <p>The metadata that you apply to CodeDeploy deployment groups to help you organize and categorize them. Each tag consists of a key and an optional value, both of which you define.</p>
411    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
412        self.inner.get_tags()
413    }
414    /// <p>This parameter only applies if you are using CodeDeploy with Amazon EC2 Auto Scaling. For more information, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws-auto-scaling.html">Integrating CodeDeploy with Amazon EC2 Auto Scaling</a> in the <i>CodeDeploy User Guide</i>.</p>
415    /// <p>Set <code>terminationHookEnabled</code> to <code>true</code> to have CodeDeploy install a termination hook into your Auto Scaling group when you create a deployment group. When this hook is installed, CodeDeploy will perform termination deployments.</p>
416    /// <p>For information about termination deployments, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws-auto-scaling.html#integrations-aws-auto-scaling-behaviors-hook-enable">Enabling termination deployments during Auto Scaling scale-in events</a> in the <i>CodeDeploy User Guide</i>.</p>
417    /// <p>For more information about Auto Scaling scale-in events, see the <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html#as-lifecycle-scale-in">Scale in</a> topic in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
418    pub fn termination_hook_enabled(mut self, input: bool) -> Self {
419        self.inner = self.inner.termination_hook_enabled(input);
420        self
421    }
422    /// <p>This parameter only applies if you are using CodeDeploy with Amazon EC2 Auto Scaling. For more information, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws-auto-scaling.html">Integrating CodeDeploy with Amazon EC2 Auto Scaling</a> in the <i>CodeDeploy User Guide</i>.</p>
423    /// <p>Set <code>terminationHookEnabled</code> to <code>true</code> to have CodeDeploy install a termination hook into your Auto Scaling group when you create a deployment group. When this hook is installed, CodeDeploy will perform termination deployments.</p>
424    /// <p>For information about termination deployments, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws-auto-scaling.html#integrations-aws-auto-scaling-behaviors-hook-enable">Enabling termination deployments during Auto Scaling scale-in events</a> in the <i>CodeDeploy User Guide</i>.</p>
425    /// <p>For more information about Auto Scaling scale-in events, see the <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html#as-lifecycle-scale-in">Scale in</a> topic in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
426    pub fn set_termination_hook_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
427        self.inner = self.inner.set_termination_hook_enabled(input);
428        self
429    }
430    /// <p>This parameter only applies if you are using CodeDeploy with Amazon EC2 Auto Scaling. For more information, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws-auto-scaling.html">Integrating CodeDeploy with Amazon EC2 Auto Scaling</a> in the <i>CodeDeploy User Guide</i>.</p>
431    /// <p>Set <code>terminationHookEnabled</code> to <code>true</code> to have CodeDeploy install a termination hook into your Auto Scaling group when you create a deployment group. When this hook is installed, CodeDeploy will perform termination deployments.</p>
432    /// <p>For information about termination deployments, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws-auto-scaling.html#integrations-aws-auto-scaling-behaviors-hook-enable">Enabling termination deployments during Auto Scaling scale-in events</a> in the <i>CodeDeploy User Guide</i>.</p>
433    /// <p>For more information about Auto Scaling scale-in events, see the <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html#as-lifecycle-scale-in">Scale in</a> topic in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>
434    pub fn get_termination_hook_enabled(&self) -> &::std::option::Option<bool> {
435        self.inner.get_termination_hook_enabled()
436    }
437}