Amazon GameLift · JSON Structure
Gamelift Scaling Policy Structure
Rule that controls how a fleet is scaled. Scaling policies are uniquely identified by the combination of name and fleet ID.
Type: object
Properties: 14
Cloud ComputingGame ServersGamingMultiplayerMatchmakingFlexMatchFleetIQ
ScalingPolicy is a JSON Structure definition published by Amazon GameLift, describing 14 properties. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.
Properties
FleetId
FleetArn
Name
Status
ScalingAdjustment
ScalingAdjustmentType
ComparisonOperator
Threshold
EvaluationPeriods
MetricName
PolicyType
TargetConfiguration
UpdateStatus
Location
Meta-schema: https://json-structure.org/meta/core/v0/#
JSON Structure
{
"$schema": "https://json-structure.org/meta/core/v0/#",
"$id": "https://raw.githubusercontent.com/api-evangelist/amazon-gamelift/refs/heads/main/json-structure/gamelift-scaling-policy-structure.json",
"name": "ScalingPolicy",
"description": "Rule that controls how a fleet is scaled. Scaling policies are uniquely identified by the combination of name and fleet ID.",
"type": "object",
"properties": {
"FleetId": {
"allOf": [
{
"$ref": "#/components/schemas/FleetId"
},
{
"description": "A unique identifier for the fleet that is associated with this scaling policy."
}
]
},
"FleetArn": {
"allOf": [
{
"$ref": "#/components/schemas/FleetArn"
},
{
"description": "The Amazon Resource Name (<a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html\">ARN</a>) that is assigned to a Amazon GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>."
}
]
},
"Name": {
"allOf": [
{
"$ref": "#/components/schemas/NonZeroAndMaxString"
},
{
"description": "A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique."
}
]
},
"Status": {
"allOf": [
{
"$ref": "#/components/schemas/ScalingStatusType"
},
{
"description": "<p>Current status of the scaling policy. The scaling policy can be in force only when in an <code>ACTIVE</code> status. Scaling policies can be suspended for individual fleets. If the policy is suspended for a fleet, the policy status does not change.</p> <ul> <li> <p> <b>ACTIVE</b> -- The scaling policy can be used for auto-scaling a fleet.</p> </li> <li> <p> <b>UPDATE_REQUESTED</b> -- A request to update the scaling policy has been received.</p> </li> <li> <p> <b>UPDATING</b> -- A change is being made to the scaling policy.</p> </li> <li> <p> <b>DELETE_REQUESTED</b> -- A request to delete the scaling policy has been received.</p> </li> <li> <p> <b>DELETING</b> -- The scaling policy is being deleted.</p> </li> <li> <p> <b>DELETED</b> -- The scaling policy has been deleted.</p> </li> <li> <p> <b>ERROR</b> -- An error occurred in creating the policy. It should be removed and recreated.</p> </li> </ul>"
}
]
},
"ScalingAdjustment": {
"allOf": [
{
"$ref": "#/components/schemas/Integer"
},
{
"description": "Amount of adjustment to make, based on the scaling adjustment type."
}
]
},
"ScalingAdjustmentType": {
"allOf": [
{
"$ref": "#/components/schemas/ScalingAdjustmentType"
},
{
"description": "<p>The type of adjustment to make to a fleet's instance count.</p> <ul> <li> <p> <b>ChangeInCapacity</b> -- add (or subtract) the scaling adjustment value from the current instance count. Positive values scale up while negative values scale down.</p> </li> <li> <p> <b>ExactCapacity</b> -- set the instance count to the scaling adjustment value.</p> </li> <li> <p> <b>PercentChangeInCapacity</b> -- increase or reduce the current instance count by the scaling adjustment, read as a percentage. Positive values scale up while negative values scale down.</p> </li> </ul>"
}
]
},
"ComparisonOperator": {
"allOf": [
{
"$ref": "#/components/schemas/ComparisonOperatorType"
},
{
"description": "Comparison operator to use when measuring a metric against the threshold value."
}
]
},
"Threshold": {
"allOf": [
{
"$ref": "#/components/schemas/Double"
},
{
"description": "Metric value used to trigger a scaling event."
}
]
},
"EvaluationPeriods": {
"allOf": [
{
"$ref": "#/components/schemas/PositiveInteger"
},
{
"description": "Length of time (in minutes) the metric must be at or beyond the threshold before a scaling event is triggered."
}
]
},
"MetricName": {
"allOf": [
{
"$ref": "#/components/schemas/MetricName"
},
{
"description": "<p>Name of the Amazon GameLift-defined metric that is used to trigger a scaling adjustment. For detailed descriptions of fleet metrics, see <a href=\"https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html\">Monitor Amazon GameLift with Amazon CloudWatch</a>. </p> <ul> <li> <p> <b>ActivatingGameSessions</b> -- Game sessions in the process of being created.</p> </li> <li> <p> <b>ActiveGameSessions</b> -- Game sessions that are currently running.</p> </li> <li> <p> <b>ActiveInstances</b> -- Fleet instances that are currently running at least one game session.</p> </li> <li> <p> <b>AvailableGameSessions</b> -- Additional game sessions that fleet could host simultaneously, given current capacity.</p> </li> <li> <p> <b>AvailablePlayerSessions</b> -- Empty player slots in currently active game sessions. This includes game sessions that are not currently accepting players. Reserved player slots are not included.</p> </li> <li> <p> <b>CurrentPlayerSessions</b> -- Player slots in active game sessions that are being used by a player or are reserved for a player. </p> </li> <li> <p> <b>IdleInstances</b> -- Active instances that are currently hosting zero game sessions. </p> </li> <li> <p> <b>PercentAvailableGameSessions</b> -- 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.</p> </li> <li> <p> <b>PercentIdleInstances</b> -- Percentage of the total number of active instances that are hosting zero game sessions.</p> </li> <li> <p> <b>QueueDepth</b> -- Pending game session placement requests, in any queue, where the current fleet is the top-priority destination.</p> </li> <li> <p> <b>WaitTime</b> -- Current wait time for pending game session placement requests, in any queue, where the current fleet is the top-priority destination. </p> </li> </ul>"
}
]
},
"PolicyType": {
"allOf": [
{
"$ref": "#/components/schemas/PolicyType"
},
{
"description": "The type of scaling policy to create. For a target-based policy, set the parameter <i>MetricName</i> to 'PercentAvailableGameSessions' and specify a <i>TargetConfiguration</i>. For a rule-based policy set the following parameters: <i>MetricName</i>, <i>ComparisonOperator</i>, <i>Threshold</i>, <i>EvaluationPeriods</i>, <i>ScalingAdjustmentType</i>, and <i>ScalingAdjustment</i>."
}
]
},
"TargetConfiguration": {
"allOf": [
{
"$ref": "#/components/schemas/TargetConfiguration"
},
{
"description": "An object that contains settings for a target-based scaling policy."
}
]
},
"UpdateStatus": {
"allOf": [
{
"$ref": "#/components/schemas/LocationUpdateStatus"
},
{
"description": "The current status of the fleet's scaling policies in a requested fleet location. The status <code>PENDING_UPDATE</code> indicates that an update was requested for the fleet but has not yet been completed for the location."
}
]
},
"Location": {
"allOf": [
{
"$ref": "#/components/schemas/LocationStringModel"
},
{
"description": " The fleet location. "
}
]
}
}
}