asl-validator
Version:
Amazon States Language validator
174 lines (173 loc) • 5.98 kB
JSON
{
"$id": "http://asl-validator.cloud/task.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"HeartbeatSeconds": {
"type": "integer",
"minimum": 1
},
"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"]
}
}
}
]
},
"TimeoutSeconds": {
"type": "integer",
"minimum": 1
},
"Type": {
"type": "string",
"enum": ["Task"]
}
},
"oneOf": [
{
"type": "object",
"properties": {
"Type": {
"$ref": "#/definitions/Type"
},
"Next": {
"$ref": "common.json#/definitions/Next"
},
"End": {
"$ref": "common.json#/definitions/End"
},
"Comment": {
"$ref": "common.json#/definitions/Comment"
},
"OutputPath": {
"$ref": "paths.json#/definitions/asl_path"
},
"InputPath": {
"$ref": "paths.json#/definitions/asl_path"
},
"Resource": {
"$ref": "#/definitions/Resource"
},
"ResultPath": {
"$ref": "paths.json#/definitions/asl_result_path"
},
"Retry": {
"$ref": "common.json#/definitions/Retry"
},
"Catch": {
"$ref": "common.json#/definitions/Catch"
},
"TimeoutSeconds": {
"$ref": "#/definitions/TimeoutSeconds"
},
"TimeoutSecondsPath": {
"$ref": "paths.json#/definitions/asl_ref_path"
},
"HeartbeatSeconds": {
"$ref": "#/definitions/HeartbeatSeconds"
},
"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"
},
"Assign": {
"$ref": "paths.json#/definitions/assign"
},
"QueryLanguage": {
"$ref": "paths.json#/definitions/queryLanguage"
}
},
"required": ["QueryLanguage", "Resource", "Type"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"Type": {
"$ref": "#/definitions/Type"
},
"Next": {
"$ref": "common.json#/definitions/Next"
},
"End": {
"$ref": "common.json#/definitions/End"
},
"Comment": {
"$ref": "common.json#/definitions/Comment"
},
"Resource": {
"$ref": "#/definitions/Resource"
},
"Retry": {
"$ref": "common.json#/definitions/Retry"
},
"Catch": {
"$ref": "common.json#/definitions/Catch"
},
"TimeoutSeconds": {
"oneOf": [
{
"$ref": "#/definitions/TimeoutSeconds"
},
{
"$ref": "jsonata.json#/definitions/jsonata"
}
]
},
"HeartbeatSeconds": {
"oneOf": [
{
"$ref": "#/definitions/HeartbeatSeconds"
},
{
"$ref": "jsonata.json#/definitions/jsonata"
}
]
},
"Credentials": {},
"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": ["QueryLanguage", "Resource", "Type"],
"additionalProperties": false
}
]
}