/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace GameLift { namespace Model { /** *

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:

* AWS * API Reference

*/ class GameServerGroup { public: AWS_GAMELIFT_API GameServerGroup(); AWS_GAMELIFT_API GameServerGroup(Aws::Utils::Json::JsonView jsonValue); AWS_GAMELIFT_API GameServerGroup& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_GAMELIFT_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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

*/ inline const Aws::String& GetGameServerGroupName() const{ return m_gameServerGroupName; } /** *

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

*/ inline bool GameServerGroupNameHasBeenSet() const { return m_gameServerGroupNameHasBeenSet; } /** *

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

*/ inline void SetGameServerGroupName(const Aws::String& value) { m_gameServerGroupNameHasBeenSet = true; m_gameServerGroupName = value; } /** *

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

*/ inline void SetGameServerGroupName(Aws::String&& value) { m_gameServerGroupNameHasBeenSet = true; m_gameServerGroupName = std::move(value); } /** *

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

*/ inline void SetGameServerGroupName(const char* value) { m_gameServerGroupNameHasBeenSet = true; m_gameServerGroupName.assign(value); } /** *

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

*/ inline GameServerGroup& WithGameServerGroupName(const Aws::String& value) { SetGameServerGroupName(value); return *this;} /** *

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

*/ inline GameServerGroup& WithGameServerGroupName(Aws::String&& value) { SetGameServerGroupName(std::move(value)); return *this;} /** *

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

*/ inline GameServerGroup& WithGameServerGroupName(const char* value) { SetGameServerGroupName(value); return *this;} /** *

A generated unique ID for the game server group.

*/ inline const Aws::String& GetGameServerGroupArn() const{ return m_gameServerGroupArn; } /** *

A generated unique ID for the game server group.

*/ inline bool GameServerGroupArnHasBeenSet() const { return m_gameServerGroupArnHasBeenSet; } /** *

A generated unique ID for the game server group.

*/ inline void SetGameServerGroupArn(const Aws::String& value) { m_gameServerGroupArnHasBeenSet = true; m_gameServerGroupArn = value; } /** *

A generated unique ID for the game server group.

*/ inline void SetGameServerGroupArn(Aws::String&& value) { m_gameServerGroupArnHasBeenSet = true; m_gameServerGroupArn = std::move(value); } /** *

A generated unique ID for the game server group.

*/ inline void SetGameServerGroupArn(const char* value) { m_gameServerGroupArnHasBeenSet = true; m_gameServerGroupArn.assign(value); } /** *

A generated unique ID for the game server group.

*/ inline GameServerGroup& WithGameServerGroupArn(const Aws::String& value) { SetGameServerGroupArn(value); return *this;} /** *

A generated unique ID for the game server group.

*/ inline GameServerGroup& WithGameServerGroupArn(Aws::String&& value) { SetGameServerGroupArn(std::move(value)); return *this;} /** *

A generated unique ID for the game server group.

*/ inline GameServerGroup& WithGameServerGroupArn(const char* value) { SetGameServerGroupArn(value); return *this;} /** *

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

*/ inline const Aws::String& GetRoleArn() const{ return m_roleArn; } /** *

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

*/ inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; } /** *

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

*/ inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; } /** *

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

*/ inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); } /** *

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

*/ inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); } /** *

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

*/ inline GameServerGroup& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;} /** *

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

*/ inline GameServerGroup& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;} /** *

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

*/ inline GameServerGroup& WithRoleArn(const char* value) { SetRoleArn(value); return *this;} /** *

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.

*/ inline const Aws::Vector& GetInstanceDefinitions() const{ return m_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.

*/ inline bool InstanceDefinitionsHasBeenSet() const { return m_instanceDefinitionsHasBeenSet; } /** *

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.

*/ inline void SetInstanceDefinitions(const Aws::Vector& value) { m_instanceDefinitionsHasBeenSet = true; m_instanceDefinitions = value; } /** *

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.

*/ inline void SetInstanceDefinitions(Aws::Vector&& value) { m_instanceDefinitionsHasBeenSet = true; m_instanceDefinitions = std::move(value); } /** *

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.

*/ inline GameServerGroup& WithInstanceDefinitions(const Aws::Vector& value) { SetInstanceDefinitions(value); return *this;} /** *

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.

*/ inline GameServerGroup& WithInstanceDefinitions(Aws::Vector&& value) { SetInstanceDefinitions(std::move(value)); return *this;} /** *

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.

*/ inline GameServerGroup& AddInstanceDefinitions(const InstanceDefinition& value) { m_instanceDefinitionsHasBeenSet = true; m_instanceDefinitions.push_back(value); return *this; } /** *

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.

*/ inline GameServerGroup& AddInstanceDefinitions(InstanceDefinition&& value) { m_instanceDefinitionsHasBeenSet = true; m_instanceDefinitions.push_back(std::move(value)); return *this; } /** *

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

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

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

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

  • *
*/ inline const BalancingStrategy& GetBalancingStrategy() const{ return m_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.

  • *
*/ inline bool BalancingStrategyHasBeenSet() const { return m_balancingStrategyHasBeenSet; } /** *

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.

  • *
*/ inline void SetBalancingStrategy(const BalancingStrategy& value) { m_balancingStrategyHasBeenSet = true; m_balancingStrategy = value; } /** *

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.

  • *
*/ inline void SetBalancingStrategy(BalancingStrategy&& value) { m_balancingStrategyHasBeenSet = true; m_balancingStrategy = std::move(value); } /** *

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.

  • *
*/ inline GameServerGroup& WithBalancingStrategy(const BalancingStrategy& value) { SetBalancingStrategy(value); return *this;} /** *

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

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

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

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

  • *
*/ inline GameServerGroup& WithBalancingStrategy(BalancingStrategy&& value) { SetBalancingStrategy(std::move(value)); 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.

*/ inline const GameServerProtectionPolicy& GetGameServerProtectionPolicy() const{ return m_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.

*/ inline bool GameServerProtectionPolicyHasBeenSet() const { return m_gameServerProtectionPolicyHasBeenSet; } /** *

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.

*/ inline void SetGameServerProtectionPolicy(const GameServerProtectionPolicy& value) { m_gameServerProtectionPolicyHasBeenSet = true; m_gameServerProtectionPolicy = value; } /** *

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.

*/ inline void SetGameServerProtectionPolicy(GameServerProtectionPolicy&& value) { m_gameServerProtectionPolicyHasBeenSet = true; m_gameServerProtectionPolicy = std::move(value); } /** *

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.

*/ inline GameServerGroup& WithGameServerProtectionPolicy(const GameServerProtectionPolicy& value) { SetGameServerProtectionPolicy(value); 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.

*/ inline GameServerGroup& WithGameServerProtectionPolicy(GameServerProtectionPolicy&& value) { SetGameServerProtectionPolicy(std::move(value)); return *this;} /** *

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

*/ inline const Aws::String& GetAutoScalingGroupArn() const{ return m_autoScalingGroupArn; } /** *

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

*/ inline bool AutoScalingGroupArnHasBeenSet() const { return m_autoScalingGroupArnHasBeenSet; } /** *

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

*/ inline void SetAutoScalingGroupArn(const Aws::String& value) { m_autoScalingGroupArnHasBeenSet = true; m_autoScalingGroupArn = value; } /** *

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

*/ inline void SetAutoScalingGroupArn(Aws::String&& value) { m_autoScalingGroupArnHasBeenSet = true; m_autoScalingGroupArn = std::move(value); } /** *

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

*/ inline void SetAutoScalingGroupArn(const char* value) { m_autoScalingGroupArnHasBeenSet = true; m_autoScalingGroupArn.assign(value); } /** *

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

*/ inline GameServerGroup& WithAutoScalingGroupArn(const Aws::String& value) { SetAutoScalingGroupArn(value); return *this;} /** *

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

*/ inline GameServerGroup& WithAutoScalingGroupArn(Aws::String&& value) { SetAutoScalingGroupArn(std::move(value)); return *this;} /** *

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

*/ inline GameServerGroup& WithAutoScalingGroupArn(const char* value) { SetAutoScalingGroupArn(value); return *this;} /** *

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.

  • *
*/ inline const GameServerGroupStatus& GetStatus() const{ return m_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.

  • *
*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

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.

  • *
*/ inline void SetStatus(const GameServerGroupStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

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.

  • *
*/ inline void SetStatus(GameServerGroupStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

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.

  • *
*/ inline GameServerGroup& WithStatus(const GameServerGroupStatus& value) { SetStatus(value); return *this;} /** *

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.

  • *
*/ inline GameServerGroup& WithStatus(GameServerGroupStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

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

*/ inline const Aws::String& GetStatusReason() const{ return m_statusReason; } /** *

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

*/ inline bool StatusReasonHasBeenSet() const { return m_statusReasonHasBeenSet; } /** *

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

*/ inline void SetStatusReason(const Aws::String& value) { m_statusReasonHasBeenSet = true; m_statusReason = value; } /** *

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

*/ inline void SetStatusReason(Aws::String&& value) { m_statusReasonHasBeenSet = true; m_statusReason = std::move(value); } /** *

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

*/ inline void SetStatusReason(const char* value) { m_statusReasonHasBeenSet = true; m_statusReason.assign(value); } /** *

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

*/ inline GameServerGroup& WithStatusReason(const Aws::String& value) { SetStatusReason(value); return *this;} /** *

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

*/ inline GameServerGroup& WithStatusReason(Aws::String&& value) { SetStatusReason(std::move(value)); return *this;} /** *

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

*/ inline GameServerGroup& WithStatusReason(const char* value) { SetStatusReason(value); return *this;} /** *

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

*/ inline const Aws::Vector& GetSuspendedActions() const{ return m_suspendedActions; } /** *

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

*/ inline bool SuspendedActionsHasBeenSet() const { return m_suspendedActionsHasBeenSet; } /** *

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

*/ inline void SetSuspendedActions(const Aws::Vector& value) { m_suspendedActionsHasBeenSet = true; m_suspendedActions = value; } /** *

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

*/ inline void SetSuspendedActions(Aws::Vector&& value) { m_suspendedActionsHasBeenSet = true; m_suspendedActions = std::move(value); } /** *

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

*/ inline GameServerGroup& WithSuspendedActions(const Aws::Vector& value) { SetSuspendedActions(value); return *this;} /** *

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

*/ inline GameServerGroup& WithSuspendedActions(Aws::Vector&& value) { SetSuspendedActions(std::move(value)); return *this;} /** *

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

*/ inline GameServerGroup& AddSuspendedActions(const GameServerGroupAction& value) { m_suspendedActionsHasBeenSet = true; m_suspendedActions.push_back(value); return *this; } /** *

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

*/ inline GameServerGroup& AddSuspendedActions(GameServerGroupAction&& value) { m_suspendedActionsHasBeenSet = true; m_suspendedActions.push_back(std::move(value)); return *this; } /** *

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

*/ inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_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").

*/ inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } /** *

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

*/ inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } /** *

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

*/ inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } /** *

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

*/ inline GameServerGroup& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} /** *

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

*/ inline GameServerGroup& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} /** *

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

*/ inline const Aws::Utils::DateTime& GetLastUpdatedTime() const{ return m_lastUpdatedTime; } /** *

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

*/ inline bool LastUpdatedTimeHasBeenSet() const { return m_lastUpdatedTimeHasBeenSet; } /** *

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

*/ inline void SetLastUpdatedTime(const Aws::Utils::DateTime& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = value; } /** *

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

*/ inline void SetLastUpdatedTime(Aws::Utils::DateTime&& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = std::move(value); } /** *

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

*/ inline GameServerGroup& WithLastUpdatedTime(const Aws::Utils::DateTime& value) { SetLastUpdatedTime(value); return *this;} /** *

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

*/ inline GameServerGroup& WithLastUpdatedTime(Aws::Utils::DateTime&& value) { SetLastUpdatedTime(std::move(value)); return *this;} private: Aws::String m_gameServerGroupName; bool m_gameServerGroupNameHasBeenSet = false; Aws::String m_gameServerGroupArn; bool m_gameServerGroupArnHasBeenSet = false; Aws::String m_roleArn; bool m_roleArnHasBeenSet = false; Aws::Vector m_instanceDefinitions; bool m_instanceDefinitionsHasBeenSet = false; BalancingStrategy m_balancingStrategy; bool m_balancingStrategyHasBeenSet = false; GameServerProtectionPolicy m_gameServerProtectionPolicy; bool m_gameServerProtectionPolicyHasBeenSet = false; Aws::String m_autoScalingGroupArn; bool m_autoScalingGroupArnHasBeenSet = false; GameServerGroupStatus m_status; bool m_statusHasBeenSet = false; Aws::String m_statusReason; bool m_statusReasonHasBeenSet = false; Aws::Vector m_suspendedActions; bool m_suspendedActionsHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; Aws::Utils::DateTime m_lastUpdatedTime; bool m_lastUpdatedTimeHasBeenSet = false; }; } // namespace Model } // namespace GameLift } // namespace Aws