All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.gamelift.model.CreateGameServerGroupRequest Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS GameLift module holds the client classes that are used for communicating with AWS GameLift service.

There is a newer version: 1.12.780
Show newest version
/*
 * Copyright 2017-2022 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 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, * 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, * 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, * GameLift FleetIQ uses your account's default VPC. *

*
*/ private LaunchTemplateSpecification launchTemplate; /** *

* 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 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 instanceDefinitions; /** *

* 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. *

*/ private GameServerGroupAutoScalingPolicy autoScalingPolicy; /** *

* Indicates how 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. *

    *
  • *
*/ private String balancingStrategy; /** *

* 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. *

*/ private String gameServerProtectionPolicy; /** *

* A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, all * 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 vpcSubnets; /** *

* 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. Once the resource is * created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and * view tags, respectively. The maximum tag limit may be lower than stated. See the Amazon Web Services General * Reference for actual tagging limits. *

*/ private java.util.List tags; /** *

* 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 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 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 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 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 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 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, * 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, 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, * 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, 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, * 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, 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, * 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, 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, * 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, 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, * 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, 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, * GameLift FleetIQ uses your account's default VPC. *

*
* * @param launchTemplate * 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, GameLift FleetIQ uses your account's default VPC. *

*/ public void setLaunchTemplate(LaunchTemplateSpecification launchTemplate) { this.launchTemplate = launchTemplate; } /** *

* 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, * GameLift FleetIQ uses your account's default VPC. *

*
* * @return 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, GameLift FleetIQ uses your account's default VPC. *

*/ public LaunchTemplateSpecification getLaunchTemplate() { return this.launchTemplate; } /** *

* 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, * GameLift FleetIQ uses your account's default VPC. *

*
* * @param launchTemplate * 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, GameLift FleetIQ uses your account's default VPC. *

* @return Returns a reference to this object so that method calls can be chained together. */ public CreateGameServerGroupRequest withLaunchTemplate(LaunchTemplateSpecification launchTemplate) { setLaunchTemplate(launchTemplate); return this; } /** *

* 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 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 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 getInstanceDefinitions() { return 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 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 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 instanceDefinitions) { if (instanceDefinitions == null) { this.instanceDefinitions = null; return; } this.instanceDefinitions = new java.util.ArrayList(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 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 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(instanceDefinitions.length)); } for (InstanceDefinition ele : instanceDefinitions) { this.instanceDefinitions.add(ele); } return this; } /** *

* 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 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 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 instanceDefinitions) { setInstanceDefinitions(instanceDefinitions); return this; } /** *

* 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. *

* * @param 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. */ 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. *

* * @return 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. */ 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. *

* * @param 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. * @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 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. *

    *
  • *
* * @param balancingStrategy * Indicates how 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. *

    *
  • * @see BalancingStrategy */ public void setBalancingStrategy(String balancingStrategy) { this.balancingStrategy = balancingStrategy; } /** *

    * Indicates how 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. *

      *
    • *
    * * @return Indicates how 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. *

      *
    • * @see BalancingStrategy */ public String getBalancingStrategy() { return this.balancingStrategy; } /** *

      * Indicates how 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. *

        *
      • *
      * * @param balancingStrategy * Indicates how 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. *

        *
      • * @return Returns a reference to this object so that method calls can be chained together. * @see BalancingStrategy */ public CreateGameServerGroupRequest withBalancingStrategy(String balancingStrategy) { setBalancingStrategy(balancingStrategy); return this; } /** *

        * Indicates how 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. *

          *
        • *
        * * @param balancingStrategy * Indicates how 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. *

          *
        • * @return Returns a reference to this object so that method calls can be chained together. * @see BalancingStrategy */ public CreateGameServerGroupRequest withBalancingStrategy(BalancingStrategy balancingStrategy) { this.balancingStrategy = balancingStrategy.toString(); 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. *

          * * @param 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. * @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. *

          * * @return 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. * @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. *

          * * @param 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. * @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. *

          * * @param 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. * @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 * 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 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 getVpcSubnets() { return vpcSubnets; } /** *

          * A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, all * 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 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 vpcSubnets) { if (vpcSubnets == null) { this.vpcSubnets = null; return; } this.vpcSubnets = new java.util.ArrayList(vpcSubnets); } /** *

          * A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, all * 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 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(vpcSubnets.length)); } for (String ele : vpcSubnets) { this.vpcSubnets.add(ele); } return this; } /** *

          * A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, all * 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 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 vpcSubnets) { setVpcSubnets(vpcSubnets); return this; } /** *

          * 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. Once the resource is * created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and * view tags, respectively. The maximum tag limit may be lower than stated. See the Amazon Web Services General * Reference for actual tagging limits. *

          * * @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. Once the resource is created, you can * use TagResource, UntagResource, and ListTagsForResource to add, remove, and view * tags, respectively. The maximum tag limit may be lower than stated. See the Amazon Web Services General * Reference for actual tagging limits. */ public java.util.List getTags() { return 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. Once the resource is * created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and * view tags, respectively. The maximum tag limit may be lower than stated. See the Amazon Web Services General * Reference for actual tagging limits. *

          * * @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. Once the resource is created, you can * use TagResource, UntagResource, and ListTagsForResource to add, remove, and view * tags, respectively. The maximum tag limit may be lower than stated. See the Amazon Web Services General * Reference for actual tagging limits. */ public void setTags(java.util.Collection tags) { if (tags == null) { this.tags = null; return; } this.tags = new java.util.ArrayList(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. Once the resource is * created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and * view tags, respectively. The maximum tag limit may be lower than stated. See the Amazon Web Services General * Reference for actual tagging limits. *

          *

          * 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. Once the resource is created, you can * use TagResource, UntagResource, and ListTagsForResource to add, remove, and view * tags, respectively. The maximum tag limit may be lower than stated. See the Amazon Web Services General * Reference for actual tagging limits. * @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(tags.length)); } for (Tag ele : tags) { this.tags.add(ele); } return this; } /** *

          * 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. Once the resource is * created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and * view tags, respectively. The maximum tag limit may be lower than stated. See the Amazon Web Services General * Reference for actual tagging limits. *

          * * @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. Once the resource is created, you can * use TagResource, UntagResource, and ListTagsForResource to add, remove, and view * tags, respectively. The maximum tag limit may be lower than stated. See the Amazon Web Services General * Reference for actual tagging limits. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateGameServerGroupRequest withTags(java.util.Collection tags) { setTags(tags); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getGameServerGroupName() != null) sb.append("GameServerGroupName: ").append(getGameServerGroupName()).append(","); if (getRoleArn() != null) sb.append("RoleArn: ").append(getRoleArn()).append(","); if (getMinSize() != null) sb.append("MinSize: ").append(getMinSize()).append(","); if (getMaxSize() != null) sb.append("MaxSize: ").append(getMaxSize()).append(","); if (getLaunchTemplate() != null) sb.append("LaunchTemplate: ").append(getLaunchTemplate()).append(","); if (getInstanceDefinitions() != null) sb.append("InstanceDefinitions: ").append(getInstanceDefinitions()).append(","); if (getAutoScalingPolicy() != null) sb.append("AutoScalingPolicy: ").append(getAutoScalingPolicy()).append(","); if (getBalancingStrategy() != null) sb.append("BalancingStrategy: ").append(getBalancingStrategy()).append(","); if (getGameServerProtectionPolicy() != null) sb.append("GameServerProtectionPolicy: ").append(getGameServerProtectionPolicy()).append(","); if (getVpcSubnets() != null) sb.append("VpcSubnets: ").append(getVpcSubnets()).append(","); if (getTags() != null) sb.append("Tags: ").append(getTags()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CreateGameServerGroupRequest == false) return false; CreateGameServerGroupRequest other = (CreateGameServerGroupRequest) obj; if (other.getGameServerGroupName() == null ^ this.getGameServerGroupName() == null) return false; if (other.getGameServerGroupName() != null && other.getGameServerGroupName().equals(this.getGameServerGroupName()) == false) return false; if (other.getRoleArn() == null ^ this.getRoleArn() == null) return false; if (other.getRoleArn() != null && other.getRoleArn().equals(this.getRoleArn()) == false) return false; if (other.getMinSize() == null ^ this.getMinSize() == null) return false; if (other.getMinSize() != null && other.getMinSize().equals(this.getMinSize()) == false) return false; if (other.getMaxSize() == null ^ this.getMaxSize() == null) return false; if (other.getMaxSize() != null && other.getMaxSize().equals(this.getMaxSize()) == false) return false; if (other.getLaunchTemplate() == null ^ this.getLaunchTemplate() == null) return false; if (other.getLaunchTemplate() != null && other.getLaunchTemplate().equals(this.getLaunchTemplate()) == false) return false; if (other.getInstanceDefinitions() == null ^ this.getInstanceDefinitions() == null) return false; if (other.getInstanceDefinitions() != null && other.getInstanceDefinitions().equals(this.getInstanceDefinitions()) == false) return false; if (other.getAutoScalingPolicy() == null ^ this.getAutoScalingPolicy() == null) return false; if (other.getAutoScalingPolicy() != null && other.getAutoScalingPolicy().equals(this.getAutoScalingPolicy()) == false) return false; if (other.getBalancingStrategy() == null ^ this.getBalancingStrategy() == null) return false; if (other.getBalancingStrategy() != null && other.getBalancingStrategy().equals(this.getBalancingStrategy()) == false) return false; if (other.getGameServerProtectionPolicy() == null ^ this.getGameServerProtectionPolicy() == null) return false; if (other.getGameServerProtectionPolicy() != null && other.getGameServerProtectionPolicy().equals(this.getGameServerProtectionPolicy()) == false) return false; if (other.getVpcSubnets() == null ^ this.getVpcSubnets() == null) return false; if (other.getVpcSubnets() != null && other.getVpcSubnets().equals(this.getVpcSubnets()) == false) return false; if (other.getTags() == null ^ this.getTags() == null) return false; if (other.getTags() != null && other.getTags().equals(this.getTags()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getGameServerGroupName() == null) ? 0 : getGameServerGroupName().hashCode()); hashCode = prime * hashCode + ((getRoleArn() == null) ? 0 : getRoleArn().hashCode()); hashCode = prime * hashCode + ((getMinSize() == null) ? 0 : getMinSize().hashCode()); hashCode = prime * hashCode + ((getMaxSize() == null) ? 0 : getMaxSize().hashCode()); hashCode = prime * hashCode + ((getLaunchTemplate() == null) ? 0 : getLaunchTemplate().hashCode()); hashCode = prime * hashCode + ((getInstanceDefinitions() == null) ? 0 : getInstanceDefinitions().hashCode()); hashCode = prime * hashCode + ((getAutoScalingPolicy() == null) ? 0 : getAutoScalingPolicy().hashCode()); hashCode = prime * hashCode + ((getBalancingStrategy() == null) ? 0 : getBalancingStrategy().hashCode()); hashCode = prime * hashCode + ((getGameServerProtectionPolicy() == null) ? 0 : getGameServerProtectionPolicy().hashCode()); hashCode = prime * hashCode + ((getVpcSubnets() == null) ? 0 : getVpcSubnets().hashCode()); hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode()); return hashCode; } @Override public CreateGameServerGroupRequest clone() { return (CreateGameServerGroupRequest) super.clone(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy