UNPKG

eslint-plugin-json-schema-validator

Version:
1 lines 12.3 kB
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://opspec.io/0.1.7/op.yml.schema.json","title":"Op File","properties":{"name":{"type":"string"},"description":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/dir/properties/description"},"inputs":{"additionalProperties":false,"patternProperties":{"[-_.a-zA-Z0-9]+":{"oneOf":[{"required":["array"]},{"required":["boolean"]},{"required":["dir"]},{"required":["file"]},{"required":["number"]},{"required":["object"]},{"required":["socket"]},{"required":["string"]}],"properties":{"array":{"additionalProperties":false,"title":"arrayParam","properties":{"description":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/dir/properties/description"},"default":{"type":"array"},"isSecret":{"type":"boolean"},"constraints":{"title":"arrayConstraints","type":"object","properties":{"additionalItems":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/object/properties/constraints/properties/properties/additionalProperties"},"items":{"anyOf":[{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/object/properties/constraints/properties/properties/additionalProperties"},{"items":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/object/properties/constraints/properties/properties/additionalProperties"}}]},"maxItems":{"type":"integer","minimum":0},"minItems":{"type":"integer","minimum":0},"uniqueItems":{"type":"boolean"}},"additionalProperties":false}},"type":"object"},"boolean":{"additionalProperties":false,"title":"booleanParam","properties":{"description":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/dir/properties/description"},"default":{"type":"boolean"}},"type":"object"},"dir":{"additionalProperties":false,"title":"dirParam","properties":{"description":{"title":"markdown","type":"string"},"default":{"type":"string"},"isSecret":{"type":"boolean"}},"type":"object"},"file":{"additionalProperties":false,"title":"fileParam","properties":{"description":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/dir/properties/description"},"default":{"type":"string"},"isSecret":{"type":"boolean"}},"type":"object"},"number":{"additionalProperties":false,"title":"numberParam","properties":{"description":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/dir/properties/description"},"default":{"type":"number"},"isSecret":{"type":"boolean"},"constraints":{"title":"numberConstraints","type":"object","properties":{"allOf":{"type":"array","items":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/number/properties/constraints"}},"anyOf":{"type":"array","items":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/number/properties/constraints"}},"enum":{"type":"array","items":{"type":"number"}},"format":{"oneOf":[{"title":"integer","type":"string","enum":["integer"]}]},"maximum":{"type":"number"},"minimum":{"type":"number"},"multipleOf":{"type":"number"},"not":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/number/properties/constraints"},"oneOf":{"type":"array","items":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/number/properties/constraints"}}},"additionalProperties":false}},"type":"object"},"object":{"additionalProperties":false,"title":"objectParam","properties":{"description":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/dir/properties/description"},"default":{"type":"object"},"isSecret":{"type":"boolean"},"constraints":{"title":"objectConstraints","type":"object","properties":{"additionalProperties":{"oneOf":[{"type":"boolean"},{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/object/properties/constraints/properties/properties/additionalProperties"}]},"allOf":{"type":"array","items":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/object/properties/constraints"}},"anyOf":{"type":"array","items":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/object/properties/constraints"}},"dependencies":{"oneOf":[{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/object/properties/constraints/properties/properties/additionalProperties"},{"items":{"type":"string"}}]},"enum":{"type":"array","items":{"type":["null","object"]}},"maxProperties":{"type":"integer","minimum":0},"minProperties":{"type":"integer","minimum":0},"not":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/object/properties/constraints"},"oneOf":{"type":"array","items":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/object/properties/constraints"}},"properties":{"type":"object","additionalProperties":{"title":"typeConstraints","anyOf":[{"properties":{"description":{"type":"string"},"title":{"type":"string"},"type":{"type":["array","string"]},"writeOnly":{"type":"boolean"}}},{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/array/properties/constraints"},{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/number/properties/constraints"},{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/object/properties/constraints"},{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/string/properties/constraints"}]}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/object/properties/constraints/properties/properties/additionalProperties"}},"required":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"type":"object"},"socket":{"additionalProperties":false,"title":"socketParam","properties":{"description":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/dir/properties/description"},"isSecret":{"type":"boolean"}},"type":"object"},"string":{"additionalProperties":false,"title":"stringParam","properties":{"description":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/dir/properties/description"},"default":{"type":"string"},"isSecret":{"type":"boolean"},"constraints":{"title":"stringConstraints","type":"object","properties":{"allOf":{"type":"array","items":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/string/properties/constraints"}},"anyOf":{"type":"array","items":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/string/properties/constraints"}},"enum":{"type":"array","items":{"type":"string"}},"format":{"oneOf":[{"title":"date-time","type":"string","enum":["date-time"]},{"title":"docker-image-ref","type":"string","enum":["docker-image-ref"]},{"title":"email","type":"string","enum":["email"]},{"title":"hostname","type":"string","enum":["hostname"]},{"title":"ipv4","type":"string","enum":["ipv4"]},{"title":"ipv6","type":"string","enum":["ipv6"]},{"title":"uri","type":"string","enum":["uri"]},{"title":"semver","type":"string","enum":["semver"]}]},"maxLength":{"type":"integer","minimum":1},"minLength":{"type":"integer","minimum":0,"default":0},"not":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/string/properties/constraints"},"oneOf":{"type":"array","items":{"$ref":"#/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/properties/string/properties/constraints"}},"pattern":{"type":"string","format":"regex"}},"additionalProperties":false}},"type":"object"}},"type":"object"}},"type":"object"},"outputs":{"$ref":"#/properties/inputs"},"run":{"additionalProperties":false,"oneOf":[{"required":["container"]},{"required":["op"]},{"required":["parallel"]},{"required":["parallelLoop"]},{"required":["serial"]},{"required":["serialLoop"]}],"properties":{"container":{"title":"containerCall","type":"object","properties":{"cmd":{"type":"array","items":{"$ref":"#/properties/run/properties/op/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/oneOf/1"}},"dirs":{"type":"object","patternProperties":{"^([a-zA-Z]:)?[-_.\\/a-zA-Z0-9]+$":{"oneOf":[{"type":"null"},{"$ref":"#/properties/run/properties/op/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/oneOf/1"}]}},"additionalProperties":false},"envVars":{"oneOf":[{"additionalProperties":false,"patternProperties":{"^[^=]+$":{"oneOf":[{"type":"null"},{"$ref":"#/properties/run/properties/container/properties/name"}]}},"type":"object"},{"type":"string","pattern":"^\\$\\(.+\\)$"}]},"files":{"type":"object","patternProperties":{"^([a-zA-Z]:)?[-_.\\/a-zA-Z0-9]+$":{"oneOf":[{"type":"null"},{"$ref":"#/properties/run/properties/container/properties/name"}]}},"additionalProperties":false},"image":{"type":"object","properties":{"ref":{"$ref":"#/properties/run/properties/op/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/oneOf/1"},"pullCreds":{"$ref":"#/properties/run/properties/op/properties/pullCreds"}},"required":["ref"],"additionalProperties":false},"name":{"type":["array","boolean","number","object","string"]},"ports":{"type":"object","patternProperties":{"[0-9]+(-[0-9]+)?(tcp|udp)?":{"type":["string","number"],"pattern":"[0-9]+(-[0-9]+)?"}},"additionalProperties":false},"sockets":{"type":"object","patternProperties":{"[:a-zA-Z0-9]+":{"type":"string"}},"additionalProperties":false},"workDir":{"type":"string"}},"required":["image"],"additionalProperties":false},"if":{"type":"array","items":{"oneOf":[{"required":["eq"]},{"required":["exists"]},{"required":["ne"]},{"required":["notExists"]}],"properties":{"eq":{"type":"array","items":{"$ref":"#/properties/run/properties/op/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/oneOf/1"}},"exists":{"type":"string","pattern":"^\\$\\(.+\\)$"},"ne":{"type":"array","items":{"$ref":"#/properties/run/properties/op/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/oneOf/1"}},"notExists":{"type":"string","pattern":"^\\$\\(.+\\)$"}},"type":"object"}},"op":{"type":"object","properties":{"inputs":{"type":"object","patternProperties":{"[-_.a-zA-Z0-9]+":{"oneOf":[{"type":"null"},{"type":["array","boolean","number","object","string"]}]}},"additionalProperties":false},"outputs":{"type":"object","patternProperties":{"[-_.a-zA-Z0-9]+":{"oneOf":[{"type":"null"},{"type":"string"}]}},"additionalProperties":false},"pullCreds":{"type":"object","properties":{"username":{"$ref":"#/properties/run/properties/op/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/oneOf/1"},"password":{"$ref":"#/properties/run/properties/op/properties/inputs/patternProperties/%5B-_.a-zA-Z0-9%5D%2B/oneOf/1"}},"required":["username","password"],"additionalProperties":false},"ref":{"type":"string","format":"uri-reference"}},"required":["ref"],"additionalProperties":false},"parallel":{"title":"parallelCall","type":"array","items":{"$ref":"#/properties/run"}},"parallelLoop":{"additionalProperties":false,"properties":{"range":{"$ref":"#/properties/run/properties/serialLoop/properties/range"},"run":{"$ref":"#/properties/run"},"vars":{"$ref":"#/properties/run/properties/serialLoop/properties/vars"}},"required":["range","run"],"type":"object"},"serial":{"title":"serialCall","type":"array","items":{"$ref":"#/properties/run"}},"serialLoop":{"additionalProperties":false,"oneOf":[{"required":["range","run"]},{"required":["until","run"]}],"properties":{"range":{"type":["array","object","string"]},"run":{"$ref":"#/properties/run"},"until":{"type":"array","items":{"$ref":"#/properties/run/properties/if/items"}},"vars":{"additionalProperties":false,"properties":{"index":{"$ref":"#/properties/run/properties/serialLoop/properties/vars/properties/key"},"key":{"type":"string","pattern":"^[-_.a-zA-Z0-9]+$"},"value":{"$ref":"#/properties/run/properties/serialLoop/properties/vars/properties/key"}},"type":"object"}},"type":"object"}},"title":"call"},"version":{"$ref":"#/properties/opspec"},"opspec":{"title":"semVer","type":"string","pattern":"^([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:(\\-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z-\\-\\.]+)?$"}},"required":["name"],"additionalProperties":false}