/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Represents the input for a request action.See Also:
AWS
* API Reference
A descriptive label that is associated with a scaling policy. Policy names do * not need to be unique. A fleet can have only one scaling policy with the same * name.
*/ inline const Aws::String& GetName() const{ return m_name; } /** *A descriptive label that is associated with a scaling policy. Policy names do * not need to be unique. A fleet can have only one scaling policy with the same * name.
*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *A descriptive label that is associated with a scaling policy. Policy names do * not need to be unique. A fleet can have only one scaling policy with the same * name.
*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *A descriptive label that is associated with a scaling policy. Policy names do * not need to be unique. A fleet can have only one scaling policy with the same * name.
*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *A descriptive label that is associated with a scaling policy. Policy names do * not need to be unique. A fleet can have only one scaling policy with the same * name.
*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *A descriptive label that is associated with a scaling policy. Policy names do * not need to be unique. A fleet can have only one scaling policy with the same * name.
*/ inline PutScalingPolicyRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *A descriptive label that is associated with a scaling policy. Policy names do * not need to be unique. A fleet can have only one scaling policy with the same * name.
*/ inline PutScalingPolicyRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *A descriptive label that is associated with a scaling policy. Policy names do * not need to be unique. A fleet can have only one scaling policy with the same * name.
*/ inline PutScalingPolicyRequest& WithName(const char* value) { SetName(value); return *this;} /** *A unique identifier for a fleet to apply this policy to. You can use either * the fleet ID or ARN value. The fleet cannot be in any of the following statuses: * ERROR or DELETING.
*/ inline const Aws::String& GetFleetId() const{ return m_fleetId; } /** *A unique identifier for a fleet to apply this policy to. You can use either * the fleet ID or ARN value. The fleet cannot be in any of the following statuses: * ERROR or DELETING.
*/ inline bool FleetIdHasBeenSet() const { return m_fleetIdHasBeenSet; } /** *A unique identifier for a fleet to apply this policy to. You can use either * the fleet ID or ARN value. The fleet cannot be in any of the following statuses: * ERROR or DELETING.
*/ inline void SetFleetId(const Aws::String& value) { m_fleetIdHasBeenSet = true; m_fleetId = value; } /** *A unique identifier for a fleet to apply this policy to. You can use either * the fleet ID or ARN value. The fleet cannot be in any of the following statuses: * ERROR or DELETING.
*/ inline void SetFleetId(Aws::String&& value) { m_fleetIdHasBeenSet = true; m_fleetId = std::move(value); } /** *A unique identifier for a fleet to apply this policy to. You can use either * the fleet ID or ARN value. The fleet cannot be in any of the following statuses: * ERROR or DELETING.
*/ inline void SetFleetId(const char* value) { m_fleetIdHasBeenSet = true; m_fleetId.assign(value); } /** *A unique identifier for a fleet to apply this policy to. You can use either * the fleet ID or ARN value. The fleet cannot be in any of the following statuses: * ERROR or DELETING.
*/ inline PutScalingPolicyRequest& WithFleetId(const Aws::String& value) { SetFleetId(value); return *this;} /** *A unique identifier for a fleet to apply this policy to. You can use either * the fleet ID or ARN value. The fleet cannot be in any of the following statuses: * ERROR or DELETING.
*/ inline PutScalingPolicyRequest& WithFleetId(Aws::String&& value) { SetFleetId(std::move(value)); return *this;} /** *A unique identifier for a fleet to apply this policy to. You can use either * the fleet ID or ARN value. The fleet cannot be in any of the following statuses: * ERROR or DELETING.
*/ inline PutScalingPolicyRequest& WithFleetId(const char* value) { SetFleetId(value); return *this;} /** *Amount of adjustment to make, based on the scaling adjustment type.
*/ inline int GetScalingAdjustment() const{ return m_scalingAdjustment; } /** *Amount of adjustment to make, based on the scaling adjustment type.
*/ inline bool ScalingAdjustmentHasBeenSet() const { return m_scalingAdjustmentHasBeenSet; } /** *Amount of adjustment to make, based on the scaling adjustment type.
*/ inline void SetScalingAdjustment(int value) { m_scalingAdjustmentHasBeenSet = true; m_scalingAdjustment = value; } /** *Amount of adjustment to make, based on the scaling adjustment type.
*/ inline PutScalingPolicyRequest& WithScalingAdjustment(int value) { SetScalingAdjustment(value); return *this;} /** *The type of adjustment to make to a fleet's instance count (see * FleetCapacity):
ChangeInCapacity -- add (or * subtract) the scaling adjustment value from the current instance count. Positive * values scale up while negative values scale down.
* ExactCapacity -- set the instance count to the scaling adjustment * value.
PercentChangeInCapacity -- increase or reduce * the current instance count by the scaling adjustment, read as a percentage. * Positive values scale up while negative values scale down; for example, a value * of "-10" scales the fleet down by 10%.
The type of adjustment to make to a fleet's instance count (see * FleetCapacity):
ChangeInCapacity -- add (or * subtract) the scaling adjustment value from the current instance count. Positive * values scale up while negative values scale down.
* ExactCapacity -- set the instance count to the scaling adjustment * value.
PercentChangeInCapacity -- increase or reduce * the current instance count by the scaling adjustment, read as a percentage. * Positive values scale up while negative values scale down; for example, a value * of "-10" scales the fleet down by 10%.
The type of adjustment to make to a fleet's instance count (see * FleetCapacity):
ChangeInCapacity -- add (or * subtract) the scaling adjustment value from the current instance count. Positive * values scale up while negative values scale down.
* ExactCapacity -- set the instance count to the scaling adjustment * value.
PercentChangeInCapacity -- increase or reduce * the current instance count by the scaling adjustment, read as a percentage. * Positive values scale up while negative values scale down; for example, a value * of "-10" scales the fleet down by 10%.
The type of adjustment to make to a fleet's instance count (see * FleetCapacity):
ChangeInCapacity -- add (or * subtract) the scaling adjustment value from the current instance count. Positive * values scale up while negative values scale down.
* ExactCapacity -- set the instance count to the scaling adjustment * value.
PercentChangeInCapacity -- increase or reduce * the current instance count by the scaling adjustment, read as a percentage. * Positive values scale up while negative values scale down; for example, a value * of "-10" scales the fleet down by 10%.
The type of adjustment to make to a fleet's instance count (see * FleetCapacity):
ChangeInCapacity -- add (or * subtract) the scaling adjustment value from the current instance count. Positive * values scale up while negative values scale down.
* ExactCapacity -- set the instance count to the scaling adjustment * value.
PercentChangeInCapacity -- increase or reduce * the current instance count by the scaling adjustment, read as a percentage. * Positive values scale up while negative values scale down; for example, a value * of "-10" scales the fleet down by 10%.
The type of adjustment to make to a fleet's instance count (see * FleetCapacity):
ChangeInCapacity -- add (or * subtract) the scaling adjustment value from the current instance count. Positive * values scale up while negative values scale down.
* ExactCapacity -- set the instance count to the scaling adjustment * value.
PercentChangeInCapacity -- increase or reduce * the current instance count by the scaling adjustment, read as a percentage. * Positive values scale up while negative values scale down; for example, a value * of "-10" scales the fleet down by 10%.
Metric value used to trigger a scaling event.
*/ inline double GetThreshold() const{ return m_threshold; } /** *Metric value used to trigger a scaling event.
*/ inline bool ThresholdHasBeenSet() const { return m_thresholdHasBeenSet; } /** *Metric value used to trigger a scaling event.
*/ inline void SetThreshold(double value) { m_thresholdHasBeenSet = true; m_threshold = value; } /** *Metric value used to trigger a scaling event.
*/ inline PutScalingPolicyRequest& WithThreshold(double value) { SetThreshold(value); return *this;} /** *Comparison operator to use when measuring the metric against the threshold * value.
*/ inline const ComparisonOperatorType& GetComparisonOperator() const{ return m_comparisonOperator; } /** *Comparison operator to use when measuring the metric against the threshold * value.
*/ inline bool ComparisonOperatorHasBeenSet() const { return m_comparisonOperatorHasBeenSet; } /** *Comparison operator to use when measuring the metric against the threshold * value.
*/ inline void SetComparisonOperator(const ComparisonOperatorType& value) { m_comparisonOperatorHasBeenSet = true; m_comparisonOperator = value; } /** *Comparison operator to use when measuring the metric against the threshold * value.
*/ inline void SetComparisonOperator(ComparisonOperatorType&& value) { m_comparisonOperatorHasBeenSet = true; m_comparisonOperator = std::move(value); } /** *Comparison operator to use when measuring the metric against the threshold * value.
*/ inline PutScalingPolicyRequest& WithComparisonOperator(const ComparisonOperatorType& value) { SetComparisonOperator(value); return *this;} /** *Comparison operator to use when measuring the metric against the threshold * value.
*/ inline PutScalingPolicyRequest& WithComparisonOperator(ComparisonOperatorType&& value) { SetComparisonOperator(std::move(value)); return *this;} /** *Length of time (in minutes) the metric must be at or beyond the threshold * before a scaling event is triggered.
*/ inline int GetEvaluationPeriods() const{ return m_evaluationPeriods; } /** *Length of time (in minutes) the metric must be at or beyond the threshold * before a scaling event is triggered.
*/ inline bool EvaluationPeriodsHasBeenSet() const { return m_evaluationPeriodsHasBeenSet; } /** *Length of time (in minutes) the metric must be at or beyond the threshold * before a scaling event is triggered.
*/ inline void SetEvaluationPeriods(int value) { m_evaluationPeriodsHasBeenSet = true; m_evaluationPeriods = value; } /** *Length of time (in minutes) the metric must be at or beyond the threshold * before a scaling event is triggered.
*/ inline PutScalingPolicyRequest& WithEvaluationPeriods(int value) { SetEvaluationPeriods(value); return *this;} /** *Name of the Amazon GameLift-defined metric that is used to trigger a scaling * adjustment. For detailed descriptions of fleet metrics, see Monitor * Amazon GameLift with Amazon CloudWatch.
* ActivatingGameSessions -- Game sessions in the process of being * created.
ActiveGameSessions -- Game sessions that are * currently running.
ActiveInstances -- Fleet instances * that are currently running at least one game session.
* AvailableGameSessions -- Additional game sessions that fleet could host * simultaneously, given current capacity.
* AvailablePlayerSessions -- Empty player slots in currently active game * sessions. This includes game sessions that are not currently accepting players. * Reserved player slots are not included.
* CurrentPlayerSessions -- Player slots in active game sessions that are * being used by a player or are reserved for a player.
* IdleInstances -- Active instances that are currently hosting zero game * sessions.
PercentAvailableGameSessions -- Unused * percentage of the total number of game sessions that a fleet could host * simultaneously, given current capacity. Use this metric for a target-based * scaling policy.
PercentIdleInstances -- Percentage of * the total number of active instances that are hosting zero game sessions.
*QueueDepth -- Pending game session placement requests, in * any queue, where the current fleet is the top-priority destination.
WaitTime -- Current wait time for pending game session placement * requests, in any queue, where the current fleet is the top-priority destination. *
Name of the Amazon GameLift-defined metric that is used to trigger a scaling * adjustment. For detailed descriptions of fleet metrics, see Monitor * Amazon GameLift with Amazon CloudWatch.
* ActivatingGameSessions -- Game sessions in the process of being * created.
ActiveGameSessions -- Game sessions that are * currently running.
ActiveInstances -- Fleet instances * that are currently running at least one game session.
* AvailableGameSessions -- Additional game sessions that fleet could host * simultaneously, given current capacity.
* AvailablePlayerSessions -- Empty player slots in currently active game * sessions. This includes game sessions that are not currently accepting players. * Reserved player slots are not included.
* CurrentPlayerSessions -- Player slots in active game sessions that are * being used by a player or are reserved for a player.
* IdleInstances -- Active instances that are currently hosting zero game * sessions.
PercentAvailableGameSessions -- Unused * percentage of the total number of game sessions that a fleet could host * simultaneously, given current capacity. Use this metric for a target-based * scaling policy.
PercentIdleInstances -- Percentage of * the total number of active instances that are hosting zero game sessions.
*QueueDepth -- Pending game session placement requests, in * any queue, where the current fleet is the top-priority destination.
WaitTime -- Current wait time for pending game session placement * requests, in any queue, where the current fleet is the top-priority destination. *
Name of the Amazon GameLift-defined metric that is used to trigger a scaling * adjustment. For detailed descriptions of fleet metrics, see Monitor * Amazon GameLift with Amazon CloudWatch.
* ActivatingGameSessions -- Game sessions in the process of being * created.
ActiveGameSessions -- Game sessions that are * currently running.
ActiveInstances -- Fleet instances * that are currently running at least one game session.
* AvailableGameSessions -- Additional game sessions that fleet could host * simultaneously, given current capacity.
* AvailablePlayerSessions -- Empty player slots in currently active game * sessions. This includes game sessions that are not currently accepting players. * Reserved player slots are not included.
* CurrentPlayerSessions -- Player slots in active game sessions that are * being used by a player or are reserved for a player.
* IdleInstances -- Active instances that are currently hosting zero game * sessions.
PercentAvailableGameSessions -- Unused * percentage of the total number of game sessions that a fleet could host * simultaneously, given current capacity. Use this metric for a target-based * scaling policy.
PercentIdleInstances -- Percentage of * the total number of active instances that are hosting zero game sessions.
*QueueDepth -- Pending game session placement requests, in * any queue, where the current fleet is the top-priority destination.
WaitTime -- Current wait time for pending game session placement * requests, in any queue, where the current fleet is the top-priority destination. *
Name of the Amazon GameLift-defined metric that is used to trigger a scaling * adjustment. For detailed descriptions of fleet metrics, see Monitor * Amazon GameLift with Amazon CloudWatch.
* ActivatingGameSessions -- Game sessions in the process of being * created.
ActiveGameSessions -- Game sessions that are * currently running.
ActiveInstances -- Fleet instances * that are currently running at least one game session.
* AvailableGameSessions -- Additional game sessions that fleet could host * simultaneously, given current capacity.
* AvailablePlayerSessions -- Empty player slots in currently active game * sessions. This includes game sessions that are not currently accepting players. * Reserved player slots are not included.
* CurrentPlayerSessions -- Player slots in active game sessions that are * being used by a player or are reserved for a player.
* IdleInstances -- Active instances that are currently hosting zero game * sessions.
PercentAvailableGameSessions -- Unused * percentage of the total number of game sessions that a fleet could host * simultaneously, given current capacity. Use this metric for a target-based * scaling policy.
PercentIdleInstances -- Percentage of * the total number of active instances that are hosting zero game sessions.
*QueueDepth -- Pending game session placement requests, in * any queue, where the current fleet is the top-priority destination.
WaitTime -- Current wait time for pending game session placement * requests, in any queue, where the current fleet is the top-priority destination. *
Name of the Amazon GameLift-defined metric that is used to trigger a scaling * adjustment. For detailed descriptions of fleet metrics, see Monitor * Amazon GameLift with Amazon CloudWatch.
* ActivatingGameSessions -- Game sessions in the process of being * created.
ActiveGameSessions -- Game sessions that are * currently running.
ActiveInstances -- Fleet instances * that are currently running at least one game session.
* AvailableGameSessions -- Additional game sessions that fleet could host * simultaneously, given current capacity.
* AvailablePlayerSessions -- Empty player slots in currently active game * sessions. This includes game sessions that are not currently accepting players. * Reserved player slots are not included.
* CurrentPlayerSessions -- Player slots in active game sessions that are * being used by a player or are reserved for a player.
* IdleInstances -- Active instances that are currently hosting zero game * sessions.
PercentAvailableGameSessions -- Unused * percentage of the total number of game sessions that a fleet could host * simultaneously, given current capacity. Use this metric for a target-based * scaling policy.
PercentIdleInstances -- Percentage of * the total number of active instances that are hosting zero game sessions.
*QueueDepth -- Pending game session placement requests, in * any queue, where the current fleet is the top-priority destination.
WaitTime -- Current wait time for pending game session placement * requests, in any queue, where the current fleet is the top-priority destination. *
Name of the Amazon GameLift-defined metric that is used to trigger a scaling * adjustment. For detailed descriptions of fleet metrics, see Monitor * Amazon GameLift with Amazon CloudWatch.
* ActivatingGameSessions -- Game sessions in the process of being * created.
ActiveGameSessions -- Game sessions that are * currently running.
ActiveInstances -- Fleet instances * that are currently running at least one game session.
* AvailableGameSessions -- Additional game sessions that fleet could host * simultaneously, given current capacity.
* AvailablePlayerSessions -- Empty player slots in currently active game * sessions. This includes game sessions that are not currently accepting players. * Reserved player slots are not included.
* CurrentPlayerSessions -- Player slots in active game sessions that are * being used by a player or are reserved for a player.
* IdleInstances -- Active instances that are currently hosting zero game * sessions.
PercentAvailableGameSessions -- Unused * percentage of the total number of game sessions that a fleet could host * simultaneously, given current capacity. Use this metric for a target-based * scaling policy.
PercentIdleInstances -- Percentage of * the total number of active instances that are hosting zero game sessions.
*QueueDepth -- Pending game session placement requests, in * any queue, where the current fleet is the top-priority destination.
WaitTime -- Current wait time for pending game session placement * requests, in any queue, where the current fleet is the top-priority destination. *
The type of scaling policy to create. For a target-based policy, set the * parameter MetricName to 'PercentAvailableGameSessions' and specify a * TargetConfiguration. For a rule-based policy set the following * parameters: MetricName, ComparisonOperator, Threshold, * EvaluationPeriods, ScalingAdjustmentType, and * ScalingAdjustment.
*/ inline const PolicyType& GetPolicyType() const{ return m_policyType; } /** *The type of scaling policy to create. For a target-based policy, set the * parameter MetricName to 'PercentAvailableGameSessions' and specify a * TargetConfiguration. For a rule-based policy set the following * parameters: MetricName, ComparisonOperator, Threshold, * EvaluationPeriods, ScalingAdjustmentType, and * ScalingAdjustment.
*/ inline bool PolicyTypeHasBeenSet() const { return m_policyTypeHasBeenSet; } /** *The type of scaling policy to create. For a target-based policy, set the * parameter MetricName to 'PercentAvailableGameSessions' and specify a * TargetConfiguration. For a rule-based policy set the following * parameters: MetricName, ComparisonOperator, Threshold, * EvaluationPeriods, ScalingAdjustmentType, and * ScalingAdjustment.
*/ inline void SetPolicyType(const PolicyType& value) { m_policyTypeHasBeenSet = true; m_policyType = value; } /** *The type of scaling policy to create. For a target-based policy, set the * parameter MetricName to 'PercentAvailableGameSessions' and specify a * TargetConfiguration. For a rule-based policy set the following * parameters: MetricName, ComparisonOperator, Threshold, * EvaluationPeriods, ScalingAdjustmentType, and * ScalingAdjustment.
*/ inline void SetPolicyType(PolicyType&& value) { m_policyTypeHasBeenSet = true; m_policyType = std::move(value); } /** *The type of scaling policy to create. For a target-based policy, set the * parameter MetricName to 'PercentAvailableGameSessions' and specify a * TargetConfiguration. For a rule-based policy set the following * parameters: MetricName, ComparisonOperator, Threshold, * EvaluationPeriods, ScalingAdjustmentType, and * ScalingAdjustment.
*/ inline PutScalingPolicyRequest& WithPolicyType(const PolicyType& value) { SetPolicyType(value); return *this;} /** *The type of scaling policy to create. For a target-based policy, set the * parameter MetricName to 'PercentAvailableGameSessions' and specify a * TargetConfiguration. For a rule-based policy set the following * parameters: MetricName, ComparisonOperator, Threshold, * EvaluationPeriods, ScalingAdjustmentType, and * ScalingAdjustment.
*/ inline PutScalingPolicyRequest& WithPolicyType(PolicyType&& value) { SetPolicyType(std::move(value)); return *this;} /** *The settings for a target-based scaling policy.
*/ inline const TargetConfiguration& GetTargetConfiguration() const{ return m_targetConfiguration; } /** *The settings for a target-based scaling policy.
*/ inline bool TargetConfigurationHasBeenSet() const { return m_targetConfigurationHasBeenSet; } /** *The settings for a target-based scaling policy.
*/ inline void SetTargetConfiguration(const TargetConfiguration& value) { m_targetConfigurationHasBeenSet = true; m_targetConfiguration = value; } /** *The settings for a target-based scaling policy.
*/ inline void SetTargetConfiguration(TargetConfiguration&& value) { m_targetConfigurationHasBeenSet = true; m_targetConfiguration = std::move(value); } /** *The settings for a target-based scaling policy.
*/ inline PutScalingPolicyRequest& WithTargetConfiguration(const TargetConfiguration& value) { SetTargetConfiguration(value); return *this;} /** *The settings for a target-based scaling policy.
*/ inline PutScalingPolicyRequest& WithTargetConfiguration(TargetConfiguration&& value) { SetTargetConfiguration(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet; Aws::String m_fleetId; bool m_fleetIdHasBeenSet; int m_scalingAdjustment; bool m_scalingAdjustmentHasBeenSet; ScalingAdjustmentType m_scalingAdjustmentType; bool m_scalingAdjustmentTypeHasBeenSet; double m_threshold; bool m_thresholdHasBeenSet; ComparisonOperatorType m_comparisonOperator; bool m_comparisonOperatorHasBeenSet; int m_evaluationPeriods; bool m_evaluationPeriodsHasBeenSet; MetricName m_metricName; bool m_metricNameHasBeenSet; PolicyType m_policyType; bool m_policyTypeHasBeenSet; TargetConfiguration m_targetConfiguration; bool m_targetConfigurationHasBeenSet; }; } // namespace Model } // namespace GameLift } // namespace Aws