Tool tree
gradeNot graded
describe_diagramAnswer
Read the current diagram as compact text: nodes with ids, kinds, labels and arriving message types, carried types per connection, waiting callers' threads, hold time including retries and backoff, and ceiling; p3-w2 Request resilience policies/amplification and processor queue limits; connections, boundaries and simulations. Call before editing an existing diagram.
View tool JSON
{
"name": "describe_diagram",
"kind": "answer",
"impl": "imperative",
"description": "Read the current diagram as compact text: nodes with ids, kinds, labels and arriving message types, carried types per connection, waiting callers' threads, hold time including retries and backoff, and ceiling; p3-w2 Request resilience policies/amplification and processor queue limits; connections, boundaries and simulations. Call before editing an existing diagram.",
"inputSchema": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"text",
"json"
],
"default": "text"
},
"focus": {
"type": "array",
"items": {
"$ref": "#/$defs/Ref"
},
"maxItems": 20,
"description": "Only these elements and their direct neighbours."
},
"limit": {
"type": "integer",
"minimum": 10,
"maximum": 500,
"default": 150,
"description": "Max lines."
}
},
"$defs": {
"Ref": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "An element: id from describe_diagram (preferred), a key set earlier in this call, an exact label, 'label (sublabel)', or for a connection 'From -> To'."
},
"NodeProps": {
"type": "object",
"additionalProperties": true,
"properties": {
"queue": {
"type": "object",
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": "object",
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
}
]
},
"resumeAutoscaling": {
"type": "boolean"
},
"api": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": "array",
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": "string",
"enum": [
"fixed",
"auto"
]
},
"maxConcurrency": {
"type": "number",
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": "string",
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured"
]
},
"presetRevision": {
"type": "string",
"enum": [
"1",
"2026-10-14"
]
},
"connections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retry": {
"type": "string",
"enum": [
"requeue",
"inplace"
]
},
"retryBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": "string"
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
}
]
},
"size": {
"type": "string",
"enum": [
"branch",
"campus",
"datacentre"
]
},
"gbps": {
"type": "number",
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": "number",
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": "string",
"enum": [
"standalone",
"active-standby",
"active-active"
]
},
"failoverMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": "boolean"
},
"trafficMix": {
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": "object",
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Tone": {
"type": "string",
"enum": [
"azure",
"aws",
"gcp",
"k8s",
"onprem",
"neutral"
]
},
"PropsPatch": {
"type": "object",
"additionalProperties": true,
"properties": {
"priority": {
"type": [
"string",
"null"
],
"enum": [
"critical",
"normal",
"sheddable",
null
]
},
"requestRouteId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"requestFilter": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"endpointId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"caller": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"wait": {
"enum": [
"blocking",
"non-blocking"
]
},
"replyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"deadlineMs": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 600000
},
{
"type": "null"
}
]
},
"retry": {
"type": "object",
"additionalProperties": false,
"required": [
"maxAttempts",
"backoffMs",
"strategy",
"retryOn"
],
"properties": {
"maxAttempts": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"backoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"budget": {
"type": "object",
"additionalProperties": false,
"required": [
"percent"
],
"properties": {
"percent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"minPerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000
}
}
},
"strategy": {
"enum": [
"fixed",
"exponential"
]
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retryOn": {
"type": "array",
"maxItems": 3,
"uniqueItems": true,
"items": {
"enum": [
"throttled",
"transient",
"timeout"
]
}
},
"idempotent": {
"type": "boolean"
}
}
},
"breaker": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"failurePercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"slowCallMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"slowPercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"windowMs": {
"enum": [
1000,
2000,
3000,
4000,
5000,
6000,
7000,
8000,
9000,
10000,
11000,
12000,
13000,
14000,
15000,
16000,
17000,
18000,
19000,
20000,
21000,
22000,
23000,
24000,
25000,
26000,
27000,
28000,
29000,
30000,
31000,
32000,
33000,
34000,
35000,
36000,
37000,
38000,
39000,
40000,
41000,
42000,
43000,
44000,
45000,
46000,
47000,
48000,
49000,
50000,
51000,
52000,
53000,
54000,
55000,
56000,
57000,
58000,
59000,
60000
]
},
"minimumCalls": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"openMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"halfOpenCalls": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
}
]
},
"poolConnections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
},
"group": {
"type": [
"string",
"null"
]
},
"groupOrigin": {
"type": [
"string",
"null"
],
"enum": [
"inferred",
null
]
},
"share": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"dlq": {
"type": [
"boolean",
"null"
]
},
"travelMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"networkDelayMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
},
{
"type": "null"
}
]
},
"filter": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
"deny": {
"type": [
"boolean",
"null"
]
},
"queue": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
},
{
"type": "null"
}
]
},
"resumeAutoscaling": {
"type": [
"boolean",
"null"
]
},
"api": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": [
"array",
"null"
],
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": [
"string",
"null"
],
"enum": [
"fixed",
"auto",
null
]
},
"maxConcurrency": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": [
"string",
"null"
],
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured",
null
]
},
"presetRevision": {
"type": [
"string",
"null"
],
"enum": [
"1",
"2026-10-14",
null
]
},
"connections": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"retry": {
"type": [
"string",
"null"
],
"enum": [
"requeue",
"inplace",
null
]
},
"retryBackoffMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": [
"string",
"null"
]
},
"size": {
"type": [
"string",
"null"
],
"enum": [
"branch",
"campus",
"datacentre",
null
]
},
"gbps": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": [
"number",
"null"
],
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": [
"string",
"null"
],
"enum": [
"standalone",
"active-standby",
"active-active",
null
]
},
"failoverMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": [
"boolean",
"null"
]
},
"trafficMix": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Side": {
"type": "string",
"enum": [
"top",
"right",
"bottom",
"left"
]
}
}
},
"page": "/?view=canvas&example=new"
}check_diagramAnswer
Find likely design problems in the current diagram (failed messages that are dropped, topics nobody reads, message types forwarded around a processor loop, requests that go round in a circle or chain too deep, a service using another's database, a client going around the gateway, a service that can't keep up or that every request goes through, threads exhausted by calls, CPU scaling blind to waits, outside/model API calls with no timeout, retry safety and amplification, missing breakers, unbounded queues, or retry storms under a bounded slowdown probe), each naming its elements and, where one exists, a fix as edit_diagram ops. Read-only: apply a fix by sending its ops to edit_diagram. Findings the person ignored aren't listed; only the person can ignore one. With simulations: true it also plays the saved simulations and counts the messages they lose: what happened and where, never a fix (slower: seconds on a large diagram).
View tool JSON
{
"name": "check_diagram",
"kind": "answer",
"impl": "imperative",
"description": "Find likely design problems in the current diagram (failed messages that are dropped, topics nobody reads, message types forwarded around a processor loop, requests that go round in a circle or chain too deep, a service using another's database, a client going around the gateway, a service that can't keep up or that every request goes through, threads exhausted by calls, CPU scaling blind to waits, outside/model API calls with no timeout, retry safety and amplification, missing breakers, unbounded queues, or retry storms under a bounded slowdown probe), each naming its elements and, where one exists, a fix as edit_diagram ops. Read-only: apply a fix by sending its ops to edit_diagram. Findings the person ignored aren't listed; only the person can ignore one. With simulations: true it also plays the saved simulations and counts the messages they lose: what happened and where, never a fix (slower: seconds on a large diagram).",
"inputSchema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "string",
"enum": [
"dead-letter",
"no-reader",
"sync-cycle",
"message-loop",
"sync-chain",
"shared-database",
"entry-gateway",
"capacity",
"blocked-threads",
"scaling-blind",
"call-timeout",
"retry-backoff",
"retry-budget",
"retry-idempotency",
"retry-layers",
"call-breaker",
"queue-limit",
"retry-storm",
"single-point",
"secret-identity",
"schema-registry",
"dropped"
]
},
"maxItems": 22,
"description": "Only these checks (default: all): dead-letter (failed messages are dropped), no-reader (nobody reads a topic or queue), sync-cycle (requests go round in a circle), message-loop (a message type is forwarded around a processor cycle; retries and broker redelivery excluded), sync-chain (requests chained too deep), shared-database (a service uses another's database), entry-gateway (a client goes around the gateway), capacity (a service can't keep up at the diagram's rates), blocked-threads (waiting calls exhaust threads), scaling-blind (CPU scaling misses waiting threads), call-timeout (an outside or model API call has no deadline), retry-backoff (retries arrive in waves), retry-budget (unbounded added load), retry-idempotency (unsafe repeated side effects), retry-layers (more than tenfold amplification), call-breaker (failing dependency without a breaker), queue-limit (work outlives the caller), retry-storm (up to three configured-rate slowdown probes; only one replay-proven fix; skipped calls in notChecked.retryStorm), single-point (every request goes through one replica), secret-identity (services read secrets without an identity), schema-registry (Avro or Protobuf on Kafka without a schema registry), dropped (messages a saved simulation loses that no other check explains; only with simulations: true, and never with a fix)."
},
"include": {
"type": "string",
"enum": [
"warnings",
"all"
],
"default": "all",
"description": "warnings: likely real problems only; all: suggestions too."
},
"simulations": {
"type": "boolean",
"default": false,
"description": "Also play the diagram's saved simulations (each at most 60 s of simulated time, all within about 15 s) and report the messages they lose: counts on findings, and dropped findings. Losses a simulation causes on purpose aren't findings."
}
},
"$defs": {
"Ref": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "An element: id from describe_diagram (preferred), a key set earlier in this call, an exact label, 'label (sublabel)', or for a connection 'From -> To'."
},
"NodeProps": {
"type": "object",
"additionalProperties": true,
"properties": {
"queue": {
"type": "object",
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": "object",
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
}
]
},
"resumeAutoscaling": {
"type": "boolean"
},
"api": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": "array",
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": "string",
"enum": [
"fixed",
"auto"
]
},
"maxConcurrency": {
"type": "number",
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": "string",
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured"
]
},
"presetRevision": {
"type": "string",
"enum": [
"1",
"2026-10-14"
]
},
"connections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retry": {
"type": "string",
"enum": [
"requeue",
"inplace"
]
},
"retryBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": "string"
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
}
]
},
"size": {
"type": "string",
"enum": [
"branch",
"campus",
"datacentre"
]
},
"gbps": {
"type": "number",
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": "number",
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": "string",
"enum": [
"standalone",
"active-standby",
"active-active"
]
},
"failoverMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": "boolean"
},
"trafficMix": {
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": "object",
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Tone": {
"type": "string",
"enum": [
"azure",
"aws",
"gcp",
"k8s",
"onprem",
"neutral"
]
},
"PropsPatch": {
"type": "object",
"additionalProperties": true,
"properties": {
"priority": {
"type": [
"string",
"null"
],
"enum": [
"critical",
"normal",
"sheddable",
null
]
},
"requestRouteId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"requestFilter": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"endpointId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"caller": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"wait": {
"enum": [
"blocking",
"non-blocking"
]
},
"replyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"deadlineMs": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 600000
},
{
"type": "null"
}
]
},
"retry": {
"type": "object",
"additionalProperties": false,
"required": [
"maxAttempts",
"backoffMs",
"strategy",
"retryOn"
],
"properties": {
"maxAttempts": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"backoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"budget": {
"type": "object",
"additionalProperties": false,
"required": [
"percent"
],
"properties": {
"percent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"minPerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000
}
}
},
"strategy": {
"enum": [
"fixed",
"exponential"
]
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retryOn": {
"type": "array",
"maxItems": 3,
"uniqueItems": true,
"items": {
"enum": [
"throttled",
"transient",
"timeout"
]
}
},
"idempotent": {
"type": "boolean"
}
}
},
"breaker": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"failurePercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"slowCallMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"slowPercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"windowMs": {
"enum": [
1000,
2000,
3000,
4000,
5000,
6000,
7000,
8000,
9000,
10000,
11000,
12000,
13000,
14000,
15000,
16000,
17000,
18000,
19000,
20000,
21000,
22000,
23000,
24000,
25000,
26000,
27000,
28000,
29000,
30000,
31000,
32000,
33000,
34000,
35000,
36000,
37000,
38000,
39000,
40000,
41000,
42000,
43000,
44000,
45000,
46000,
47000,
48000,
49000,
50000,
51000,
52000,
53000,
54000,
55000,
56000,
57000,
58000,
59000,
60000
]
},
"minimumCalls": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"openMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"halfOpenCalls": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
}
]
},
"poolConnections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
},
"group": {
"type": [
"string",
"null"
]
},
"groupOrigin": {
"type": [
"string",
"null"
],
"enum": [
"inferred",
null
]
},
"share": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"dlq": {
"type": [
"boolean",
"null"
]
},
"travelMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"networkDelayMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
},
{
"type": "null"
}
]
},
"filter": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
"deny": {
"type": [
"boolean",
"null"
]
},
"queue": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
},
{
"type": "null"
}
]
},
"resumeAutoscaling": {
"type": [
"boolean",
"null"
]
},
"api": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": [
"array",
"null"
],
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": [
"string",
"null"
],
"enum": [
"fixed",
"auto",
null
]
},
"maxConcurrency": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": [
"string",
"null"
],
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured",
null
]
},
"presetRevision": {
"type": [
"string",
"null"
],
"enum": [
"1",
"2026-10-14",
null
]
},
"connections": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"retry": {
"type": [
"string",
"null"
],
"enum": [
"requeue",
"inplace",
null
]
},
"retryBackoffMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": [
"string",
"null"
]
},
"size": {
"type": [
"string",
"null"
],
"enum": [
"branch",
"campus",
"datacentre",
null
]
},
"gbps": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": [
"number",
"null"
],
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": [
"string",
"null"
],
"enum": [
"standalone",
"active-standby",
"active-active",
null
]
},
"failoverMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": [
"boolean",
"null"
]
},
"trafficMix": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Side": {
"type": "string",
"enum": [
"top",
"right",
"bottom",
"left"
]
}
}
},
"page": "/?view=canvas&example=new"
}find_stencilsAnswer
Search the stencil catalog (Kafka, Azure, AWS, GCP, databases, services…). Use when edit_diagram reported low confidence for a kind.
View tool JSON
{
"name": "find_stencils",
"kind": "answer",
"impl": "imperative",
"description": "Search the stencil catalog (Kafka, Azure, AWS, GCP, databases, services…). Use when edit_diagram reported low confidence for a kind.",
"inputSchema": {
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Free text, e.g. '.NET consumer', 'service bus queue'."
},
"category": {
"type": "string",
"enum": [
"messaging",
"compute",
"data",
"network",
"onprem",
"observability",
"security",
"clients",
"generic"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 5
}
},
"$defs": {
"Ref": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "An element: id from describe_diagram (preferred), a key set earlier in this call, an exact label, 'label (sublabel)', or for a connection 'From -> To'."
},
"NodeProps": {
"type": "object",
"additionalProperties": true,
"properties": {
"queue": {
"type": "object",
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": "object",
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
}
]
},
"resumeAutoscaling": {
"type": "boolean"
},
"api": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": "array",
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": "string",
"enum": [
"fixed",
"auto"
]
},
"maxConcurrency": {
"type": "number",
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": "string",
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured"
]
},
"presetRevision": {
"type": "string",
"enum": [
"1",
"2026-10-14"
]
},
"connections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retry": {
"type": "string",
"enum": [
"requeue",
"inplace"
]
},
"retryBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": "string"
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
}
]
},
"size": {
"type": "string",
"enum": [
"branch",
"campus",
"datacentre"
]
},
"gbps": {
"type": "number",
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": "number",
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": "string",
"enum": [
"standalone",
"active-standby",
"active-active"
]
},
"failoverMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": "boolean"
},
"trafficMix": {
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": "object",
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Tone": {
"type": "string",
"enum": [
"azure",
"aws",
"gcp",
"k8s",
"onprem",
"neutral"
]
},
"PropsPatch": {
"type": "object",
"additionalProperties": true,
"properties": {
"priority": {
"type": [
"string",
"null"
],
"enum": [
"critical",
"normal",
"sheddable",
null
]
},
"requestRouteId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"requestFilter": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"endpointId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"caller": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"wait": {
"enum": [
"blocking",
"non-blocking"
]
},
"replyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"deadlineMs": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 600000
},
{
"type": "null"
}
]
},
"retry": {
"type": "object",
"additionalProperties": false,
"required": [
"maxAttempts",
"backoffMs",
"strategy",
"retryOn"
],
"properties": {
"maxAttempts": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"backoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"budget": {
"type": "object",
"additionalProperties": false,
"required": [
"percent"
],
"properties": {
"percent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"minPerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000
}
}
},
"strategy": {
"enum": [
"fixed",
"exponential"
]
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retryOn": {
"type": "array",
"maxItems": 3,
"uniqueItems": true,
"items": {
"enum": [
"throttled",
"transient",
"timeout"
]
}
},
"idempotent": {
"type": "boolean"
}
}
},
"breaker": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"failurePercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"slowCallMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"slowPercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"windowMs": {
"enum": [
1000,
2000,
3000,
4000,
5000,
6000,
7000,
8000,
9000,
10000,
11000,
12000,
13000,
14000,
15000,
16000,
17000,
18000,
19000,
20000,
21000,
22000,
23000,
24000,
25000,
26000,
27000,
28000,
29000,
30000,
31000,
32000,
33000,
34000,
35000,
36000,
37000,
38000,
39000,
40000,
41000,
42000,
43000,
44000,
45000,
46000,
47000,
48000,
49000,
50000,
51000,
52000,
53000,
54000,
55000,
56000,
57000,
58000,
59000,
60000
]
},
"minimumCalls": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"openMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"halfOpenCalls": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
}
]
},
"poolConnections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
},
"group": {
"type": [
"string",
"null"
]
},
"groupOrigin": {
"type": [
"string",
"null"
],
"enum": [
"inferred",
null
]
},
"share": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"dlq": {
"type": [
"boolean",
"null"
]
},
"travelMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"networkDelayMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
},
{
"type": "null"
}
]
},
"filter": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
"deny": {
"type": [
"boolean",
"null"
]
},
"queue": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
},
{
"type": "null"
}
]
},
"resumeAutoscaling": {
"type": [
"boolean",
"null"
]
},
"api": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": [
"array",
"null"
],
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": [
"string",
"null"
],
"enum": [
"fixed",
"auto",
null
]
},
"maxConcurrency": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": [
"string",
"null"
],
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured",
null
]
},
"presetRevision": {
"type": [
"string",
"null"
],
"enum": [
"1",
"2026-10-14",
null
]
},
"connections": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"retry": {
"type": [
"string",
"null"
],
"enum": [
"requeue",
"inplace",
null
]
},
"retryBackoffMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": [
"string",
"null"
]
},
"size": {
"type": [
"string",
"null"
],
"enum": [
"branch",
"campus",
"datacentre",
null
]
},
"gbps": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": [
"number",
"null"
],
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": [
"string",
"null"
],
"enum": [
"standalone",
"active-standby",
"active-active",
null
]
},
"failoverMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": [
"boolean",
"null"
]
},
"trafficMix": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Side": {
"type": "string",
"enum": [
"top",
"right",
"bottom",
"left"
]
}
}
},
"page": "/?view=canvas&example=new"
}edit_diagramAction
Add, connect, change or remove diagram elements in one atomic step (one undo). Describe kinds in plain words ('.NET consumer', 'Kafka topic'); the app picks the icon and position. Put a whole request in one call.
View tool JSON
{
"name": "edit_diagram",
"kind": "act",
"impl": "imperative",
"description": "Add, connect, change or remove diagram elements in one atomic step (one undo). Describe kinds in plain words ('.NET consumer', 'Kafka topic'); the app picks the icon and position. Put a whole request in one call.",
"inputSchema": {
"type": "object",
"required": [
"ops"
],
"properties": {
"ops": {
"type": "array",
"minItems": 0,
"description": "Use an empty list only with layout: full to rearrange the existing diagram.",
"maxItems": 100,
"items": {
"oneOf": [
{
"type": "object",
"required": [
"op",
"kind",
"label"
],
"additionalProperties": false,
"properties": {
"op": {
"const": "add_node"
},
"kind": {
"type": "string",
"maxLength": 100,
"description": "Plain words or a stencil id, e.g. 'Kafka topic', 'service.dotnet'."
},
"label": {
"type": "string",
"maxLength": 200
},
"sublabel": {
"type": "string",
"maxLength": 200,
"description": "Second line, e.g. a topic name 'orders.created'."
},
"key": {
"type": "string",
"maxLength": 50,
"description": "Name to refer to this node later in the same call."
},
"in": {
"$ref": "#/$defs/Ref",
"description": "Boundary to place it in."
},
"props": {
"$ref": "#/$defs/NodeProps"
}
}
},
{
"type": "object",
"required": [
"op",
"from",
"to"
],
"additionalProperties": false,
"properties": {
"op": {
"const": "connect"
},
"from": {
"$ref": "#/$defs/Ref"
},
"to": {
"$ref": "#/$defs/Ref"
},
"label": {
"type": "string",
"maxLength": 200
},
"kind": {
"type": "string",
"enum": [
"async",
"sync"
],
"description": "async = messages/events; sync = request/response, writes to a database. Left out: sync into a database, gateway, outside or model API, or out of a client or gateway; async into or out of a queue, topic or stream, and otherwise."
},
"relation": {
"type": "string",
"enum": [
"flow",
"config",
"secret",
"identity",
"telemetry",
"deploy",
"depends"
],
"description": "Left out: infer from the stencils as in the editor (e.g. into Key Vault: secret; otherwise a flow). An explicit relation wins; flow carries traffic, while config, secret, identity, telemetry, deploy and depends are dotted dependencies with no traffic."
},
"fromSide": {
"$ref": "#/$defs/Side",
"description": "Fix the source end to this side."
},
"toSide": {
"$ref": "#/$defs/Side",
"description": "Fix the target end to this side."
},
"key": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
}
},
{
"type": "object",
"required": [
"op",
"from",
"to",
"kind",
"label"
],
"additionalProperties": false,
"description": "Put a new node on the connection from -> to: it becomes from -> new -> to. Both new connections keep the old one's kind, relation and props; its label and source side go on the first, its target side on the second. Hand-shaped routes are reset.",
"properties": {
"op": {
"const": "insert_between"
},
"from": {
"$ref": "#/$defs/Ref"
},
"to": {
"$ref": "#/$defs/Ref"
},
"kind": {
"type": "string",
"maxLength": 100,
"description": "Plain words or a stencil id, e.g. 'Redis cache'."
},
"label": {
"type": "string",
"maxLength": 200
},
"sublabel": {
"type": "string",
"maxLength": 200
},
"key": {
"type": "string",
"maxLength": 50,
"description": "Name to refer to the new node later in the same call."
}
}
},
{
"type": "object",
"required": [
"op",
"target"
],
"additionalProperties": false,
"properties": {
"op": {
"const": "update"
},
"target": {
"$ref": "#/$defs/Ref"
},
"label": {
"type": "string",
"maxLength": 200
},
"sublabel": {
"type": [
"string",
"null"
],
"maxLength": 200
},
"kind": {
"type": "string",
"maxLength": 100,
"description": "Nodes: change the stencil; its connections' relationships follow, as on the canvas (a flow into what becomes a config store turns config; an inferred dependency into what stops being one turns back into a flow), listed in the result's relations. Connections: 'async' or 'sync'."
},
"in": {
"type": [
"string",
"null"
],
"description": "Move into this boundary; null removes it from its boundary."
},
"props": {
"$ref": "#/$defs/PropsPatch"
},
"members": {
"type": "array",
"items": {
"$ref": "#/$defs/Ref"
}
},
"tone": {
"$ref": "#/$defs/Tone"
},
"fromSide": {
"anyOf": [
{
"$ref": "#/$defs/Side"
},
{
"type": "null"
}
],
"description": "Connections only: source side; null restores automatic side selection."
},
"toSide": {
"anyOf": [
{
"$ref": "#/$defs/Side"
},
{
"type": "null"
}
],
"description": "Connections only: target side; null restores automatic side selection."
},
"route": {
"type": "string",
"enum": [
"auto"
],
"description": "Connections only: reset a hand-shaped route. Agents never write bend coordinates."
}
}
},
{
"type": "object",
"required": [
"op",
"targets"
],
"additionalProperties": false,
"properties": {
"op": {
"const": "remove"
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 100,
"items": {
"$ref": "#/$defs/Ref"
},
"description": "Nodes, connections ('A -> B'), boundaries (contents are kept) or notes."
}
}
},
{
"type": "object",
"required": [
"op",
"label",
"members"
],
"additionalProperties": false,
"properties": {
"op": {
"const": "add_boundary"
},
"label": {
"type": "string",
"maxLength": 200
},
"members": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/Ref"
}
},
"tone": {
"$ref": "#/$defs/Tone"
},
"key": {
"type": "string",
"maxLength": 50
}
}
},
{
"type": "object",
"required": [
"op",
"text"
],
"additionalProperties": false,
"properties": {
"op": {
"const": "add_note"
},
"text": {
"type": "string",
"maxLength": 2000
},
"style": {
"type": "string",
"enum": [
"note",
"text"
],
"default": "note"
},
"near": {
"$ref": "#/$defs/Ref"
},
"key": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
}
},
{
"type": "object",
"required": [
"op"
],
"additionalProperties": false,
"properties": {
"op": {
"const": "set_meta"
},
"title": {
"type": "string",
"maxLength": 200
},
"description": {
"type": "string",
"maxLength": 2000
},
"direction": {
"type": "string",
"enum": [
"LR",
"TB"
]
},
"requestRoutes": {
"type": "array",
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"address"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"address": {
"type": "object",
"additionalProperties": false,
"required": [
"method",
"path"
],
"properties": {
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
},
"host": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"appearance": {
"type": "object",
"additionalProperties": false,
"required": [
"paletteSlot",
"marker"
],
"properties": {
"paletteSlot": {
"type": "integer",
"minimum": 0,
"maximum": 6
},
"marker": {
"enum": [
"circle",
"square",
"diamond",
"triangle"
]
}
}
}
}
},
"description": "Request routing (current planning model): the diagram's complete list of request routes, each an id and a method/path address. Replaces the list; mixes (props.trafficMix), caller addresses (connection props.requestRouteId) and route tables (props.routeTable on an HTTP router) refer to these ids."
}
}
}
]
}
},
"layout": {
"type": "string",
"enum": [
"auto",
"full",
"none"
],
"default": "auto"
},
"dryRun": {
"type": "boolean",
"default": false,
"description": "Validate and report without changing the diagram."
},
"summary": {
"type": "string",
"maxLength": 200,
"description": "One short sentence for the person, e.g. 'Added a Redis cache in front of orders-db'. Shown with the change in the app's AI panel."
}
},
"$defs": {
"Ref": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "An element: id from describe_diagram (preferred), a key set earlier in this call, an exact label, 'label (sublabel)', or for a connection 'From -> To'."
},
"NodeProps": {
"type": "object",
"additionalProperties": true,
"properties": {
"queue": {
"type": "object",
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": "object",
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
}
]
},
"resumeAutoscaling": {
"type": "boolean"
},
"api": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": "array",
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": "string",
"enum": [
"fixed",
"auto"
]
},
"maxConcurrency": {
"type": "number",
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": "string",
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured"
]
},
"presetRevision": {
"type": "string",
"enum": [
"1",
"2026-10-14"
]
},
"connections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retry": {
"type": "string",
"enum": [
"requeue",
"inplace"
]
},
"retryBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": "string"
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
}
]
},
"size": {
"type": "string",
"enum": [
"branch",
"campus",
"datacentre"
]
},
"gbps": {
"type": "number",
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": "number",
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": "string",
"enum": [
"standalone",
"active-standby",
"active-active"
]
},
"failoverMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": "boolean"
},
"trafficMix": {
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": "object",
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Tone": {
"type": "string",
"enum": [
"azure",
"aws",
"gcp",
"k8s",
"onprem",
"neutral"
]
},
"PropsPatch": {
"type": "object",
"additionalProperties": true,
"properties": {
"priority": {
"type": [
"string",
"null"
],
"enum": [
"critical",
"normal",
"sheddable",
null
]
},
"requestRouteId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"requestFilter": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"endpointId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"caller": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"wait": {
"enum": [
"blocking",
"non-blocking"
]
},
"replyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"deadlineMs": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 600000
},
{
"type": "null"
}
]
},
"retry": {
"type": "object",
"additionalProperties": false,
"required": [
"maxAttempts",
"backoffMs",
"strategy",
"retryOn"
],
"properties": {
"maxAttempts": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"backoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"budget": {
"type": "object",
"additionalProperties": false,
"required": [
"percent"
],
"properties": {
"percent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"minPerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000
}
}
},
"strategy": {
"enum": [
"fixed",
"exponential"
]
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retryOn": {
"type": "array",
"maxItems": 3,
"uniqueItems": true,
"items": {
"enum": [
"throttled",
"transient",
"timeout"
]
}
},
"idempotent": {
"type": "boolean"
}
}
},
"breaker": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"failurePercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"slowCallMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"slowPercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"windowMs": {
"enum": [
1000,
2000,
3000,
4000,
5000,
6000,
7000,
8000,
9000,
10000,
11000,
12000,
13000,
14000,
15000,
16000,
17000,
18000,
19000,
20000,
21000,
22000,
23000,
24000,
25000,
26000,
27000,
28000,
29000,
30000,
31000,
32000,
33000,
34000,
35000,
36000,
37000,
38000,
39000,
40000,
41000,
42000,
43000,
44000,
45000,
46000,
47000,
48000,
49000,
50000,
51000,
52000,
53000,
54000,
55000,
56000,
57000,
58000,
59000,
60000
]
},
"minimumCalls": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"openMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"halfOpenCalls": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
}
]
},
"poolConnections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
},
"group": {
"type": [
"string",
"null"
]
},
"groupOrigin": {
"type": [
"string",
"null"
],
"enum": [
"inferred",
null
]
},
"share": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"dlq": {
"type": [
"boolean",
"null"
]
},
"travelMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"networkDelayMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
},
{
"type": "null"
}
]
},
"filter": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
"deny": {
"type": [
"boolean",
"null"
]
},
"queue": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
},
{
"type": "null"
}
]
},
"resumeAutoscaling": {
"type": [
"boolean",
"null"
]
},
"api": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": [
"array",
"null"
],
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": [
"string",
"null"
],
"enum": [
"fixed",
"auto",
null
]
},
"maxConcurrency": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": [
"string",
"null"
],
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured",
null
]
},
"presetRevision": {
"type": [
"string",
"null"
],
"enum": [
"1",
"2026-10-14",
null
]
},
"connections": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"retry": {
"type": [
"string",
"null"
],
"enum": [
"requeue",
"inplace",
null
]
},
"retryBackoffMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": [
"string",
"null"
]
},
"size": {
"type": [
"string",
"null"
],
"enum": [
"branch",
"campus",
"datacentre",
null
]
},
"gbps": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": [
"number",
"null"
],
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": [
"string",
"null"
],
"enum": [
"standalone",
"active-standby",
"active-active",
null
]
},
"failoverMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": [
"boolean",
"null"
]
},
"trafficMix": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Side": {
"type": "string",
"enum": [
"top",
"right",
"bottom",
"left"
]
}
}
},
"page": "/?view=canvas&example=new"
}set_simulationAction
Create or replace a simulation in plain units: who sends how much traffic, what breaks when, and what should hold true. Times are seconds. Use faults for named drills: zone-outage, region-connectivity, slow-dependency or error-spike. Faults can take down a boundary, slow a node, inject failures or cut a flow between boundaries; use another fault step to restore it.
View tool JSON
{
"name": "set_simulation",
"kind": "act",
"impl": "imperative",
"description": "Create or replace a simulation in plain units: who sends how much traffic, what breaks when, and what should hold true. Times are seconds. Use faults for named drills: zone-outage, region-connectivity, slow-dependency or error-spike. Faults can take down a boundary, slow a node, inject failures or cut a flow between boundaries; use another fault step to restore it.",
"inputSchema": {
"type": "object",
"required": [
"title",
"traffic"
],
"properties": {
"title": {
"type": "string",
"maxLength": 200
},
"summary": {
"type": "string",
"maxLength": 200,
"description": "One short sentence for the person, e.g. 'Added a Redis cache in front of orders-db'. Shown with the change in the app's AI panel."
},
"replace": {
"$ref": "#/$defs/Ref",
"description": "Existing simulation id or title to overwrite; omitted = add new."
},
"durationSec": {
"type": "number",
"minimum": 1,
"maximum": 3600
},
"traffic": {
"type": "array",
"minItems": 0,
"maxItems": 20,
"items": {
"type": "object",
"required": [
"from",
"pattern"
],
"additionalProperties": false,
"properties": {
"from": {
"$ref": "#/$defs/Ref"
},
"pattern": {
"type": "string",
"enum": [
"constant",
"burst",
"ramp",
"spike"
]
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"description": "constant; ramp start; spike base."
},
"toRatePerSec": {
"type": "number",
"minimum": 0,
"description": "ramp target; spike peak."
},
"count": {
"type": "integer",
"minimum": 1,
"description": "burst size."
},
"startSec": {
"type": "number",
"minimum": 0,
"default": 0
},
"durationSec": {
"type": "number",
"minimum": 0,
"description": "constant/ramp/spike length; burst spread."
},
"peakSec": {
"type": "number",
"minimum": 0,
"description": "spike: how long the peak lasts."
},
"messageType": {
"type": "string"
},
"label": {
"type": "string"
}
}
}
},
"faults": {
"type": "array",
"maxItems": 50,
"description": "Saved drill timeline: boundary outages, node slowdown/failure overlays and cross-boundary flow partitions. Restore with down/cut false, factor 1 or rate 0. Targets are ids or exact labels from describe_diagram. Requests over cut links fail; brokers retain queued messages.",
"items": {
"type": "object",
"required": [
"atSec",
"fault"
],
"additionalProperties": false,
"properties": {
"atSec": {
"type": "number",
"minimum": 0
},
"fault": {
"oneOf": [
{
"type": "object",
"required": [
"kind",
"boundary",
"down"
],
"additionalProperties": false,
"properties": {
"kind": {
"const": "boundary"
},
"boundary": {
"type": "string",
"minLength": 1
},
"down": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"kind",
"node",
"factor"
],
"additionalProperties": false,
"properties": {
"kind": {
"const": "slow"
},
"node": {
"type": "string",
"minLength": 1
},
"factor": {
"enum": [
1,
2,
5,
10
]
}
}
},
{
"type": "object",
"required": [
"kind",
"node",
"rate"
],
"additionalProperties": false,
"properties": {
"kind": {
"const": "fail"
},
"node": {
"type": "string",
"minLength": 1
},
"rate": {
"enum": [
0,
0.1,
0.5
]
}
}
},
{
"type": "object",
"required": [
"kind",
"edge",
"cut"
],
"additionalProperties": false,
"properties": {
"kind": {
"const": "link"
},
"edge": {
"type": "string",
"minLength": 1
},
"cut": {
"type": "boolean"
}
}
}
]
},
"drill": {
"enum": [
"zone-outage",
"region-connectivity",
"slow-dependency",
"error-spike"
]
},
"note": {
"type": "string",
"maxLength": 300
}
}
}
},
"events": {
"type": "array",
"maxItems": 50,
"items": {
"type": "object",
"required": [
"atSec",
"node",
"do"
],
"additionalProperties": false,
"properties": {
"atSec": {
"type": "number",
"minimum": 0
},
"node": {
"$ref": "#/$defs/Ref"
},
"do": {
"type": "string",
"enum": [
"down",
"up",
"pause",
"slow",
"set"
]
},
"latencyMs": {
"type": "number",
"minimum": 0,
"description": "for 'slow'."
},
"props": {
"$ref": "#/$defs/NodeProps",
"description": "for 'set'."
},
"note": {
"type": "string",
"maxLength": 300,
"description": "Optional narration shown at this time."
}
}
}
},
"expectations": {
"type": "array",
"maxItems": 20,
"items": {
"type": "object",
"required": [
"label",
"metric",
"op",
"value"
],
"additionalProperties": false,
"properties": {
"label": {
"type": "string"
},
"node": {
"$ref": "#/$defs/Ref",
"description": "Omit with metric 'inSystem'."
},
"metric": {
"type": "string",
"enum": [
"processed",
"backlog",
"inFlight",
"failed",
"timedOut",
"retried",
"shortCircuited",
"shed",
"amplification",
"goodput",
"threadsBusy",
"threadsWaiting",
"deadLettered",
"dropped",
"blocked",
"rejected",
"throughput",
"lag",
"inSystem"
]
},
"op": {
"type": "string",
"enum": [
"<",
"<=",
"==",
">=",
">"
]
},
"value": {
"type": "number"
},
"when": {
"type": "string",
"enum": [
"always",
"eventually",
"end"
],
"default": "end"
}
}
}
}
},
"$defs": {
"Ref": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "An element: id from describe_diagram (preferred), a key set earlier in this call, an exact label, 'label (sublabel)', or for a connection 'From -> To'."
},
"NodeProps": {
"type": "object",
"additionalProperties": true,
"properties": {
"queue": {
"type": "object",
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": "object",
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
}
]
},
"resumeAutoscaling": {
"type": "boolean"
},
"api": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": "array",
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": "string",
"enum": [
"fixed",
"auto"
]
},
"maxConcurrency": {
"type": "number",
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": "string",
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured"
]
},
"presetRevision": {
"type": "string",
"enum": [
"1",
"2026-10-14"
]
},
"connections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retry": {
"type": "string",
"enum": [
"requeue",
"inplace"
]
},
"retryBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": "string"
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
}
]
},
"size": {
"type": "string",
"enum": [
"branch",
"campus",
"datacentre"
]
},
"gbps": {
"type": "number",
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": "number",
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": "string",
"enum": [
"standalone",
"active-standby",
"active-active"
]
},
"failoverMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": "boolean"
},
"trafficMix": {
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": "object",
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Tone": {
"type": "string",
"enum": [
"azure",
"aws",
"gcp",
"k8s",
"onprem",
"neutral"
]
},
"PropsPatch": {
"type": "object",
"additionalProperties": true,
"properties": {
"priority": {
"type": [
"string",
"null"
],
"enum": [
"critical",
"normal",
"sheddable",
null
]
},
"requestRouteId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"requestFilter": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"endpointId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"caller": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"wait": {
"enum": [
"blocking",
"non-blocking"
]
},
"replyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"deadlineMs": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 600000
},
{
"type": "null"
}
]
},
"retry": {
"type": "object",
"additionalProperties": false,
"required": [
"maxAttempts",
"backoffMs",
"strategy",
"retryOn"
],
"properties": {
"maxAttempts": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"backoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"budget": {
"type": "object",
"additionalProperties": false,
"required": [
"percent"
],
"properties": {
"percent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"minPerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000
}
}
},
"strategy": {
"enum": [
"fixed",
"exponential"
]
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retryOn": {
"type": "array",
"maxItems": 3,
"uniqueItems": true,
"items": {
"enum": [
"throttled",
"transient",
"timeout"
]
}
},
"idempotent": {
"type": "boolean"
}
}
},
"breaker": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"failurePercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"slowCallMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"slowPercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"windowMs": {
"enum": [
1000,
2000,
3000,
4000,
5000,
6000,
7000,
8000,
9000,
10000,
11000,
12000,
13000,
14000,
15000,
16000,
17000,
18000,
19000,
20000,
21000,
22000,
23000,
24000,
25000,
26000,
27000,
28000,
29000,
30000,
31000,
32000,
33000,
34000,
35000,
36000,
37000,
38000,
39000,
40000,
41000,
42000,
43000,
44000,
45000,
46000,
47000,
48000,
49000,
50000,
51000,
52000,
53000,
54000,
55000,
56000,
57000,
58000,
59000,
60000
]
},
"minimumCalls": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"openMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"halfOpenCalls": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
}
]
},
"poolConnections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
},
"group": {
"type": [
"string",
"null"
]
},
"groupOrigin": {
"type": [
"string",
"null"
],
"enum": [
"inferred",
null
]
},
"share": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"dlq": {
"type": [
"boolean",
"null"
]
},
"travelMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"networkDelayMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
},
{
"type": "null"
}
]
},
"filter": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
"deny": {
"type": [
"boolean",
"null"
]
},
"queue": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
},
{
"type": "null"
}
]
},
"resumeAutoscaling": {
"type": [
"boolean",
"null"
]
},
"api": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": [
"array",
"null"
],
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": [
"string",
"null"
],
"enum": [
"fixed",
"auto",
null
]
},
"maxConcurrency": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": [
"string",
"null"
],
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured",
null
]
},
"presetRevision": {
"type": [
"string",
"null"
],
"enum": [
"1",
"2026-10-14",
null
]
},
"connections": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"retry": {
"type": [
"string",
"null"
],
"enum": [
"requeue",
"inplace",
null
]
},
"retryBackoffMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": [
"string",
"null"
]
},
"size": {
"type": [
"string",
"null"
],
"enum": [
"branch",
"campus",
"datacentre",
null
]
},
"gbps": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": [
"number",
"null"
],
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": [
"string",
"null"
],
"enum": [
"standalone",
"active-standby",
"active-active",
null
]
},
"failoverMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": [
"boolean",
"null"
]
},
"trafficMix": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Side": {
"type": "string",
"enum": [
"top",
"right",
"bottom",
"left"
]
}
}
},
"page": "/?view=canvas&example=new"
}new_diagramAction
Start a new, empty diagram. The current one stays in the library.
View tool JSON
{
"name": "new_diagram",
"kind": "act",
"impl": "imperative",
"description": "Start a new, empty diagram. The current one stays in the library.",
"inputSchema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 200
},
"direction": {
"type": "string",
"enum": [
"LR",
"TB"
],
"default": "LR"
},
"summary": {
"type": "string",
"maxLength": 200,
"description": "One short sentence for the person, e.g. 'Added a Redis cache in front of orders-db'. Shown with the change in the app's AI panel."
}
},
"$defs": {
"Ref": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "An element: id from describe_diagram (preferred), a key set earlier in this call, an exact label, 'label (sublabel)', or for a connection 'From -> To'."
},
"NodeProps": {
"type": "object",
"additionalProperties": true,
"properties": {
"queue": {
"type": "object",
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": "object",
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
}
]
},
"resumeAutoscaling": {
"type": "boolean"
},
"api": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": "array",
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": "string",
"enum": [
"fixed",
"auto"
]
},
"maxConcurrency": {
"type": "number",
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": "string",
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured"
]
},
"presetRevision": {
"type": "string",
"enum": [
"1",
"2026-10-14"
]
},
"connections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retry": {
"type": "string",
"enum": [
"requeue",
"inplace"
]
},
"retryBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": "string"
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
}
]
},
"size": {
"type": "string",
"enum": [
"branch",
"campus",
"datacentre"
]
},
"gbps": {
"type": "number",
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": "number",
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": "string",
"enum": [
"standalone",
"active-standby",
"active-active"
]
},
"failoverMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": "boolean"
},
"trafficMix": {
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": "object",
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Tone": {
"type": "string",
"enum": [
"azure",
"aws",
"gcp",
"k8s",
"onprem",
"neutral"
]
},
"PropsPatch": {
"type": "object",
"additionalProperties": true,
"properties": {
"priority": {
"type": [
"string",
"null"
],
"enum": [
"critical",
"normal",
"sheddable",
null
]
},
"requestRouteId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"requestFilter": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"endpointId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"caller": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"wait": {
"enum": [
"blocking",
"non-blocking"
]
},
"replyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"deadlineMs": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 600000
},
{
"type": "null"
}
]
},
"retry": {
"type": "object",
"additionalProperties": false,
"required": [
"maxAttempts",
"backoffMs",
"strategy",
"retryOn"
],
"properties": {
"maxAttempts": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"backoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"budget": {
"type": "object",
"additionalProperties": false,
"required": [
"percent"
],
"properties": {
"percent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"minPerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000
}
}
},
"strategy": {
"enum": [
"fixed",
"exponential"
]
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retryOn": {
"type": "array",
"maxItems": 3,
"uniqueItems": true,
"items": {
"enum": [
"throttled",
"transient",
"timeout"
]
}
},
"idempotent": {
"type": "boolean"
}
}
},
"breaker": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"failurePercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"slowCallMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"slowPercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"windowMs": {
"enum": [
1000,
2000,
3000,
4000,
5000,
6000,
7000,
8000,
9000,
10000,
11000,
12000,
13000,
14000,
15000,
16000,
17000,
18000,
19000,
20000,
21000,
22000,
23000,
24000,
25000,
26000,
27000,
28000,
29000,
30000,
31000,
32000,
33000,
34000,
35000,
36000,
37000,
38000,
39000,
40000,
41000,
42000,
43000,
44000,
45000,
46000,
47000,
48000,
49000,
50000,
51000,
52000,
53000,
54000,
55000,
56000,
57000,
58000,
59000,
60000
]
},
"minimumCalls": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"openMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"halfOpenCalls": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
}
]
},
"poolConnections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
},
"group": {
"type": [
"string",
"null"
]
},
"groupOrigin": {
"type": [
"string",
"null"
],
"enum": [
"inferred",
null
]
},
"share": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"dlq": {
"type": [
"boolean",
"null"
]
},
"travelMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"networkDelayMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
},
{
"type": "null"
}
]
},
"filter": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
"deny": {
"type": [
"boolean",
"null"
]
},
"queue": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
},
{
"type": "null"
}
]
},
"resumeAutoscaling": {
"type": [
"boolean",
"null"
]
},
"api": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": [
"array",
"null"
],
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": [
"string",
"null"
],
"enum": [
"fixed",
"auto",
null
]
},
"maxConcurrency": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": [
"string",
"null"
],
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured",
null
]
},
"presetRevision": {
"type": [
"string",
"null"
],
"enum": [
"1",
"2026-10-14",
null
]
},
"connections": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"retry": {
"type": [
"string",
"null"
],
"enum": [
"requeue",
"inplace",
null
]
},
"retryBackoffMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": [
"string",
"null"
]
},
"size": {
"type": [
"string",
"null"
],
"enum": [
"branch",
"campus",
"datacentre",
null
]
},
"gbps": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": [
"number",
"null"
],
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": [
"string",
"null"
],
"enum": [
"standalone",
"active-standby",
"active-active",
null
]
},
"failoverMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": [
"boolean",
"null"
]
},
"trafficMix": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Side": {
"type": "string",
"enum": [
"top",
"right",
"bottom",
"left"
]
}
}
},
"page": "/?view=canvas&example=new"
}get_share_linkAnswer
Get a link that opens the current diagram. The diagram is stored in the link itself; nothing is uploaded.
View tool JSON
{
"name": "get_share_link",
"kind": "answer",
"impl": "imperative",
"description": "Get a link that opens the current diagram. The diagram is stored in the link itself; nothing is uploaded.",
"inputSchema": {
"type": "object",
"properties": {},
"$defs": {
"Ref": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "An element: id from describe_diagram (preferred), a key set earlier in this call, an exact label, 'label (sublabel)', or for a connection 'From -> To'."
},
"NodeProps": {
"type": "object",
"additionalProperties": true,
"properties": {
"queue": {
"type": "object",
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": "object",
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
}
]
},
"resumeAutoscaling": {
"type": "boolean"
},
"api": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": "array",
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": "string",
"enum": [
"fixed",
"auto"
]
},
"maxConcurrency": {
"type": "number",
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": "string",
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured"
]
},
"presetRevision": {
"type": "string",
"enum": [
"1",
"2026-10-14"
]
},
"connections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retry": {
"type": "string",
"enum": [
"requeue",
"inplace"
]
},
"retryBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": "string"
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
}
]
},
"size": {
"type": "string",
"enum": [
"branch",
"campus",
"datacentre"
]
},
"gbps": {
"type": "number",
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": "number",
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": "string",
"enum": [
"standalone",
"active-standby",
"active-active"
]
},
"failoverMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": "boolean"
},
"trafficMix": {
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": "object",
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Tone": {
"type": "string",
"enum": [
"azure",
"aws",
"gcp",
"k8s",
"onprem",
"neutral"
]
},
"PropsPatch": {
"type": "object",
"additionalProperties": true,
"properties": {
"priority": {
"type": [
"string",
"null"
],
"enum": [
"critical",
"normal",
"sheddable",
null
]
},
"requestRouteId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"requestFilter": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"endpointId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 200
},
"caller": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"wait": {
"enum": [
"blocking",
"non-blocking"
]
},
"replyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"deadlineMs": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 600000
},
{
"type": "null"
}
]
},
"retry": {
"type": "object",
"additionalProperties": false,
"required": [
"maxAttempts",
"backoffMs",
"strategy",
"retryOn"
],
"properties": {
"maxAttempts": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"backoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"maxBackoffMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"budget": {
"type": "object",
"additionalProperties": false,
"required": [
"percent"
],
"properties": {
"percent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"minPerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000
}
}
},
"strategy": {
"enum": [
"fixed",
"exponential"
]
},
"jitter": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"retryOn": {
"type": "array",
"maxItems": 3,
"uniqueItems": true,
"items": {
"enum": [
"throttled",
"transient",
"timeout"
]
}
},
"idempotent": {
"type": "boolean"
}
}
},
"breaker": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"failurePercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"slowCallMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"slowPercent": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"windowMs": {
"enum": [
1000,
2000,
3000,
4000,
5000,
6000,
7000,
8000,
9000,
10000,
11000,
12000,
13000,
14000,
15000,
16000,
17000,
18000,
19000,
20000,
21000,
22000,
23000,
24000,
25000,
26000,
27000,
28000,
29000,
30000,
31000,
32000,
33000,
34000,
35000,
36000,
37000,
38000,
39000,
40000,
41000,
42000,
43000,
44000,
45000,
46000,
47000,
48000,
49000,
50000,
51000,
52000,
53000,
54000,
55000,
56000,
57000,
58000,
59000,
60000
]
},
"minimumCalls": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"openMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"halfOpenCalls": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
}
]
},
"poolConnections": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
},
"group": {
"type": [
"string",
"null"
]
},
"groupOrigin": {
"type": [
"string",
"null"
],
"enum": [
"inferred",
null
]
},
"share": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"dlq": {
"type": [
"boolean",
"null"
]
},
"travelMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"networkDelayMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"emits": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"receives",
"sends"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"receives": {
"type": "string"
},
"sends": {
"type": "string"
}
}
}
},
{
"type": "null"
}
]
},
"filter": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
"deny": {
"type": [
"boolean",
"null"
]
},
"queue": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"whenFull": {
"type": "string",
"enum": [
"reject-new",
"drop-oldest"
]
},
"order": {
"type": "string",
"enum": [
"fifo",
"lifo"
]
},
"maxWaitMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
}
}
},
"resources": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"preset",
"presetRevision",
"cpuMsPerMessage",
"baselineMemoryMiB",
"memoryMiBPerMessage",
"startup",
"terminationGraceMs"
],
"properties": {
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"cpuMsPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"baselineMemoryMiB": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"memoryMiBPerMessage": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"cpuRequestMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"cpuLimitMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"availableCpuMilli": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryRequestMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"memoryLimitMiB": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"startup": {
"type": "object",
"additionalProperties": false,
"required": [
"delayMs",
"jitterFraction"
],
"properties": {
"delayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"jitterFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
}
}
},
"terminationGraceMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"requestDefaults": {
"type": "array",
"maxItems": 2,
"items": {
"enum": [
"cpu",
"memory"
]
}
}
}
},
"autoscaling": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"initialCooldownMs",
"settings",
"triggers"
],
"properties": {
"kind": {
"enum": [
"keda"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"initialCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"idleReplicas": {
"enum": [
0
]
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
},
"triggers": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"fallback": {
"type": "object",
"additionalProperties": false,
"required": [
"failureThreshold",
"replicas",
"behavior"
],
"properties": {
"failureThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"replicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"behavior": {
"enum": [
"static",
"currentReplicas",
"currentReplicasIfHigher",
"currentReplicasIfLower"
]
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"off"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"provider",
"reason"
],
"properties": {
"mode": {
"enum": [
"unsupported"
]
},
"provider": {
"type": "string",
"maxLength": 100
},
"reason": {
"type": "string",
"maxLength": 1000
},
"controllers": {
"type": "array",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"HPA",
"ScaledObject",
"ScaledJob"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"maxReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
}
}
},
"controllersOmitted": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a1",
"a2"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"settings"
],
"properties": {
"kind": {
"enum": [
"hpa"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"mode",
"modelRevision",
"preset",
"presetRevision",
"controller"
],
"properties": {
"mode": {
"enum": [
"on"
]
},
"modelRevision": {
"enum": [
"a3"
]
},
"preset": {
"type": "string",
"maxLength": 100
},
"presetRevision": {
"enum": [
"1"
]
},
"controller": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"metricPeriodMs",
"alarm",
"targetTracking",
"stepScaling"
],
"properties": {
"kind": {
"enum": [
"ecs"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"metricPeriodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"alarm": {
"type": "object",
"additionalProperties": false,
"required": [
"outPeriods",
"inPeriods",
"inMargin"
],
"properties": {
"outPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"inMargin": {
"type": "number",
"minimum": 0,
"maximum": 0.9
}
}
},
"targetTracking": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"target",
"scaleOutCooldownMs",
"scaleInCooldownMs",
"disableScaleIn"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget"
]
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"scaleOutCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"scaleInCooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"disableScaleIn": {
"type": "boolean"
}
}
}
},
"stepScaling": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"evaluationPeriods",
"adjustmentType",
"steps",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"albRequestCountPerTarget",
"albRequestCount"
]
},
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"operator": {
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"evaluationPeriods": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"adjustmentType": {
"enum": [
"ChangeInCapacity",
"PercentChangeInCapacity",
"ExactCapacity"
]
},
"steps": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"adjustment"
],
"properties": {
"lower": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"upper": {
"type": "number",
"minimum": -1000000000,
"maximum": 1000000000
},
"adjustment": {
"type": "integer",
"minimum": -10000,
"maximum": 10000
}
}
}
},
"minAdjustmentMagnitude": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"pollingMs",
"cooldownMs",
"triggers",
"settings"
],
"properties": {
"kind": {
"enum": [
"aca"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"pollingMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"http": {
"type": "object",
"additionalProperties": false,
"required": [
"concurrentRequests"
],
"properties": {
"concurrentRequests": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
"triggers": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"allowIdleConsumers"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"kafka"
]
},
"allowIdleConsumers": {
"type": "boolean"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"azure-servicebus"
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"scaleOnInFlight",
"scaleOnDelayed"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"aws-sqs-queue"
]
},
"scaleOnInFlight": {
"type": "boolean"
},
"scaleOnDelayed": {
"enum": [
false
]
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"activation",
"useCachedMetrics",
"type",
"protocol",
"excludeUnacknowledged"
],
"properties": {
"source": {
"type": "object",
"additionalProperties": false,
"required": [
"node"
],
"properties": {
"node": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
}
},
"target": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
},
"activation": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"useCachedMetrics": {
"type": "boolean"
},
"type": {
"enum": [
"rabbitmq"
]
},
"protocol": {
"enum": [
"http",
"amqp"
]
},
"excludeUnacknowledged": {
"type": "boolean"
}
}
}
]
}
},
"settings": {
"type": "object",
"additionalProperties": false,
"required": [
"syncMs",
"tolerance",
"initialReadinessDelayMs",
"cpuInitializationPeriodMs",
"metrics",
"up",
"down"
],
"properties": {
"syncMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"tolerance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"initialReadinessDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"cpuInitializationPeriodMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"metrics": {
"type": "array",
"minItems": 0,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source",
"target",
"windowMs",
"metricDelayMs"
],
"properties": {
"source": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"resource"
],
"properties": {
"kind": {
"enum": [
"resource"
]
},
"resource": {
"enum": [
"cpu",
"memory"
]
},
"container": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"metric"
],
"properties": {
"kind": {
"enum": [
"pods"
]
},
"metric": {
"enum": [
"busyThreads"
]
}
}
}
]
},
"target": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"percentOfRequest"
],
"properties": {
"kind": {
"enum": [
"utilization"
]
},
"percentOfRequest": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"averageValue"
]
},
"value": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000
}
}
}
]
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"metricDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
},
"up": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
},
"down": {
"type": "object",
"additionalProperties": false,
"required": [
"stabilizationMs",
"selectPolicy",
"policies"
],
"properties": {
"stabilizationMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
},
"selectPolicy": {
"enum": [
"Max",
"Min",
"Disabled"
]
},
"policies": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"periodMs"
],
"properties": {
"type": {
"enum": [
"Pods",
"Percent"
]
},
"value": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"periodMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
}
}
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"evaluationMs",
"rules"
],
"properties": {
"kind": {
"enum": [
"appService"
]
},
"minReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"rules": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"metric",
"operator",
"threshold",
"windowMs",
"direction",
"changeType",
"value",
"cooldownMs"
],
"properties": {
"metric": {
"enum": [
"cpu",
"memory",
"httpQueue"
]
},
"operator": {
"enum": [
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
]
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"windowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"direction": {
"enum": [
"increase",
"decrease"
]
},
"changeType": {
"enum": [
"ChangeCount",
"PercentChangeCount",
"ExactCount"
]
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"cooldownMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"minReplicas",
"maxReplicas",
"initialReplicas",
"targetConcurrencyPct",
"targetCpuPct",
"evaluationMs",
"cpuWindowMs",
"concurrencyWindowsMs",
"scaleInDelayMs"
],
"properties": {
"kind": {
"enum": [
"cloudRun"
]
},
"minReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"maxReplicas": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"initialReplicas": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"targetConcurrencyPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"targetCpuPct": {
"type": "number",
"minimum": 1,
"maximum": 100
},
"evaluationMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"cpuWindowMs": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
},
"concurrencyWindowsMs": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"scaleInDelayMs": {
"type": "integer",
"minimum": 0,
"maximum": 600000
}
}
}
]
}
}
},
{
"type": "null"
}
]
},
"resumeAutoscaling": {
"type": [
"boolean",
"null"
]
},
"api": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
},
"endpoints": {
"type": [
"array",
"null"
],
"maxItems": 500,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"method",
"path"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^/"
},
"behaviour": {
"type": "object",
"additionalProperties": false,
"properties": {
"quotas": {
"type": "array",
"maxItems": 32,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
},
"maxInFlight": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedConcurrency": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"latencyMs": {
"type": "number",
"minimum": 0,
"maximum": 600000
},
"errorRate": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"costPerRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"requests": {
"type": "number",
"minimum": 1,
"maximum": 1
},
"tokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"inputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"outputTokens": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"costPoints": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"bytes": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
}
}
}
}
}
}
}
},
"scaling": {
"type": [
"string",
"null"
],
"enum": [
"fixed",
"auto",
null
]
},
"maxConcurrency": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000
},
"preset": {
"type": [
"string",
"null"
],
"enum": [
"processor-lesson",
"device-size",
"lambda-account",
"stripe-live",
"stripe-sandbox",
"api-gateway-account",
"managed-measured",
null
]
},
"presetRevision": {
"type": [
"string",
"null"
],
"enum": [
"1",
"2026-10-14",
null
]
},
"connections": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"querySlots": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ingestUnits": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"ratePerSec": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 10000000
},
"latencyMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"concurrency": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"replicas": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"jitter": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"failureRate": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"retry": {
"type": [
"string",
"null"
],
"enum": [
"requeue",
"inplace",
null
]
},
"retryBackoffMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"maxDeliveryCount": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"partitions": {
"type": [
"integer",
"null"
],
"minimum": 1,
"maximum": 10000
},
"messageType": {
"type": [
"string",
"null"
]
},
"size": {
"type": [
"string",
"null"
],
"enum": [
"branch",
"campus",
"datacentre",
null
]
},
"gbps": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1000000
},
"messageKB": {
"type": [
"number",
"null"
],
"minimum": 0.01,
"maximum": 1000000
},
"ha": {
"type": [
"string",
"null"
],
"enum": [
"standalone",
"active-standby",
"active-active",
null
]
},
"failoverMs": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 600000
},
"healthChecks": {
"type": [
"boolean",
"null"
]
},
"trafficMix": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"mode",
"entries"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"shares",
"rates"
]
},
"entries": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"routeId"
],
"properties": {
"routeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"share": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Shares mode: this route's fraction, 0..1."
},
"ratePerSec": {
"type": "number",
"minimum": 0,
"maximum": 10000000,
"description": "Rates mode: this route's real requests per second."
}
}
}
}
}
},
"routeTable": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"maxItems": 256,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"match",
"targets"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"label": {
"type": "string",
"maxLength": 200
},
"match": {
"type": "object",
"additionalProperties": false,
"properties": {
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
]
}
},
"path": {
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"exact",
"prefix",
"template"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^/"
}
}
},
"hosts": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"query": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 200
}
}
}
},
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
},
"default": {
"type": "object",
"additionalProperties": false,
"required": [
"targets"
],
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"edgeId",
"weight"
],
"properties": {
"edgeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"weight": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
}
},
"quotas": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"unit",
"amount",
"windowMs",
"algorithm"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"unit": {},
"amount": {
"type": "number",
"minimum": 0.000001,
"maximum": 1000000000000
},
"windowMs": {
"type": "number",
"minimum": 1,
"maximum": 86400000
},
"algorithm": {
"type": "string",
"enum": [
"token-bucket"
]
},
"burst": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"sharedGroup": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
}
}
}
}
}
}
}
},
"Side": {
"type": "string",
"enum": [
"top",
"right",
"bottom",
"left"
]
}
}
},
"page": "/?view=canvas&example=new"
}