Skip to content

Instantly share code, notes, and snippets.

@hsusanoo
Created February 24, 2025 14:03
Show Gist options
  • Save hsusanoo/cb80aa70c842518aff5c409b99f4c144 to your computer and use it in GitHub Desktop.
Save hsusanoo/cb80aa70c842518aff5c409b99f4c144 to your computer and use it in GitHub Desktop.
ASL JSON schema for Step Functions definition (bundled from https://github.com/ChristopheBougere/asl-validator v3.13.0)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"baseStateMachine": {
"$id": "http://asl-validator.cloud/base-state-machine.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"Comment": {
"type": "string"
},
"StartAt": {
"type": "string"
},
"States": {
"type": "object",
"patternProperties": {
"^.{1,80}$": {
"$ref": "#/definitions/state"
}
},
"additionalProperties": false
}
},
"required": [
"StartAt",
"States"
]
},
"choice": {
"$id": "http://asl-validator.cloud/choice.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Operator": {
"type": "object",
"properties": {
"Variable": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"And": {
"type": "array",
"items": {
"$ref": "#/definitions/choice/definitions/Operator"
}
},
"Or": {
"type": "array",
"items": {
"$ref": "#/definitions/choice/definitions/Operator"
}
},
"Not": {
"$ref": "#/definitions/choice/definitions/Operator"
},
"IsNull": {
"type": "boolean"
},
"IsPresent": {
"type": "boolean"
},
"BooleanEquals": {
"type": "boolean"
},
"BooleanEqualsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"IsBoolean": {
"type": "boolean"
},
"NumericEquals": {
"type": "number"
},
"NumericEqualsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"NumericGreaterThan": {
"type": "number"
},
"NumericGreaterThanPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"NumericGreaterThanEquals": {
"type": "number"
},
"NumericGreaterThanEqualsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"NumericLessThan": {
"type": "number"
},
"NumericLessThanPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"NumericLessThanEquals": {
"type": "number"
},
"NumericLessThanEqualsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"IsNumeric": {
"type": "boolean"
},
"StringEquals": {
"type": "string"
},
"StringEqualsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"StringGreaterThan": {
"type": "string"
},
"StringGreaterThanPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"StringGreaterThanEquals": {
"type": "string"
},
"StringGreaterThanEqualsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"StringLessThan": {
"type": "string"
},
"StringLessThanPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"StringLessThanEquals": {
"type": "string"
},
"StringLessThanEqualsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"StringMatches": {
"type": "string"
},
"IsString": {
"type": "boolean"
},
"TimestampEquals": {
"type": "string"
},
"TimestampEqualsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"TimestampGreaterThan": {
"type": "string"
},
"TimestampGreaterThanPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"TimestampGreaterThanEquals": {
"type": "string"
},
"TimestampGreaterThanEqualsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"TimestampLessThan": {
"type": "string"
},
"TimestampLessThanPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"TimestampLessThanEquals": {
"type": "string"
},
"TimestampLessThanEqualsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"IsTimestamp": {
"type": "boolean"
},
"Condition": {
"$ref": "#/definitions/jsonata/definitions/condition"
}
},
"oneOf": [
{
"required": [
"And"
]
},
{
"required": [
"BooleanEquals"
]
},
{
"required": [
"BooleanEqualsPath"
]
},
{
"required": [
"IsBoolean"
]
},
{
"required": [
"Not"
]
},
{
"required": [
"IsNull"
]
},
{
"required": [
"IsPresent"
]
},
{
"required": [
"NumericEquals"
]
},
{
"required": [
"NumericEqualsPath"
]
},
{
"required": [
"NumericGreaterThan"
]
},
{
"required": [
"NumericGreaterThanPath"
]
},
{
"required": [
"NumericGreaterThanEquals"
]
},
{
"required": [
"NumericGreaterThanEqualsPath"
]
},
{
"required": [
"NumericLessThan"
]
},
{
"required": [
"NumericLessThanPath"
]
},
{
"required": [
"NumericLessThanEquals"
]
},
{
"required": [
"NumericLessThanEqualsPath"
]
},
{
"required": [
"IsNumeric"
]
},
{
"required": [
"Or"
]
},
{
"required": [
"StringEquals"
]
},
{
"required": [
"StringEqualsPath"
]
},
{
"required": [
"StringGreaterThan"
]
},
{
"required": [
"StringGreaterThanPath"
]
},
{
"required": [
"StringGreaterThanEquals"
]
},
{
"required": [
"StringGreaterThanEqualsPath"
]
},
{
"required": [
"StringLessThan"
]
},
{
"required": [
"StringLessThanPath"
]
},
{
"required": [
"StringLessThanEquals"
]
},
{
"required": [
"StringLessThanEqualsPath"
]
},
{
"required": [
"StringMatches"
]
},
{
"required": [
"IsString"
]
},
{
"required": [
"TimestampEquals"
]
},
{
"required": [
"TimestampEqualsPath"
]
},
{
"required": [
"TimestampGreaterThan"
]
},
{
"required": [
"TimestampGreaterThanPath"
]
},
{
"required": [
"TimestampGreaterThanEquals"
]
},
{
"required": [
"TimestampGreaterThanEqualsPath"
]
},
{
"required": [
"TimestampLessThan"
]
},
{
"required": [
"TimestampLessThanPath"
]
},
{
"required": [
"TimestampLessThanEquals"
]
},
{
"required": [
"TimestampLessThanEqualsPath"
]
},
{
"required": [
"IsTimestamp"
]
},
{
"required": [
"Condition"
]
}
]
}
},
"type": "object",
"properties": {
"Type": {
"type": "string",
"enum": [
"Choice"
]
},
"Next": {
"type": "string"
},
"End": {
"enum": [
true
]
},
"Comment": {
"type": "string"
},
"OutputPath": {
"$ref": "#/definitions/paths/definitions/asl_path"
},
"InputPath": {
"$ref": "#/definitions/paths/definitions/asl_path"
},
"Choices": {
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"properties": {
"Next": {
"type": "string"
}
},
"required": [
"Next"
]
},
{
"$ref": "#/definitions/choice/definitions/Operator"
}
]
}
},
"Default": {
"type": "string"
},
"QueryLanguage": {
"$ref": "#/definitions/jsonata/definitions/queryLanguage"
},
"Output": {
"$ref": "#/definitions/jsonata/definitions/output"
}
},
"required": [
"Type",
"Choices"
],
"additionalProperties": false
},
"errors": {
"$id": "http://asl-validator.cloud/errors.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "https://states-language.net/#appendix-a",
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"enum": [
"States.ALL"
],
"description": "A wildcard which matches any Error Name."
},
{
"type": "string",
"enum": [
"States.HeartbeatTimeout"
],
"description": "A Task State failed to heartbeat for a time longer than the \"HeartbeatSeconds\" value."
},
{
"type": "string",
"enum": [
"States.Timeout"
],
"description": "A Task State either ran longer than the \"TimeoutSeconds\" value, or failed to heartbeat for a time longer than the \"HeartbeatSeconds\" value."
},
{
"type": "string",
"enum": [
"States.TaskFailed"
],
"description": "A Task State failed during the execution."
},
{
"type": "string",
"enum": [
"States.Permissions"
],
"description": "A Task State failed because it had insufficient privileges to execute the specified code."
},
{
"type": "string",
"enum": [
"States.ResultPathMatchFailure"
],
"description": "A state's \"ResultPath\" field cannot be applied to the input the state received."
},
{
"type": "string",
"enum": [
"States.ParameterPathFailure"
],
"description": "Within a state's \"Parameters\" field, the attempt to replace a field whose name ends in \".$\" using a Path failed."
},
{
"type": "string",
"enum": [
"States.BranchFailed"
],
"description": "A branch of a Parallel State failed."
},
{
"type": "string",
"enum": [
"States.NoChoiceMatched"
],
"description": "A Choice State failed to find a match for the condition field extracted from its input."
},
{
"type": "string",
"enum": [
"States.IntrinsicFailure"
],
"description": "Within a Payload Template, the attempt to invoke an Intrinsic Function failed."
}
]
},
"fail": {
"$id": "http://asl-validator.cloud/fail.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"Type": {
"type": "string",
"enum": [
"Fail"
]
},
"Comment": {
"type": "string"
},
"Cause": {
"type": "string"
},
"CausePath": {
"$comment": "This field is a ReferencePath with limited Intrinsic Function support. Using string until custom validation is available.",
"type": "string"
},
"Error": {
"type": "string"
},
"ErrorPath": {
"$comment": "This field is a ReferencePath with limited Intrinsic Function support. Using string until custom validation is available.",
"type": "string"
},
"QueryLanguage": {
"$ref": "#/definitions/jsonata/definitions/queryLanguage"
}
},
"required": [
"Type"
],
"additionalProperties": false
},
"jsonata": {
"$id": "http://asl-validator.cloud/jsonata.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"output": {
"oneOf": [
{
"type": "string"
},
{
"type": "object"
}
]
},
"assign": {
"type": "object"
},
"arguments": {
"oneOf": [
{
"type": "string"
},
{
"type": "object"
}
]
},
"queryLanguage": {
"type": "string",
"enum": [
"JSONata",
"JSONPath"
]
},
"condition": {
"type": "string"
}
}
},
"map": {
"$id": "http://asl-validator.cloud/map.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"Type": {
"type": "string",
"enum": [
"Map"
]
},
"Next": {
"type": "string"
},
"End": {
"enum": [
true
]
},
"Comment": {
"type": "string"
},
"OutputPath": {
"$ref": "#/definitions/paths/definitions/asl_path"
},
"InputPath": {
"$ref": "#/definitions/paths/definitions/asl_path"
},
"ResultPath": {
"$ref": "#/definitions/paths/definitions/asl_result_path"
},
"ItemsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"Label": {
"type": "string"
},
"MaxConcurrency": {
"type": "number",
"minimum": 0
},
"MaxConcurrencyPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"ItemReader": {
"$comment": "A Map State MAY have an \"ItemReader\" field, whose value MUST be a JSON object and is called the ItemReader Configuration",
"type": "object",
"properties": {
"Resource": {
"$comment": "The ItemReader Configuration MUST have a \"Resource\" field, whose value MUST be a URI that uniquely identifies the specific task to execute. The States language does not constrain the URI scheme nor any other part of the URI.",
"type": "string"
},
"Parameters": {
"$comment": "The ItemReader Configuration MAY have a \"Parameters\" field, whose value MUST be a Payload Template.",
"$ref": "#/definitions/paths/definitions/asl_payload_template"
},
"ReaderConfig": {
"$comment": "The ItemReader Configuration MAY have a \"ReaderConfig\" field whose value is a JSON object which MAY have a \"MaxItems\" field which MUST be a positive integer.",
"type": "object",
"properties": {
"MaxItems": {
"$comment": "MAY have a \"MaxItems\" field which MUST be a positive integer",
"type": "integer",
"minimum": 1
},
"MaxItemsPath": {
"$comment": "A \"ReaderConfig\" field MAY have \"MaxItemsPath\" field which MUST be a Reference Path which, when resolved, MUST select a field whose value is a positive integer.",
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"Arguments": {
"$ref": "#/definitions/jsonata/definitions/arguments"
}
},
"additionalProperties": true
}
},
"required": [
"Resource"
]
},
"ItemProcessor": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/baseStateMachine"
}
],
"$comment": "The \"ItemProcessor\" field MAY contain a field named \"ProcessorConfig\", whose value MUST be a JSON object whose value is defined by the interpreter.",
"properties": {
"ProcessorConfig": {
"type": "object",
"oneOf": [
{
"properties": {
"Mode": {
"type": "string",
"enum": [
"INLINE"
]
}
},
"required": [
"Mode"
]
},
{
"properties": {
"Mode": {
"type": "string",
"enum": [
"DISTRIBUTED"
]
},
"ExecutionType": {
"type": "string",
"enum": [
"EXPRESS",
"STANDARD"
]
}
},
"required": [
"Mode",
"ExecutionType"
]
}
]
}
}
},
"Iterator": {
"$ref": "#/definitions/baseStateMachine"
},
"Parameters": {
"$ref": "#/definitions/paths/definitions/asl_payload_template"
},
"ItemSelector": {
"$ref": "#/definitions/paths/definitions/asl_payload_template"
},
"ItemBatcher": {
"type": "object",
"properties": {
"MaxItemsPerBatch": {
"type": "number",
"minimum": 0
},
"MaxItemsPerBatchPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"MaxInputBytesPerBatch": {
"type": "number",
"minimum": 0,
"maximum": 262144
},
"MaxInputBytesPerBatchPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"BatchInput": {
"$ref": "#/definitions/paths/definitions/asl_payload_template"
}
}
},
"ResultSelector": {
"$ref": "#/definitions/paths/definitions/asl_payload_template"
},
"ResultWriter": {
"$comment": "Allow any object for now and update in a subsequent PR to support S3 buckets and other outputs",
"type": "object"
},
"Retry": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ErrorEquals": {
"type": "array",
"items": {
"$ref": "#/definitions/errors"
}
},
"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": "#/definitions/errors"
}
},
"Next": {
"type": "string"
}
},
"required": [
"ErrorEquals",
"Next"
]
}
},
"ToleratedFailureCount": {
"type": "integer",
"minimum": 0
},
"ToleratedFailureCountPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"ToleratedFailurePercentage": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"ToleratedFailurePercentagePath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"Output": {
"$ref": "#/definitions/jsonata/definitions/output"
},
"Assign": {
"$ref": "#/definitions/jsonata/definitions/assign"
},
"QueryLanguage": {
"$ref": "#/definitions/jsonata/definitions/queryLanguage"
}
},
"required": [
"Type"
],
"additionalProperties": false
},
"parallel": {
"$id": "http://asl-validator.cloud/parallel.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"Type": {
"type": "string",
"enum": [
"Parallel"
]
},
"Parameters": {
"$ref": "#/definitions/paths/definitions/asl_payload_template"
},
"ResultSelector": {
"$ref": "#/definitions/paths/definitions/asl_payload_template"
},
"Next": {
"type": "string"
},
"End": {
"enum": [
true
]
},
"Comment": {
"type": "string"
},
"OutputPath": {
"$ref": "#/definitions/paths/definitions/asl_path"
},
"InputPath": {
"$ref": "#/definitions/paths/definitions/asl_path"
},
"ResultPath": {
"$ref": "#/definitions/paths/definitions/asl_result_path"
},
"Branches": {
"type": "array",
"items": {
"$ref": "#/definitions/state-machine"
}
},
"Retry": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ErrorEquals": {
"type": "array",
"items": {
"$ref": "#/definitions/errors"
}
},
"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": "#/definitions/errors"
}
},
"Next": {
"type": "string"
},
"ResultPath": {
"$ref": "#/definitions/paths/definitions/asl_result_path"
}
},
"required": [
"ErrorEquals",
"Next"
]
}
},
"Output": {
"$ref": "#/definitions/jsonata/definitions/output"
},
"Assign": {
"$ref": "#/definitions/jsonata/definitions/assign"
},
"Arguments": {
"$ref": "#/definitions/jsonata/definitions/arguments"
},
"QueryLanguage": {
"$ref": "#/definitions/jsonata/definitions/queryLanguage"
}
},
"required": [
"Type",
"Branches"
],
"additionalProperties": false
},
"pass": {
"$id": "http://asl-validator.cloud/pass.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"Type": {
"type": "string",
"enum": [
"Pass"
]
},
"Next": {
"type": "string"
},
"End": {
"enum": [
true
]
},
"Comment": {
"type": "string"
},
"OutputPath": {
"$ref": "#/definitions/paths/definitions/asl_path"
},
"InputPath": {
"$ref": "#/definitions/paths/definitions/asl_path"
},
"ResultPath": {
"$ref": "#/definitions/paths/definitions/asl_result_path"
},
"Parameters": {
"$ref": "#/definitions/paths/definitions/asl_payload_template"
},
"Result": {},
"Output": {
"$ref": "#/definitions/jsonata/definitions/output"
},
"Assign": {
"$ref": "#/definitions/jsonata/definitions/assign"
},
"QueryLanguage": {
"$ref": "#/definitions/jsonata/definitions/queryLanguage"
}
},
"required": [
"Type"
],
"additionalProperties": false
},
"paths": {
"$id": "http://asl-validator.cloud/paths.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"asl_path": {
"type": [
"string",
"null"
],
"format": "asl_path"
},
"asl_ref_path": {
"type": [
"string",
"null"
],
"format": "asl_ref_path"
},
"asl_result_path": {
"type": [
"string",
"null"
],
"format": "asl_result_path"
},
"_payload_template_object": {
"type": "object",
"patternProperties": {
"^.+\\.\\$$": {
"$comment": "matches fields ending in .$",
"type": "string",
"nullable": true,
"format": "asl_payload_template"
},
"^.+(([^.][^$])|([^.][$]))$": {
"$comment": "matches fields NOT ending in .$",
"oneOf": [
{
"type": [
"number",
"boolean",
"string",
"null"
]
},
{
"type": "array",
"items": {
"$ref": "#/definitions/asl_payload_template"
}
},
{
"$ref": "#/definitions/_payload_template_object"
}
]
}
}
},
"asl_payload_template": {
"oneOf": [
{
"$ref": "#/definitions/_payload_template_object"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/asl_payload_template"
}
},
{
"type": [
"string",
"boolean",
"number"
]
}
]
}
}
},
"state-machine": {
"$id": "http://asl-validator.cloud/state-machine.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"Comment": {
"type": "string"
},
"StartAt": {
"type": "string"
},
"States": {
"type": "object",
"patternProperties": {
"^.{1,80}$": {
"$ref": "#/definitions/state"
}
},
"additionalProperties": false
},
"Version": {
"type": "string"
},
"TimeoutSeconds": {
"type": "integer",
"minimum": 0
},
"QueryLanguage": {
"$ref": "#/definitions/jsonata/definitions/queryLanguage"
}
},
"additionalProperties": false,
"required": [
"StartAt",
"States"
]
},
"state": {
"$id": "http://asl-validator.cloud/state.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"oneOf": [
{
"$ref": "#/definitions/choice"
},
{
"$ref": "#/definitions/fail"
},
{
"$ref": "#/definitions/parallel"
},
{
"$ref": "#/definitions/pass"
},
{
"$ref": "#/definitions/succeed"
},
{
"$ref": "#/definitions/task"
},
{
"$ref": "#/definitions/wait"
},
{
"$ref": "#/definitions/map"
}
]
},
"succeed": {
"$id": "http://asl-validator.cloud/succeed.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"Type": {
"type": "string",
"enum": [
"Succeed"
]
},
"Comment": {
"type": "string"
},
"OutputPath": {
"$ref": "#/definitions/paths/definitions/asl_path"
},
"InputPath": {
"$ref": "#/definitions/paths/definitions/asl_path"
},
"Output": {
"$ref": "#/definitions/jsonata/definitions/output"
},
"QueryLanguage": {
"$ref": "#/definitions/jsonata/definitions/queryLanguage"
}
},
"required": [
"Type"
],
"additionalProperties": false
},
"task": {
"$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": "#/definitions/paths/definitions/asl_path"
},
"InputPath": {
"$ref": "#/definitions/paths/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": "#/definitions/paths/definitions/asl_result_path"
},
"Retry": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ErrorEquals": {
"type": "array",
"items": {
"$ref": "#/definitions/errors"
}
},
"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": "#/definitions/errors"
}
},
"Next": {
"type": "string"
},
"ResultPath": {
"$ref": "#/definitions/paths/definitions/asl_result_path"
}
},
"required": [
"ErrorEquals",
"Next"
]
}
},
"TimeoutSeconds": {
"type": "number",
"minimum": 1
},
"TimeoutSecondsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"HeartbeatSeconds": {
"type": "number",
"minimum": 1
},
"HeartbeatSecondsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"ResultSelector": {
"$ref": "#/definitions/paths/definitions/asl_payload_template"
},
"Parameters": {
"$ref": "#/definitions/paths/definitions/asl_payload_template"
},
"Credentials": {
"$ref": "#/definitions/paths/definitions/asl_payload_template"
},
"Output": {
"$ref": "#/definitions/jsonata/definitions/output"
},
"Assign": {
"$ref": "#/definitions/jsonata/definitions/assign"
},
"Arguments": {
"$ref": "#/definitions/jsonata/definitions/arguments"
},
"QueryLanguage": {
"$ref": "#/definitions/jsonata/definitions/queryLanguage"
}
},
"required": [
"Type",
"Resource"
],
"additionalProperties": false
},
"wait": {
"$id": "http://asl-validator.cloud/wait.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"Type": {
"type": "string",
"enum": [
"Wait"
]
},
"Next": {
"type": "string"
},
"End": {
"enum": [
true
]
},
"Comment": {
"type": "string"
},
"OutputPath": {
"$ref": "#/definitions/paths/definitions/asl_path"
},
"InputPath": {
"$ref": "#/definitions/paths/definitions/asl_path"
},
"Seconds": {
"type": "number",
"minimum": 0
},
"Timestamp": {
"type": "string"
},
"SecondsPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"TimestampPath": {
"$ref": "#/definitions/paths/definitions/asl_ref_path"
},
"Output": {
"$ref": "#/definitions/jsonata/definitions/output"
},
"Assign": {
"$ref": "#/definitions/jsonata/definitions/assign"
},
"QueryLanguage": {
"$ref": "#/definitions/jsonata/definitions/queryLanguage"
}
},
"required": [
"Type"
],
"additionalProperties": false
}
},
"$ref": "#/definitions/state-machine"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment