UNPKG

just-api

Version:

Specification based API test framework for HTTP APIs (REST, GraphQL)

893 lines 32.7 kB
{ "$id": "http://example.com/example.json", "type": "object", "definitions": {}, "$schema": "http://json-schema.org/draft-06/schema#", "properties": { "meta": { "$id": "/properties/meta", "type": "object", "properties": { "name": { "$id": "/properties/meta/properties/name", "type": "string", "minLength": 1 }, "enabled": { "$id": "/properties/meta/properties/enabled", "type": "boolean" }, "locate_files_relative": { "$id": "/properties/meta/properties/locate_files_relative", "type": "boolean" }, "version": { "$id": "/properties/meta/properties/version" } }, "required": [ "name" ] }, "configuration": { "$id": "/properties/configuration", "type": "object", "properties": { "host": { "$id": "/properties/configuration/properties/host", "type": "string", "minLength": 1 }, "scheme": { "$id": "/properties/configuration/properties/scheme", "type": "string", "enum": [ "http", "https" ] }, "base_path": { "$id": "/properties/configuration/properties/base_path", "type": "string" }, "read_timeout": { "$id": "/properties/configuration/properties/read_timeout", "type": "integer" }, "common_headers": { "$id": "/properties/configuration/properties/common_headers", "type": "array", "items": { "$id": "/properties/configuration/properties/common_headers/items", "type": "object", "properties": { "name": { "$id": "/properties/configuration/properties/common_headers/items/properties/name", "type": "string", "minLength": 1 }, "value": { "$id": "/properties/configuration/properties/common_headers/items/properties/value", "type": "string" } }, "required": [ "name", "value" ] } }, "custom_configuration": { "$id": "/properties/configuration/properties/custom_configuration", "type": "object", "properties": { "run_type": { "$id": "/properties/configuration/properties/custom_configuration/properties/run_type", "type": "string", "enum": [ "inline", "module" ] }, "inline": { "$id": "/properties/configuration/properties/custom_configuration/properties/inline", "type": "object", "properties": { "function": { "$id": "/properties/configuration/properties/custom_configuration/properties/inline/properties/function" } }, "required": [ "function" ] }, "module": { "$id": "/properties/configuration/properties/custom_configuration/properties/module", "type": "object", "properties": { "function_name": { "$id": "/properties/configuration/properties/custom_configuration/properties/module/properties/function_name", "type": "string", "minLength": 1 }, "module_path": { "$id": "/properties/configuration/properties/custom_configuration/properties/module/properties/module_path", "type": "string", "minLength": 1 } }, "required": [ "function_name", "module_path" ] } }, "required": [ "run_type" ] } }, "required": [ ] }, "hooks": { "$id": "/properties/hooks", "type": "object", "properties": { "before_all": { "$id": "/properties/hooks/properties/before_all", "type": "object", "properties": { "run_type": { "$id": "/properties/hooks/properties/before_all/properties/run_type", "type": "string", "enum": [ "inline", "module" ] }, "inline": { "$id": "/properties/hooks/properties/before_all/properties/inline", "type": "object", "properties": { "function": { "$id": "/properties/hooks/properties/before_all/properties/inline/properties/function" } }, "required": [ "function" ] }, "module": { "$id": "/properties/hooks/properties/before_all/properties/module", "type": "object", "properties": { "function_name": { "$id": "/properties/hooks/properties/before_all/properties/module/properties/function_name", "type": "string", "minLength": 1 }, "module_path": { "$id": "/properties/hooks/properties/before_all/properties/module/properties/module_path", "type": "string", "minLength": 1 } }, "required": [ "function_name", "module_path" ] } }, "required": [ "run_type" ] }, "after_all": { "$id": "/properties/hooks/properties/after_all", "type": "object", "properties": { "run_type": { "$id": "/properties/hooks/properties/after_all/properties/run_type", "type": "string", "enum": [ "inline", "module" ] }, "inline": { "$id": "/properties/hooks/properties/after_all/properties/inline", "type": "object", "properties": { "function": { "$id": "/properties/hooks/properties/after_all/properties/inline/properties/function" } }, "required": [ "function" ] }, "module": { "$id": "/properties/hooks/properties/after_all/properties/module", "type": "object", "properties": { "function_name": { "$id": "/properties/hooks/properties/after_all/properties/module/properties/function_name", "type": "string", "minLength": 1 }, "module_path": { "$id": "/properties/hooks/properties/after_all/properties/module/properties/module_path", "type": "string", "minLength": 1 } }, "required": [ "function_name", "module_path" ] } }, "required": [ "run_type" ] }, "before_each": { "$id": "/properties/hooks/properties/before_each", "type": "object", "properties": { "run_type": { "$id": "/properties/hooks/properties/before_each/properties/run_type", "type": "string", "enum": [ "inline", "module" ] }, "inline": { "$id": "/properties/hooks/properties/before_each/properties/inline", "type": "object", "properties": { "function": { "$id": "/properties/hooks/properties/before_each/properties/inline/properties/function" } }, "required": [ "function" ] }, "module": { "$id": "/properties/hooks/properties/before_each/properties/module", "type": "object", "properties": { "function_name": { "$id": "/properties/hooks/properties/before_each/properties/module/properties/function_name", "type": "string", "minLength": 1 }, "module_path": { "$id": "/properties/hooks/properties/before_each/properties/module/properties/module_path", "type": "string", "minLength": 1 } }, "required": [ "function_name", "module_path" ] } }, "required": [ "run_type" ] }, "after_each": { "$id": "/properties/hooks/properties/after_each", "type": "object", "properties": { "run_type": { "$id": "/properties/hooks/properties/after_each/properties/run_type", "type": "string", "enum": [ "inline", "module" ] }, "inline": { "$id": "/properties/hooks/properties/after_each/properties/inline", "type": "object", "properties": { "function": { "$id": "/properties/hooks/properties/after_each/properties/inline/properties/function" } }, "required": [ "function" ] }, "module": { "$id": "/properties/hooks/properties/after_each/properties/module", "type": "object", "properties": { "function_name": { "$id": "/properties/hooks/properties/after_each/properties/module/properties/function_name", "type": "string", "minLength": 1 }, "module_path": { "$id": "/properties/hooks/properties/after_each/properties/module/properties/module_path", "type": "string", "minLength": 1 } }, "required": [ "function_name", "module_path" ] } }, "required": [ "run_type" ] } }, "required": [ ] }, "spec_dependencies": { "$id": "/properties/spec_dependencies", "type": "array", "items": { "$id": "/properties/spec_dependencies/items", "type": "string" } }, "specs": { "$id": "/properties/specs", "type": "array", "items": { "$id": "/properties/specs/items", "type": "object", "properties": { "name": { "$id": "/properties/specs/items/properties/name", "type": "string", "minLength": 1 }, "enabled": { "$id": "/properties/specs/items/properties/enabled", "type": "boolean" }, "before_test": { "$id": "/properties/specs/items/properties/before_test", "type": "object", "properties": { "run_type": { "$id": "/properties/specs/items/properties/before_test/properties/run_type", "type": "string", "enum": [ "inline", "module" ] }, "inline": { "$id": "/properties/specs/items/properties/before_test/properties/inline", "type": "object", "properties": { "function": { "$id": "/properties/specs/items/properties/before_test/properties/inline/properties/function" } }, "required": [ "function" ] }, "module": { "$id": "/properties/specs/items/properties/before_test/properties/module", "type": "object", "properties": { "function_name": { "$id": "/properties/specs/items/properties/before_test/properties/module/properties/function_name", "type": "string", "minLength": 1 }, "module_path": { "$id": "/properties/specs/items/properties/before_test/properties/module/properties/module_path", "type": "string", "minLength": 1 } }, "required": [ "function_name", "module_path" ] } }, "required": [ "run_type" ] }, "after_test": { "$id": "/properties/specs/items/properties/after_test", "type": "object", "properties": { "run_type": { "$id": "/properties/specs/items/properties/after_test/properties/run_type", "type": "string", "enum": [ "inline", "module" ] }, "inline": { "$id": "/properties/specs/items/properties/after_test/properties/inline", "type": "object", "properties": { "function": { "$id": "/properties/specs/items/properties/after_test/properties/inline/properties/function" } }, "required": [ "function" ] }, "module": { "$id": "/properties/specs/items/properties/after_test/properties/module", "type": "object", "properties": { "function_name": { "$id": "/properties/specs/items/properties/after_test/properties/module/properties/function_name", "type": "string", "minLength": 1 }, "module_path": { "$id": "/properties/specs/items/properties/after_test/properties/module/properties/module_path", "type": "string", "minLength": 1 } }, "required": [ "function_name", "module_path" ] } }, "required": [ "run_type" ] }, "request": { "$id": "/properties/specs/items/properties/request", "type": "object", "properties": { "path": { "$id": "/properties/specs/items/properties/request/properties/path", "type": "string" }, "method": { "$id": "/properties/specs/items/properties/request/properties/method", "type": "string", "enum": [ "GET", "POST", "PUT", "HEAD", "PATCH", "DELETE", "OPTIONS", "get", "post", "put", "head", "patch", "delete", "options" ] }, "headers": { "$id": "/properties/specs/items/properties/request/properties/headers", "type": "array", "items": { "$id": "/properties/specs/items/properties/request/properties/headers/items", "type": "object", "properties": { "name": { "$id": "/properties/specs/items/properties/request/properties/headers/items/properties/name", "type": ["string", "number"], "minLength": 1 }, "value": { "$id": "/properties/specs/items/properties/request/properties/headers/items/properties/value", "type": ["string", "number"] } }, "required": [ "name", "value" ] } }, "cookies": { "$id": "/properties/specs/items/properties/request/properties/cookies", "type": "array", "items": { "$id": "/properties/specs/items/properties/request/properties/cookies/items", "type": "object", "properties": { "name": { "$id": "/properties/specs/items/properties/request/properties/cookies/items/properties/name", "type": ["string", "number"], "minLength": 1 }, "value": { "$id": "/properties/specs/items/properties/request/properties/cookies/items/properties/value", "type": ["string", "number"] } }, "required": [ "name", "value" ] } }, "read_timeout": { "$id": "/properties/specs/items/properties/request/properties/read_timeout", "type": "integer" }, "payload": { "$id": "/properties/specs/items/properties/request/properties/payload", "type": "object", "properties": { "body": { "$id": "/properties/specs/items/properties/request/properties/payload/properties/body", "type": "object", "properties": { "type": { "$id": "/properties/specs/items/properties/request/properties/payload/properties/body/properties/type", "type": "string", "enum": [ "binary", "text", "json" ] }, "content": { "$id": "/properties/specs/items/properties/request/properties/payload/properties/body/properties/content" } }, "required": [ "type", "content" ] }, "form": { "$id": "/properties/specs/items/properties/request/properties/payload/properties/form", "type": "object" }, "form_data": { "$id": "/properties/specs/items/properties/request/properties/payload/properties/form_data", "type": "array", "items": { "$id": "/properties/specs/items/properties/request/properties/payload/properties/form_data/items", "type": "object", "properties": { "name": { "$id": "/properties/specs/items/properties/request/properties/payload/properties/form_data/items/properties/name", "type": [ "string", "number" ] }, "content": { "$id": "/properties/specs/items/properties/request/properties/payload/properties/form_data/items/properties/content" }, "type": { "$id": "/properties/specs/items/properties/request/properties/payload/properties/form_data/items/properties/type", "type": "string", "enum": [ "file", "text", "json" ] } }, "required": [ "type", "name", "content" ] } } } }, "additional_options": { "$id": "/properties/specs/items/properties/request/properties/additional_options", "type": "object", "properties": { "followRedirect": { "$id": "/properties/specs/items/properties/request/properties/additional_options/properties/followRedirect", "type": "boolean" }, "followAllRedirects": { "$id": "/properties/specs/items/properties/request/properties/additional_options/properties/followAllRedirects", "type": "boolean" }, "followOriginalHttpMethod": { "$id": "/properties/specs/items/properties/request/properties/additional_options/properties/followOriginalHttpMethod", "type": "boolean" }, "encoding": { "$id": "/properties/specs/items/properties/request/properties/additional_options/properties/followRedirect", "type": [ "null", "string" ] }, "gzip": { "$id": "/properties/specs/items/properties/request/properties/additional_options/properties/followAllRedirects", "type": "boolean" } } } }, "required": [ "method" ] }, "response": { "$id": "/properties/specs/items/properties/response", "type": "object", "properties": { "status_code": { "$id": "/properties/specs/items/properties/response/properties/status_code", "type": "integer" }, "headers": { "$id": "/properties/specs/items/properties/response/properties/headers", "type": "array", "items": { "$id": "/properties/specs/items/properties/response/properties/headers/items", "type": "object", "properties": { "name": { "$id": "/properties/specs/items/properties/response/properties/headers/items/properties/name", "type": "string", "minLength": 1 }, "value": { "$id": "/properties/specs/items/properties/response/properties/headers/items/properties/value" } }, "required": [ "name", "value" ] } }, "cookies": { "$id": "/properties/specs/items/properties/response/properties/cookies", "type": "array", "items": { "$id": "/properties/specs/items/properties/response/properties/cookies/items", "type": "object", "properties": { "name": { "$id": "/properties/specs/items/properties/response/properties/cookies/items/properties/name", "type": ["string", "number"], "minLength": 1 }, "value": { "$id": "/properties/specs/items/properties/response/properties/cookies/items/properties/value" } }, "required": [ "name", "value" ] } }, "json_schema": { "$id": "/properties/specs/items/properties/response/properties/json_schema", "type": "object", "properties": { "type": { "$id": "/properties/specs/items/properties/response/properties/json_schema/properties/type", "type": "string", "enum": [ "inline", "file" ] }, "$ref": { "$id": "/properties/specs/items/properties/response/properties/json_schema/properties/$ref", "type": "string", "minLength": 1 } }, "required": [ "type", "$ref" ] }, "json_data": { "$id": "/properties/specs/items/properties/response/properties/json_data", "type": "array", "items": { "$id": "/properties/specs/items/properties/response/properties/json_data/items", "type": "object", "properties": { "path": { "$id": "/properties/specs/items/properties/response/properties/json_data/items/properties/path", "type": "string", "minLength": 1 }, "value": { "$id": "/properties/specs/items/properties/response/properties/json_data/items/properties/value", "type": [ "integer", "number", "string", "array", "object", "boolean", "null" ] } }, "required": [ "path", "value" ] } }, "custom_validator": { "$id": "/properties/specs/items/properties/response/properties/custom_validator", "type": "object", "properties": { "run_type": { "$id": "/properties/specs/items/properties/response/properties/custom_validator/properties/run_type", "type": "string", "enum": [ "inline", "module" ] }, "inline": { "$id": "/properties/specs/items/properties/response/properties/custom_validator/properties/inline", "type": "object", "properties": { "function": { "$id": "/properties/specs/items/properties/response/properties/custom_validator/properties/inline/properties/function" } }, "required": [ "function" ] }, "module": { "$id": "/properties/configuration/properties/custom_configuration/properties/module", "type": "object", "properties": { "function_name": { "$id": "/properties/configuration/properties/custom_configuration/properties/module/properties/function_name", "type": "string", "minLength": 1 }, "module_path": { "$id": "/properties/configuration/properties/custom_configuration/properties/module/properties/module_path", "type": "string", "minLength": 1 } }, "required": [ "function_name", "module_path" ] } }, "required": [ "run_type" ] } }, "required": [] }, "retry": { "$id": "/properties/specs/items/properties/retry", "type": "object", "properties": { "count": { "$id": "/properties/specs/items/properties/retry/properties/count", "type": "integer" }, "wait_before_each": { "$id": "/properties/specs/items/properties/retry/properties/wait_before_each", "type": "integer" } } }, "loop": { "$id": "/properties/specs/items/properties/loop", "type": "object", "properties": { "type": { "$id": "/properties/specs/items/properties/loop/properties/type", "type": "string", "enum": [ "static", "dynamic" ] }, "static": { "$id": "/properties/specs/items/properties/loop/properties/static", "type": "array" }, "dynamic": { "$id": "/properties/specs/items/properties/loop/properties/dynamic", "type": "object", "properties": { "run_type": { "$id": "/properties/specs/items/properties/loop/properties/dynamic/properties/run_type", "type": "string", "enum": [ "inline", "module" ] }, "inline": { "$id": "/properties/specs/items/properties/loop/properties/dynamic/properties/inline", "type": "object", "properties": { "function": { "$id": "/properties/specs/items/properties/loop/properties/dynamic/properties/inline/properties/function" } }, "required": [ "function" ] }, "module": { "$id": "/properties/specs/items/properties/loop/properties/dynamic/properties/module", "type": "object", "properties": { "function_name": { "$id": "/properties/specs/items/properties/loop/properties/dynamic/properties/module/properties/function_name", "type": "string", "minLength": 1 }, "module_path": { "$id": "/properties/specs/items/properties/loop/properties/dynamic/properties/module/properties/module_path", "type": "string", "minLength": 1 } }, "required": [ "function_name", "module_path" ] } }, "required": [ "run_type" ] } }, "required": [ "type" ] } }, "required": [ "name", "request", "response" ] } } }, "required": [ "meta", "configuration", "specs" ] }