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

Raw ↑
{
  "$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:&lt;region&gt;::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. "
        }
      ]
    }
  }
}