UNPKG

asl-validator

Version:
221 lines (220 loc) 6.38 kB
{ "$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": "paths.json#/definitions/asl_path" }, "InputPath": { "$ref": "paths.json#/definitions/asl_path" }, "ResultPath": { "$ref": "paths.json#/definitions/asl_result_path" }, "ItemsPath": { "$ref": "paths.json#/definitions/asl_ref_path" }, "Label": { "type": "string" }, "MaxConcurrency": { "type": "number", "minimum": 0 }, "MaxConcurrencyPath": { "$ref": "paths.json#/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": "paths.json#/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": "paths.json#/definitions/asl_ref_path" }, "Arguments": { "$ref": "jsonata.json#/definitions/arguments" } }, "additionalProperties": true } }, "required": ["Resource"] }, "ItemProcessor": { "type": "object", "allOf": [{ "$ref": "base-state-machine.json#" }], "$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": "base-state-machine.json#" }, "Parameters": { "$ref": "paths.json#/definitions/asl_payload_template" }, "ItemSelector": { "$ref": "paths.json#/definitions/asl_payload_template" }, "ItemBatcher": { "type": "object", "properties": { "MaxItemsPerBatch": { "type": "number", "minimum": 0 }, "MaxItemsPerBatchPath": { "$ref": "paths.json#/definitions/asl_ref_path" }, "MaxInputBytesPerBatch": { "type": "number", "minimum": 0, "maximum": 262144 }, "MaxInputBytesPerBatchPath": { "$ref": "paths.json#/definitions/asl_ref_path" }, "BatchInput": { "$ref": "paths.json#/definitions/asl_payload_template" } } }, "ResultSelector": { "$ref": "paths.json#/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": "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" } }, "required": ["ErrorEquals", "Next"] } }, "ToleratedFailureCount": { "type": "integer", "minimum": 0 }, "ToleratedFailureCountPath": { "$ref": "paths.json#/definitions/asl_ref_path" }, "ToleratedFailurePercentage": { "type": "integer", "minimum": 0, "maximum": 100 }, "ToleratedFailurePercentagePath": { "$ref": "paths.json#/definitions/asl_ref_path" }, "Output": { "$ref": "jsonata.json#/definitions/output" }, "Assign": { "$ref": "jsonata.json#/definitions/assign" }, "QueryLanguage": { "$ref": "jsonata.json#/definitions/queryLanguage" } }, "required": ["Type"], "additionalProperties": false }