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

software.amazon.awscdk.services.gamelift.alpha.GameServerGroupProps Maven / Gradle / Ivy

There is a newer version: 2.170.0-alpha.0
Show newest version
package software.amazon.awscdk.services.gamelift.alpha;

/**
 * (experimental) Properties for a new Gamelift FleetIQ Game server group.
 * 

* Example: *

*

 * ILaunchTemplate launchTemplate;
 * IVpc vpc;
 * GameServerGroup.Builder.create(this, "GameServerGroup")
 *         .gameServerGroupName("sample-gameservergroup-name")
 *         .instanceDefinitions(List.of(InstanceDefinition.builder()
 *                 .instanceType(InstanceType.of(InstanceClass.C5, InstanceSize.LARGE))
 *                 .build(), InstanceDefinition.builder()
 *                 .instanceType(InstanceType.of(InstanceClass.C4, InstanceSize.LARGE))
 *                 .build()))
 *         .launchTemplate(launchTemplate)
 *         .vpc(vpc)
 *         .vpcSubnets(SubnetSelection.builder().subnetType(SubnetType.PUBLIC).build())
 *         .build();
 * 
*/ @javax.annotation.Generated(value = "jsii-pacmak/1.104.0 (build e79254c)", date = "2024-12-27T17:02:12.104Z") @software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.gamelift.alpha.$Module.class, fqn = "@aws-cdk/aws-gamelift-alpha.GameServerGroupProps") @software.amazon.jsii.Jsii.Proxy(GameServerGroupProps.Jsii$Proxy.class) @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public interface GameServerGroupProps extends software.amazon.jsii.JsiiSerializable { /** * (experimental) A developer-defined identifier for the game server group. *

* The name is unique for each Region in each AWS account. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) @org.jetbrains.annotations.NotNull java.lang.String getGameServerGroupName(); /** * (experimental) The set of Amazon EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) @org.jetbrains.annotations.NotNull java.util.List getInstanceDefinitions(); /** * (experimental) The Amazon EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. *

* After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs. *

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

* @see https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.ec2.ILaunchTemplate getLaunchTemplate(); /** * (experimental) The VPC network to place the game server group in. *

* 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. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.ec2.IVpc getVpc(); /** * (experimental) 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 AWS console or APIs. *

* Default: no autoscaling policy settled */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.gamelift.alpha.AutoScalingPolicy getAutoScalingPolicy() { return null; } /** * (experimental) Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. *

* Default: SPOT_PREFERRED */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.gamelift.alpha.BalancingStrategy getBalancingStrategy() { return null; } /** * (experimental) The type of delete to perform. *

* To delete a game server group, specify the DeleteOption *

* Default: SAFE_DELETE */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.gamelift.alpha.DeleteOption getDeleteOption() { return null; } /** * (experimental) 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 AWS console or APIs. *

* Default: the default is 1 */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) default @org.jetbrains.annotations.Nullable java.lang.Number getMaxSize() { return null; } /** * (experimental) 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 AWS console or APIs. *

* Default: the default is 0 */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) default @org.jetbrains.annotations.Nullable java.lang.Number getMinSize() { return null; } /** * (experimental) 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. *

* An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status. *

* Default: game servers running might be terminated during a scale-down event */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) default @org.jetbrains.annotations.Nullable java.lang.Boolean getProtectGameServer() { return null; } /** * (experimental) The IAM role that allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups. *

* Default: - a role will be created with default trust to Gamelift and Autoscaling service principal with a default policy `GameLiftGameServerGroupPolicy` attached. *

* @see https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-iam-permissions-roles.html */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.iam.IRole getRole() { return null; } /** * (experimental) Game server group subnet selection. *

* Default: all GameLift FleetIQ-supported Availability Zones are used. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ec2.SubnetSelection getVpcSubnets() { return null; } /** * @return a {@link Builder} of {@link GameServerGroupProps} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) static Builder builder() { return new Builder(); } /** * A builder for {@link GameServerGroupProps} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public static final class Builder implements software.amazon.jsii.Builder { java.lang.String gameServerGroupName; java.util.List instanceDefinitions; software.amazon.awscdk.services.ec2.ILaunchTemplate launchTemplate; software.amazon.awscdk.services.ec2.IVpc vpc; software.amazon.awscdk.services.gamelift.alpha.AutoScalingPolicy autoScalingPolicy; software.amazon.awscdk.services.gamelift.alpha.BalancingStrategy balancingStrategy; software.amazon.awscdk.services.gamelift.alpha.DeleteOption deleteOption; java.lang.Number maxSize; java.lang.Number minSize; java.lang.Boolean protectGameServer; software.amazon.awscdk.services.iam.IRole role; software.amazon.awscdk.services.ec2.SubnetSelection vpcSubnets; /** * Sets the value of {@link GameServerGroupProps#getGameServerGroupName} * @param gameServerGroupName A developer-defined identifier for the game server group. This parameter is required. * The name is unique for each Region in each AWS account. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder gameServerGroupName(java.lang.String gameServerGroupName) { this.gameServerGroupName = gameServerGroupName; return this; } /** * Sets the value of {@link GameServerGroupProps#getInstanceDefinitions} * @param instanceDefinitions The set of Amazon EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group. This parameter is required. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) @SuppressWarnings("unchecked") public Builder instanceDefinitions(java.util.List instanceDefinitions) { this.instanceDefinitions = (java.util.List)instanceDefinitions; return this; } /** * Sets the value of {@link GameServerGroupProps#getLaunchTemplate} * @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. This parameter is required. * After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs. *

* NOTE: * 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 {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder launchTemplate(software.amazon.awscdk.services.ec2.ILaunchTemplate launchTemplate) { this.launchTemplate = launchTemplate; return this; } /** * Sets the value of {@link GameServerGroupProps#getVpc} * @param vpc The VPC network to place the game server group in. This parameter is required. * 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 {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder vpc(software.amazon.awscdk.services.ec2.IVpc vpc) { this.vpc = vpc; return this; } /** * Sets the value of {@link GameServerGroupProps#getAutoScalingPolicy} * @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 AWS console or APIs. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder autoScalingPolicy(software.amazon.awscdk.services.gamelift.alpha.AutoScalingPolicy autoScalingPolicy) { this.autoScalingPolicy = autoScalingPolicy; return this; } /** * Sets the value of {@link GameServerGroupProps#getBalancingStrategy} * @param balancingStrategy Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder balancingStrategy(software.amazon.awscdk.services.gamelift.alpha.BalancingStrategy balancingStrategy) { this.balancingStrategy = balancingStrategy; return this; } /** * Sets the value of {@link GameServerGroupProps#getDeleteOption} * @param deleteOption The type of delete to perform. * To delete a game server group, specify the DeleteOption * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder deleteOption(software.amazon.awscdk.services.gamelift.alpha.DeleteOption deleteOption) { this.deleteOption = deleteOption; return this; } /** * Sets the value of {@link GameServerGroupProps#getMaxSize} * @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 AWS console or APIs. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder maxSize(java.lang.Number maxSize) { this.maxSize = maxSize; return this; } /** * Sets the value of {@link GameServerGroupProps#getMinSize} * @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 AWS console or APIs. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder minSize(java.lang.Number minSize) { this.minSize = minSize; return this; } /** * Sets the value of {@link GameServerGroupProps#getProtectGameServer} * @param protectGameServer 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. *

* An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder protectGameServer(java.lang.Boolean protectGameServer) { this.protectGameServer = protectGameServer; return this; } /** * Sets the value of {@link GameServerGroupProps#getRole} * @param role The IAM role that allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder role(software.amazon.awscdk.services.iam.IRole role) { this.role = role; return this; } /** * Sets the value of {@link GameServerGroupProps#getVpcSubnets} * @param vpcSubnets Game server group subnet selection. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder vpcSubnets(software.amazon.awscdk.services.ec2.SubnetSelection vpcSubnets) { this.vpcSubnets = vpcSubnets; return this; } /** * Builds the configured instance. * @return a new instance of {@link GameServerGroupProps} * @throws NullPointerException if any required attribute was not provided */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) @Override public GameServerGroupProps build() { return new Jsii$Proxy(this); } } /** * An implementation for {@link GameServerGroupProps} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) @software.amazon.jsii.Internal final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements GameServerGroupProps { private final java.lang.String gameServerGroupName; private final java.util.List instanceDefinitions; private final software.amazon.awscdk.services.ec2.ILaunchTemplate launchTemplate; private final software.amazon.awscdk.services.ec2.IVpc vpc; private final software.amazon.awscdk.services.gamelift.alpha.AutoScalingPolicy autoScalingPolicy; private final software.amazon.awscdk.services.gamelift.alpha.BalancingStrategy balancingStrategy; private final software.amazon.awscdk.services.gamelift.alpha.DeleteOption deleteOption; private final java.lang.Number maxSize; private final java.lang.Number minSize; private final java.lang.Boolean protectGameServer; private final software.amazon.awscdk.services.iam.IRole role; private final software.amazon.awscdk.services.ec2.SubnetSelection vpcSubnets; /** * Constructor that initializes the object based on values retrieved from the JsiiObject. * @param objRef Reference to the JSII managed object. */ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) { super(objRef); this.gameServerGroupName = software.amazon.jsii.Kernel.get(this, "gameServerGroupName", software.amazon.jsii.NativeType.forClass(java.lang.String.class)); this.instanceDefinitions = software.amazon.jsii.Kernel.get(this, "instanceDefinitions", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.gamelift.alpha.InstanceDefinition.class))); this.launchTemplate = software.amazon.jsii.Kernel.get(this, "launchTemplate", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.ILaunchTemplate.class)); this.vpc = software.amazon.jsii.Kernel.get(this, "vpc", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.IVpc.class)); this.autoScalingPolicy = software.amazon.jsii.Kernel.get(this, "autoScalingPolicy", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.gamelift.alpha.AutoScalingPolicy.class)); this.balancingStrategy = software.amazon.jsii.Kernel.get(this, "balancingStrategy", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.gamelift.alpha.BalancingStrategy.class)); this.deleteOption = software.amazon.jsii.Kernel.get(this, "deleteOption", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.gamelift.alpha.DeleteOption.class)); this.maxSize = software.amazon.jsii.Kernel.get(this, "maxSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class)); this.minSize = software.amazon.jsii.Kernel.get(this, "minSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class)); this.protectGameServer = software.amazon.jsii.Kernel.get(this, "protectGameServer", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class)); this.role = software.amazon.jsii.Kernel.get(this, "role", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.iam.IRole.class)); this.vpcSubnets = software.amazon.jsii.Kernel.get(this, "vpcSubnets", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.SubnetSelection.class)); } /** * Constructor that initializes the object based on literal property values passed by the {@link Builder}. */ @SuppressWarnings("unchecked") protected Jsii$Proxy(final Builder builder) { super(software.amazon.jsii.JsiiObject.InitializationMode.JSII); this.gameServerGroupName = java.util.Objects.requireNonNull(builder.gameServerGroupName, "gameServerGroupName is required"); this.instanceDefinitions = (java.util.List)java.util.Objects.requireNonNull(builder.instanceDefinitions, "instanceDefinitions is required"); this.launchTemplate = java.util.Objects.requireNonNull(builder.launchTemplate, "launchTemplate is required"); this.vpc = java.util.Objects.requireNonNull(builder.vpc, "vpc is required"); this.autoScalingPolicy = builder.autoScalingPolicy; this.balancingStrategy = builder.balancingStrategy; this.deleteOption = builder.deleteOption; this.maxSize = builder.maxSize; this.minSize = builder.minSize; this.protectGameServer = builder.protectGameServer; this.role = builder.role; this.vpcSubnets = builder.vpcSubnets; } @Override public final java.lang.String getGameServerGroupName() { return this.gameServerGroupName; } @Override public final java.util.List getInstanceDefinitions() { return this.instanceDefinitions; } @Override public final software.amazon.awscdk.services.ec2.ILaunchTemplate getLaunchTemplate() { return this.launchTemplate; } @Override public final software.amazon.awscdk.services.ec2.IVpc getVpc() { return this.vpc; } @Override public final software.amazon.awscdk.services.gamelift.alpha.AutoScalingPolicy getAutoScalingPolicy() { return this.autoScalingPolicy; } @Override public final software.amazon.awscdk.services.gamelift.alpha.BalancingStrategy getBalancingStrategy() { return this.balancingStrategy; } @Override public final software.amazon.awscdk.services.gamelift.alpha.DeleteOption getDeleteOption() { return this.deleteOption; } @Override public final java.lang.Number getMaxSize() { return this.maxSize; } @Override public final java.lang.Number getMinSize() { return this.minSize; } @Override public final java.lang.Boolean getProtectGameServer() { return this.protectGameServer; } @Override public final software.amazon.awscdk.services.iam.IRole getRole() { return this.role; } @Override public final software.amazon.awscdk.services.ec2.SubnetSelection getVpcSubnets() { return this.vpcSubnets; } @Override @software.amazon.jsii.Internal public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() { final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE; final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); data.set("gameServerGroupName", om.valueToTree(this.getGameServerGroupName())); data.set("instanceDefinitions", om.valueToTree(this.getInstanceDefinitions())); data.set("launchTemplate", om.valueToTree(this.getLaunchTemplate())); data.set("vpc", om.valueToTree(this.getVpc())); if (this.getAutoScalingPolicy() != null) { data.set("autoScalingPolicy", om.valueToTree(this.getAutoScalingPolicy())); } if (this.getBalancingStrategy() != null) { data.set("balancingStrategy", om.valueToTree(this.getBalancingStrategy())); } if (this.getDeleteOption() != null) { data.set("deleteOption", om.valueToTree(this.getDeleteOption())); } if (this.getMaxSize() != null) { data.set("maxSize", om.valueToTree(this.getMaxSize())); } if (this.getMinSize() != null) { data.set("minSize", om.valueToTree(this.getMinSize())); } if (this.getProtectGameServer() != null) { data.set("protectGameServer", om.valueToTree(this.getProtectGameServer())); } if (this.getRole() != null) { data.set("role", om.valueToTree(this.getRole())); } if (this.getVpcSubnets() != null) { data.set("vpcSubnets", om.valueToTree(this.getVpcSubnets())); } final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); struct.set("fqn", om.valueToTree("@aws-cdk/aws-gamelift-alpha.GameServerGroupProps")); struct.set("data", data); final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); obj.set("$jsii.struct", struct); return obj; } @Override public final boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; GameServerGroupProps.Jsii$Proxy that = (GameServerGroupProps.Jsii$Proxy) o; if (!gameServerGroupName.equals(that.gameServerGroupName)) return false; if (!instanceDefinitions.equals(that.instanceDefinitions)) return false; if (!launchTemplate.equals(that.launchTemplate)) return false; if (!vpc.equals(that.vpc)) return false; if (this.autoScalingPolicy != null ? !this.autoScalingPolicy.equals(that.autoScalingPolicy) : that.autoScalingPolicy != null) return false; if (this.balancingStrategy != null ? !this.balancingStrategy.equals(that.balancingStrategy) : that.balancingStrategy != null) return false; if (this.deleteOption != null ? !this.deleteOption.equals(that.deleteOption) : that.deleteOption != null) return false; if (this.maxSize != null ? !this.maxSize.equals(that.maxSize) : that.maxSize != null) return false; if (this.minSize != null ? !this.minSize.equals(that.minSize) : that.minSize != null) return false; if (this.protectGameServer != null ? !this.protectGameServer.equals(that.protectGameServer) : that.protectGameServer != null) return false; if (this.role != null ? !this.role.equals(that.role) : that.role != null) return false; return this.vpcSubnets != null ? this.vpcSubnets.equals(that.vpcSubnets) : that.vpcSubnets == null; } @Override public final int hashCode() { int result = this.gameServerGroupName.hashCode(); result = 31 * result + (this.instanceDefinitions.hashCode()); result = 31 * result + (this.launchTemplate.hashCode()); result = 31 * result + (this.vpc.hashCode()); result = 31 * result + (this.autoScalingPolicy != null ? this.autoScalingPolicy.hashCode() : 0); result = 31 * result + (this.balancingStrategy != null ? this.balancingStrategy.hashCode() : 0); result = 31 * result + (this.deleteOption != null ? this.deleteOption.hashCode() : 0); result = 31 * result + (this.maxSize != null ? this.maxSize.hashCode() : 0); result = 31 * result + (this.minSize != null ? this.minSize.hashCode() : 0); result = 31 * result + (this.protectGameServer != null ? this.protectGameServer.hashCode() : 0); result = 31 * result + (this.role != null ? this.role.hashCode() : 0); result = 31 * result + (this.vpcSubnets != null ? this.vpcSubnets.hashCode() : 0); return result; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy