asl-validator
Version:
Amazon States Language validator
143 lines (142 loc) • 3.41 kB
JSON
{
"$id": "http://asl-validator.cloud/task.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"Type": {
"type": "string",
"enum": ["Task"]
},
"Next": {
"type": "string"
},
"End": {
"enum": [true]
},
"Comment": {
"type": "string"
},
"OutputPath": {
"$ref": "paths.json#/definitions/asl_path"
},
"InputPath": {
"$ref": "paths.json#/definitions/asl_path"
},
"Resource": {
"oneOf": [
{
"type": "string",
"$comment": "defers validation to the registered formatter",
"format": "asl_arn"
},
{
"type": "string",
"$comment": "extension that allows for variable substitution before deployment",
"pattern": "^\\$\\{[^\\}]+\\}$"
},
{
"type": "object",
"$comment": "extensions that allows for variable substitution via cloud function",
"properties": {
"Ref": {
"type": "string"
}
},
"patternProperties": {
"^Fn::[A-Za-z\\d]+$": {
"type": ["object", "string", "array"]
}
}
}
]
},
"ResultPath": {
"$ref": "paths.json#/definitions/asl_result_path"
},
"Retry": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ErrorEquals": {
"type": "array",
"items": {
"$ref": "errors.json#"
}
},
"IntervalSeconds": {
"type": "number",
"minimum": 0
},
"MaxAttempts": {
"type": "number",
"minimum": 0
},
"BackoffRate": {
"type": "number",
"minimum": 0
}
},
"required": ["ErrorEquals"]
}
},
"Catch": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ErrorEquals": {
"type": "array",
"items": {
"$ref": "errors.json#"
}
},
"Next": {
"type": "string"
},
"ResultPath": {
"$ref": "paths.json#/definitions/asl_result_path"
}
},
"required": ["ErrorEquals", "Next"]
}
},
"TimeoutSeconds": {
"type": "number",
"minimum": 1
},
"TimeoutSecondsPath": {
"$ref": "paths.json#/definitions/asl_ref_path"
},
"HeartbeatSeconds": {
"type": "number",
"minimum": 1
},
"HeartbeatSecondsPath": {
"$ref": "paths.json#/definitions/asl_ref_path"
},
"ResultSelector": {
"$ref": "paths.json#/definitions/asl_payload_template"
},
"Parameters": {
"$ref": "paths.json#/definitions/asl_payload_template"
},
"Credentials": {
"$ref": "paths.json#/definitions/asl_payload_template"
},
"Output": {
"$ref": "jsonata.json#/definitions/output"
},
"Assign": {
"$ref": "jsonata.json#/definitions/assign"
},
"Arguments": {
"$ref": "jsonata.json#/definitions/arguments"
},
"QueryLanguage": {
"$ref": "jsonata.json#/definitions/queryLanguage"
}
},
"required": ["Type", "Resource"],
"additionalProperties": false
}