Class GameServerGroup

java.lang.Object
software.amazon.awssdk.services.gamelift.model.GameServerGroup
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<GameServerGroup.Builder,GameServerGroup>

@Generated("software.amazon.awssdk:codegen") public final class GameServerGroup extends Object implements SdkPojo, Serializable, ToCopyableBuilder<GameServerGroup.Builder,GameServerGroup>

This data type is used with the Amazon GameLift FleetIQ and game server groups.

Properties that describe a game server group resource. A game server group manages certain properties related to a corresponding Amazon EC2 Auto Scaling group.

A game server group is created by a successful call to CreateGameServerGroup and deleted by calling DeleteGameServerGroup. Game server group activity can be temporarily suspended and resumed by calling SuspendGameServerGroup and ResumeGameServerGroup, respectively.

See Also:
  • Method Details

    • gameServerGroupName

      public final String gameServerGroupName()

      A developer-defined identifier for the game server group. The name is unique for each Region in each Amazon Web Services account.

      Returns:
      A developer-defined identifier for the game server group. The name is unique for each Region in each Amazon Web Services account.
    • gameServerGroupArn

      public final String gameServerGroupArn()

      A generated unique ID for the game server group.

      Returns:
      A generated unique ID for the game server group.
    • roleArn

      public final String roleArn()

      The Amazon Resource Name (ARN) for an IAM role that allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups.

      Returns:
      The Amazon Resource Name (ARN) for an IAM role that allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups.
    • hasInstanceDefinitions

      public final boolean hasInstanceDefinitions()
      For responses, this returns true if the service returned a value for the InstanceDefinitions property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • instanceDefinitions

      public final List<InstanceDefinition> instanceDefinitions()

      The set of Amazon EC2 instance types that Amazon GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasInstanceDefinitions() method.

      Returns:
      The set of Amazon EC2 instance types that Amazon GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group.
    • balancingStrategy

      public final BalancingStrategy balancingStrategy()

      Indicates how Amazon GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. Method options include the following:

      • SPOT_ONLY - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced.

      • SPOT_PREFERRED - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances.

      • ON_DEMAND_ONLY - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force.

      If the service returns an enum value that is not available in the current SDK version, balancingStrategy will return BalancingStrategy.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from balancingStrategyAsString().

      Returns:
      Indicates how Amazon GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. Method options include the following:

      • SPOT_ONLY - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced.

      • SPOT_PREFERRED - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances.

      • ON_DEMAND_ONLY - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force.

      See Also:
    • balancingStrategyAsString

      public final String balancingStrategyAsString()

      Indicates how Amazon GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. Method options include the following:

      • SPOT_ONLY - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced.

      • SPOT_PREFERRED - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances.

      • ON_DEMAND_ONLY - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force.

      If the service returns an enum value that is not available in the current SDK version, balancingStrategy will return BalancingStrategy.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from balancingStrategyAsString().

      Returns:
      Indicates how Amazon GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. Method options include the following:

      • SPOT_ONLY - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced.

      • SPOT_PREFERRED - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances.

      • ON_DEMAND_ONLY - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force.

      See Also:
    • gameServerProtectionPolicy

      public final 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.

      If the service returns an enum value that is not available in the current SDK version, gameServerProtectionPolicy will return GameServerProtectionPolicy.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from gameServerProtectionPolicyAsString().

      Returns:
      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.
      See Also:
    • gameServerProtectionPolicyAsString

      public final String gameServerProtectionPolicyAsString()

      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.

      If the service returns an enum value that is not available in the current SDK version, gameServerProtectionPolicy will return GameServerProtectionPolicy.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from gameServerProtectionPolicyAsString().

      Returns:
      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.
      See Also:
    • autoScalingGroupArn

      public final String autoScalingGroupArn()

      A generated unique ID for the Amazon EC2 Auto Scaling group that is associated with this game server group.

      Returns:
      A generated unique ID for the Amazon EC2 Auto Scaling group that is associated with this game server group.
    • status

      public final GameServerGroupStatus status()

      The current status of the game server group. Possible statuses include:

      • NEW - Amazon GameLift FleetIQ has validated the CreateGameServerGroup() request.

      • ACTIVATING - Amazon GameLift FleetIQ is setting up a game server group, which includes creating an Auto Scaling group in your Amazon Web Services account.

      • ACTIVE - The game server group has been successfully created.

      • DELETE_SCHEDULED - A request to delete the game server group has been received.

      • DELETING - Amazon GameLift FleetIQ has received a valid DeleteGameServerGroup() request and is processing it. Amazon GameLift FleetIQ must first complete and release hosts before it deletes the Auto Scaling group and the game server group.

      • DELETED - The game server group has been successfully deleted.

      • ERROR - The asynchronous processes of activating or deleting a game server group has failed, resulting in an error state.

      If the service returns an enum value that is not available in the current SDK version, status will return GameServerGroupStatus.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from statusAsString().

      Returns:
      The current status of the game server group. Possible statuses include:

      • NEW - Amazon GameLift FleetIQ has validated the CreateGameServerGroup() request.

      • ACTIVATING - Amazon GameLift FleetIQ is setting up a game server group, which includes creating an Auto Scaling group in your Amazon Web Services account.

      • ACTIVE - The game server group has been successfully created.

      • DELETE_SCHEDULED - A request to delete the game server group has been received.

      • DELETING - Amazon GameLift FleetIQ has received a valid DeleteGameServerGroup() request and is processing it. Amazon GameLift FleetIQ must first complete and release hosts before it deletes the Auto Scaling group and the game server group.

      • DELETED - The game server group has been successfully deleted.

      • ERROR - The asynchronous processes of activating or deleting a game server group has failed, resulting in an error state.

      See Also:
    • statusAsString

      public final String statusAsString()

      The current status of the game server group. Possible statuses include:

      • NEW - Amazon GameLift FleetIQ has validated the CreateGameServerGroup() request.

      • ACTIVATING - Amazon GameLift FleetIQ is setting up a game server group, which includes creating an Auto Scaling group in your Amazon Web Services account.

      • ACTIVE - The game server group has been successfully created.

      • DELETE_SCHEDULED - A request to delete the game server group has been received.

      • DELETING - Amazon GameLift FleetIQ has received a valid DeleteGameServerGroup() request and is processing it. Amazon GameLift FleetIQ must first complete and release hosts before it deletes the Auto Scaling group and the game server group.

      • DELETED - The game server group has been successfully deleted.

      • ERROR - The asynchronous processes of activating or deleting a game server group has failed, resulting in an error state.

      If the service returns an enum value that is not available in the current SDK version, status will return GameServerGroupStatus.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from statusAsString().

      Returns:
      The current status of the game server group. Possible statuses include:

      • NEW - Amazon GameLift FleetIQ has validated the CreateGameServerGroup() request.

      • ACTIVATING - Amazon GameLift FleetIQ is setting up a game server group, which includes creating an Auto Scaling group in your Amazon Web Services account.

      • ACTIVE - The game server group has been successfully created.

      • DELETE_SCHEDULED - A request to delete the game server group has been received.

      • DELETING - Amazon GameLift FleetIQ has received a valid DeleteGameServerGroup() request and is processing it. Amazon GameLift FleetIQ must first complete and release hosts before it deletes the Auto Scaling group and the game server group.

      • DELETED - The game server group has been successfully deleted.

      • ERROR - The asynchronous processes of activating or deleting a game server group has failed, resulting in an error state.

      See Also:
    • statusReason

      public final String statusReason()

      Additional information about the current game server group status. This information might provide additional insight on groups that are in ERROR status.

      Returns:
      Additional information about the current game server group status. This information might provide additional insight on groups that are in ERROR status.
    • suspendedActions

      public final List<GameServerGroupAction> suspendedActions()

      A list of activities that are currently suspended for this game server group. If this property is empty, all activities are occurring.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasSuspendedActions() method.

      Returns:
      A list of activities that are currently suspended for this game server group. If this property is empty, all activities are occurring.
    • hasSuspendedActions

      public final boolean hasSuspendedActions()
      For responses, this returns true if the service returned a value for the SuspendedActions property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • suspendedActionsAsStrings

      public final List<String> suspendedActionsAsStrings()

      A list of activities that are currently suspended for this game server group. If this property is empty, all activities are occurring.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasSuspendedActions() method.

      Returns:
      A list of activities that are currently suspended for this game server group. If this property is empty, all activities are occurring.
    • creationTime

      public final Instant creationTime()

      A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057").

      Returns:
      A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057").
    • lastUpdatedTime

      public final Instant lastUpdatedTime()

      A timestamp that indicates when this game server group was last updated.

      Returns:
      A timestamp that indicates when this game server group was last updated.
    • toBuilder

      public GameServerGroup.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<GameServerGroup.Builder,GameServerGroup>
      Returns:
      a builder for type T
    • builder

      public static GameServerGroup.Builder builder()
    • serializableBuilderClass

      public static Class<? extends GameServerGroup.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      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.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.