diff --git a/docs/ExportSettings.schema.json b/docs/ExportSettings.schema.json new file mode 100644 index 0000000..c197448 --- /dev/null +++ b/docs/ExportSettings.schema.json @@ -0,0 +1,1866 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Export Settings", + "type": "object", + "additionalProperties": false, + "properties": { + "rules": { + "type": "array", + "items": { + "$ref": "#/definitions/Rule" + } + }, + "webSocketRules": { + "type": "array", + "items": { + "$ref": "#/definitions/Rule" + } + }, + "variables": { + "type": "array", + "items": { + "$ref": "#/definitions/Variable" + } + } + }, + "definitions": { + "Rule": { + "type": "object", + "additionalProperties": false, + "properties": { + "whens": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/WhenContentType" + }, + { + "$ref": "#/definitions/WhenEventDirection" + }, + { + "$ref": "#/definitions/WhenFromTool" + }, + { + "$ref": "#/definitions/WhenHasEntity" + }, + { + "$ref": "#/definitions/WhenInScope" + }, + { + "$ref": "#/definitions/WhenMatchesText" + }, + { + "$ref": "#/definitions/WhenMessageType" + }, + { + "$ref": "#/definitions/WhenMimeType" + }, + { + "$ref": "#/definitions/WhenProxyName" + }, + { + "$ref": "#/definitions/WhenWebSocketEventDirection" + } + ] + } + }, + "thens": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/ThenBreak" + }, + { + "$ref": "#/definitions/ThenBuildHttpMessage" + }, + { + "$ref": "#/definitions/ThenComment" + }, + { + "$ref": "#/definitions/ThenDelay" + }, + { + "$ref": "#/definitions/ThenDeleteValue" + }, + { + "$ref": "#/definitions/ThenDeleteVariable" + }, + { + "$ref": "#/definitions/ThenDrop" + }, + { + "$ref": "#/definitions/ThenEvaluate" + }, + { + "$ref": "#/definitions/ThenHighlight" + }, + { + "$ref": "#/definitions/ThenIntercept" + }, + { + "$ref": "#/definitions/ThenLog" + }, + { + "$ref": "#/definitions/ThenParseHttpMessage" + }, + { + "$ref": "#/definitions/ThenPrompt" + }, + { + "$ref": "#/definitions/ThenRunProcess" + }, + { + "$ref": "#/definitions/ThenRunRules" + }, + { + "$ref": "#/definitions/ThenRunScript" + }, + { + "$ref": "#/definitions/ThenSaveFile" + }, + { + "$ref": "#/definitions/ThenSendMessage" + }, + { + "$ref": "#/definitions/ThenSendRequest" + }, + { + "$ref": "#/definitions/ThenSendTo" + }, + { + "$ref": "#/definitions/ThenSet" + }, + { + "$ref": "#/definitions/ThenSetEncoding" + }, + { + "$ref": "#/definitions/ThenSetEventDirection" + }, + { + "$ref": "#/definitions/ThenSetValue" + }, + { + "$ref": "#/definitions/ThenSetVariable" + } + ] + } + }, + "enabled": { + "type": "boolean" + }, + "autoRun": { + "type": "boolean" + }, + "name": { + "type": "string" + } + }, + "required": [ + "enabled", + "autoRun" + ] + }, + "WhenContentType": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".WhenContentType" + ], + "default": ".WhenContentType" + }, + "negate": { + "type": "boolean" + }, + "useOrCondition": { + "type": "boolean" + }, + "contentType": { + "$ref": "#/definitions/ContentType" + } + }, + "title": ".WhenContentType", + "required": [ + "@class", + "negate", + "useOrCondition" + ] + }, + "ContentType": { + "type": "object", + "additionalProperties": false, + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "ids": { + "type": "array", + "items": { + "type": "integer" + } + }, + "flags": { + "type": "integer" + } + }, + "required": [ + "flags" + ] + }, + "WhenEventDirection": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".WhenEventDirection" + ], + "default": ".WhenEventDirection" + }, + "negate": { + "type": "boolean" + }, + "useOrCondition": { + "type": "boolean" + }, + "dataDirection": { + "type": "string", + "enum": [ + "Request", + "Response" + ] + } + }, + "title": ".WhenEventDirection", + "required": [ + "@class", + "negate", + "useOrCondition" + ] + }, + "WhenFromTool": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".WhenFromTool" + ], + "default": ".WhenFromTool" + }, + "negate": { + "type": "boolean" + }, + "useOrCondition": { + "type": "boolean" + }, + "tool": { + "type": "string", + "enum": [ + "Proxy", + "Repeater", + "Intruder", + "Target", + "Scanner", + "Extender", + "Session", + "WebSockets" + ] + } + }, + "title": ".WhenFromTool", + "required": [ + "@class", + "negate", + "useOrCondition" + ] + }, + "WhenHasEntity": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".WhenHasEntity" + ], + "default": ".WhenHasEntity" + }, + "negate": { + "type": "boolean" + }, + "useOrCondition": { + "type": "boolean" + }, + "messageValue": { + "type": "string", + "enum": [ + "SourceAddress", + "DestinationAddress", + "DestinationPort", + "HttpProtocol", + "Url", + "WebSocketMessage", + "HttpRequestMessage", + "HttpRequestStatusLine", + "HttpRequestMethod", + "HttpRequestUri", + "HttpRequestUriPath", + "HttpRequestUriQueryParameters", + "HttpRequestUriQueryParameter", + "HttpRequestHeaders", + "HttpRequestHeader", + "HttpRequestCookie", + "HttpRequestBody", + "HttpResponseMessage", + "HttpResponseStatusLine", + "HttpResponseStatusCode", + "HttpResponseStatusMessage", + "HttpResponseHeaders", + "HttpResponseHeader", + "HttpResponseCookie", + "HttpResponseBody" + ] + }, + "identifier": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".WhenHasEntity", + "required": [ + "@class", + "negate", + "useOrCondition" + ] + }, + "WhenInScope": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".WhenInScope" + ], + "default": ".WhenInScope" + }, + "negate": { + "type": "boolean" + }, + "useOrCondition": { + "type": "boolean" + }, + "url": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".WhenInScope", + "required": [ + "@class", + "negate", + "useOrCondition" + ] + }, + "WhenMatchesText": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".WhenMatchesText" + ], + "default": ".WhenMatchesText" + }, + "negate": { + "type": "boolean" + }, + "useOrCondition": { + "type": "boolean" + }, + "identifier": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "identifierPlacement": { + "type": "string", + "enum": [ + "First", + "Last" + ] + }, + "sourceText": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "matchText": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "messageValue": { + "type": "string", + "enum": [ + "SourceAddress", + "DestinationAddress", + "DestinationPort", + "HttpProtocol", + "Url", + "WebSocketMessage", + "HttpRequestMessage", + "HttpRequestStatusLine", + "HttpRequestMethod", + "HttpRequestUri", + "HttpRequestUriPath", + "HttpRequestUriQueryParameters", + "HttpRequestUriQueryParameter", + "HttpRequestHeaders", + "HttpRequestHeader", + "HttpRequestCookie", + "HttpRequestBody", + "HttpResponseMessage", + "HttpResponseStatusLine", + "HttpResponseStatusCode", + "HttpResponseStatusMessage", + "HttpResponseHeaders", + "HttpResponseHeader", + "HttpResponseCookie", + "HttpResponseBody" + ] + }, + "messageValueType": { + "type": "string", + "enum": [ + "Text", + "Json", + "Html", + "Params" + ] + }, + "messageValuePath": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "matchType": { + "type": "string", + "enum": [ + "Equals", + "Contains", + "BeginsWith", + "EndsWith", + "Regex" + ] + }, + "ignoreCase": { + "type": "boolean" + }, + "useMessageValue": { + "type": "boolean" + } + }, + "title": ".WhenMatchesText", + "required": [ + "@class", + "negate", + "useOrCondition", + "ignoreCase", + "useMessageValue" + ] + }, + "WhenMessageType": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".WhenMessageType" + ], + "default": ".WhenMessageType" + }, + "negate": { + "type": "boolean" + }, + "useOrCondition": { + "type": "boolean" + }, + "messageType": { + "type": "string", + "enum": [ + "Text", + "Binary" + ] + } + }, + "title": ".WhenMessageType", + "required": [ + "@class", + "negate", + "useOrCondition" + ] + }, + "WhenMimeType": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".WhenMimeType" + ], + "default": ".WhenMimeType" + }, + "negate": { + "type": "boolean" + }, + "useOrCondition": { + "type": "boolean" + }, + "mimeType": { + "$ref": "#/definitions/MimeType" + } + }, + "title": ".WhenMimeType", + "required": [ + "@class", + "negate", + "useOrCondition" + ] + }, + "MimeType": { + "type": "object", + "additionalProperties": false, + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "flags": { + "type": "integer" + } + }, + "required": [ + "flags" + ] + }, + "WhenProxyName": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".WhenProxyName" + ], + "default": ".WhenProxyName" + }, + "negate": { + "type": "boolean" + }, + "useOrCondition": { + "type": "boolean" + }, + "proxyName": { + "type": "string" + } + }, + "title": ".WhenProxyName", + "required": [ + "@class", + "negate", + "useOrCondition" + ] + }, + "WhenWebSocketEventDirection": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".WhenWebSocketEventDirection" + ], + "default": ".WhenWebSocketEventDirection" + }, + "negate": { + "type": "boolean" + }, + "useOrCondition": { + "type": "boolean" + }, + "dataDirection": { + "type": "string", + "enum": [ + "Server", + "Client" + ] + } + }, + "title": ".WhenWebSocketEventDirection", + "required": [ + "@class", + "negate", + "useOrCondition" + ] + }, + "ThenBreak": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenBreak" + ], + "default": ".ThenBreak" + }, + "breakType": { + "$ref": "#/definitions/RuleResponse" + } + }, + "title": ".ThenBreak", + "required": [ + "@class" + ] + }, + "RuleResponse": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "flags": { + "type": "integer" + } + }, + "required": [ + "flags" + ] + }, + "ThenBuildHttpMessage": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenBuildHttpMessage" + ], + "default": ".ThenBuildHttpMessage" + }, + "dataDirection": { + "type": "string", + "enum": [ + "Request", + "Response" + ] + }, + "starterHttpMessage": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "messageValueSetters": { + "type": "array", + "items": { + "$ref": "#/definitions/MessageValueSetter" + } + }, + "destinationVariableSource": { + "type": "string", + "enum": [ + "Event", + "Global", + "Session", + "Message", + "Annotation", + "File", + "Special", + "CookieJar" + ] + }, + "destinationVariableName": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".ThenBuildHttpMessage", + "required": [ + "@class" + ] + }, + "MessageValueSetter": { + "type": "object", + "additionalProperties": false, + "properties": { + "destinationMessageValue": { + "type": "string", + "enum": [ + "SourceAddress", + "DestinationAddress", + "DestinationPort", + "HttpProtocol", + "Url", + "WebSocketMessage", + "HttpRequestMessage", + "HttpRequestStatusLine", + "HttpRequestMethod", + "HttpRequestUri", + "HttpRequestUriPath", + "HttpRequestUriQueryParameters", + "HttpRequestUriQueryParameter", + "HttpRequestHeaders", + "HttpRequestHeader", + "HttpRequestCookie", + "HttpRequestBody", + "HttpResponseMessage", + "HttpResponseStatusLine", + "HttpResponseStatusCode", + "HttpResponseStatusMessage", + "HttpResponseHeaders", + "HttpResponseHeader", + "HttpResponseCookie", + "HttpResponseBody" + ] + }, + "destinationIdentifier": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "destinationIdentifierPlacement": { + "type": "string", + "enum": [ + "First", + "Last", + "New", + "All", + "Only" + ] + }, + "sourceText": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + } + }, + "ThenComment": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenComment" + ], + "default": ".ThenComment" + }, + "text": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".ThenComment", + "required": [ + "@class" + ] + }, + "ThenDelay": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenDelay" + ], + "default": ".ThenDelay" + }, + "delay": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".ThenDelay", + "required": [ + "@class" + ] + }, + "ThenDeleteValue": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenDeleteValue" + ], + "default": ".ThenDeleteValue" + }, + "messageValue": { + "type": "string", + "enum": [ + "SourceAddress", + "DestinationAddress", + "DestinationPort", + "HttpProtocol", + "Url", + "WebSocketMessage", + "HttpRequestMessage", + "HttpRequestStatusLine", + "HttpRequestMethod", + "HttpRequestUri", + "HttpRequestUriPath", + "HttpRequestUriQueryParameters", + "HttpRequestUriQueryParameter", + "HttpRequestHeaders", + "HttpRequestHeader", + "HttpRequestCookie", + "HttpRequestBody", + "HttpResponseMessage", + "HttpResponseStatusLine", + "HttpResponseStatusCode", + "HttpResponseStatusMessage", + "HttpResponseHeaders", + "HttpResponseHeader", + "HttpResponseCookie", + "HttpResponseBody" + ] + }, + "identifier": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "identifierPlacement": { + "type": "string", + "enum": [ + "First", + "Last", + "All" + ] + } + }, + "title": ".ThenDeleteValue", + "required": [ + "@class" + ] + }, + "ThenDeleteVariable": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenDeleteVariable" + ], + "default": ".ThenDeleteVariable" + }, + "targetSource": { + "type": "string", + "enum": [ + "Event", + "Global", + "Session", + "Message", + "Annotation", + "File", + "Special", + "CookieJar" + ] + }, + "variableName": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".ThenDeleteVariable", + "required": [ + "@class" + ] + }, + "ThenDrop": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenDrop" + ], + "default": ".ThenDrop" + }, + "dropMessage": { + "type": "boolean" + } + }, + "title": ".ThenDrop", + "required": [ + "@class", + "dropMessage" + ] + }, + "ThenEvaluate": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenEvaluate" + ], + "default": ".ThenEvaluate" + }, + "x": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "operation": { + "type": "string", + "enum": [ + "Add", + "Subtract", + "Multiply", + "DivideBy", + "Increment", + "Decrement", + "Mod", + "Abs", + "Round", + "Equals", + "GreaterThan", + "GreaterThanOrEquals", + "LessThan", + "LessThanOrEquals" + ] + }, + "y": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "destinationVariableSource": { + "type": "string", + "enum": [ + "Event", + "Global", + "Session", + "Message", + "Annotation", + "File", + "Special", + "CookieJar" + ] + }, + "destinationVariableName": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".ThenEvaluate", + "required": [ + "@class" + ] + }, + "ThenHighlight": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenHighlight" + ], + "default": ".ThenHighlight" + }, + "color": { + "type": "string", + "enum": [ + "None", + "Red", + "Orange", + "Yellow", + "Green", + "Cyan", + "Blue", + "Pink", + "Magenta", + "Gray" + ] + } + }, + "title": ".ThenHighlight", + "required": [ + "@class" + ] + }, + "ThenIntercept": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenIntercept" + ], + "default": ".ThenIntercept" + }, + "interceptResponse": { + "type": "string", + "enum": [ + "UserDefined", + "Drop", + "Disable", + "Intercept" + ] + } + }, + "title": ".ThenIntercept", + "required": [ + "@class" + ] + }, + "ThenLog": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenLog" + ], + "default": ".ThenLog" + }, + "text": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".ThenLog", + "required": [ + "@class" + ] + }, + "ThenParseHttpMessage": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenParseHttpMessage" + ], + "default": ".ThenParseHttpMessage" + }, + "dataDirection": { + "type": "string", + "enum": [ + "Request", + "Response" + ] + }, + "httpMessage": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "messageValueGetters": { + "type": "array", + "items": { + "$ref": "#/definitions/MessageValueGetter" + } + } + }, + "title": ".ThenParseHttpMessage", + "required": [ + "@class" + ] + }, + "MessageValueGetter": { + "type": "object", + "additionalProperties": false, + "properties": { + "sourceMessageValue": { + "type": "string", + "enum": [ + "SourceAddress", + "DestinationAddress", + "DestinationPort", + "HttpProtocol", + "Url", + "WebSocketMessage", + "HttpRequestMessage", + "HttpRequestStatusLine", + "HttpRequestMethod", + "HttpRequestUri", + "HttpRequestUriPath", + "HttpRequestUriQueryParameters", + "HttpRequestUriQueryParameter", + "HttpRequestHeaders", + "HttpRequestHeader", + "HttpRequestCookie", + "HttpRequestBody", + "HttpResponseMessage", + "HttpResponseStatusLine", + "HttpResponseStatusCode", + "HttpResponseStatusMessage", + "HttpResponseHeaders", + "HttpResponseHeader", + "HttpResponseCookie", + "HttpResponseBody" + ] + }, + "sourceIdentifier": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "sourceIdentifierPlacement": { + "type": "string", + "enum": [ + "First", + "Last" + ] + }, + "destinationVariableSource": { + "type": "string", + "enum": [ + "Event", + "Global", + "Session", + "Message", + "Annotation", + "File", + "Special", + "CookieJar" + ] + }, + "destinationVariableName": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + } + }, + "ThenPrompt": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenPrompt" + ], + "default": ".ThenPrompt" + }, + "description": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "starterText": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "failAfter": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "breakAfterFailure": { + "type": "boolean" + }, + "captureVariableSource": { + "type": "string", + "enum": [ + "Event", + "Global", + "Session", + "Message", + "Annotation", + "File", + "Special", + "CookieJar" + ] + }, + "captureVariableName": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".ThenPrompt", + "required": [ + "@class", + "breakAfterFailure" + ] + }, + "ThenRunProcess": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenRunProcess" + ], + "default": ".ThenRunProcess" + }, + "command": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "input": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "waitForCompletion": { + "type": "boolean" + }, + "failAfter": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "killAfterFailure": { + "type": "boolean" + }, + "failOnNonZeroExitCode": { + "type": "boolean" + }, + "breakAfterFailure": { + "type": "boolean" + }, + "captureOutput": { + "type": "boolean" + }, + "captureAfterFailure": { + "type": "boolean" + }, + "captureVariableSource": { + "type": "string", + "enum": [ + "Event", + "Global", + "Session", + "Message", + "Annotation", + "File", + "Special", + "CookieJar" + ] + }, + "captureVariableName": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".ThenRunProcess", + "required": [ + "@class", + "waitForCompletion", + "killAfterFailure", + "failOnNonZeroExitCode", + "breakAfterFailure", + "captureOutput", + "captureAfterFailure" + ] + }, + "ThenRunRules": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenRunRules" + ], + "default": ".ThenRunRules" + }, + "runSingle": { + "type": "boolean" + }, + "ruleName": { + "type": "string" + } + }, + "title": ".ThenRunRules", + "required": [ + "@class", + "runSingle" + ] + }, + "ThenRunScript": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenRunScript" + ], + "default": ".ThenRunScript" + }, + "script": { + "type": "string" + }, + "maxExecutionSeconds": { + "type": "integer" + } + }, + "title": ".ThenRunScript", + "required": [ + "@class", + "maxExecutionSeconds" + ] + }, + "ThenSaveFile": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenSaveFile" + ], + "default": ".ThenSaveFile" + }, + "filePath": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "text": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "encoding": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "fileExistsAction": { + "type": "string", + "enum": [ + "None", + "Append", + "Overwrite" + ] + } + }, + "title": ".ThenSaveFile", + "required": [ + "@class" + ] + }, + "ThenSendMessage": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenSendMessage" + ], + "default": ".ThenSendMessage" + }, + "dataDirection": { + "type": "string", + "enum": [ + "Server", + "Client" + ] + }, + "message": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".ThenSendMessage", + "required": [ + "@class" + ] + }, + "ThenSendRequest": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenSendRequest" + ], + "default": ".ThenSendRequest" + }, + "request": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "url": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "protocol": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "address": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "port": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "waitForCompletion": { + "type": "boolean" + }, + "failAfter": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "failOnErrorStatusCode": { + "type": "boolean" + }, + "breakAfterFailure": { + "type": "boolean" + }, + "captureOutput": { + "type": "boolean" + }, + "captureAfterFailure": { + "type": "boolean" + }, + "captureVariableSource": { + "type": "string", + "enum": [ + "Event", + "Global", + "Session", + "Message", + "Annotation", + "File", + "Special", + "CookieJar" + ] + }, + "captureVariableName": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".ThenSendRequest", + "required": [ + "@class", + "waitForCompletion", + "failOnErrorStatusCode", + "breakAfterFailure", + "captureOutput", + "captureAfterFailure" + ] + }, + "ThenSendTo": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenSendTo" + ], + "default": ".ThenSendTo" + }, + "sendTo": { + "type": "string", + "enum": [ + "Comparer", + "Intruder", + "Repeater", + "Spider", + "Browser" + ] + }, + "overrideDefaults": { + "type": "boolean" + }, + "host": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "port": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "protocol": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "request": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "value": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "url": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".ThenSendTo", + "required": [ + "@class", + "overrideDefaults" + ] + }, + "ThenSet": { + "oneOf": [ + { + "$ref": "#/definitions/ThenSetValue" + }, + { + "$ref": "#/definitions/ThenSetVariable" + } + ] + }, + "ThenSetValue": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenSetValue" + ], + "default": ".ThenSetValue" + }, + "useMessageValue": { + "type": "boolean" + }, + "sourceMessageValue": { + "type": "string", + "enum": [ + "SourceAddress", + "DestinationAddress", + "DestinationPort", + "HttpProtocol", + "Url", + "WebSocketMessage", + "HttpRequestMessage", + "HttpRequestStatusLine", + "HttpRequestMethod", + "HttpRequestUri", + "HttpRequestUriPath", + "HttpRequestUriQueryParameters", + "HttpRequestUriQueryParameter", + "HttpRequestHeaders", + "HttpRequestHeader", + "HttpRequestCookie", + "HttpRequestBody", + "HttpResponseMessage", + "HttpResponseStatusLine", + "HttpResponseStatusCode", + "HttpResponseStatusMessage", + "HttpResponseHeaders", + "HttpResponseHeader", + "HttpResponseCookie", + "HttpResponseBody" + ] + }, + "sourceIdentifier": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "sourceIdentifierPlacement": { + "type": "string", + "enum": [ + "First", + "Last" + ] + }, + "sourceMessageValueType": { + "type": "string", + "enum": [ + "Text", + "Json", + "Html", + "Params" + ] + }, + "sourceMessageValuePath": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "useReplace": { + "type": "boolean" + }, + "regexPattern": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "text": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "replacementText": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "destinationMessageValueType": { + "type": "string", + "enum": [ + "Text", + "Json", + "Html", + "Params" + ] + }, + "destinationMessageValuePath": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "destinationMessageValue": { + "type": "string", + "enum": [ + "SourceAddress", + "DestinationAddress", + "DestinationPort", + "HttpProtocol", + "Url", + "WebSocketMessage", + "HttpRequestMessage", + "HttpRequestStatusLine", + "HttpRequestMethod", + "HttpRequestUri", + "HttpRequestUriPath", + "HttpRequestUriQueryParameters", + "HttpRequestUriQueryParameter", + "HttpRequestHeaders", + "HttpRequestHeader", + "HttpRequestCookie", + "HttpRequestBody", + "HttpResponseMessage", + "HttpResponseStatusLine", + "HttpResponseStatusCode", + "HttpResponseStatusMessage", + "HttpResponseHeaders", + "HttpResponseHeader", + "HttpResponseCookie", + "HttpResponseBody" + ] + }, + "destinationIdentifier": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "destinationIdentifierPlacement": { + "type": "string", + "enum": [ + "First", + "Last", + "New", + "All", + "Only" + ] + } + }, + "title": ".ThenSetValue", + "required": [ + "@class", + "useMessageValue", + "useReplace" + ] + }, + "ThenSetVariable": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenSetVariable" + ], + "default": ".ThenSetVariable" + }, + "useMessageValue": { + "type": "boolean" + }, + "sourceMessageValue": { + "type": "string", + "enum": [ + "SourceAddress", + "DestinationAddress", + "DestinationPort", + "HttpProtocol", + "Url", + "WebSocketMessage", + "HttpRequestMessage", + "HttpRequestStatusLine", + "HttpRequestMethod", + "HttpRequestUri", + "HttpRequestUriPath", + "HttpRequestUriQueryParameters", + "HttpRequestUriQueryParameter", + "HttpRequestHeaders", + "HttpRequestHeader", + "HttpRequestCookie", + "HttpRequestBody", + "HttpResponseMessage", + "HttpResponseStatusLine", + "HttpResponseStatusCode", + "HttpResponseStatusMessage", + "HttpResponseHeaders", + "HttpResponseHeader", + "HttpResponseCookie", + "HttpResponseBody" + ] + }, + "sourceIdentifier": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "sourceIdentifierPlacement": { + "type": "string", + "enum": [ + "First", + "Last" + ] + }, + "sourceMessageValueType": { + "type": "string", + "enum": [ + "Text", + "Json", + "Html", + "Params" + ] + }, + "sourceMessageValuePath": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "useReplace": { + "type": "boolean" + }, + "regexPattern": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "text": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "replacementText": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "destinationMessageValueType": { + "type": "string", + "enum": [ + "Text", + "Json", + "Html", + "Params" + ] + }, + "destinationMessageValuePath": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + }, + "targetSource": { + "type": "string", + "enum": [ + "Event", + "Global", + "Session", + "Message", + "Annotation", + "File", + "Special", + "CookieJar" + ] + }, + "variableName": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".ThenSetVariable", + "required": [ + "@class", + "useMessageValue", + "useReplace" + ] + }, + "ThenSetEncoding": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenSetEncoding" + ], + "default": ".ThenSetEncoding" + }, + "encoding": { + "type": "string", + "pattern": "^((\\{\\{\\w+(:[^:}]*)+\\}\\})|.)*$" + } + }, + "title": ".ThenSetEncoding", + "required": [ + "@class" + ] + }, + "ThenSetEventDirection": { + "type": "object", + "additionalProperties": false, + "properties": { + "@class": { + "type": "string", + "enum": [ + ".ThenSetEventDirection" + ], + "default": ".ThenSetEventDirection" + }, + "dataDirection": { + "type": "string", + "enum": [ + "Request", + "Response" + ] + } + }, + "title": ".ThenSetEventDirection", + "required": [ + "@class" + ] + }, + "Variable": { + "type": "object", + "additionalProperties": false, + "properties": { + "persistent": { + "type": "boolean" + }, + "value": { + "$ref": "#/definitions/Object" + }, + "name": { + "type": "string" + } + }, + "required": [ + "persistent" + ] + }, + "Object": { + "type": "object", + "additionalProperties": false, + "properties": {} + } + } +} \ No newline at end of file