Amazon GameLift · JSON Structure

Gamelift Put Scaling Policy Input Structure

PutScalingPolicyInput schema from Amazon GameLift API

Type: object Properties: 10 Required: 3
Cloud ComputingGame ServersGamingMultiplayerMatchmakingFlexMatchFleetIQ

PutScalingPolicyInput is a JSON Structure definition published by Amazon GameLift, describing 10 properties, of which 3 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

Name FleetId ScalingAdjustment ScalingAdjustmentType Threshold ComparisonOperator EvaluationPeriods MetricName PolicyType TargetConfiguration

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-put-scaling-policy-input-structure.json",
  "name": "PutScalingPolicyInput",
  "description": "PutScalingPolicyInput schema from Amazon GameLift API",
  "type": "object",
  "properties": {
    "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. A fleet can have only one scaling policy with the same name."
        }
      ]
    },
    "FleetId": {
      "allOf": [
        {
          "$ref": "#/components/schemas/FleetIdOrArn"
        },
        {
          "description": "A unique identifier for the 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."
        }
      ]
    },
    "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; for example, a value of \"-10\" scales the fleet down by 10%.</p> </li> </ul>"
        }
      ]
    },
    "Threshold": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Double"
        },
        {
          "description": "Metric value used to trigger a scaling event."
        }
      ]
    },
    "ComparisonOperator": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ComparisonOperatorType"
        },
        {
          "description": "Comparison operator to use when measuring the metric against the threshold value."
        }
      ]
    },
    "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."
        }
      ]
    }
  },
  "required": [
    "Name",
    "FleetId",
    "MetricName"
  ]
}