aws_sdk_gamelift/operation/update_container_fleet/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_container_fleet::_update_container_fleet_output::UpdateContainerFleetOutputBuilder;
3
4pub use crate::operation::update_container_fleet::_update_container_fleet_input::UpdateContainerFleetInputBuilder;
5
6impl crate::operation::update_container_fleet::builders::UpdateContainerFleetInputBuilder {
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::update_container_fleet::UpdateContainerFleetOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::update_container_fleet::UpdateContainerFleetError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.update_container_fleet();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `UpdateContainerFleet`.
24///
25/// <p><b>This API works with the following fleet types:</b> Container</p>
26/// <p>Updates the properties of a managed container fleet. Depending on the properties being updated, this operation might initiate a fleet deployment. You can track deployments for a fleet using <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetDeployment.html">https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetDeployment.html</a>.</p><note>
27/// <p>A managed fleet's runtime environment, which depends on the fleet's Amazon Machine Image {AMI} version, can't be updated. You must create a new fleet. As a best practice, we recommend replacing your managed fleets every 30 days to maintain a secure and up-to-date runtime environment for your hosted game servers. For guidance, see <a href="https://docs.aws.amazon.com/gameliftservers/latest/developerguide/security-best-practices.html"> Security best practices for Amazon GameLift Servers</a>.</p>
28/// </note>
29/// <p><b>Request options</b></p>
30/// <p>As with CreateContainerFleet, many fleet properties use common defaults or are calculated based on the fleet's container group definitions.</p>
31/// <ul>
32/// <li>
33/// <p>Update fleet properties that result in a fleet deployment. Include only those properties that you want to change. Specify deployment configuration settings.</p></li>
34/// <li>
35/// <p>Update fleet properties that don't result in a fleet deployment. Include only those properties that you want to change.</p></li>
36/// </ul>
37/// <p>Changes to the following properties initiate a fleet deployment:</p>
38/// <ul>
39/// <li>
40/// <p><code>GameServerContainerGroupDefinition</code></p></li>
41/// <li>
42/// <p><code>PerInstanceContainerGroupDefinition</code></p></li>
43/// <li>
44/// <p><code>GameServerContainerGroupsPerInstance</code></p></li>
45/// <li>
46/// <p><code>InstanceInboundPermissions</code></p></li>
47/// <li>
48/// <p><code>InstanceConnectionPortRange</code></p></li>
49/// <li>
50/// <p><code>LogConfiguration</code></p></li>
51/// </ul>
52/// <p><b>Results</b></p>
53/// <p>If successful, this operation updates the container fleet resource, and might initiate a new deployment of fleet resources using the deployment configuration provided. A deployment replaces existing fleet instances with new instances that are deployed with the updated fleet properties. The fleet is placed in <code>UPDATING</code> status until the deployment is complete, then return to <code>ACTIVE</code>.</p>
54/// <p>You can have only one update deployment active at a time for a fleet. If a second update request initiates a deployment while another deployment is in progress, the first deployment is cancelled.</p>
55#[derive(::std::clone::Clone, ::std::fmt::Debug)]
56pub struct UpdateContainerFleetFluentBuilder {
57    handle: ::std::sync::Arc<crate::client::Handle>,
58    inner: crate::operation::update_container_fleet::builders::UpdateContainerFleetInputBuilder,
59    config_override: ::std::option::Option<crate::config::Builder>,
60}
61impl
62    crate::client::customize::internal::CustomizableSend<
63        crate::operation::update_container_fleet::UpdateContainerFleetOutput,
64        crate::operation::update_container_fleet::UpdateContainerFleetError,
65    > for UpdateContainerFleetFluentBuilder
66{
67    fn send(
68        self,
69        config_override: crate::config::Builder,
70    ) -> crate::client::customize::internal::BoxFuture<
71        crate::client::customize::internal::SendResult<
72            crate::operation::update_container_fleet::UpdateContainerFleetOutput,
73            crate::operation::update_container_fleet::UpdateContainerFleetError,
74        >,
75    > {
76        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
77    }
78}
79impl UpdateContainerFleetFluentBuilder {
80    /// Creates a new `UpdateContainerFleetFluentBuilder`.
81    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
82        Self {
83            handle,
84            inner: ::std::default::Default::default(),
85            config_override: ::std::option::Option::None,
86        }
87    }
88    /// Access the UpdateContainerFleet as a reference.
89    pub fn as_input(&self) -> &crate::operation::update_container_fleet::builders::UpdateContainerFleetInputBuilder {
90        &self.inner
91    }
92    /// Sends the request and returns the response.
93    ///
94    /// If an error occurs, an `SdkError` will be returned with additional details that
95    /// can be matched against.
96    ///
97    /// By default, any retryable failures will be retried twice. Retry behavior
98    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
99    /// set when configuring the client.
100    pub async fn send(
101        self,
102    ) -> ::std::result::Result<
103        crate::operation::update_container_fleet::UpdateContainerFleetOutput,
104        ::aws_smithy_runtime_api::client::result::SdkError<
105            crate::operation::update_container_fleet::UpdateContainerFleetError,
106            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
107        >,
108    > {
109        let input = self
110            .inner
111            .build()
112            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
113        let runtime_plugins = crate::operation::update_container_fleet::UpdateContainerFleet::operation_runtime_plugins(
114            self.handle.runtime_plugins.clone(),
115            &self.handle.conf,
116            self.config_override,
117        );
118        crate::operation::update_container_fleet::UpdateContainerFleet::orchestrate(&runtime_plugins, input).await
119    }
120
121    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
122    pub fn customize(
123        self,
124    ) -> crate::client::customize::CustomizableOperation<
125        crate::operation::update_container_fleet::UpdateContainerFleetOutput,
126        crate::operation::update_container_fleet::UpdateContainerFleetError,
127        Self,
128    > {
129        crate::client::customize::CustomizableOperation::new(self)
130    }
131    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
132        self.set_config_override(::std::option::Option::Some(config_override.into()));
133        self
134    }
135
136    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
137        self.config_override = config_override;
138        self
139    }
140    /// <p>A unique identifier for the container fleet to update. You can use either the fleet ID or ARN value.</p>
141    pub fn fleet_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
142        self.inner = self.inner.fleet_id(input.into());
143        self
144    }
145    /// <p>A unique identifier for the container fleet to update. You can use either the fleet ID or ARN value.</p>
146    pub fn set_fleet_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
147        self.inner = self.inner.set_fleet_id(input);
148        self
149    }
150    /// <p>A unique identifier for the container fleet to update. You can use either the fleet ID or ARN value.</p>
151    pub fn get_fleet_id(&self) -> &::std::option::Option<::std::string::String> {
152        self.inner.get_fleet_id()
153    }
154    /// <p>The name or ARN value of a new game server container group definition to deploy on the fleet. If you're updating the fleet to a specific version of a container group definition, use the ARN value and include the version number. If you're updating the fleet to the latest version of a container group definition, you can use the name value. You can't remove a fleet's game server container group definition, you can only update or replace it with another definition.</p>
155    /// <p>Update a container group definition by calling <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html">UpdateContainerGroupDefinition</a>. This operation creates a <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html">ContainerGroupDefinition</a> resource with an incremented version.</p>
156    pub fn game_server_container_group_definition_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
157        self.inner = self.inner.game_server_container_group_definition_name(input.into());
158        self
159    }
160    /// <p>The name or ARN value of a new game server container group definition to deploy on the fleet. If you're updating the fleet to a specific version of a container group definition, use the ARN value and include the version number. If you're updating the fleet to the latest version of a container group definition, you can use the name value. You can't remove a fleet's game server container group definition, you can only update or replace it with another definition.</p>
161    /// <p>Update a container group definition by calling <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html">UpdateContainerGroupDefinition</a>. This operation creates a <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html">ContainerGroupDefinition</a> resource with an incremented version.</p>
162    pub fn set_game_server_container_group_definition_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
163        self.inner = self.inner.set_game_server_container_group_definition_name(input);
164        self
165    }
166    /// <p>The name or ARN value of a new game server container group definition to deploy on the fleet. If you're updating the fleet to a specific version of a container group definition, use the ARN value and include the version number. If you're updating the fleet to the latest version of a container group definition, you can use the name value. You can't remove a fleet's game server container group definition, you can only update or replace it with another definition.</p>
167    /// <p>Update a container group definition by calling <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html">UpdateContainerGroupDefinition</a>. This operation creates a <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html">ContainerGroupDefinition</a> resource with an incremented version.</p>
168    pub fn get_game_server_container_group_definition_name(&self) -> &::std::option::Option<::std::string::String> {
169        self.inner.get_game_server_container_group_definition_name()
170    }
171    /// <p>The name or ARN value of a new per-instance container group definition to deploy on the fleet. If you're updating the fleet to a specific version of a container group definition, use the ARN value and include the version number. If you're updating the fleet to the latest version of a container group definition, you can use the name value.</p>
172    /// <p>Update a container group definition by calling <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html">UpdateContainerGroupDefinition</a>. This operation creates a <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html">ContainerGroupDefinition</a> resource with an incremented version.</p>
173    /// <p>To remove a fleet's per-instance container group definition, leave this parameter empty and use the parameter <code>RemoveAttributes</code>.</p>
174    pub fn per_instance_container_group_definition_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
175        self.inner = self.inner.per_instance_container_group_definition_name(input.into());
176        self
177    }
178    /// <p>The name or ARN value of a new per-instance container group definition to deploy on the fleet. If you're updating the fleet to a specific version of a container group definition, use the ARN value and include the version number. If you're updating the fleet to the latest version of a container group definition, you can use the name value.</p>
179    /// <p>Update a container group definition by calling <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html">UpdateContainerGroupDefinition</a>. This operation creates a <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html">ContainerGroupDefinition</a> resource with an incremented version.</p>
180    /// <p>To remove a fleet's per-instance container group definition, leave this parameter empty and use the parameter <code>RemoveAttributes</code>.</p>
181    pub fn set_per_instance_container_group_definition_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
182        self.inner = self.inner.set_per_instance_container_group_definition_name(input);
183        self
184    }
185    /// <p>The name or ARN value of a new per-instance container group definition to deploy on the fleet. If you're updating the fleet to a specific version of a container group definition, use the ARN value and include the version number. If you're updating the fleet to the latest version of a container group definition, you can use the name value.</p>
186    /// <p>Update a container group definition by calling <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html">UpdateContainerGroupDefinition</a>. This operation creates a <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html">ContainerGroupDefinition</a> resource with an incremented version.</p>
187    /// <p>To remove a fleet's per-instance container group definition, leave this parameter empty and use the parameter <code>RemoveAttributes</code>.</p>
188    pub fn get_per_instance_container_group_definition_name(&self) -> &::std::option::Option<::std::string::String> {
189        self.inner.get_per_instance_container_group_definition_name()
190    }
191    /// <p>The number of times to replicate the game server container group on each fleet instance. By default, Amazon GameLift Servers calculates the maximum number of game server container groups that can fit on each instance. You can remove this property value to use the calculated value, or set it manually. If you set this number manually, Amazon GameLift Servers uses your value as long as it's less than the calculated maximum.</p>
192    pub fn game_server_container_groups_per_instance(mut self, input: i32) -> Self {
193        self.inner = self.inner.game_server_container_groups_per_instance(input);
194        self
195    }
196    /// <p>The number of times to replicate the game server container group on each fleet instance. By default, Amazon GameLift Servers calculates the maximum number of game server container groups that can fit on each instance. You can remove this property value to use the calculated value, or set it manually. If you set this number manually, Amazon GameLift Servers uses your value as long as it's less than the calculated maximum.</p>
197    pub fn set_game_server_container_groups_per_instance(mut self, input: ::std::option::Option<i32>) -> Self {
198        self.inner = self.inner.set_game_server_container_groups_per_instance(input);
199        self
200    }
201    /// <p>The number of times to replicate the game server container group on each fleet instance. By default, Amazon GameLift Servers calculates the maximum number of game server container groups that can fit on each instance. You can remove this property value to use the calculated value, or set it manually. If you set this number manually, Amazon GameLift Servers uses your value as long as it's less than the calculated maximum.</p>
202    pub fn get_game_server_container_groups_per_instance(&self) -> &::std::option::Option<i32> {
203        self.inner.get_game_server_container_groups_per_instance()
204    }
205    /// <p>A revised set of port numbers to open on each fleet instance. By default, Amazon GameLift Servers calculates an optimal port range based on your fleet configuration. If you previously set this parameter manually, you can't reset this to use the calculated settings.</p>
206    pub fn instance_connection_port_range(mut self, input: crate::types::ConnectionPortRange) -> Self {
207        self.inner = self.inner.instance_connection_port_range(input);
208        self
209    }
210    /// <p>A revised set of port numbers to open on each fleet instance. By default, Amazon GameLift Servers calculates an optimal port range based on your fleet configuration. If you previously set this parameter manually, you can't reset this to use the calculated settings.</p>
211    pub fn set_instance_connection_port_range(mut self, input: ::std::option::Option<crate::types::ConnectionPortRange>) -> Self {
212        self.inner = self.inner.set_instance_connection_port_range(input);
213        self
214    }
215    /// <p>A revised set of port numbers to open on each fleet instance. By default, Amazon GameLift Servers calculates an optimal port range based on your fleet configuration. If you previously set this parameter manually, you can't reset this to use the calculated settings.</p>
216    pub fn get_instance_connection_port_range(&self) -> &::std::option::Option<crate::types::ConnectionPortRange> {
217        self.inner.get_instance_connection_port_range()
218    }
219    ///
220    /// Appends an item to `InstanceInboundPermissionAuthorizations`.
221    ///
222    /// To override the contents of this collection use [`set_instance_inbound_permission_authorizations`](Self::set_instance_inbound_permission_authorizations).
223    ///
224    /// <p>A set of ports to add to the container fleet's inbound permissions.</p>
225    pub fn instance_inbound_permission_authorizations(mut self, input: crate::types::IpPermission) -> Self {
226        self.inner = self.inner.instance_inbound_permission_authorizations(input);
227        self
228    }
229    /// <p>A set of ports to add to the container fleet's inbound permissions.</p>
230    pub fn set_instance_inbound_permission_authorizations(
231        mut self,
232        input: ::std::option::Option<::std::vec::Vec<crate::types::IpPermission>>,
233    ) -> Self {
234        self.inner = self.inner.set_instance_inbound_permission_authorizations(input);
235        self
236    }
237    /// <p>A set of ports to add to the container fleet's inbound permissions.</p>
238    pub fn get_instance_inbound_permission_authorizations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::IpPermission>> {
239        self.inner.get_instance_inbound_permission_authorizations()
240    }
241    ///
242    /// Appends an item to `InstanceInboundPermissionRevocations`.
243    ///
244    /// To override the contents of this collection use [`set_instance_inbound_permission_revocations`](Self::set_instance_inbound_permission_revocations).
245    ///
246    /// <p>A set of ports to remove from the container fleet's inbound permissions.</p>
247    pub fn instance_inbound_permission_revocations(mut self, input: crate::types::IpPermission) -> Self {
248        self.inner = self.inner.instance_inbound_permission_revocations(input);
249        self
250    }
251    /// <p>A set of ports to remove from the container fleet's inbound permissions.</p>
252    pub fn set_instance_inbound_permission_revocations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::IpPermission>>) -> Self {
253        self.inner = self.inner.set_instance_inbound_permission_revocations(input);
254        self
255    }
256    /// <p>A set of ports to remove from the container fleet's inbound permissions.</p>
257    pub fn get_instance_inbound_permission_revocations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::IpPermission>> {
258        self.inner.get_instance_inbound_permission_revocations()
259    }
260    /// <p>Instructions for how to deploy updates to a container fleet, if the fleet update initiates a deployment. The deployment configuration lets you determine how to replace fleet instances and what actions to take if the deployment fails.</p>
261    pub fn deployment_configuration(mut self, input: crate::types::DeploymentConfiguration) -> Self {
262        self.inner = self.inner.deployment_configuration(input);
263        self
264    }
265    /// <p>Instructions for how to deploy updates to a container fleet, if the fleet update initiates a deployment. The deployment configuration lets you determine how to replace fleet instances and what actions to take if the deployment fails.</p>
266    pub fn set_deployment_configuration(mut self, input: ::std::option::Option<crate::types::DeploymentConfiguration>) -> Self {
267        self.inner = self.inner.set_deployment_configuration(input);
268        self
269    }
270    /// <p>Instructions for how to deploy updates to a container fleet, if the fleet update initiates a deployment. The deployment configuration lets you determine how to replace fleet instances and what actions to take if the deployment fails.</p>
271    pub fn get_deployment_configuration(&self) -> &::std::option::Option<crate::types::DeploymentConfiguration> {
272        self.inner.get_deployment_configuration()
273    }
274    /// <p>A meaningful description of the container fleet.</p>
275    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
276        self.inner = self.inner.description(input.into());
277        self
278    }
279    /// <p>A meaningful description of the container fleet.</p>
280    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
281        self.inner = self.inner.set_description(input);
282        self
283    }
284    /// <p>A meaningful description of the container fleet.</p>
285    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
286        self.inner.get_description()
287    }
288    ///
289    /// Appends an item to `MetricGroups`.
290    ///
291    /// To override the contents of this collection use [`set_metric_groups`](Self::set_metric_groups).
292    ///
293    /// <p>The name of an Amazon Web Services CloudWatch metric group to add this fleet to.</p>
294    pub fn metric_groups(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
295        self.inner = self.inner.metric_groups(input.into());
296        self
297    }
298    /// <p>The name of an Amazon Web Services CloudWatch metric group to add this fleet to.</p>
299    pub fn set_metric_groups(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
300        self.inner = self.inner.set_metric_groups(input);
301        self
302    }
303    /// <p>The name of an Amazon Web Services CloudWatch metric group to add this fleet to.</p>
304    pub fn get_metric_groups(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
305        self.inner.get_metric_groups()
306    }
307    /// <p>The game session protection policy to apply to all new game sessions that are started in this fleet. Game sessions that already exist are not affected.</p>
308    pub fn new_game_session_protection_policy(mut self, input: crate::types::ProtectionPolicy) -> Self {
309        self.inner = self.inner.new_game_session_protection_policy(input);
310        self
311    }
312    /// <p>The game session protection policy to apply to all new game sessions that are started in this fleet. Game sessions that already exist are not affected.</p>
313    pub fn set_new_game_session_protection_policy(mut self, input: ::std::option::Option<crate::types::ProtectionPolicy>) -> Self {
314        self.inner = self.inner.set_new_game_session_protection_policy(input);
315        self
316    }
317    /// <p>The game session protection policy to apply to all new game sessions that are started in this fleet. Game sessions that already exist are not affected.</p>
318    pub fn get_new_game_session_protection_policy(&self) -> &::std::option::Option<crate::types::ProtectionPolicy> {
319        self.inner.get_new_game_session_protection_policy()
320    }
321    /// <p>A policy that limits the number of game sessions that each individual player can create on instances in this fleet. The limit applies for a specified span of time.</p>
322    pub fn game_session_creation_limit_policy(mut self, input: crate::types::GameSessionCreationLimitPolicy) -> Self {
323        self.inner = self.inner.game_session_creation_limit_policy(input);
324        self
325    }
326    /// <p>A policy that limits the number of game sessions that each individual player can create on instances in this fleet. The limit applies for a specified span of time.</p>
327    pub fn set_game_session_creation_limit_policy(mut self, input: ::std::option::Option<crate::types::GameSessionCreationLimitPolicy>) -> Self {
328        self.inner = self.inner.set_game_session_creation_limit_policy(input);
329        self
330    }
331    /// <p>A policy that limits the number of game sessions that each individual player can create on instances in this fleet. The limit applies for a specified span of time.</p>
332    pub fn get_game_session_creation_limit_policy(&self) -> &::std::option::Option<crate::types::GameSessionCreationLimitPolicy> {
333        self.inner.get_game_session_creation_limit_policy()
334    }
335    /// <p>The method for collecting container logs for the fleet.</p>
336    pub fn log_configuration(mut self, input: crate::types::LogConfiguration) -> Self {
337        self.inner = self.inner.log_configuration(input);
338        self
339    }
340    /// <p>The method for collecting container logs for the fleet.</p>
341    pub fn set_log_configuration(mut self, input: ::std::option::Option<crate::types::LogConfiguration>) -> Self {
342        self.inner = self.inner.set_log_configuration(input);
343        self
344    }
345    /// <p>The method for collecting container logs for the fleet.</p>
346    pub fn get_log_configuration(&self) -> &::std::option::Option<crate::types::LogConfiguration> {
347        self.inner.get_log_configuration()
348    }
349    ///
350    /// Appends an item to `RemoveAttributes`.
351    ///
352    /// To override the contents of this collection use [`set_remove_attributes`](Self::set_remove_attributes).
353    ///
354    /// <p>If set, this update removes a fleet's per-instance container group definition. You can't remove a fleet's game server container group definition.</p>
355    pub fn remove_attributes(mut self, input: crate::types::ContainerFleetRemoveAttribute) -> Self {
356        self.inner = self.inner.remove_attributes(input);
357        self
358    }
359    /// <p>If set, this update removes a fleet's per-instance container group definition. You can't remove a fleet's game server container group definition.</p>
360    pub fn set_remove_attributes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ContainerFleetRemoveAttribute>>) -> Self {
361        self.inner = self.inner.set_remove_attributes(input);
362        self
363    }
364    /// <p>If set, this update removes a fleet's per-instance container group definition. You can't remove a fleet's game server container group definition.</p>
365    pub fn get_remove_attributes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ContainerFleetRemoveAttribute>> {
366        self.inner.get_remove_attributes()
367    }
368}