txt: ## dist_github-khalidelboray-Zap.md
  ## Chunk 1 of 3
  # [OWASP ZAP API](https://www.zaproxy.org/docs/api/) Raku module
  
  # SYNOPSIS
  
  ## `Zap`
  
  ```
  use lib 'lib';
  use Zap;
  # Config Zap Client
  ZapConfig(:apikey<apikey12345>,:port<8081>,:addr<127.0.0.1>);
  # send a url to the spider
  my $scanId = Zap::Spider.scan(:url<https://perl.org>);
  # get the spider status
  my $status = Zap::Spider.status(:$scanId);
  # wait for the spider to finish then get the result
  $*OUT = $*OUT.open(:!buffer);
  while Zap::Spider.status(:$scanId) < 100 {
      print "Spider progress {Zap::Spider.status(:$scanId)}  \r";
  }
  $*OUT = $*OUT.open(:buffer);
  put "URL : $_" for Zap::Spider.results(:$scanId);
  my @scans = Zap::Spider.scans; # this needs some work
  put "ID , Progress , State";
  for @scans -> %scan {
      put %scan<id progress state>.fmt("%s",', ')
  }
  
  
  ```
  
  # Installation
  
  `zef install Zap`
  
  # TODO
  
  * Make the code and API Response more easy to handle
  * Write a Script to provide a CLI `raku-zap` maybe ?
  * Write an Interface for the zap CLI
  * Automate Spider and Scanners
  * Since we are using Cro::HTTP::Client , we can handel the other response formats with `body-parsers` (a `Cro::HTTP::BodyParser` class)
  
  # Bad Generated Docs (needs more work)
  
  ## class Zap::Ruleconfig
  
  class `Zap::Ruleconfig` Methods
  
  ### method resetAllRuleConfigValues
  
  ```
  method resetAllRuleConfigValues() returns Mu
  
  ```
  
  Reset all of the rule configurations
  
  ### method resetRuleConfigValue
  
  ```
  method resetRuleConfigValue(
      :$key!
  ) returns Mu
  
  ```
  
  Reset the specified rule configuration, which must already exist
  
  ### method setRuleConfigValue
  
  ```
  method setRuleConfigValue(
      :$key!,
      :$value
  ) returns Mu
  
  ```
  
  Set the specified rule configuration, which must already exist
  
  ## class Zap::Break
  
  class `Zap::Break` Methods
  
  ### method isBreakRequest
  
  ```
  method isBreakRequest() returns Mu
  
  ```
  
  Returns True if ZAP will break on requests
  
  ### method isBreakResponse
  
  ```
  method isBreakResponse() returns Mu
  
  ```
  
  Returns True if ZAP will break on responses
  
  ### method waitForHttpBreak
  
  ```
  method waitForHttpBreak(
      :$poll,
      :$keepalive
  ) returns Mu
  
  ```
  
  Waits until an HTTP breakpoint has been hit, at which point it returns the message. Poll is the number of milliseconds ZAP will pause between checking for breakpoints being hit (default 500). If keepalive is zero or less then the response will be returned as a Server Sent Event, otherwise it is used as the frequency in seconds at which 'keepalive' events should be returned and the response is sent as a standard response.
  
  ### method addHttpBreakpoint
  
  ```
  method addHttpBreakpoint(
      :$string!,
      :$location!,
      :$match!,
      :$inverse!,
      :$ignorecase!
  ) returns Mu
  
  ```
  
  Adds a custom HTTP breakpoint. The string is the string to match. Location may be one of: url, request\_header, request\_body, response\_header or response\_body. Match may be: contains or regex. Inverse (match) may be true or false. Lastly, ignorecase (when matching the string) may be true or false.
  
  ### method break
  
  ```
  method break(
      :$type!,
      :$state!,
      :$scope
  ) returns Mu
  
  ```
  
  Controls the global break functionality. The type may be one of: http-all, http-request or http-response. The state may be true (for turning break on for the specified type) or false (for turning break off). Scope is not currently used.
  
  ### method continue
  
  ```
  method continue() returns Mu
  
  ```
  
  Submits the currently intercepted message and unsets the global request/response breakpoints
  
  ### method drop
  
  ```
  method drop() returns Mu
  
  ```
  
  Drops the currently intercepted message
  
  ### method removeHttpBreakpoint
  
  ```
  method removeHttpBreakpoint(
      :$string!,
      :$location!,
      :$match!,
      :$inverse!,
      :$ignorecase!
  ) returns Mu
  
  ```
  
  Removes the specified breakpoint
  
  ### method setHttpMessage
  
  ```
  method setHttpMessage(
      :$httpHeader!,
      :$httpBody
  ) returns Mu
  
  ```
  
  Overwrites the currently intercepted message with the data provided
  
  ### method step
  
  ```
  method step() returns Mu
  
  ```
  
  Submits the currently intercepted message, the next request or response will automatically be intercepted
  
  ## class Zap::Hud
  
  class `Zap::Hud` Methods
  
  ### method hudAlertData
  
  ```
  method hudAlertData(
      :$url!
  ) returns Mu
  
  ```
  
  Returns the alert summary needed by the HUD for the specified URL
  
  ### method optionAllowUnsafeEval
  
  ```
  method optionAllowUnsafeEval() returns Mu
  
  ```
  
  Returns true if the 'Allow unsafe-eval' option is set
  
  ### method optionBaseDirectory
  
  ```
  method optionBaseDirectory() returns Mu
  
  ```
  
  Returns the base directory from which the HUD files are loaded
  
  ### method optionDevelopmentMode
  
  ```
  method optionDevelopmentMode() returns Mu
  
  ```
  
  Returns true if the 'Development mode' option is set
  
  ### method optionEnableOnDomainMsgs
  
  ```
  method optionEnableOnDomainMsgs() returns Mu
  
  ```
  
  No Doc
  
  ### method optionEnabledForDaemon
  
  ```
  method optionEnabledForDaemon() returns Mu
  
  ```
  
  No Doc
  
  ### method optionEnabledForDesktop
  
  ```
  method optionEnabledForDesktop() returns Mu
  
  ```
  
  No Doc
  
  ### method optionInScopeOnly
  
  ```
  method optionInScopeOnly() returns Mu
  
  ```
  
  Returns true if the 'In scope only' option is set
  
  ### method optionRemoveCSP
  
  ```
  method optionRemoveCSP() returns Mu
  
  ```
  
  Returns true if the 'Remove CSP' option is set
  
  ### method optionShowWelcomeScreen
  
  ```
  method optionShowWelcomeScreen() returns Mu
  
  ```
  
  No Doc
  
  ### method optionSkipTutorialTasks
  
  ```
  method optionSkipTutorialTasks() returns Mu
  
  ```
  
  No Doc
  
  ### method optionTutorialHost
  
  ```
  method optionTutorialHost() returns Mu
  
  ```
  
  No Doc
  
  ### method optionTutorialPort
  
  ```
  method optionTutorialPort() returns Mu
  
  ```
  
  No Doc
  
  ### method optionTutorialTasksDone
  
  ```
  method optionTutorialTasksDone() returns Mu
  
  ```
  
  No Doc
  
  ### method optionTutorialTestMode
  
  ```
  method optionTutorialTestMode() returns Mu
  
  ```
  
  No Doc
  
  ### method optionTutorialUpdates
  
  ```
  method optionTutorialUpdates() returns Mu
  
  ```
  
  No Doc
  
  ### method tutorialUpdates
  
  ```
  method tutorialUpdates() returns Mu
  
  ```
  
  No Doc
  
  ### method upgradedDomains
  
  ```
  method upgradedDomains() returns Mu
  
  ```
  
  No Doc
  
  ### method changesInHtml
  
  ```
  method changesInHtml() returns Mu
  
  ```
  
  Returns the changelog in HTML format
  
  ### method log
  
  ```
  method log(
      :$record!
  ) returns Mu
  
  ```
  
  Used by the HUD to log messages from the browser
  
  ### method recordRequest
  
  ```
  method recordRequest(
      :$header!,
      :$body!
  ) returns Mu
  
  ```
  
  Used by the HUD to cache a request the user wants to send in the browser
  
  ### method resetTutorialTasks
  
  ```
  method resetTutorialTasks() returns Mu
  
  ```
  
  Reset the tutorial tasks so that they must be completed again
  
  ### method setOptionBaseDirectory
  
  ```
  method setOptionBaseDirectory(
      :$String!
  ) returns Mu
  
  ```
  
  Set the base directory from which the HUD files are loaded
  
  ### method setOptionDevelopmentMode
  
  ```
  method setOptionDevelopmentMode(
      :$Boolean!
  ) returns Mu
  
  ```
  
  Sets the boolean option 'Development mode'
  
  ### method setOptionEnableOnDomainMsgs
  
  ```
  method setOptionEnableOnDomainMsgs(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionEnabledForDaemon
  
  ```
  method setOptionEnabledForDaemon(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionEnabledForDesktop
  
  ```
  method setOptionEnabledForDesktop(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionInScopeOnly
  
  ```
  method setOptionInScopeOnly(
      :$Boolean!
  ) returns Mu
  
  ```
  
  Sets the boolean option 'In scope only'
  
  ### method setOptionRemoveCSP
  
  ```
  method setOptionRemoveCSP(
      :$Boolean!
  ) returns Mu
  
  ```
  
  Sets the boolean option 'Remove CSP'
  
  ### method setOptionShowWelcomeScreen
  
  ```
  method setOptionShowWelcomeScreen(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionSkipTutorialTasks
  
  ```
  method setOptionSkipTutorialTasks(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionTutorialTaskDone
  
  ```
  method setOptionTutorialTaskDone(
      :$String!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionTutorialTestMode
  
  ```
  method setOptionTutorialTestMode(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setUiOption
  
  ```
  method setUiOption(
      :$key!,
      :$value
  ) returns Mu
  
  ```
  
  Sets a UI option with the given key and value. The key must be 50 or fewer alphanumeric characters
  
  ## class Zap::Forceduser
  
  class `Zap::Forceduser` Methods
  
  ### method setForcedUser
  
  ```
  method setForcedUser(
      :$contextId!,
      :$userId!
  ) returns Mu
  
  ```
  
  Sets the user (ID) that should be used in 'forced user' mode for the given context (ID)
  
  ### method setForcedUserModeEnabled
  
  ```
  method setForcedUserModeEnabled(
      :$boolean!
  ) returns Mu
  
  ```
  
  Sets if 'forced user' mode should be enabled or not
  
  ## class Zap::Stats
  
  class `Zap::Stats` Methods
  
  ### method clearStats
  
  ```
  method clearStats(
      :$keyPrefix
  ) returns Mu
  
  ```
  
  Clears all of the statistics
  
  ### method setOptionInMemoryEnabled
  
  ```
  method setOptionInMemoryEnabled(
      :$Boolean!
  ) returns Mu
  
  ```
  
  Sets whether in memory statistics are enabled
  
  ### method setOptionStatsdHost
  
  ```
  method setOptionStatsdHost(
      :$String!
  ) returns Mu
  
  ```
  
  Sets the Statsd service hostname, supply an empty string to stop using a Statsd service
  
  ### method setOptionStatsdPort
  
  ```
  method setOptionStatsdPort(
      :$Integer!
  ) returns Mu
  
  ```
  
  Sets the Statsd service port
  
  ### method setOptionStatsdPrefix
  
  ```
  method setOptionStatsdPrefix(
      :$String!
  ) returns Mu
  
  ```
  
  Sets the prefix to be applied to all stats sent to the configured Statsd service
  
  ### method optionStatsdEnabled
  
  ```
  method optionStatsdEnabled() returns Mu
  
  ```
  
  Returns 'true' if a Statsd server has been correctly configured, otherwise returns 'false'
  
  ### method optionStatsdHost
  
  ```
  method optionStatsdHost() returns Mu
  
  ```
  
  Gets the Statsd service hostname
  
  ### method optionStatsdPort
  
  ```
  method optionStatsdPort() returns Mu
  
  ```
  
  Gets the Statsd service port
  
  ### method optionStatsdPrefix
  
  ```
  method optionStatsdPrefix() returns Mu
  
  ```
  
  Gets the prefix to be applied to all stats sent to the configured Statsd service
  
  ### method siteStats
  
  ```
  method siteStats(
      :$site!,
      :$keyPrefix
  ) returns Mu
  
  ```
  
  Gets all of the global statistics, optionally filtered by a key prefix
  
  ### method stats
  
  ```
  method stats(
      :$keyPrefix
  ) returns Mu
  
  ```
  
  Statistics
  
  ## class Zap::Alertfilter
  
  class `Zap::Alertfilter` Methods
  
  ### method addAlertFilter
  
  ```
  method addAlertFilter(
      :$contextId!,
      :$ruleId!,
      :$newLevel!,
      :$url,
      :$urlIsRegex,
      :$parameter,
      :$enabled,
      :$parameterIsRegex,
      :$attack,
      :$attackIsRegex,
      :$evidence,
      :$evidenceIsRegex
  ) returns Mu
  
  ```
  
  Adds a new alert filter for the context with the given ID.
  
  ### method addGlobalAlertFilter
  
  ```
  method addGlobalAlertFilter(
      :$ruleId!,
      :$newLevel!,
      :$url,
      :$urlIsRegex,
      :$parameter,
      :$enabled,
      :$parameterIsRegex,
      :$attack,
      :$attackIsRegex,
      :$evidence,
      :$evidenceIsRegex
  ) returns Mu
  
  ```
  
  Adds a new global alert filter.
  
  ### method removeAlertFilter
  
  ```
  method removeAlertFilter(
      :$contextId!,
      :$ruleId!,
      :$newLevel!,
      :$url,
      :$urlIsRegex,
      :$parameter,
      :$enabled,
      :$parameterIsRegex,
      :$attack,
      :$attackIsRegex,
      :$evidence,
      :$evidenceIsRegex
  ) returns Mu
  
  ```
  
  Removes an alert filter from the context with the given ID.
  
  ### method removeGlobalAlertFilter
  
  ```
  method removeGlobalAlertFilter(
      :$ruleId!,
      :$newLevel!,
      :$url,
      :$urlIsRegex,
      :$parameter,
      :$enabled,
      :$parameterIsRegex,
      :$attack,
      :$attackIsRegex,
      :$evidence,
      :$evidenceIsRegex
  ) returns Mu
  
  ```
  
  Removes a global alert filter.
  
  ## class Zap::Ascan
  
  class `Zap::Ascan` Methods
  
  ### method addExcludedParam
  
  ```
  method addExcludedParam(
      :$name!,
      :$type,
      :$url
  ) returns Mu
  
  ```
  
  Adds a new parameter excluded from the scan, using the specified name. Optionally sets if the new entry applies to a specific URL (default, all URLs) and sets the ID of the type of the parameter (default, ID of any type). The type IDs can be obtained with the view excludedParamTypes.
  
  ### method addScanPolicy
  
  ```
  method addScanPolicy(
      :$scanPolicyName!,
      :$alertThreshold,
      :$attackStrength
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method clearExcludedFromScan
  
  ```
  method clearExcludedFromScan() returns Mu
  
  ```
  
  Clears the regexes of URLs excluded from the active scans.
  
  ### method disableAllScanners
  
  ```
  method disableAllScanners(
      :$scanPolicyName
  ) returns Mu
  
  ```
  
  Disables all scanners of the scan policy with the given name, or the default if none given.
  
  ### method disableScanners
  
  ```
  method disableScanners(
      :$ids!,
      :$scanPolicyName
  ) returns Mu
  
  ```
  
  Disables the scanners with the given IDs (comma separated list of IDs) of the scan policy with the given name, or the default if none given.
  
  ### method enableAllScanners
  
  ```
  method enableAllScanners(
      :$scanPolicyName
  ) returns Mu
  
  ```
  
  Enables all scanners of the scan policy with the given name, or the default if none given.
  
  ### method enableScanners
  
  ```
  method enableScanners(
      :$ids!,
      :$scanPolicyName
  ) returns Mu
  
  ```
  
  Enables the scanners with the given IDs (comma separated list of IDs) of the scan policy with the given name, or the default if none given.
  
  ### method excludeFromScan
  
  ```
  method excludeFromScan(
      :$regex!
  ) returns Mu
  
  ```
  
  Adds a regex of URLs that should be excluded from the active scans.
  
  ### method importScanPolicy
  
  ```
  method importScanPolicy(
      :$path!
  ) returns Mu
  
  ```
  
  Imports a Scan Policy using the given file system path.
  
  ### method modifyExcludedParam
  
  ```
  method modifyExcludedParam(
      :$idx!,
      :$name,
      :$type,
      :$url
  ) returns Mu
  
  ```
  
  Modifies a parameter excluded from the scan. Allows to modify the name, the URL and the type of parameter. The parameter is selected with its index, which can be obtained with the view excludedParams.
  
  ### method pause
  
  ```
  method pause(
      :$scanId!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method pauseAllScans
  
  ```
  method pauseAllScans() returns Mu
  
  ```
  
  No Doc
  
  ### method removeAllScans
  
  ```
  method removeAllScans() returns Mu
  
  ```
  
  No Doc
  
  ### method removeExcludedParam
  
  ```
  method removeExcludedParam(
      :$idx!
  ) returns Mu
  
  ```
  
  Removes a parameter excluded from the scan, with the given index. The index can be obtained with the view excludedParams.
  
  ### method removeScan
  
  ```
  method removeScan(
      :$scanId!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method removeScanPolicy
  
  ```
  method removeScanPolicy(
      :$scanPolicyName!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method resume
  
  ```
  method resume(
      :$scanId!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method resumeAllScans
  
  ```
  method resumeAllScans() returns Mu
  
  ```
  
  No Doc
  
  ### method scan
  
  ```
  method scan(
      :$url,
      :$recurse,
      :$inScopeOnly,
      :$scanPolicyName,
      :$method,
      :$postData,
      :$contextId
  ) returns Mu
  
  ```
  
  Runs the active scanner against the given URL and/or Context. Optionally, the 'recurse' parameter can be used to scan URLs under the given URL, the parameter 'inScopeOnly' can be used to constrain the scan to URLs that are in scope (ignored if a Context is specified), the parameter 'scanPolicyName' allows to specify the scan policy (if none is given it uses the default scan policy), the parameters 'method' and 'postData' allow to select a given request in conjunction with the given URL.
  
  ### method scanAsUser
  
  ```
  method scanAsUser(
      :$url,
      :$contextId,
      :$userId,
      :$recurse,
      :$scanPolicyName,
      :$method,
      :$postData
  ) returns Mu
  
  ```
  
  Active Scans from the perspective of a User, obtained using the given Context ID and User ID. See 'scan' action for more details.
  
  ### method setEnabledPolicies
  
  ```
  method setEnabledPolicies(
      :$ids!,
      :$scanPolicyName
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionAddQueryParam
  
  ```
  method setOptionAddQueryParam(
      :$Boolean!
  ) returns Mu
  
  ```
  
  Sets whether or not the active scanner should add a query param to GET requests which do not have parameters to start with.
  
  ### method setOptionAllowAttackOnStart
  
  ```
  method setOptionAllowAttackOnStart(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionAttackPolicy
  
  ```
  method setOptionAttackPolicy(
      :$String!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionDefaultPolicy
  
  ```
  method setOptionDefaultPolicy(
      :$String!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionDelayInMs
  
  ```
  method setOptionDelayInMs(
      :$Integer!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionHandleAntiCSRFTokens
  
  ```
  method setOptionHandleAntiCSRFTokens(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionHostPerScan
  
  ```
  method setOptionHostPerScan(
      :$Integer!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionInjectPluginIdInHeader
  
  ```
  method setOptionInjectPluginIdInHeader(
      :$Boolean!
  ) returns Mu
  
  ```
  
  Sets whether or not the active scanner should inject the HTTP request header X-ZAP-Scan-ID, with the ID of the scanner that's sending the requests.
  
  ### method setOptionMaxChartTimeInMins
  
  ```
  method setOptionMaxChartTimeInMins(
      :$Integer!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionMaxResultsToList
  
  ```
  method setOptionMaxResultsToList(
      :$Integer!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionMaxRuleDurationInMins
  
  ```
  method setOptionMaxRuleDurationInMins(
      :$Integer!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionMaxScanDurationInMins
  
  ```
  method setOptionMaxScanDurationInMins(
      :$Integer!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionMaxScansInUI
  
  ```
  method setOptionMaxScansInUI(
      :$Integer!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionPromptInAttackMode
  
  ```
  method setOptionPromptInAttackMode(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionPromptToClearFinishedScans
  
  ```
  method setOptionPromptToClearFinishedScans(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionRescanInAttackMode
  
  ```
  method setOptionRescanInAttackMode(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionScanHeadersAllRequests
  
  ```
  method setOptionScanHeadersAllRequests(
      :$Boolean!
  ) returns Mu
  
  ```
  
  Sets whether or not the HTTP Headers of all requests should be scanned. Not just requests that send parameters, through the query or request body.
  
  ### method setOptionShowAdvancedDialog
  
  ```
  method setOptionShowAdvancedDialog(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionTargetParamsEnabledRPC
  
  ```
  method setOptionTargetParamsEnabledRPC(
      :$Integer!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionTargetParamsInjectable
  
  ```
  method setOptionTargetParamsInjectable(
      :$Integer!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionThreadPerHost
  
  ```
  method setOptionThreadPerHost(
      :$Integer!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setPolicyAlertThreshold
  
  ```
  method setPolicyAlertThreshold(
      :$id!,
      :$alertThreshold!,
      :$scanPolicyName
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setPolicyAttackStrength
  
  ```
  method setPolicyAttackStrength(
      :$id!,
      :$attackStrength!,
      :$scanPolicyName
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setScannerAlertThreshold
  
  ```
  method setScannerAlertThreshold(
      :$id!,
      :$alertThreshold!,
      :$scanPolicyName
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setScannerAttackStrength
  
  ```
  method setScannerAttackStrength(
      :$id!,
      :$attackStrength!,
      :$scanPolicyName
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method skipScanner
  
  ```
  method skipScanner(
      :$scanId!,
      :$scannerId!
  ) returns Mu
  
  ```
  
  Skips the scanner using the given IDs of the scan and the scanner.
  
  ### method stop
  
  ```
  method stop(
      :$scanId!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method stopAllScans
  
  ```
  method stopAllScans() returns Mu
  
  ```
  
  No Doc
  
  ### method updateScanPolicy
  
  ```
  method updateScanPolicy(
      :$scanPolicyName!,
      :$alertThreshold,
      :$attackStrength
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method excludedFromScan
  
  ```
  method excludedFromScan() returns Mu
  
  ```
  
  Gets the regexes of URLs excluded from the active scans.
  
  ### method excludedParamTypes
  
  ```
  method excludedParamTypes() returns Mu
  
  ```
  
  Gets all the types of excluded parameters. For each type the following are shown: the ID and the name.
  
  ### method excludedParams
  
  ```
  method excludedParams() returns Mu
  
  ```
  
  Gets all the parameters that are excluded. For each parameter the following are shown: the name, the URL, and the parameter type.
  
  ### method messagesIds
  
  ```
  method messagesIds(
      :$scanId!
  ) returns Mu
  
  ```
  
  Gets the IDs of the messages sent during the scan with the given ID. A message can be obtained with 'message' core view.
  
  ### method optionAddQueryParam
  
  ```
  method optionAddQueryParam() returns Mu
  
  ```
  
  Tells whether or not the active scanner should add a query parameter to GET request that don't have parameters to start with.
  
  ### method optionAllowAttackOnStart
  
  ```
  method optionAllowAttackOnStart() returns Mu
  
  ```
  
  No Doc
  
  ### method optionAttackPolicy
  
  ```
  method optionAttackPolicy() returns Mu
  
  ```
  
  No Doc
  
  ### method optionDefaultPolicy
  
  ```
  method optionDefaultPolicy() returns Mu
  
  ```
  
  No Doc
  
  ### method optionDelayInMs
  
  ```
  method optionDelayInMs() returns Mu
  
  ```
  
  No Doc
  
  ### method optionExcludedParamList
  
  ```
  method optionExcludedParamList() returns Mu
  
  ```
  
  Use view excludedParams instead.
  
  ### method optionHandleAntiCSRFTokens
  
  ```
  method optionHandleAntiCSRFTokens() returns Mu
  
  ```
  
  No Doc
  
  ### method optionHostPerScan
  
  ```
  method optionHostPerScan() returns Mu
  
  ```
  
  No Doc
  
  ### method optionInjectPluginIdInHeader
  
  ```
  method optionInjectPluginIdInHeader() returns Mu
  
  ```
  
  Tells whether or not the active scanner should inject the HTTP request header X-ZAP-Scan-ID, with the ID of the scanner that's sending the requests.
  
  ### method optionMaxChartTimeInMins
  
  ```
  method optionMaxChartTimeInMins() returns Mu
  
  ```
  
  No Doc
  
  ### method optionMaxResultsToList
  
  ```
  method optionMaxResultsToList() returns Mu
  
  ```
  
  No Doc
  
  ### method optionMaxRuleDurationInMins
  
  ```
  method optionMaxRuleDurationInMins() returns Mu
  
  ```
  
  No Doc
  
  ### method optionMaxScanDurationInMins
  
  ```
  method optionMaxScanDurationInMins() returns Mu
  
  ```
  
  No Doc
  
  ### method optionMaxScansInUI
  
  ```
  method optionMaxScansInUI() returns Mu
  
  ```
  
  No Doc
  
  ### method optionPromptInAttackMode
  
  ```
  method optionPromptInAttackMode() returns Mu
  
  ```
  
  No Doc
  
  ### method optionPromptToClearFinishedScans
  
  ```
  method optionPromptToClearFinishedScans() returns Mu
  
  ```
  
  No Doc
  
  ### method optionRescanInAttackMode
  
  ```
  method optionRescanInAttackMode() returns Mu
  
  ```
  
  No Doc
  
  ### method optionScanHeadersAllRequests
  
  ```
  method optionScanHeadersAllRequests() returns Mu
  
  ```
  
  Tells whether or not the HTTP Headers of all requests should be scanned. Not just requests that send parameters, through the query or request body.
  
  ### method optionShowAdvancedDialog
  
  ```
  method optionShowAdvancedDialog() returns Mu
  
  ```
  
  No Doc
  
  ### method optionTargetParamsEnabledRPC
  
  ```
  method optionTargetParamsEnabledRPC() returns Mu
  
  ```
  
  No Doc
  
  ### method optionTargetParamsInjectable
  
  ```
  method optionTargetParamsInjectable() returns Mu
  
  ```
  
  No Doc
  
  ### method optionThreadPerHost
  
  ```
  method optionThreadPerHost() returns Mu
  
  ```
  
  No Doc
  
  ### method policies
  
  ```
  method policies(
      :$scanPolicyName,
      :$policyId
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method scanPolicyNames
  
  ```
  method scanPolicyNames() returns Mu
  
  ```
  
  No Doc
  
  ### method scanProgress
  
  ```
  method scanProgress(
      :$scanId
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method scanners
  
  ```
  method scanners(
      :$scanPolicyName,
      :$policyId
  ) returns Mu
  
  ```
  
  Gets the scanners, optionally, of the given scan policy and/or scanner policy/category ID.
  
  ### method scans
  
  ```
  method scans() returns Mu
  
  ```
  
  No Doc
  
  ### method status
  
  ```
  method status(
      :$scanId
  ) returns Mu
  
  ```
  
  No Doc
  
  ## class Zap::Spider
  
  class `Zap::Spider` Methods
  
  ### method domainsAlwaysInScope
  
  ```
  method domainsAlwaysInScope() returns Mu
  
  ```
  
  Gets all the domains that are always in scope. For each domain the following are shown: the index, the value (domain), if enabled, and if specified as a regex.
  
  ### method excludedFromScan
  
  ```
  method excludedFromScan() returns Mu
  
  ```
  
  Gets the regexes of URLs excluded from the spider scans.
  
  ### method fullResults
  
  ```
  method fullResults(
      :$scanId!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method optionAcceptCookies
  
  ```
  method optionAcceptCookies() returns Mu
  
  ```
  
  Gets whether or not a spider process should accept cookies while spidering.
  
  ### method optionDomainsAlwaysInScope
  
  ```
  method optionDomainsAlwaysInScope() returns Mu
  
  ```
  
  Use view domainsAlwaysInScope instead.
  
  ### method optionDomainsAlwaysInScopeEnabled
  
  ```
  method optionDomainsAlwaysInScopeEnabled() returns Mu
  
  ```
  
  Use view domainsAlwaysInScope instead.
  
  ### method optionHandleODataParametersVisited
  
  ```
  method optionHandleODataParametersVisited() returns Mu
  
  ```
  
  No Doc
  
  ### method optionHandleParameters
  
  ```
  method optionHandleParameters() returns Mu
  
  ```
  
  No Doc
  
  ### method optionMaxChildren
  
  ```
  method optionMaxChildren() returns Mu
  
  ```
  
  Gets the maximum number of child nodes (per node) that can be crawled, 0 means no limit.
  
  ### method optionMaxDepth
  
  ```
  method optionMaxDepth() returns Mu
  
  ```
  
  Gets the maximum depth the spider can crawl, 0 if unlimited.
  
  ### method optionMaxDuration
  
  ```
  method optionMaxDuration() returns Mu
  
  ```
  
  No Doc
  
  ### method optionMaxParseSizeBytes
  
  ```
  method optionMaxParseSizeBytes() returns Mu
  
  ```
  
  Gets the maximum size, in bytes, that a response might have to be parsed.
  
  ### method optionMaxScansInUI
  
  ```
  method optionMaxScansInUI() returns Mu
  
  ```
  
  No Doc
  
  ### method optionParseComments
  
  ```
  method optionParseComments() returns Mu
  
  ```
  
  No Doc
  
  ### method optionParseGit
  
  ```
  method optionParseGit() returns Mu
  
  ```
  
  No Doc
  
  ### method optionParseRobotsTxt
  
  ```
  method optionParseRobotsTxt() returns Mu
  
  ```
  
  No Doc
  
  ### method optionParseSVNEntries
  
  ```
  method optionParseSVNEntries() returns Mu
  
  ```
  
  No Doc
  
  ### method optionParseSitemapXml
  
  ```
  method optionParseSitemapXml() returns Mu
  
  ```
  
  No Doc
  
  ### method optionPostForm
  
  ```
  method optionPostForm() returns Mu
  
  ```
  
  No Doc
  
  ### method optionProcessForm
  
  ```
  method optionProcessForm() returns Mu
  
  ```
  
  No Doc
  
  ### method optionRequestWaitTime
  
  ```
  method optionRequestWaitTime() returns Mu
  
  ```
  
  No Doc
  
  ### method optionScope
  
  ```
  method optionScope() returns Mu
  
  ```
  
  No Doc
  
  ### method optionScopeText
  
  ```
  method optionScopeText() returns Mu
  
  ```
  
  No Doc
  
  ### method optionSendRefererHeader
  
  ```
  method optionSendRefererHeader() returns Mu
  
  ```
  
  Gets whether or not the 'Referer' header should be sent while spidering.
  
  ### method optionShowAdvancedDialog
  
  ```
  method optionShowAdvancedDialog() returns Mu
  
  ```
  
  No Doc
  
  ### method optionSkipURLString
  
  ```
  method optionSkipURLString() returns Mu
  
  ```
  
  No Doc
  
  ### method optionThreadCount
  
  ```
  method optionThreadCount() returns Mu
  
  ```
  
  No Doc
  
  ### method optionUserAgent
  
  ```
  method optionUserAgent() returns Mu
  
  ```
  
  No Doc
  
  ### method results
  
  ```
  method results(
      :$scanId
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method scans
  
  ```
  method scans() returns Mu
  
  ```
  
  No Doc
  
  ### method status
  
  ```
  method status(
      :$scanId
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method addDomainAlwaysInScope
  
  ```
  method addDomainAlwaysInScope(
      :$value!,
      :$isRegex,
      :$isEnabled
  ) returns Mu
  
  ```
  
  Adds a new domain that's always in scope, using the specified value. Optionally sets if the new entry is enabled (default, true) and whether or not the new value is specified as a regex (default, false).
  
  ### method clearExcludedFromScan
  
  ```
  method clearExcludedFromScan() returns Mu
  
  ```
  
  Clears the regexes of URLs excluded from the spider scans.
  
  ### method disableAllDomainsAlwaysInScope
  
  ```
  method disableAllDomainsAlwaysInScope() returns Mu
  
  ```
  
  Disables all domains that are always in scope.
  
  ### method enableAllDomainsAlwaysInScope
  
  ```
  method enableAllDomainsAlwaysInScope() returns Mu
  
  ```
  
  Enables all domains that are always in scope.
  
  ### method excludeFromScan
  
  ```
  method excludeFromScan(
      :$regex!
  ) returns Mu
  
  ```
  
  Adds a regex of URLs that should be excluded from the spider scans.
  
  ### method modifyDomainAlwaysInScope
  
  ```
  method modifyDomainAlwaysInScope(
      :$idx!,
      :$value,
      :$isRegex,
      :$isEnabled
  ) returns Mu
  
  ```
  
  Modifies a domain that's always in scope. Allows to modify the value, if enabled or if a regex. The domain is selected with its index, which can be obtained with the view domainsAlwaysInScope.
  
  ### method pause
  
  ```
  method pause(
      :$scanId!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method pauseAllScans
  
  ```
  method pauseAllScans() returns Mu
  
  ```
  
  No Doc
  
  ### method removeAllScans
  
  ```
  method removeAllScans() returns Mu
  
  ```
  
  No Doc
  
  ### method removeDomainAlwaysInScope
  
  ```
  method removeDomainAlwaysInScope(
      :$idx!
  ) returns Mu
  
  ```
  
  Removes a domain that's always in scope, with the given index. The index can be obtained with the view domainsAlwaysInScope.
  
  ### method removeScan
  
  ```
  method removeScan(
      :$scanId!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method resume
  
  ```
  method resume(
      :$scanId!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method resumeAllScans
  
  ```
  method resumeAllScans() returns Mu
  
  ```
  
  No Doc
  
  ### method scan
  
  ```
  method scan(
      :$url,
      :$maxChildren,
      :$recurse,
      :$contextName,
      :$subtreeOnly
  ) returns Mu
  
  ```
  
  Runs the spider against the given URL (or context). Optionally, the 'maxChildren' parameter can be set to limit the number of children scanned, the 'recurse' parameter can be used to prevent the spider from seeding recursively, the parameter 'contextName' can be used to constrain the scan to a Context and the parameter 'subtreeOnly' allows to restrict the spider under a site's subtree (using the specified 'url').
  
  ### method scanAsUser
  
  ```
  method scanAsUser(
      :$contextId!,
      :$userId!,
      :$url,
      :$maxChildren,
      :$recurse,
      :$subtreeOnly
  ) returns Mu
  
  ```
  
  Runs the spider from the perspective of a User, obtained using the given Context ID and User ID. See 'scan' action for more details.
  
  ### method setOptionAcceptCookies
  
  ```
  method setOptionAcceptCookies(
      :$Boolean!
  ) returns Mu
  
  ```
  
  Sets whether or not a spider process should accept cookies while spidering.
  
  ### method setOptionHandleODataParametersVisited
  
  ```
  method setOptionHandleODataParametersVisited(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionHandleParameters
  
  ```
  method setOptionHandleParameters(
      :$String!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionMaxChildren
  
  ```
  method setOptionMaxChildren(
      :$Integer!
  ) returns Mu
  
  ```
  
  Sets the maximum number of child nodes (per node) that can be crawled, 0 means no limit.
  
  ### method setOptionMaxDepth
  
  ```
  method setOptionMaxDepth(
      :$Integer!
  ) returns Mu
  
  ```
  
  Sets the maximum depth the spider can crawl, 0 for unlimited depth.
  
  ### method setOptionMaxDuration
  
  ```
  method setOptionMaxDuration(
      :$Integer!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionMaxParseSizeBytes
  
  ```
  method setOptionMaxParseSizeBytes(
      :$Integer!
  ) returns Mu
  
  ```
  
  Sets the maximum size, in bytes, that a response might have to be parsed. This allows the spider to skip big responses/files.
  
  ### method setOptionMaxScansInUI
  
  ```
  method setOptionMaxScansInUI(
      :$Integer!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionParseComments
  
  ```
  method setOptionParseComments(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionParseGit
  
  ```
  method setOptionParseGit(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionParseRobotsTxt
  
  ```
  method setOptionParseRobotsTxt(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionParseSVNEntries
  
  ```
  method setOptionParseSVNEntries(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionParseSitemapXml
  
  ```
  method setOptionParseSitemapXml(
      :$Boolean!
  ) returns Mu
  
  ```
  
  No Doc
  
  ### method setOptionPostForm