/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.gamelift.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateGameServerGroupRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* An identifier for the new game server group. This value is used to generate unique ARN identifiers for the Amazon * EC2 Auto Scaling group and the Amazon GameLift FleetIQ game server group. The name must be unique per Region per * Amazon Web Services account. *
*/ private String gameServerGroupName; /** ** The Amazon Resource Name (ARN) * for an IAM role that allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups. *
*/ private String roleArn; /** ** The minimum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling events, * Amazon GameLift FleetIQ and Amazon EC2 do not scale down the group below this minimum. In production, this value * should be set to at least 1. After the Auto Scaling group is created, update this value directly in the Auto * Scaling group using the Amazon Web Services console or APIs. *
*/ private Integer minSize; /** ** The maximum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling events, * Amazon GameLift FleetIQ and EC2 do not scale up the group above this maximum. After the Auto Scaling group is * created, update this value directly in the Auto Scaling group using the Amazon Web Services console or APIs. *
*/ private Integer maxSize; /** ** The Amazon EC2 launch template that contains configuration settings and game server code to be deployed to all * instances in the game server group. You can specify the template using either the template name or ID. For help * with creating a launch template, see Creating a Launch * Template for an Auto Scaling Group in the Amazon Elastic Compute Cloud Auto Scaling User Guide. After * the Auto Scaling group is created, update this value directly in the Auto Scaling group using the Amazon Web * Services console or APIs. *
*
* If you specify network interfaces in your launch template, you must explicitly set the property
* AssociatePublicIpAddress
to "true". If no network interface is specified in the launch template,
* Amazon GameLift FleetIQ uses your account's default VPC.
*
* The Amazon EC2 instance types and sizes to use in the Auto Scaling group. The instance definitions must specify * at least two different instance types that are supported by Amazon GameLift FleetIQ. For more information on * instance types, see EC2 * Instance Types in the Amazon Elastic Compute Cloud User Guide. You can optionally specify capacity * weighting for each instance type. If no weight value is specified for an instance type, it is set to the default * value "1". For more information about capacity weighting, see Instance Weighting for * Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. *
*/ private java.util.List
* Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting.
* The scaling policy uses the metric "PercentUtilizedGameServers"
to maintain a buffer of idle game
* servers that can immediately accommodate new games and players. After the Auto Scaling group is created, update
* this value directly in the Auto Scaling group using the Amazon Web Services console or APIs.
*
* Indicates how Amazon GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game * server group. Method options include the following: *
*
* SPOT_ONLY
- Only Spot Instances are used in the game server group. If Spot Instances are unavailable
* or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again
* be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated
* (after current gameplay ends) and are not replaced.
*
* SPOT_PREFERRED
- (default value) Spot Instances are used whenever available in the game server
* group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling
* back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and
* are replaced with new On-Demand Instances.
*
* ON_DEMAND_ONLY
- Only On-Demand Instances are used in the game server group. No Spot Instances are
* used, even when available, while this balancing strategy is in force.
*
* A flag that indicates whether instances in the game server group are protected from early termination.
* Unprotected instances that have active game servers running might be terminated during a scale-down event,
* causing players to be dropped from the game. Protected instances cannot be terminated while there are active game
* servers running except in the event of a forced game server group deletion (see ). An exception to this is with
* Spot Instances, which can be terminated by Amazon Web Services regardless of protection status. This property is
* set to NO_PROTECTION
by default.
*
* A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, all * Amazon GameLift FleetIQ-supported Availability Zones are used. You can use this parameter to specify VPCs that * you've set up. This property cannot be updated after the game server group is created, and the corresponding Auto * Scaling group will always use the property value that is set with this request, even if the Auto Scaling group is * updated directly. *
*/ private java.util.List* A list of labels to assign to the new game server group resource. Tags are developer-defined key-value pairs. * Tagging Amazon Web Services resources is useful for resource management, access management, and cost allocation. * For more information, see Tagging * Amazon Web Services Resources in the Amazon Web Services General Reference. *
*/ private java.util.List* An identifier for the new game server group. This value is used to generate unique ARN identifiers for the Amazon * EC2 Auto Scaling group and the Amazon GameLift FleetIQ game server group. The name must be unique per Region per * Amazon Web Services account. *
* * @param gameServerGroupName * An identifier for the new game server group. This value is used to generate unique ARN identifiers for the * Amazon EC2 Auto Scaling group and the Amazon GameLift FleetIQ game server group. The name must be unique * per Region per Amazon Web Services account. */ public void setGameServerGroupName(String gameServerGroupName) { this.gameServerGroupName = gameServerGroupName; } /** ** An identifier for the new game server group. This value is used to generate unique ARN identifiers for the Amazon * EC2 Auto Scaling group and the Amazon GameLift FleetIQ game server group. The name must be unique per Region per * Amazon Web Services account. *
* * @return An identifier for the new game server group. This value is used to generate unique ARN identifiers for * the Amazon EC2 Auto Scaling group and the Amazon GameLift FleetIQ game server group. The name must be * unique per Region per Amazon Web Services account. */ public String getGameServerGroupName() { return this.gameServerGroupName; } /** ** An identifier for the new game server group. This value is used to generate unique ARN identifiers for the Amazon * EC2 Auto Scaling group and the Amazon GameLift FleetIQ game server group. The name must be unique per Region per * Amazon Web Services account. *
* * @param gameServerGroupName * An identifier for the new game server group. This value is used to generate unique ARN identifiers for the * Amazon EC2 Auto Scaling group and the Amazon GameLift FleetIQ game server group. The name must be unique * per Region per Amazon Web Services account. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateGameServerGroupRequest withGameServerGroupName(String gameServerGroupName) { setGameServerGroupName(gameServerGroupName); return this; } /** ** The Amazon Resource Name (ARN) * for an IAM role that allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups. *
* * @param roleArn * The Amazon Resource Name (ARN) for an IAM role that * allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups. */ public void setRoleArn(String roleArn) { this.roleArn = roleArn; } /** ** The Amazon Resource Name (ARN) * for an IAM role that allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups. *
* * @return The Amazon Resource Name (ARN) for an IAM role that * allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups. */ public String getRoleArn() { return this.roleArn; } /** ** The Amazon Resource Name (ARN) * for an IAM role that allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups. *
* * @param roleArn * The Amazon Resource Name (ARN) for an IAM role that * allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateGameServerGroupRequest withRoleArn(String roleArn) { setRoleArn(roleArn); return this; } /** ** The minimum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling events, * Amazon GameLift FleetIQ and Amazon EC2 do not scale down the group below this minimum. In production, this value * should be set to at least 1. After the Auto Scaling group is created, update this value directly in the Auto * Scaling group using the Amazon Web Services console or APIs. *
* * @param minSize * The minimum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling * events, Amazon GameLift FleetIQ and Amazon EC2 do not scale down the group below this minimum. In * production, this value should be set to at least 1. After the Auto Scaling group is created, update this * value directly in the Auto Scaling group using the Amazon Web Services console or APIs. */ public void setMinSize(Integer minSize) { this.minSize = minSize; } /** ** The minimum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling events, * Amazon GameLift FleetIQ and Amazon EC2 do not scale down the group below this minimum. In production, this value * should be set to at least 1. After the Auto Scaling group is created, update this value directly in the Auto * Scaling group using the Amazon Web Services console or APIs. *
* * @return The minimum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling * events, Amazon GameLift FleetIQ and Amazon EC2 do not scale down the group below this minimum. In * production, this value should be set to at least 1. After the Auto Scaling group is created, update this * value directly in the Auto Scaling group using the Amazon Web Services console or APIs. */ public Integer getMinSize() { return this.minSize; } /** ** The minimum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling events, * Amazon GameLift FleetIQ and Amazon EC2 do not scale down the group below this minimum. In production, this value * should be set to at least 1. After the Auto Scaling group is created, update this value directly in the Auto * Scaling group using the Amazon Web Services console or APIs. *
* * @param minSize * The minimum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling * events, Amazon GameLift FleetIQ and Amazon EC2 do not scale down the group below this minimum. In * production, this value should be set to at least 1. After the Auto Scaling group is created, update this * value directly in the Auto Scaling group using the Amazon Web Services console or APIs. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateGameServerGroupRequest withMinSize(Integer minSize) { setMinSize(minSize); return this; } /** ** The maximum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling events, * Amazon GameLift FleetIQ and EC2 do not scale up the group above this maximum. After the Auto Scaling group is * created, update this value directly in the Auto Scaling group using the Amazon Web Services console or APIs. *
* * @param maxSize * The maximum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling * events, Amazon GameLift FleetIQ and EC2 do not scale up the group above this maximum. After the Auto * Scaling group is created, update this value directly in the Auto Scaling group using the Amazon Web * Services console or APIs. */ public void setMaxSize(Integer maxSize) { this.maxSize = maxSize; } /** ** The maximum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling events, * Amazon GameLift FleetIQ and EC2 do not scale up the group above this maximum. After the Auto Scaling group is * created, update this value directly in the Auto Scaling group using the Amazon Web Services console or APIs. *
* * @return The maximum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling * events, Amazon GameLift FleetIQ and EC2 do not scale up the group above this maximum. After the Auto * Scaling group is created, update this value directly in the Auto Scaling group using the Amazon Web * Services console or APIs. */ public Integer getMaxSize() { return this.maxSize; } /** ** The maximum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling events, * Amazon GameLift FleetIQ and EC2 do not scale up the group above this maximum. After the Auto Scaling group is * created, update this value directly in the Auto Scaling group using the Amazon Web Services console or APIs. *
* * @param maxSize * The maximum number of instances allowed in the Amazon EC2 Auto Scaling group. During automatic scaling * events, Amazon GameLift FleetIQ and EC2 do not scale up the group above this maximum. After the Auto * Scaling group is created, update this value directly in the Auto Scaling group using the Amazon Web * Services console or APIs. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateGameServerGroupRequest withMaxSize(Integer maxSize) { setMaxSize(maxSize); return this; } /** ** The Amazon EC2 launch template that contains configuration settings and game server code to be deployed to all * instances in the game server group. You can specify the template using either the template name or ID. For help * with creating a launch template, see Creating a Launch * Template for an Auto Scaling Group in the Amazon Elastic Compute Cloud Auto Scaling User Guide. After * the Auto Scaling group is created, update this value directly in the Auto Scaling group using the Amazon Web * Services console or APIs. *
*
* If you specify network interfaces in your launch template, you must explicitly set the property
* AssociatePublicIpAddress
to "true". If no network interface is specified in the launch template,
* Amazon GameLift FleetIQ uses your account's default VPC.
*
* If you specify network interfaces in your launch template, you must explicitly set the property
* AssociatePublicIpAddress
to "true". If no network interface is specified in the launch
* template, Amazon GameLift FleetIQ uses your account's default VPC.
*
* The Amazon EC2 launch template that contains configuration settings and game server code to be deployed to all * instances in the game server group. You can specify the template using either the template name or ID. For help * with creating a launch template, see Creating a Launch * Template for an Auto Scaling Group in the Amazon Elastic Compute Cloud Auto Scaling User Guide. After * the Auto Scaling group is created, update this value directly in the Auto Scaling group using the Amazon Web * Services console or APIs. *
*
* If you specify network interfaces in your launch template, you must explicitly set the property
* AssociatePublicIpAddress
to "true". If no network interface is specified in the launch template,
* Amazon GameLift FleetIQ uses your account's default VPC.
*
* If you specify network interfaces in your launch template, you must explicitly set the property
* AssociatePublicIpAddress
to "true". If no network interface is specified in the launch
* template, Amazon GameLift FleetIQ uses your account's default VPC.
*
* The Amazon EC2 launch template that contains configuration settings and game server code to be deployed to all * instances in the game server group. You can specify the template using either the template name or ID. For help * with creating a launch template, see Creating a Launch * Template for an Auto Scaling Group in the Amazon Elastic Compute Cloud Auto Scaling User Guide. After * the Auto Scaling group is created, update this value directly in the Auto Scaling group using the Amazon Web * Services console or APIs. *
*
* If you specify network interfaces in your launch template, you must explicitly set the property
* AssociatePublicIpAddress
to "true". If no network interface is specified in the launch template,
* Amazon GameLift FleetIQ uses your account's default VPC.
*
* If you specify network interfaces in your launch template, you must explicitly set the property
* AssociatePublicIpAddress
to "true". If no network interface is specified in the launch
* template, Amazon GameLift FleetIQ uses your account's default VPC.
*
* The Amazon EC2 instance types and sizes to use in the Auto Scaling group. The instance definitions must specify * at least two different instance types that are supported by Amazon GameLift FleetIQ. For more information on * instance types, see EC2 * Instance Types in the Amazon Elastic Compute Cloud User Guide. You can optionally specify capacity * weighting for each instance type. If no weight value is specified for an instance type, it is set to the default * value "1". For more information about capacity weighting, see Instance Weighting for * Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. *
* * @return The Amazon EC2 instance types and sizes to use in the Auto Scaling group. The instance definitions must * specify at least two different instance types that are supported by Amazon GameLift FleetIQ. For more * information on instance types, see EC2 Instance Types in * the Amazon Elastic Compute Cloud User Guide. You can optionally specify capacity weighting for * each instance type. If no weight value is specified for an instance type, it is set to the default value * "1". For more information about capacity weighting, see Instance * Weighting for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. */ public java.util.List* The Amazon EC2 instance types and sizes to use in the Auto Scaling group. The instance definitions must specify * at least two different instance types that are supported by Amazon GameLift FleetIQ. For more information on * instance types, see EC2 * Instance Types in the Amazon Elastic Compute Cloud User Guide. You can optionally specify capacity * weighting for each instance type. If no weight value is specified for an instance type, it is set to the default * value "1". For more information about capacity weighting, see Instance Weighting for * Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. *
* * @param instanceDefinitions * The Amazon EC2 instance types and sizes to use in the Auto Scaling group. The instance definitions must * specify at least two different instance types that are supported by Amazon GameLift FleetIQ. For more * information on instance types, see EC2 Instance Types in * the Amazon Elastic Compute Cloud User Guide. You can optionally specify capacity weighting for each * instance type. If no weight value is specified for an instance type, it is set to the default value "1". * For more information about capacity weighting, see Instance * Weighting for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. */ public void setInstanceDefinitions(java.util.Collection* The Amazon EC2 instance types and sizes to use in the Auto Scaling group. The instance definitions must specify * at least two different instance types that are supported by Amazon GameLift FleetIQ. For more information on * instance types, see EC2 * Instance Types in the Amazon Elastic Compute Cloud User Guide. You can optionally specify capacity * weighting for each instance type. If no weight value is specified for an instance type, it is set to the default * value "1". For more information about capacity weighting, see Instance Weighting for * Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setInstanceDefinitions(java.util.Collection)} or {@link #withInstanceDefinitions(java.util.Collection)} * if you want to override the existing values. *
* * @param instanceDefinitions * The Amazon EC2 instance types and sizes to use in the Auto Scaling group. The instance definitions must * specify at least two different instance types that are supported by Amazon GameLift FleetIQ. For more * information on instance types, see EC2 Instance Types in * the Amazon Elastic Compute Cloud User Guide. You can optionally specify capacity weighting for each * instance type. If no weight value is specified for an instance type, it is set to the default value "1". * For more information about capacity weighting, see Instance * Weighting for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateGameServerGroupRequest withInstanceDefinitions(InstanceDefinition... instanceDefinitions) { if (this.instanceDefinitions == null) { setInstanceDefinitions(new java.util.ArrayList* The Amazon EC2 instance types and sizes to use in the Auto Scaling group. The instance definitions must specify * at least two different instance types that are supported by Amazon GameLift FleetIQ. For more information on * instance types, see EC2 * Instance Types in the Amazon Elastic Compute Cloud User Guide. You can optionally specify capacity * weighting for each instance type. If no weight value is specified for an instance type, it is set to the default * value "1". For more information about capacity weighting, see Instance Weighting for * Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. *
* * @param instanceDefinitions * The Amazon EC2 instance types and sizes to use in the Auto Scaling group. The instance definitions must * specify at least two different instance types that are supported by Amazon GameLift FleetIQ. For more * information on instance types, see EC2 Instance Types in * the Amazon Elastic Compute Cloud User Guide. You can optionally specify capacity weighting for each * instance type. If no weight value is specified for an instance type, it is set to the default value "1". * For more information about capacity weighting, see Instance * Weighting for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateGameServerGroupRequest withInstanceDefinitions(java.util.Collection
* Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting.
* The scaling policy uses the metric "PercentUtilizedGameServers"
to maintain a buffer of idle game
* servers that can immediately accommodate new games and players. After the Auto Scaling group is created, update
* this value directly in the Auto Scaling group using the Amazon Web Services console or APIs.
*
"PercentUtilizedGameServers"
to maintain a buffer
* of idle game servers that can immediately accommodate new games and players. After the Auto Scaling group
* is created, update this value directly in the Auto Scaling group using the Amazon Web Services console or
* APIs.
*/
public void setAutoScalingPolicy(GameServerGroupAutoScalingPolicy autoScalingPolicy) {
this.autoScalingPolicy = autoScalingPolicy;
}
/**
*
* Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting.
* The scaling policy uses the metric "PercentUtilizedGameServers"
to maintain a buffer of idle game
* servers that can immediately accommodate new games and players. After the Auto Scaling group is created, update
* this value directly in the Auto Scaling group using the Amazon Web Services console or APIs.
*
"PercentUtilizedGameServers"
to maintain a
* buffer of idle game servers that can immediately accommodate new games and players. After the Auto
* Scaling group is created, update this value directly in the Auto Scaling group using the Amazon Web
* Services console or APIs.
*/
public GameServerGroupAutoScalingPolicy getAutoScalingPolicy() {
return this.autoScalingPolicy;
}
/**
*
* Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting.
* The scaling policy uses the metric "PercentUtilizedGameServers"
to maintain a buffer of idle game
* servers that can immediately accommodate new games and players. After the Auto Scaling group is created, update
* this value directly in the Auto Scaling group using the Amazon Web Services console or APIs.
*
"PercentUtilizedGameServers"
to maintain a buffer
* of idle game servers that can immediately accommodate new games and players. After the Auto Scaling group
* is created, update this value directly in the Auto Scaling group using the Amazon Web Services console or
* APIs.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateGameServerGroupRequest withAutoScalingPolicy(GameServerGroupAutoScalingPolicy autoScalingPolicy) {
setAutoScalingPolicy(autoScalingPolicy);
return this;
}
/**
* * Indicates how Amazon GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game * server group. Method options include the following: *
*
* SPOT_ONLY
- Only Spot Instances are used in the game server group. If Spot Instances are unavailable
* or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again
* be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated
* (after current gameplay ends) and are not replaced.
*
* SPOT_PREFERRED
- (default value) Spot Instances are used whenever available in the game server
* group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling
* back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and
* are replaced with new On-Demand Instances.
*
* ON_DEMAND_ONLY
- Only On-Demand Instances are used in the game server group. No Spot Instances are
* used, even when available, while this balancing strategy is in force.
*
* SPOT_ONLY
- Only Spot Instances are used in the game server group. If Spot Instances are
* unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot
* Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot
* Instances are terminated (after current gameplay ends) and are not replaced.
*
* SPOT_PREFERRED
- (default value) Spot Instances are used whenever available in the game
* server group. If Spot Instances are unavailable, the game server group continues to provide hosting
* capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after
* current gameplay ends) and are replaced with new On-Demand Instances.
*
* ON_DEMAND_ONLY
- Only On-Demand Instances are used in the game server group. No Spot
* Instances are used, even when available, while this balancing strategy is in force.
*
* Indicates how Amazon GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game * server group. Method options include the following: *
*
* SPOT_ONLY
- Only Spot Instances are used in the game server group. If Spot Instances are unavailable
* or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again
* be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated
* (after current gameplay ends) and are not replaced.
*
* SPOT_PREFERRED
- (default value) Spot Instances are used whenever available in the game server
* group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling
* back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and
* are replaced with new On-Demand Instances.
*
* ON_DEMAND_ONLY
- Only On-Demand Instances are used in the game server group. No Spot Instances are
* used, even when available, while this balancing strategy is in force.
*
* SPOT_ONLY
- Only Spot Instances are used in the game server group. If Spot Instances are
* unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot
* Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot
* Instances are terminated (after current gameplay ends) and are not replaced.
*
* SPOT_PREFERRED
- (default value) Spot Instances are used whenever available in the game
* server group. If Spot Instances are unavailable, the game server group continues to provide hosting
* capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after
* current gameplay ends) and are replaced with new On-Demand Instances.
*
* ON_DEMAND_ONLY
- Only On-Demand Instances are used in the game server group. No Spot
* Instances are used, even when available, while this balancing strategy is in force.
*
* Indicates how Amazon GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game * server group. Method options include the following: *
*
* SPOT_ONLY
- Only Spot Instances are used in the game server group. If Spot Instances are unavailable
* or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again
* be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated
* (after current gameplay ends) and are not replaced.
*
* SPOT_PREFERRED
- (default value) Spot Instances are used whenever available in the game server
* group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling
* back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and
* are replaced with new On-Demand Instances.
*
* ON_DEMAND_ONLY
- Only On-Demand Instances are used in the game server group. No Spot Instances are
* used, even when available, while this balancing strategy is in force.
*
* SPOT_ONLY
- Only Spot Instances are used in the game server group. If Spot Instances are
* unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot
* Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot
* Instances are terminated (after current gameplay ends) and are not replaced.
*
* SPOT_PREFERRED
- (default value) Spot Instances are used whenever available in the game
* server group. If Spot Instances are unavailable, the game server group continues to provide hosting
* capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after
* current gameplay ends) and are replaced with new On-Demand Instances.
*
* ON_DEMAND_ONLY
- Only On-Demand Instances are used in the game server group. No Spot
* Instances are used, even when available, while this balancing strategy is in force.
*
* Indicates how Amazon GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game * server group. Method options include the following: *
*
* SPOT_ONLY
- Only Spot Instances are used in the game server group. If Spot Instances are unavailable
* or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again
* be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated
* (after current gameplay ends) and are not replaced.
*
* SPOT_PREFERRED
- (default value) Spot Instances are used whenever available in the game server
* group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling
* back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and
* are replaced with new On-Demand Instances.
*
* ON_DEMAND_ONLY
- Only On-Demand Instances are used in the game server group. No Spot Instances are
* used, even when available, while this balancing strategy is in force.
*
* SPOT_ONLY
- Only Spot Instances are used in the game server group. If Spot Instances are
* unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot
* Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot
* Instances are terminated (after current gameplay ends) and are not replaced.
*
* SPOT_PREFERRED
- (default value) Spot Instances are used whenever available in the game
* server group. If Spot Instances are unavailable, the game server group continues to provide hosting
* capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after
* current gameplay ends) and are replaced with new On-Demand Instances.
*
* ON_DEMAND_ONLY
- Only On-Demand Instances are used in the game server group. No Spot
* Instances are used, even when available, while this balancing strategy is in force.
*
* A flag that indicates whether instances in the game server group are protected from early termination.
* Unprotected instances that have active game servers running might be terminated during a scale-down event,
* causing players to be dropped from the game. Protected instances cannot be terminated while there are active game
* servers running except in the event of a forced game server group deletion (see ). An exception to this is with
* Spot Instances, which can be terminated by Amazon Web Services regardless of protection status. This property is
* set to NO_PROTECTION
by default.
*
NO_PROTECTION
by default.
* @see GameServerProtectionPolicy
*/
public void setGameServerProtectionPolicy(String gameServerProtectionPolicy) {
this.gameServerProtectionPolicy = gameServerProtectionPolicy;
}
/**
*
* A flag that indicates whether instances in the game server group are protected from early termination.
* Unprotected instances that have active game servers running might be terminated during a scale-down event,
* causing players to be dropped from the game. Protected instances cannot be terminated while there are active game
* servers running except in the event of a forced game server group deletion (see ). An exception to this is with
* Spot Instances, which can be terminated by Amazon Web Services regardless of protection status. This property is
* set to NO_PROTECTION
by default.
*
NO_PROTECTION
by default.
* @see GameServerProtectionPolicy
*/
public String getGameServerProtectionPolicy() {
return this.gameServerProtectionPolicy;
}
/**
*
* A flag that indicates whether instances in the game server group are protected from early termination.
* Unprotected instances that have active game servers running might be terminated during a scale-down event,
* causing players to be dropped from the game. Protected instances cannot be terminated while there are active game
* servers running except in the event of a forced game server group deletion (see ). An exception to this is with
* Spot Instances, which can be terminated by Amazon Web Services regardless of protection status. This property is
* set to NO_PROTECTION
by default.
*
NO_PROTECTION
by default.
* @return Returns a reference to this object so that method calls can be chained together.
* @see GameServerProtectionPolicy
*/
public CreateGameServerGroupRequest withGameServerProtectionPolicy(String gameServerProtectionPolicy) {
setGameServerProtectionPolicy(gameServerProtectionPolicy);
return this;
}
/**
*
* A flag that indicates whether instances in the game server group are protected from early termination.
* Unprotected instances that have active game servers running might be terminated during a scale-down event,
* causing players to be dropped from the game. Protected instances cannot be terminated while there are active game
* servers running except in the event of a forced game server group deletion (see ). An exception to this is with
* Spot Instances, which can be terminated by Amazon Web Services regardless of protection status. This property is
* set to NO_PROTECTION
by default.
*
NO_PROTECTION
by default.
* @return Returns a reference to this object so that method calls can be chained together.
* @see GameServerProtectionPolicy
*/
public CreateGameServerGroupRequest withGameServerProtectionPolicy(GameServerProtectionPolicy gameServerProtectionPolicy) {
this.gameServerProtectionPolicy = gameServerProtectionPolicy.toString();
return this;
}
/**
* * A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, all * Amazon GameLift FleetIQ-supported Availability Zones are used. You can use this parameter to specify VPCs that * you've set up. This property cannot be updated after the game server group is created, and the corresponding Auto * Scaling group will always use the property value that is set with this request, even if the Auto Scaling group is * updated directly. *
* * @return A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, * all Amazon GameLift FleetIQ-supported Availability Zones are used. You can use this parameter to specify * VPCs that you've set up. This property cannot be updated after the game server group is created, and the * corresponding Auto Scaling group will always use the property value that is set with this request, even * if the Auto Scaling group is updated directly. */ public java.util.List* A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, all * Amazon GameLift FleetIQ-supported Availability Zones are used. You can use this parameter to specify VPCs that * you've set up. This property cannot be updated after the game server group is created, and the corresponding Auto * Scaling group will always use the property value that is set with this request, even if the Auto Scaling group is * updated directly. *
* * @param vpcSubnets * A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, * all Amazon GameLift FleetIQ-supported Availability Zones are used. You can use this parameter to specify * VPCs that you've set up. This property cannot be updated after the game server group is created, and the * corresponding Auto Scaling group will always use the property value that is set with this request, even if * the Auto Scaling group is updated directly. */ public void setVpcSubnets(java.util.Collection* A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, all * Amazon GameLift FleetIQ-supported Availability Zones are used. You can use this parameter to specify VPCs that * you've set up. This property cannot be updated after the game server group is created, and the corresponding Auto * Scaling group will always use the property value that is set with this request, even if the Auto Scaling group is * updated directly. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setVpcSubnets(java.util.Collection)} or {@link #withVpcSubnets(java.util.Collection)} if you want to * override the existing values. *
* * @param vpcSubnets * A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, * all Amazon GameLift FleetIQ-supported Availability Zones are used. You can use this parameter to specify * VPCs that you've set up. This property cannot be updated after the game server group is created, and the * corresponding Auto Scaling group will always use the property value that is set with this request, even if * the Auto Scaling group is updated directly. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateGameServerGroupRequest withVpcSubnets(String... vpcSubnets) { if (this.vpcSubnets == null) { setVpcSubnets(new java.util.ArrayList* A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, all * Amazon GameLift FleetIQ-supported Availability Zones are used. You can use this parameter to specify VPCs that * you've set up. This property cannot be updated after the game server group is created, and the corresponding Auto * Scaling group will always use the property value that is set with this request, even if the Auto Scaling group is * updated directly. *
* * @param vpcSubnets * A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, * all Amazon GameLift FleetIQ-supported Availability Zones are used. You can use this parameter to specify * VPCs that you've set up. This property cannot be updated after the game server group is created, and the * corresponding Auto Scaling group will always use the property value that is set with this request, even if * the Auto Scaling group is updated directly. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateGameServerGroupRequest withVpcSubnets(java.util.Collection* A list of labels to assign to the new game server group resource. Tags are developer-defined key-value pairs. * Tagging Amazon Web Services resources is useful for resource management, access management, and cost allocation. * For more information, see Tagging * Amazon Web Services Resources in the Amazon Web Services General Reference. *
* * @return A list of labels to assign to the new game server group resource. Tags are developer-defined key-value * pairs. Tagging Amazon Web Services resources is useful for resource management, access management, and * cost allocation. For more information, see Tagging Amazon Web Services * Resources in the Amazon Web Services General Reference. */ public java.util.List* A list of labels to assign to the new game server group resource. Tags are developer-defined key-value pairs. * Tagging Amazon Web Services resources is useful for resource management, access management, and cost allocation. * For more information, see Tagging * Amazon Web Services Resources in the Amazon Web Services General Reference. *
* * @param tags * A list of labels to assign to the new game server group resource. Tags are developer-defined key-value * pairs. Tagging Amazon Web Services resources is useful for resource management, access management, and * cost allocation. For more information, see Tagging Amazon Web Services * Resources in the Amazon Web Services General Reference. */ public void setTags(java.util.Collection* A list of labels to assign to the new game server group resource. Tags are developer-defined key-value pairs. * Tagging Amazon Web Services resources is useful for resource management, access management, and cost allocation. * For more information, see Tagging * Amazon Web Services Resources in the Amazon Web Services General Reference. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the * existing values. *
* * @param tags * A list of labels to assign to the new game server group resource. Tags are developer-defined key-value * pairs. Tagging Amazon Web Services resources is useful for resource management, access management, and * cost allocation. For more information, see Tagging Amazon Web Services * Resources in the Amazon Web Services General Reference. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateGameServerGroupRequest withTags(Tag... tags) { if (this.tags == null) { setTags(new java.util.ArrayList* A list of labels to assign to the new game server group resource. Tags are developer-defined key-value pairs. * Tagging Amazon Web Services resources is useful for resource management, access management, and cost allocation. * For more information, see Tagging * Amazon Web Services Resources in the Amazon Web Services General Reference. *
* * @param tags * A list of labels to assign to the new game server group resource. Tags are developer-defined key-value * pairs. Tagging Amazon Web Services resources is useful for resource management, access management, and * cost allocation. For more information, see Tagging Amazon Web Services * Resources in the Amazon Web Services General Reference. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateGameServerGroupRequest withTags(java.util.Collection