software.amazon.awscdk.services.gamelift.alpha.BuildFleetProps Maven / Gradle / Ivy
Show all versions of gamelift-alpha Show documentation
package software.amazon.awscdk.services.gamelift.alpha;
/**
* (experimental) Properties for a new Gamelift build fleet.
*
* Example:
*
*
* Build build;
* // Server processes can be delcared in a declarative way through the constructor
* BuildFleet fleet = BuildFleet.Builder.create(this, "Game server fleet")
* .fleetName("test-fleet")
* .content(build)
* .instanceType(InstanceType.of(InstanceClass.C4, InstanceSize.LARGE))
* .runtimeConfiguration(RuntimeConfiguration.builder()
* .serverProcesses(List.of(ServerProcess.builder()
* .launchPath("/local/game/GameLiftExampleServer.x86_64")
* .parameters("-logFile /local/game/logs/myserver1935.log -port 1935")
* .concurrentExecutions(100)
* .build()))
* .build())
* .build();
*
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.104.0 (build e79254c)", date = "2024-12-27T17:02:12.094Z")
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.gamelift.alpha.$Module.class, fqn = "@aws-cdk/aws-gamelift-alpha.BuildFleetProps")
@software.amazon.jsii.Jsii.Proxy(BuildFleetProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public interface BuildFleetProps extends software.amazon.jsii.JsiiSerializable, software.amazon.awscdk.services.gamelift.alpha.FleetProps {
/**
* (experimental) A build to be deployed on the fleet.
*
* The build must have been successfully uploaded to Amazon GameLift and be in a READY
status.
*
* This fleet setting cannot be changed once the fleet is created.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull software.amazon.awscdk.services.gamelift.alpha.IBuild getContent();
/**
* (experimental) The allowed IP address ranges and port settings that allow inbound traffic to access game sessions on this fleet.
*
* This property must be set before players can connect to game sessions.
*
* Default: no inbound traffic allowed
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.util.List getIngressRules() {
return null;
}
/**
* @return a {@link Builder} of {@link BuildFleetProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link BuildFleetProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static final class Builder implements software.amazon.jsii.Builder {
software.amazon.awscdk.services.gamelift.alpha.IBuild content;
java.util.List ingressRules;
java.lang.String fleetName;
software.amazon.awscdk.services.ec2.InstanceType instanceType;
software.amazon.awscdk.services.gamelift.alpha.RuntimeConfiguration runtimeConfiguration;
java.lang.String description;
java.lang.Number desiredCapacity;
java.util.List locations;
java.lang.Number maxSize;
java.lang.String metricGroup;
java.lang.Number minSize;
software.amazon.awscdk.services.ec2.IVpc peerVpc;
java.lang.Boolean protectNewGameSession;
software.amazon.awscdk.services.gamelift.alpha.ResourceCreationLimitPolicy resourceCreationLimitPolicy;
software.amazon.awscdk.services.iam.IRole role;
java.lang.Boolean useCertificate;
java.lang.Boolean useSpot;
/**
* Sets the value of {@link BuildFleetProps#getContent}
* @param content A build to be deployed on the fleet. This parameter is required.
* The build must have been successfully uploaded to Amazon GameLift and be in a READY
status.
*
* This fleet setting cannot be changed once the fleet is created.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder content(software.amazon.awscdk.services.gamelift.alpha.IBuild content) {
this.content = content;
return this;
}
/**
* Sets the value of {@link BuildFleetProps#getIngressRules}
* @param ingressRules The allowed IP address ranges and port settings that allow inbound traffic to access game sessions on this fleet.
* This property must be set before players can connect to game sessions.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@SuppressWarnings("unchecked")
public Builder ingressRules(java.util.List extends software.amazon.awscdk.services.gamelift.alpha.IngressRule> ingressRules) {
this.ingressRules = (java.util.List)ingressRules;
return this;
}
/**
* Sets the value of {@link BuildFleetProps#getFleetName}
* @param fleetName A descriptive label that is associated with a fleet. This parameter is required.
* Fleet names do not need to be unique.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder fleetName(java.lang.String fleetName) {
this.fleetName = fleetName;
return this;
}
/**
* Sets the value of {@link BuildFleetProps#getInstanceType}
* @param instanceType The GameLift-supported Amazon EC2 instance type to use for all fleet instances. This parameter is required.
* Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder instanceType(software.amazon.awscdk.services.ec2.InstanceType instanceType) {
this.instanceType = instanceType;
return this;
}
/**
* Sets the value of {@link BuildFleetProps#getRuntimeConfiguration}
* @param runtimeConfiguration A collection of server process configurations that describe the set of processes to run on each instance in a fleet. This parameter is required.
* Server processes run either an executable in a custom game build or a Realtime Servers script.
* GameLift launches the configured processes, manages their life cycle, and replaces them as needed.
* Each instance checks regularly for an updated runtime configuration.
*
* A GameLift instance is limited to 50 processes running concurrently.
* To calculate the total number of processes in a runtime configuration, add the values of the ConcurrentExecutions parameter for each ServerProcess.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder runtimeConfiguration(software.amazon.awscdk.services.gamelift.alpha.RuntimeConfiguration runtimeConfiguration) {
this.runtimeConfiguration = runtimeConfiguration;
return this;
}
/**
* Sets the value of {@link BuildFleetProps#getDescription}
* @param description A human-readable description of the fleet.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder description(java.lang.String description) {
this.description = description;
return this;
}
/**
* Sets the value of {@link BuildFleetProps#getDesiredCapacity}
* @param desiredCapacity The number of EC2 instances that you want this fleet to host.
* When creating a new fleet, GameLift automatically sets this value to "1" and initiates a single instance.
* Once the fleet is active, update this value to trigger GameLift to add or remove instances from the fleet.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder desiredCapacity(java.lang.Number desiredCapacity) {
this.desiredCapacity = desiredCapacity;
return this;
}
/**
* Sets the value of {@link BuildFleetProps#getLocations}
* @param locations A set of remote locations to deploy additional instances to and manage as part of the fleet.
* This parameter can only be used when creating fleets in AWS Regions that support multiple locations.
* You can add any GameLift-supported AWS Region as a remote location, in the form of an AWS Region code such as us-west-2
.
* To create a fleet with instances in the home region only, omit this parameter.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@SuppressWarnings("unchecked")
public Builder locations(java.util.List extends software.amazon.awscdk.services.gamelift.alpha.Location> locations) {
this.locations = (java.util.List)locations;
return this;
}
/**
* Sets the value of {@link BuildFleetProps#getMaxSize}
* @param maxSize The maximum number of instances that are allowed in the specified fleet location.
* @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 BuildFleetProps#getMetricGroup}
* @param metricGroup The name of an AWS CloudWatch metric group to add this fleet to.
* A metric group is used to aggregate the metrics for multiple fleets.
* You can specify an existing metric group name or set a new name to create a new metric group.
* A fleet can be included in only one metric group at a time.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder metricGroup(java.lang.String metricGroup) {
this.metricGroup = metricGroup;
return this;
}
/**
* Sets the value of {@link BuildFleetProps#getMinSize}
* @param minSize The minimum number of instances that are allowed in the specified fleet location.
* @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 BuildFleetProps#getPeerVpc}
* @param peerVpc A VPC peering connection between your GameLift-hosted game servers and your other non-GameLift resources.
* Use Amazon Virtual Private Cloud (VPC) peering connections to enable your game servers to communicate directly and privately with your other AWS resources, such as a web service or a repository.
* You can establish VPC peering with any resources that run on AWS and are managed by an AWS account that you have access to.
* The VPC must be in the same Region as your fleet.
*
* Warning:
* Be sure to create a VPC Peering authorization through Gamelift Service API.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder peerVpc(software.amazon.awscdk.services.ec2.IVpc peerVpc) {
this.peerVpc = peerVpc;
return this;
}
/**
* Sets the value of {@link BuildFleetProps#getProtectNewGameSession}
* @param protectNewGameSession The status of termination protection for active game sessions on the fleet.
* By default, new game sessions are protected and cannot be terminated during a scale-down event.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder protectNewGameSession(java.lang.Boolean protectNewGameSession) {
this.protectNewGameSession = protectNewGameSession;
return this;
}
/**
* Sets the value of {@link BuildFleetProps#getResourceCreationLimitPolicy}
* @param resourceCreationLimitPolicy A policy that limits the number of game sessions that an individual player can create on instances in this fleet within a specified span of time.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder resourceCreationLimitPolicy(software.amazon.awscdk.services.gamelift.alpha.ResourceCreationLimitPolicy resourceCreationLimitPolicy) {
this.resourceCreationLimitPolicy = resourceCreationLimitPolicy;
return this;
}
/**
* Sets the value of {@link BuildFleetProps#getRole}
* @param role The IAM role assumed by GameLift fleet instances to access AWS ressources.
* With a role set, any application that runs on an instance in this fleet can assume the role, including install scripts, server processes, and daemons (background processes).
* If providing a custom role, it needs to trust the GameLift service principal (gamelift.amazonaws.com).
* No permission is required by default.
*
* This property cannot be changed after the fleet is created.
* @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 BuildFleetProps#getUseCertificate}
* @param useCertificate Prompts GameLift to generate a TLS/SSL certificate for the fleet.
* GameLift uses the certificates to encrypt traffic between game clients and the game servers running on GameLift.
*
* You can't change this property after you create the fleet.
*
* Additionnal info:
* AWS Certificate Manager (ACM) certificates expire after 13 months.
* Certificate expiration can cause fleets to fail, preventing players from connecting to instances in the fleet.
* We recommend you replace fleets before 13 months, consider using fleet aliases for a smooth transition.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder useCertificate(java.lang.Boolean useCertificate) {
this.useCertificate = useCertificate;
return this;
}
/**
* Sets the value of {@link BuildFleetProps#getUseSpot}
* @param useSpot Indicates whether to use On-Demand or Spot instances for this fleet. By default, fleet use on demand capacity.
* This property cannot be changed after the fleet is created.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder useSpot(java.lang.Boolean useSpot) {
this.useSpot = useSpot;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link BuildFleetProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
public BuildFleetProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link BuildFleetProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements BuildFleetProps {
private final software.amazon.awscdk.services.gamelift.alpha.IBuild content;
private final java.util.List ingressRules;
private final java.lang.String fleetName;
private final software.amazon.awscdk.services.ec2.InstanceType instanceType;
private final software.amazon.awscdk.services.gamelift.alpha.RuntimeConfiguration runtimeConfiguration;
private final java.lang.String description;
private final java.lang.Number desiredCapacity;
private final java.util.List locations;
private final java.lang.Number maxSize;
private final java.lang.String metricGroup;
private final java.lang.Number minSize;
private final software.amazon.awscdk.services.ec2.IVpc peerVpc;
private final java.lang.Boolean protectNewGameSession;
private final software.amazon.awscdk.services.gamelift.alpha.ResourceCreationLimitPolicy resourceCreationLimitPolicy;
private final software.amazon.awscdk.services.iam.IRole role;
private final java.lang.Boolean useCertificate;
private final java.lang.Boolean useSpot;
/**
* 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.content = software.amazon.jsii.Kernel.get(this, "content", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.gamelift.alpha.IBuild.class));
this.ingressRules = software.amazon.jsii.Kernel.get(this, "ingressRules", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.gamelift.alpha.IngressRule.class)));
this.fleetName = software.amazon.jsii.Kernel.get(this, "fleetName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.instanceType = software.amazon.jsii.Kernel.get(this, "instanceType", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.InstanceType.class));
this.runtimeConfiguration = software.amazon.jsii.Kernel.get(this, "runtimeConfiguration", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.gamelift.alpha.RuntimeConfiguration.class));
this.description = software.amazon.jsii.Kernel.get(this, "description", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.desiredCapacity = software.amazon.jsii.Kernel.get(this, "desiredCapacity", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.locations = software.amazon.jsii.Kernel.get(this, "locations", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.gamelift.alpha.Location.class)));
this.maxSize = software.amazon.jsii.Kernel.get(this, "maxSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.metricGroup = software.amazon.jsii.Kernel.get(this, "metricGroup", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.minSize = software.amazon.jsii.Kernel.get(this, "minSize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.peerVpc = software.amazon.jsii.Kernel.get(this, "peerVpc", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.IVpc.class));
this.protectNewGameSession = software.amazon.jsii.Kernel.get(this, "protectNewGameSession", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.resourceCreationLimitPolicy = software.amazon.jsii.Kernel.get(this, "resourceCreationLimitPolicy", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.gamelift.alpha.ResourceCreationLimitPolicy.class));
this.role = software.amazon.jsii.Kernel.get(this, "role", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.iam.IRole.class));
this.useCertificate = software.amazon.jsii.Kernel.get(this, "useCertificate", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.useSpot = software.amazon.jsii.Kernel.get(this, "useSpot", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.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.content = java.util.Objects.requireNonNull(builder.content, "content is required");
this.ingressRules = (java.util.List)builder.ingressRules;
this.fleetName = java.util.Objects.requireNonNull(builder.fleetName, "fleetName is required");
this.instanceType = java.util.Objects.requireNonNull(builder.instanceType, "instanceType is required");
this.runtimeConfiguration = java.util.Objects.requireNonNull(builder.runtimeConfiguration, "runtimeConfiguration is required");
this.description = builder.description;
this.desiredCapacity = builder.desiredCapacity;
this.locations = (java.util.List)builder.locations;
this.maxSize = builder.maxSize;
this.metricGroup = builder.metricGroup;
this.minSize = builder.minSize;
this.peerVpc = builder.peerVpc;
this.protectNewGameSession = builder.protectNewGameSession;
this.resourceCreationLimitPolicy = builder.resourceCreationLimitPolicy;
this.role = builder.role;
this.useCertificate = builder.useCertificate;
this.useSpot = builder.useSpot;
}
@Override
public final software.amazon.awscdk.services.gamelift.alpha.IBuild getContent() {
return this.content;
}
@Override
public final java.util.List getIngressRules() {
return this.ingressRules;
}
@Override
public final java.lang.String getFleetName() {
return this.fleetName;
}
@Override
public final software.amazon.awscdk.services.ec2.InstanceType getInstanceType() {
return this.instanceType;
}
@Override
public final software.amazon.awscdk.services.gamelift.alpha.RuntimeConfiguration getRuntimeConfiguration() {
return this.runtimeConfiguration;
}
@Override
public final java.lang.String getDescription() {
return this.description;
}
@Override
public final java.lang.Number getDesiredCapacity() {
return this.desiredCapacity;
}
@Override
public final java.util.List getLocations() {
return this.locations;
}
@Override
public final java.lang.Number getMaxSize() {
return this.maxSize;
}
@Override
public final java.lang.String getMetricGroup() {
return this.metricGroup;
}
@Override
public final java.lang.Number getMinSize() {
return this.minSize;
}
@Override
public final software.amazon.awscdk.services.ec2.IVpc getPeerVpc() {
return this.peerVpc;
}
@Override
public final java.lang.Boolean getProtectNewGameSession() {
return this.protectNewGameSession;
}
@Override
public final software.amazon.awscdk.services.gamelift.alpha.ResourceCreationLimitPolicy getResourceCreationLimitPolicy() {
return this.resourceCreationLimitPolicy;
}
@Override
public final software.amazon.awscdk.services.iam.IRole getRole() {
return this.role;
}
@Override
public final java.lang.Boolean getUseCertificate() {
return this.useCertificate;
}
@Override
public final java.lang.Boolean getUseSpot() {
return this.useSpot;
}
@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("content", om.valueToTree(this.getContent()));
if (this.getIngressRules() != null) {
data.set("ingressRules", om.valueToTree(this.getIngressRules()));
}
data.set("fleetName", om.valueToTree(this.getFleetName()));
data.set("instanceType", om.valueToTree(this.getInstanceType()));
data.set("runtimeConfiguration", om.valueToTree(this.getRuntimeConfiguration()));
if (this.getDescription() != null) {
data.set("description", om.valueToTree(this.getDescription()));
}
if (this.getDesiredCapacity() != null) {
data.set("desiredCapacity", om.valueToTree(this.getDesiredCapacity()));
}
if (this.getLocations() != null) {
data.set("locations", om.valueToTree(this.getLocations()));
}
if (this.getMaxSize() != null) {
data.set("maxSize", om.valueToTree(this.getMaxSize()));
}
if (this.getMetricGroup() != null) {
data.set("metricGroup", om.valueToTree(this.getMetricGroup()));
}
if (this.getMinSize() != null) {
data.set("minSize", om.valueToTree(this.getMinSize()));
}
if (this.getPeerVpc() != null) {
data.set("peerVpc", om.valueToTree(this.getPeerVpc()));
}
if (this.getProtectNewGameSession() != null) {
data.set("protectNewGameSession", om.valueToTree(this.getProtectNewGameSession()));
}
if (this.getResourceCreationLimitPolicy() != null) {
data.set("resourceCreationLimitPolicy", om.valueToTree(this.getResourceCreationLimitPolicy()));
}
if (this.getRole() != null) {
data.set("role", om.valueToTree(this.getRole()));
}
if (this.getUseCertificate() != null) {
data.set("useCertificate", om.valueToTree(this.getUseCertificate()));
}
if (this.getUseSpot() != null) {
data.set("useSpot", om.valueToTree(this.getUseSpot()));
}
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.BuildFleetProps"));
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;
BuildFleetProps.Jsii$Proxy that = (BuildFleetProps.Jsii$Proxy) o;
if (!content.equals(that.content)) return false;
if (this.ingressRules != null ? !this.ingressRules.equals(that.ingressRules) : that.ingressRules != null) return false;
if (!fleetName.equals(that.fleetName)) return false;
if (!instanceType.equals(that.instanceType)) return false;
if (!runtimeConfiguration.equals(that.runtimeConfiguration)) return false;
if (this.description != null ? !this.description.equals(that.description) : that.description != null) return false;
if (this.desiredCapacity != null ? !this.desiredCapacity.equals(that.desiredCapacity) : that.desiredCapacity != null) return false;
if (this.locations != null ? !this.locations.equals(that.locations) : that.locations != null) return false;
if (this.maxSize != null ? !this.maxSize.equals(that.maxSize) : that.maxSize != null) return false;
if (this.metricGroup != null ? !this.metricGroup.equals(that.metricGroup) : that.metricGroup != null) return false;
if (this.minSize != null ? !this.minSize.equals(that.minSize) : that.minSize != null) return false;
if (this.peerVpc != null ? !this.peerVpc.equals(that.peerVpc) : that.peerVpc != null) return false;
if (this.protectNewGameSession != null ? !this.protectNewGameSession.equals(that.protectNewGameSession) : that.protectNewGameSession != null) return false;
if (this.resourceCreationLimitPolicy != null ? !this.resourceCreationLimitPolicy.equals(that.resourceCreationLimitPolicy) : that.resourceCreationLimitPolicy != null) return false;
if (this.role != null ? !this.role.equals(that.role) : that.role != null) return false;
if (this.useCertificate != null ? !this.useCertificate.equals(that.useCertificate) : that.useCertificate != null) return false;
return this.useSpot != null ? this.useSpot.equals(that.useSpot) : that.useSpot == null;
}
@Override
public final int hashCode() {
int result = this.content.hashCode();
result = 31 * result + (this.ingressRules != null ? this.ingressRules.hashCode() : 0);
result = 31 * result + (this.fleetName.hashCode());
result = 31 * result + (this.instanceType.hashCode());
result = 31 * result + (this.runtimeConfiguration.hashCode());
result = 31 * result + (this.description != null ? this.description.hashCode() : 0);
result = 31 * result + (this.desiredCapacity != null ? this.desiredCapacity.hashCode() : 0);
result = 31 * result + (this.locations != null ? this.locations.hashCode() : 0);
result = 31 * result + (this.maxSize != null ? this.maxSize.hashCode() : 0);
result = 31 * result + (this.metricGroup != null ? this.metricGroup.hashCode() : 0);
result = 31 * result + (this.minSize != null ? this.minSize.hashCode() : 0);
result = 31 * result + (this.peerVpc != null ? this.peerVpc.hashCode() : 0);
result = 31 * result + (this.protectNewGameSession != null ? this.protectNewGameSession.hashCode() : 0);
result = 31 * result + (this.resourceCreationLimitPolicy != null ? this.resourceCreationLimitPolicy.hashCode() : 0);
result = 31 * result + (this.role != null ? this.role.hashCode() : 0);
result = 31 * result + (this.useCertificate != null ? this.useCertificate.hashCode() : 0);
result = 31 * result + (this.useSpot != null ? this.useSpot.hashCode() : 0);
return result;
}
}
}