Quantum Network Monitor

Quantum Network Monitor · GPT-Aktionen

Authenticated APIs

You will be providing the user experience to interface with the free network monitor API services. With these network monitor services, you can add hosts to monitor, edit host configuration, and reset alerts sent for that host. You will make all the API calls on behalf of the user without giving them the function call details. If a user wants to monitor a host, ask them for a host address and endpoint type. If the user wants to edit a host, ask them for the host address to edit; you can use this to lookup the host id (MonitorIPID) if necessary. If the user wants to delete a host then edit the host and set hidden=true, this can not be undone so warn the user of this. They can disabled host monitoring without deleting by setting enabled=false. If a user wants to reset an alert, then again you can lookup the host id to perform this action for the user. The data structure of the backend is: There is a set of data sets (DataSet). Each data set represents data for a time range, typically 6 hours. Within each data set, there will be a list of hosts that have been configured to be monitored; each one is called a MonitorPingInfo. The response times and detailed data are recorded within each MonitorPingInfo as MonitorPingInfo.PingInfos. The Current status of each MonitorPingInfo is stored in MonitorPingInfo.MonitorStatus. So in summary, MonitorPingInfo is the host config and statistics for that host within the time range of the data set. MonitorPingInfo.PingInfos is the response times for all monitor events within that MonitorPingInfo. MonitorPingInfo.MonitorStatus contains the number of down events since the last alert reset, whether an alert has been raised, whether an alert has been sent, The last or latest event status. In order to help the user if they ask for detail response or status then quering MonitorPingInfo.PingInfos gives the most detail. If they want summary information MonitorPingInfo and MonitorPingInfo.Status is useful. Look out for long list of data and paginated where the API allows.Use Date range filters to limit returned data so you can process that data for the user. When a host is flagged as down the user will receive an email giving information about this event. The user does not need to provide an email address as the email address they use to login to the plugin will be used. A users email address must be verified to receive email alerts. Ask the user to check spam folder as this may prevent them from receiving alerts. If it is a Gmail address then verification is not necessary but being flagged as spam could be a problem.

  • POST /Alerts/ResetAlertReset alerts for host with ID for the authorised user . Required host ID.

    Reset Alert for Host {"iD" : 1234 }

  • POST /Alerts/ResetAllAlertsForUserReset all alerts for all hosts for the authorised user .
  • GET /HostConfig/GetAvailableEndpointTypesGet available endpoint types with user-friendly field names wrapped in ResultObj.
  • POST /HostConfig/AddHostGPTAuthAdd a new host for the authorised user; Address, EndPointType are required fields.

    Add a host example {"address": "https://example.com","endPointType": "http"}

  • POST /HostConfig/EditHostGPTAuthEdit a host for an authorised user. Required fields MonitorIPID . Other supplied fields will be updated.

    Edit a host {"monitorIPID" : 1234 , "setEndPointType": "http"}

  • POST /HostData/GetHostDataByDataSetIDAuthGet summary of host monitoring data (MonitorPingInfos : array of MonitorPingInfo) for a given DataSetId. All input and output times are UTC.

    Include monitorPingInfoQuery to filter the results on , EndPointType etc. Sample post data: { "dataSetId": 1 ,"pageNumber" : 2, "pageSize" :30 }

  • POST /HostData/GetHostDataByHostAddressAuthGet summary of host monitoring data (MonitorPingInfos : array of MonitorPingInfo) for a given a hostAddress="Host Address". All input and output times are UTC.

    Sample post data: { "hostAddress": "freenetworkmonitor.click", "dateStart": "2023-07-15T00:00:00Z","dateEnd": "2023-07-15T23:59:59Z"}

  • POST /HostInfo/GetMonitorIPsWithFilterAuthGet a filtered list of Hosts configuration (MonitorIPs : array of MonitorIP) IT DOES NOT RETURN MONITOR DATA ONLY HOST CONFIGURATION.

    Add monitorIPQuery to filter the results. Sample post data: {"address" : "host.com"}

  • POST /HostInfo/GetMonitorIPsFromUserIDGPTGet a list of Hosts configuration (MonitorIPs : array of MonitorIP). IT DOES NOT RETURN MONITOR DATA ONLY HOST CONFIGURATION.
  • POST /Monitor/GetFilteredProcessorListAuthGet a List of all Agents available to the user. This includes the internet agents and the local agents the user has installed and authorized. Note the agents are identified with AppID. This can be used when adding hosts to use the agent for monitoring the given hosts.
  • POST /Monitor/GetDataSetsByDateGPTGet a List of DataSets for a give date range.

    Returns array of data sets given a start and end datetime. use date format ISO 8601. Use a DataSetId to lookup host data for that datetime. DataSetId zero is the current data.

  • GET /Monitor/GetProductsAuthGet available network monitor subscription product information. Prices are in dolars. Includes a link to pay for the subscription.
  • POST /Penetration/IsFunctionCompletedCheck the status of a function call with messageID

    Example request: { "messageID": "84ab1c49-e8f2-4bb0-b347-06a3713c4fff", }

  • POST /Penetration/RunNmapScanExecute an Nmap scan on a specified target.

    Example request: { "scan_options": "-sV", "target": "192.168.1.1", "agent_location": "Scanner - EU", "number_lines": 100, "page": 1 }

  • POST /Penetration/RunOpenSSLExecute an OpenSSL command on a target

    Example request: { "command_options": "s_client -showcerts", "target": "test.com", "agent_location": "Scanner - US", "number_lines": 100, "page": 1 }

  • POST /Penetration/RunBusyboxRun a BusyBox command for various system or network diagnostics

    Example request: { "command": "ifconfig", "agent_location": "Scanner - EU", "number_lines": 10, "page": 1 }

  • POST /Penetration/RunMetasploitExecute a Metasploit command on a specified target

    Example request: { "module_name": "exploit/windows/smb/ms17_010_eternalblue", "target": "192.168.1.1", "agent_location": "Scanner - EU", "number_lines": 10, "page": 1 }

  • POST /Penetration/CancelFunctionsCancel running functions given a message_id.

    Example request: { "message_id": "84ab1c49" }

  • POST /Penetration/GetCmdProcessorListGet a list of command processors available for a given agent.

    Example request: { "agent_location": "Scanner - EU" }

  • POST /Penetration/GetCmdProcessorHelpGet help information for a specific cmd processor type on a given agent.

    Example request: { "cmd_processor_type": "MyCustomProcessor", "agent_location": "Scanner - US" }

  • POST /Penetration/GetCmdProcessorSourceCodeGet the source code for a specific cmd processor type on a given agent.

    Example request: { "cmd_processor_type": "MyCustomProcessor", "agent_location": "Scanner - US" }

  • POST /Penetration/AddCmdProcessorAdd or update a cmd processor with provided source code to an agent.

    Example request: { "cmd_processor_type": "MyCustomProcessor", "source_code": "...", "agent_location": "Scanner - US" }

  • POST /Penetration/RunCmdProcessorRun a previously added cmd processor on a given agent.

    Example request: { "cmd_processor_type": "MyCustomProcessor", "arguments": "-p 80 -v", "agent_location": "Scanner - US" }

  • POST /Penetration/DeleteCmdProcessorDelete a cmd processor from an agent.

    Example request: { "cmd_processor_type": "MyCustomProcessor", "agent_location": "Scanner - US" }

  • POST /Penetration/SearchMetasploitModulesSearch for Metasploit modules using msfconsole's search command. Provide any combination of search filters to narrow down the results. This function constructs the msfconsole search command based on the provided parameters.

    Example request: { "module_type": "exploit", "platform": "windows", "architecture": "x64", "cve": "CVE-2017-0144", "keywords": "eternalblue", "number_lines": 20, "page": 1 }

  • POST /Penetration/GetMetasploitModuleInfoRetrieve detailed information about a specific Metasploit module.

    Example request: { "module_name": "exploit/windows/smb/ms17_010_eternalblue" }

  • POST /ResponseTime/GetHostResonseObjAuthGet a detailed list of Response information and statistics. Select response times for a given MonitorPingInfo.MonitorPingInfoID . Note all sent and received times are UTC.

    Example query { "monitorPingInfoID": 124} . Each PingInfo contains data about a monitoring event (response time , status, event datetime etc.).

  • POST /ResponseTime/GetHostResponseObjByDateRangeAuthGet a detailed list of Response information and statistics data for a date range and MonitorPingInfoID or Host Address. Note all sent and received times are UTC.

    Example query { "Address": "test.com","startDate": "2023-09-01T07:50:00Z","endDate": "2023-09-01T08:00:00Z"} . Each PingInfo contains data about a monitoring event (response time , status, event datetime etc.). Returns a list of PingInfo objects within the provided start and end date range.

  • POST /UserConfig/GetUserInfoGet information about an authorised user.
  • POST /UserConfig/GetUserPingInfoTarCreates a link to a web page that contains a link to a tar archive with all user data brotli zipped into files within the archive.
Ursprüngliches API-Schema
{
  "openapi": "3.1.0",
  "info": {
    "title": "Authenticated APIs",
    "description": "You will be providing the user experience to interface with the free network monitor API services. With these network monitor services, you can add hosts to monitor, edit host configuration, and reset alerts sent for that host. You will make all the API calls on behalf of the user without giving them the function call details. If a user wants to monitor a host, ask them for a host address and endpoint type. If the user wants to edit a host, ask them for the host address to edit; you can use this to lookup the host id (MonitorIPID) if necessary. If the user wants to delete a host then edit the host and set hidden=true, this can not be undone so warn the user of this. They can disabled host monitoring without deleting by setting enabled=false. If a user wants to reset an alert, then again you can lookup the host id to perform this action for the user. The data structure of the backend is: There is a set of data sets (DataSet). Each data set represents data for a time range, typically 6 hours. Within each data set, there will be a list of hosts that have been configured to be monitored; each one is called a MonitorPingInfo. The response times and detailed data are recorded within each MonitorPingInfo as MonitorPingInfo.PingInfos. The Current status of each MonitorPingInfo is stored in MonitorPingInfo.MonitorStatus. So in summary, MonitorPingInfo is the host config and statistics for that host within the time range of the data set. MonitorPingInfo.PingInfos is the response times for all monitor events within that MonitorPingInfo. MonitorPingInfo.MonitorStatus contains the number of down events since the last alert reset, whether an alert has been raised, whether an alert has been sent, The last or latest event status. In order to help the user if they ask for detail response or status then quering MonitorPingInfo.PingInfos gives the most detail. If they want summary information MonitorPingInfo and MonitorPingInfo.Status is useful. Look out for long list of data and paginated where the API allows.Use Date range filters to limit returned data so you can process that data for the user. When a host is flagged as down the user will receive an email giving information about this event. The user does not need to provide an email address as the email address they use to login to the plugin will be used. A users email address must be verified to receive email alerts. Ask the user to check spam folder as this may prevent them from receiving alerts. If it is a Gmail address then verification is not necessary but being flagged as spam could be a problem.",
    "termsOfService": "https://monitorgptoauth.readyforquantum.com/privacypolicy.html",
    "contact": {
      "name": "Mahadeva Cottrell",
      "email": "support@mahadeva.co.uk"
    },
    "license": {
      "name": "Free Network Monitor License",
      "url": "https://monitorgptoauth.readyforquantum.com/license.html"
    },
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://monitorgptoauth.readyforquantum.com"
    }
  ],
  "paths": {
    "/Alerts/ResetAlert": {
      "post": {
        "tags": [
          "Alerts"
        ],
        "summary": "Reset alerts for host with ID for the authorised user . Required host ID.",
        "description": "Reset Alert for Host {\"iD\" : 1234 }",
        "operationId": "ResetAlert",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MonitorIP"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Returns a result object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "If the ent data is null or is unable to be converted to a MonitorIP",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Alerts/ResetAllAlertsForUser": {
      "post": {
        "tags": [
          "Alerts"
        ],
        "summary": "Reset all alerts for all hosts for the authorised user .",
        "operationId": "ResetAllAlertsForUser",
        "responses": {
          "201": {
            "description": "Returns a result object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/HostConfig/GetAvailableEndpointTypes": {
      "get": {
        "tags": [
          "HostConfig"
        ],
        "summary": "Get available endpoint types with user-friendly field names wrapped in ResultObj.",
        "operationId": "GetAvailableEndpointTypes",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EndpointTypeListTResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EndpointTypeListTResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EndpointTypeListTResultObj"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/HostConfig/AddHostGPTAuth": {
      "post": {
        "tags": [
          "HostConfig"
        ],
        "summary": "Add a new host for the authorised user; Address, EndPointType are required fields.",
        "description": "Add a host example {\"address\": \"https://example.com\",\"endPointType\": \"http\"}",
        "operationId": "AddHostGPTAuth",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MonitorIP"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Returns a result object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorIPTResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorIPTResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorIPTResultObj"
                }
              }
            }
          },
          "400": {
            "description": "If the sent data is null or is unable to be converted to a MonitorIP",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/HostConfig/EditHostGPTAuth": {
      "post": {
        "tags": [
          "HostConfig"
        ],
        "summary": "Edit a host for an authorised user. Required fields MonitorIPID . Other supplied fields will be updated.",
        "description": "Edit a host  {\"monitorIPID\" : 1234 , \"setEndPointType\": \"http\"}",
        "operationId": "EditHostGPTAuth",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditHost"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Returns a result object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorIPTResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorIPTResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorIPTResultObj"
                }
              }
            }
          },
          "400": {
            "description": "If the sent data is null or is unable to be converted to a EditHost",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/HostData/GetHostDataByDataSetIDAuth": {
      "post": {
        "tags": [
          "HostData"
        ],
        "summary": "Get  summary of host monitoring data  (MonitorPingInfos : array of MonitorPingInfo) for a given DataSetId. All input and output times are UTC.",
        "description": "Include monitorPingInfoQuery to filter the results on , EndPointType  etc.\r\nSample post data: { \"dataSetId\": 1 ,\"pageNumber\" : 2, \"pageSize\" :30 }",
        "operationId": "GetHostDataByDataSetIDAuth",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MonitorPingInfoQuery"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Returns a result object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorPingInfoListMonitorPingInfoQueryTResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorPingInfoListMonitorPingInfoQueryTResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorPingInfoListMonitorPingInfoQueryTResultObj"
                }
              }
            }
          },
          "400": {
            "description": "If the sent data is null or is unable to be converted to a MonitorPingInfoQuery",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/HostData/GetHostDataByHostAddressAuth": {
      "post": {
        "tags": [
          "HostData"
        ],
        "summary": "Get  summary of host monitoring data  (MonitorPingInfos : array of MonitorPingInfo) for a given a hostAddress=\"Host Address\". All input and output times are UTC.",
        "description": "Sample post data: { \"hostAddress\": \"freenetworkmonitor.click\", \"dateStart\": \"2023-07-15T00:00:00Z\",\"dateEnd\": \"2023-07-15T23:59:59Z\"}",
        "operationId": "GetHostDataByHostAddressAuth",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MonitorPingInfoQuery"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Returns a result object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorPingInfoListMonitorPingInfoQueryTResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorPingInfoListMonitorPingInfoQueryTResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorPingInfoListMonitorPingInfoQueryTResultObj"
                }
              }
            }
          },
          "400": {
            "description": "If the sent data is null or is unable to be converted to a MonitorPingInfoQuery",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/HostInfo/GetMonitorIPsWithFilterAuth": {
      "post": {
        "tags": [
          "HostInfo"
        ],
        "summary": "Get a filtered list of Hosts configuration (MonitorIPs : array of MonitorIP) IT DOES NOT RETURN MONITOR DATA ONLY HOST CONFIGURATION.",
        "description": "Add monitorIPQuery to filter the results.\r\nSample post data: {\"address\" : \"host.com\"}",
        "operationId": "GetMonitorIPsWithFilterAuth",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MonitorIPQuery"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Returns a result object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorIPListTResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorIPListTResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorIPListTResultObj"
                }
              }
            }
          },
          "400": {
            "description": "If the sent data is null or is unable to be converted to a MonitorIPQuery",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/HostInfo/GetMonitorIPsFromUserIDGPT": {
      "post": {
        "tags": [
          "HostInfo"
        ],
        "summary": "Get a list of Hosts configuration (MonitorIPs : array of MonitorIP). IT DOES NOT RETURN MONITOR DATA ONLY HOST CONFIGURATION.",
        "operationId": "GetMonitorIPsFromUserIDGPT",
        "responses": {
          "201": {
            "description": "Returns a result object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "If the UserInfo is null or is unable to be converted to a UserInfo",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Monitor/GetFilteredProcessorListAuth": {
      "post": {
        "tags": [
          "Monitor"
        ],
        "summary": "Get a List of all Agents available to the user. This includes the internet agents and the local agents the user has installed and authorized. Note the agents are identified with AppID. This can be used when adding hosts to use the agent for monitoring the given hosts.",
        "operationId": "GetFilteredProcessorListAuth",
        "responses": {
          "201": {
            "description": "Returns a result object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessorObjListTResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessorObjListTResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessorObjListTResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Monitor/GetDataSetsByDateGPT": {
      "post": {
        "tags": [
          "Monitor"
        ],
        "summary": "Get a List of DataSets for a give date range.",
        "description": "Returns array of data sets given a start and end datetime. use date format ISO 8601. Use a DataSetId to lookup host data for that datetime. DataSetId zero is the current data.",
        "operationId": "GetDataSetsByDateGPT",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SentDateData"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Returns a result object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "If the sent data is null or is unable to be converted to a SentDateData",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Monitor/GetProductsAuth": {
      "get": {
        "tags": [
          "Monitor"
        ],
        "summary": "Get available network monitor subscription product information. Prices are in dolars. Includes a link to pay for the subscription.",
        "operationId": "GetProductsAuth",
        "responses": {
          "201": {
            "description": "Returns a result object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductObjListTResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductObjListTResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductObjListTResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/IsFunctionCompleted": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Check the status of a function call with messageID",
        "description": "Example request:\r\n{ \r\n    \"messageID\": \"84ab1c49-e8f2-4bb0-b347-06a3713c4fff\",\r\n}",
        "operationId": "IsFunctionCompleted",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IsFunctionCompletedRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IsFunctionCompletedRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IsFunctionCompletedRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "201": {
            "description": "Returns result as a JSON object"
          },
          "400": {
            "description": "If the input is invalid, such as missing required parameters",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/RunNmapScan": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Execute an Nmap scan on a specified target.",
        "description": "Example request:\r\n{ \r\n    \"scan_options\": \"-sV\",\r\n    \"target\": \"192.168.1.1\", \r\n    \"agent_location\": \"Scanner - EU\", \r\n    \"number_lines\": 100,\r\n    \"page\": 1 \r\n}",
        "operationId": "RunNmapScan",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NmapRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/NmapRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/NmapRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/RunOpenSSL": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Execute an OpenSSL command on a target",
        "description": "Example request:\r\n{ \r\n    \"command_options\": \"s_client -showcerts\", \r\n    \"target\": \"test.com\", \r\n    \"agent_location\": \"Scanner - US\",\r\n    \"number_lines\": 100,\r\n    \"page\": 1 \r\n}",
        "operationId": "RunOpenSSL",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OpensslRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OpensslRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OpensslRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/RunBusybox": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Run a BusyBox command for various system or network diagnostics",
        "description": "Example request:\r\n{ \r\n    \"command\": \"ifconfig\", \r\n    \"agent_location\": \"Scanner - EU\",\r\n    \"number_lines\": 10,\r\n    \"page\": 1 \r\n}",
        "operationId": "RunBusybox",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BusyboxRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BusyboxRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BusyboxRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/RunMetasploit": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Execute a Metasploit command on a specified target",
        "description": "Example request:\r\n{ \r\n    \"module_name\": \"exploit/windows/smb/ms17_010_eternalblue\", \r\n    \"target\": \"192.168.1.1\", \r\n    \"agent_location\": \"Scanner - EU\",\r\n    \"number_lines\": 10,\r\n    \"page\": 1 \r\n}",
        "operationId": "RunMetasploit",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MetasploitRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MetasploitRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MetasploitRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/CancelFunctions": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Cancel running functions given a message_id.",
        "description": "Example request:\r\n{\r\n    \"message_id\": \"84ab1c49\"\r\n}",
        "operationId": "CancelFunctions",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelFunctionsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelFunctionsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CancelFunctionsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/GetCmdProcessorList": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Get a list of command processors available for a given agent.",
        "description": "Example request:\r\n{\r\n    \"agent_location\": \"Scanner - EU\"\r\n}",
        "operationId": "GetCmdProcessorList",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetCmdProcessorListRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetCmdProcessorListRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetCmdProcessorListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/GetCmdProcessorHelp": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Get help information for a specific cmd processor type on a given agent.",
        "description": "Example request:\r\n{\r\n    \"cmd_processor_type\": \"MyCustomProcessor\",\r\n    \"agent_location\": \"Scanner - US\"\r\n}",
        "operationId": "GetCmdProcessorHelp",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetCmdProcessorHelpRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetCmdProcessorHelpRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetCmdProcessorHelpRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/GetCmdProcessorSourceCode": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Get the source code for a specific cmd processor type on a given agent.",
        "description": "Example request:\r\n{\r\n    \"cmd_processor_type\": \"MyCustomProcessor\",\r\n    \"agent_location\": \"Scanner - US\"\r\n}",
        "operationId": "GetCmdProcessorSourceCode",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetCmdProcessorSourceCodeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetCmdProcessorSourceCodeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetCmdProcessorSourceCodeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/AddCmdProcessor": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Add or update a cmd processor with provided source code to an agent.",
        "description": "Example request:\r\n{\r\n    \"cmd_processor_type\": \"MyCustomProcessor\",\r\n    \"source_code\": \"...\", \r\n    \"agent_location\": \"Scanner - US\"\r\n}",
        "operationId": "AddCmdProcessor",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddCmdProcessorRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddCmdProcessorRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddCmdProcessorRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/RunCmdProcessor": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Run a previously added cmd processor on a given agent.",
        "description": "Example request:\r\n{\r\n    \"cmd_processor_type\": \"MyCustomProcessor\",\r\n    \"arguments\": \"-p 80 -v\", \r\n    \"agent_location\": \"Scanner - US\"\r\n}",
        "operationId": "RunCmdProcessor",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RunCmdProcessorRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RunCmdProcessorRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RunCmdProcessorRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/DeleteCmdProcessor": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Delete a cmd processor from an agent.",
        "description": "Example request:\r\n{\r\n    \"cmd_processor_type\": \"MyCustomProcessor\",\r\n    \"agent_location\": \"Scanner - US\"\r\n}",
        "operationId": "DeleteCmdProcessor",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteCmdProcessorRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteCmdProcessorRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteCmdProcessorRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/SearchMetasploitModules": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Search for Metasploit modules using msfconsole's search command. Provide any combination of search filters to narrow down the results. This function constructs the msfconsole search command based on the provided parameters.",
        "description": "Example request:\r\n{\r\n    \"module_type\": \"exploit\",\r\n    \"platform\": \"windows\",\r\n    \"architecture\": \"x64\",\r\n    \"cve\": \"CVE-2017-0144\",\r\n    \"keywords\": \"eternalblue\",\r\n    \"number_lines\": 20,\r\n    \"page\": 1\r\n}",
        "operationId": "SearchMetasploitModules",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchMetasploitModulesRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchMetasploitModulesRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SearchMetasploitModulesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/Penetration/GetMetasploitModuleInfo": {
      "post": {
        "tags": [
          "Penetration"
        ],
        "summary": "Retrieve detailed information about a specific Metasploit module.",
        "description": "Example request:\r\n{\r\n    \"module_name\": \"exploit/windows/smb/ms17_010_eternalblue\"\r\n}",
        "operationId": "GetMetasploitModuleInfo",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetMetasploitModuleInfoRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetMetasploitModuleInfoRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetMetasploitModuleInfoRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/ResponseTime/GetHostResonseObjAuth": {
      "post": {
        "tags": [
          "ResponseTime"
        ],
        "summary": "Get a detailed list of Response information and statistics. Select response times for a given MonitorPingInfo.MonitorPingInfoID . Note all sent and received times are UTC.",
        "description": "Example query { \"monitorPingInfoID\": 124} . Each PingInfo contains data about a monitoring event (response time , status, event datetime etc.).",
        "operationId": "GetHostResonseObjAuth",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SentUserData"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Returns a result object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/HostResponseObjSentUserDataTResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostResponseObjSentUserDataTResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostResponseObjSentUserDataTResultObj"
                }
              }
            }
          },
          "400": {
            "description": "If the SentUserData is null or is unable to be converted to a SentUserData",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/ResponseTime/GetHostResponseObjByDateRangeAuth": {
      "post": {
        "tags": [
          "ResponseTime"
        ],
        "summary": "Get a detailed list of Response information and statistics data for a date range and MonitorPingInfoID or Host Address. Note all sent and received times are UTC.",
        "description": "Example query { \"Address\": \"test.com\",\"startDate\": \"2023-09-01T07:50:00Z\",\"endDate\": \"2023-09-01T08:00:00Z\"} . Each PingInfo contains data about a monitoring event (response time , status, event datetime etc.). \r\nReturns a list of PingInfo objects within the provided start and end date range.",
        "operationId": "GetHostResponseObjByDateRangeAuth",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DateRangeQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DateRangeQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DateRangeQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns the PingInfo data"
          },
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/HostResponseObjTResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostResponseObjTResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostResponseObjTResultObj"
                }
              }
            }
          },
          "400": {
            "description": "If parameters are invalid",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/UserConfig/GetUserInfo": {
      "post": {
        "tags": [
          "UserConfig"
        ],
        "summary": "Get information about an authorised user.",
        "operationId": "GetUserInfo",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserInfo"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Returns a result object",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserInfoTResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserInfoTResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserInfoTResultObj"
                }
              }
            }
          },
          "400": {
            "description": "If the sent data is null or is unable to be converted to a UserInfo",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    },
    "/UserConfig/GetUserPingInfoTar": {
      "post": {
        "tags": [
          "UserConfig"
        ],
        "summary": "Creates a link to a web page that contains a link to a tar archive with all user data brotli zipped into files within the archive.",
        "operationId": "GetUserPingInfoTar",
        "responses": {
          "201": {
            "description": "Returns a link",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultObj"
                }
              }
            }
          },
          "400": {
            "description": "Failed to create link",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-openai-isConsequential": false
      }
    }
  },
  "components": {
    "schemas": {
      "AddCmdProcessorRequest": {
        "type": "object",
        "properties": {
          "cmdProcessorType": {
            "type": "string",
            "nullable": true
          },
          "sourceCode": {
            "type": "string",
            "nullable": true
          },
          "agentLocation": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BusyboxRequest": {
        "type": "object",
        "properties": {
          "command": {
            "type": "string",
            "nullable": true
          },
          "agentLocation": {
            "type": "string",
            "nullable": true
          },
          "numberLines": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CancelFunctionsRequest": {
        "type": "object",
        "properties": {
          "messageId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DateRangeQuery": {
        "type": "object",
        "properties": {
          "monitorIPID": {
            "type": "integer",
            "description": "MonitorIPID or Host ID to filter PingInfos by.",
            "format": "int32",
            "nullable": true
          },
          "monitorPingInfoID": {
            "type": "integer",
            "description": "MonitorPingInfoID to filter PingInfos by.",
            "format": "int32",
            "nullable": true
          },
          "address": {
            "type": "string",
            "description": "Address to filter PingInfos by.",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "Start date for the range filter. This is assumed to be UTC.\r\nWill be converted to integer for querying.",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "End date for the range filter. This is assumed to be UTC.\r\nWill be converted to integer for querying.",
            "format": "date-time",
            "nullable": true
          },
          "user": {
            "$ref": "#/components/schemas/UserInfo"
          },
          "prompt": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for fetching PingInfo data by date range and MonitorPingInfo."
      },
      "DeleteCmdProcessorRequest": {
        "type": "object",
        "properties": {
          "cmdProcessorType": {
            "type": "string",
            "nullable": true
          },
          "agentLocation": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DetectionResult": {
        "type": "object",
        "properties": {
          "isIssueDetected": {
            "type": "boolean"
          },
          "numberOfDetections": {
            "type": "integer",
            "format": "int32"
          },
          "isDataLimited": {
            "type": "boolean"
          },
          "averageScore": {
            "type": "number",
            "format": "double"
          },
          "minPValue": {
            "type": "number",
            "format": "double"
          },
          "maxMartingaleValue": {
            "type": "number",
            "format": "double"
          },
          "indexOfFirstDetection": {
            "type": "integer",
            "format": "int32"
          },
          "result": {
            "$ref": "#/components/schemas/ResultObj"
          }
        },
        "additionalProperties": false
      },
      "EditHost": {
        "type": "object",
        "properties": {
          "editAuthKey": {
            "type": "string",
            "description": "This is a string that is used to authenticate the Edit action for non authorised users. This key is returned when adding a host for the first time (IsEdit=false). It should be stored and sent with subsequent edit requests.\r\nNote authenticated users do not need this.",
            "nullable": true
          },
          "addUserEmail": {
            "type": "string",
            "description": "If the user is default then AddUserEmail is used to identify different users. \r\nIf the user is authenticated this field is not necessary.",
            "nullable": true
          },
          "userID": {
            "type": "string",
            "description": "The userId of the user editing the host.",
            "nullable": true
          },
          "monitorIPID": {
            "type": "integer",
            "description": "This is the host ID used for identifying the host actions on the host.",
            "format": "int32"
          },
          "setEnabled": {
            "type": "boolean",
            "description": "On editting set the Enabled field.",
            "nullable": true
          },
          "setAddress": {
            "type": "string",
            "description": "On editting set the host address and hostname of the host.",
            "nullable": true
          },
          "setEndPointType": {
            "type": "string",
            "description": "On Editting set the end point type. Example : http is a website ping, https is a ssl certificate check, httphtml is a website html load, icmp is a host ping, dns is a dns lookup, smtp is an email server helo message confirmation, quantum is a quantum safe encryption test, rawconnect is a low level raw socket connection.",
            "nullable": true
          },
          "setPort": {
            "type": "integer",
            "description": "On editting set the port of the service being monitored on edit. It should be zero if it is the standard port for the host end point type.",
            "format": "int32",
            "nullable": true
          },
          "setTimeout": {
            "type": "integer",
            "description": "On editting set the time to wait for a timeout in milliseconds. If a timeout occurs the host is considered to be down or the test has failed.",
            "format": "int32",
            "nullable": true
          },
          "setHidden": {
            "type": "boolean",
            "description": "On editting set if the host is hidden. Setting this to true effectively deletes the host from future monitoring. Historic data will still be available on the web interface.",
            "nullable": true
          },
          "setUsername": {
            "type": "string",
            "description": "On editting set the authentication username for connection to the host.",
            "nullable": true
          },
          "setPassword": {
            "type": "string",
            "description": "On editting set the authentication password for connection to the host.",
            "nullable": true
          },
          "prompt": {
            "type": "string",
            "nullable": true
          },
          "setAppID": {
            "type": "string",
            "description": "Set the Agent ID (AppID) .  For internet monitors this can be 1 for agent located at London - UK , 2 for Kansas - USA, 3 for Berlin - Germany. If it is a local agent then the AppID will be the same as UserInfo.UserID .",
            "nullable": true
          },
          "setAgentLocation": {
            "type": "string",
            "description": "Set The monitoring agents location for the host. The format is 'City - Country' for internet based agents. For local agents the format is 'emailaddress - agentid'.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "This class holds data that is used to edit hosts."
      },
      "EndpointType": {
        "type": "object",
        "properties": {
          "internalType": {
            "type": "string",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EndpointTypeListTResultObj": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Message containing important information about the status of this Api call.",
            "nullable": true
          },
          "success": {
            "type": "boolean",
            "description": "Was the Api call successful."
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EndpointType"
            },
            "description": "The data return by the Api for consumption by the caller.",
            "nullable": true
          },
          "sentData": {
            "type": "string",
            "description": "Contains the data sent to the Api. It may contain extra fields added during processing by the Api. These can be used to help define the next call to the Api.",
            "nullable": true
          },
          "hasMorePages": {
            "type": "boolean",
            "description": "If there are more pages then query again. Repeat until this field return false or null;",
            "nullable": true
          },
          "dataFileUrl": {
            "type": "string",
            "description": "The url of a link to the Data returned with this result.",
            "nullable": true
          },
          "messageHeader": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetCmdProcessorHelpRequest": {
        "type": "object",
        "properties": {
          "cmdProcessorType": {
            "type": "string",
            "nullable": true
          },
          "agentLocation": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetCmdProcessorListRequest": {
        "type": "object",
        "properties": {
          "agentLocation": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetCmdProcessorSourceCodeRequest": {
        "type": "object",
        "properties": {
          "cmdProcessorType": {
            "type": "string",
            "nullable": true
          },
          "agentLocation": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetMetasploitModuleInfoRequest": {
        "type": "object",
        "properties": {
          "moduleName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "HostResponseObj": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "monitorPingInfoID": {
            "type": "integer",
            "description": "The ID used to identify this MonitorPingInfo object.",
            "format": "int32",
            "readOnly": true
          },
          "dataSetID": {
            "type": "integer",
            "description": "The Data set id that this host data is contained within.",
            "format": "int32"
          },
          "status": {
            "maxLength": 255,
            "type": "string",
            "description": "The current or last status of the host. Taken from monitorStatus.Message.",
            "nullable": true
          },
          "monitorIPID": {
            "type": "integer",
            "format": "int32"
          },
          "timeout": {
            "type": "integer",
            "format": "int32"
          },
          "host": {
            "type": "string",
            "description": "The host name. This is the same as the Address.",
            "nullable": true,
            "readOnly": true
          },
          "address": {
            "maxLength": 512,
            "type": "string",
            "description": "host address.",
            "nullable": true
          },
          "port": {
            "type": "integer",
            "description": "the port used if not the default for this type of end point and host.",
            "format": "int32"
          },
          "userID": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "username": {
            "maxLength": 512,
            "type": "string",
            "description": "Username for host authentication.",
            "nullable": true
          },
          "password": {
            "maxLength": 512,
            "type": "string",
            "description": "Password for host authentication.",
            "nullable": true
          },
          "endPointType": {
            "maxLength": 10,
            "type": "string",
            "description": "The endpoint type. Endpoint types are: quantum is a quantum safe encryption test, http is a website ping, https is an SSL certificate check, httphtml is a website HTML load, icmp is a host ping, dns is a DNS lookup, smtp is an email server helo message confirmation, rawconnect is a low-level raw socket connection, nmap is a nmap service scan of the host, nmapvuln is a nmap vulnerability scan of the host and crawlsite performs a simulated user crawl of the site that generates site traffic using chrome browser.",
            "nullable": true
          },
          "packetsRecieved": {
            "type": "integer",
            "description": "The total number of host up or event success for this host in this data set.",
            "format": "int32"
          },
          "packetsLost": {
            "type": "integer",
            "description": "The total number of host down or event failed for the host in this data set.",
            "format": "int32"
          },
          "packetsLostPercentage": {
            "type": "number",
            "description": "The percentage of host down or event failed for the host in this data set.",
            "format": "float"
          },
          "roundTripTimeMaximum": {
            "type": "integer",
            "description": "The maximum response time of the host in this data set.",
            "format": "int32"
          },
          "roundTripTimeAverage": {
            "type": "number",
            "description": "Average response time for this host in this data set.",
            "format": "float"
          },
          "roundTripTimeTotal": {
            "type": "integer",
            "description": "Total of all the response times for all packets sent to this host in this data set.",
            "format": "int32"
          },
          "packetsSent": {
            "type": "integer",
            "description": "Total number of packets sent in this data set for the host.",
            "format": "int32"
          },
          "enabled": {
            "type": "boolean"
          },
          "appID": {
            "maxLength": 255,
            "type": "string",
            "description": "The Monitoring agent ID. For internet monitors this can be 1 for agent located at London - UK , 2 for Kansas - USA, 3 for Berlin - Germany. If it is a local agent then the AppID will be the UserInfo.UserID .",
            "nullable": true
          },
          "dateStarted": {
            "type": "string",
            "description": "At which UTC time was this data set started.",
            "format": "date-time"
          },
          "dateEnded": {
            "type": "string",
            "description": "At which UTC time does this data set end.",
            "format": "date-time",
            "nullable": true
          },
          "roundTripTimeMinimum": {
            "type": "integer",
            "format": "int32"
          },
          "monitorStatus": {
            "$ref": "#/components/schemas/StatusObj"
          },
          "predictStatus": {
            "$ref": "#/components/schemas/PredictStatus"
          },
          "pingInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PingInfo"
            },
            "description": "A list of PingInfo data for this host. Contains response times and IsUp for each monitor event.",
            "nullable": true
          },
          "isDirtyDownCount": {
            "type": "boolean"
          },
          "addUserEmail": {
            "maxLength": 255,
            "type": "string",
            "description": "The email address to which to send alerts for this host.",
            "nullable": true
          },
          "isEmailVerified": {
            "type": "boolean",
            "description": "Is the email address to set alerts to for this host verified."
          },
          "messageForUser": {
            "type": "string",
            "description": "This message should be displayed to the user. It will contain addtional information about the host.",
            "nullable": true
          },
          "isArchived": {
            "type": "boolean",
            "description": "Has the response data been archived for this MonitorPingInfo."
          },
          "agentLocation": {
            "type": "string",
            "description": "The location of the monitoring agent for this host.",
            "nullable": true
          },
          "pingInfosDTO": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PingInfoDTO"
            },
            "description": "A list of Response data formatted in a human readable form. Status as a string, The time of the event and the response time.",
            "nullable": true
          },
          "roundTripTimeStandardDeviation": {
            "type": "number",
            "format": "float"
          },
          "successfulPings": {
            "type": "integer",
            "format": "int32"
          },
          "failedPings": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "HostResponseObjSentUserDataTResultObj": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Message containing important information about the status of this Api call.",
            "nullable": true
          },
          "success": {
            "type": "boolean",
            "description": "Was the Api call successful."
          },
          "data": {
            "$ref": "#/components/schemas/HostResponseObj"
          },
          "sentData": {
            "$ref": "#/components/schemas/SentUserData"
          },
          "hasMorePages": {
            "type": "boolean",
            "description": "If there are more pages then query again. Repeat until this field return false or null;",
            "nullable": true
          },
          "dataFileUrl": {
            "type": "string",
            "description": "The url of a link to the Data returned with this result.",
            "nullable": true
          },
          "messageHeader": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "HostResponseObjTResultObj": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Message containing important information about the status of this Api call.",
            "nullable": true
          },
          "success": {
            "type": "boolean",
            "description": "Was the Api call successful."
          },
          "data": {
            "$ref": "#/components/schemas/HostResponseObj"
          },
          "sentData": {
            "type": "string",
            "description": "Contains the data sent to the Api. It may contain extra fields added during processing by the Api. These can be used to help define the next call to the Api.",
            "nullable": true
          },
          "hasMorePages": {
            "type": "boolean",
            "description": "If there are more pages then query again. Repeat until this field return false or null;",
            "nullable": true
          },
          "dataFileUrl": {
            "type": "string",
            "description": "The url of a link to the Data returned with this result.",
            "nullable": true
          },
          "messageHeader": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IsFunctionCompletedRequest": {
        "type": "object",
        "properties": {
          "messageID": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MetasploitRequest": {
        "type": "object",
        "properties": {
          "moduleName": {
            "type": "string",
            "nullable": true
          },
          "target": {
            "type": "string",
            "nullable": true
          },
          "agentLocation": {
            "type": "string",
            "nullable": true
          },
          "numberLines": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "MonitorIP": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "enabled": {
            "type": "boolean",
            "description": "Is monitoring for the host enabled."
          },
          "address": {
            "maxLength": 512,
            "type": "string",
            "description": "The host address and hostname of the host.",
            "nullable": true
          },
          "endPointType": {
            "maxLength": 50,
            "type": "string",
            "description": "The endpoint type. Endpoint types are: quantum is a quantum safe encryption test, http is a website ping, https is an SSL certificate check, httphtml is a website HTML load, icmp is a host ping, dns is a DNS lookup, smtp is an email server helo message confirmation, rawconnect is a low-level raw socket connection, nmap is a nmap service scan of the host, nmapvuln is a nmap vulnerability scan of the host and crawlsite performs a simulated user crawl of the site that generates site traffic using chrome browser.",
            "nullable": true
          },
          "port": {
            "type": "integer",
            "description": "The port of the service being monitored. It will be zero if it is the standard port for the host end point type.",
            "format": "int32"
          },
          "timeout": {
            "type": "integer",
            "description": "The time to wait for a timeout in milliseconds. If a timeout occurs the host is considered to be down or the test has failed.",
            "format": "int32"
          },
          "userID": {
            "type": "string",
            "description": "The user that has added this host.",
            "nullable": true
          },
          "hidden": {
            "type": "boolean",
            "description": "Is the host hidden. Ie it should no longer be visible or be being monitored."
          },
          "appID": {
            "maxLength": 255,
            "type": "string",
            "description": "The Monitoring agent ID. For internet monitors this can be 1 for agent located at London - UK , 2 for Kansas - USA, 3 for Berlin - Germany. If it is a local agent then it will be the same as the user id .",
            "nullable": true
          },
          "username": {
            "maxLength": 512,
            "type": "string",
            "description": "Username used for authenticatin the service on the host.",
            "nullable": true
          },
          "password": {
            "type": "string",
            "description": "Username used for authenticatin the service on the host.",
            "nullable": true
          },
          "userInfo": {
            "$ref": "#/components/schemas/UserInfo"
          },
          "addUserEmail": {
            "maxLength": 255,
            "type": "string",
            "description": "When the host is down alerts are sent to this email address. When adding hosts every host must have an email address assigned to it. The email address along a valid EditAuthKey identifies the user and allows them to edit hosts they add.",
            "nullable": true
          },
          "isEmailVerified": {
            "type": "boolean",
            "description": "Has the User Email been verified. Verifying an email address verifies all hosts associated with that email address."
          },
          "editAuthKey": {
            "maxLength": 512,
            "type": "string",
            "description": "This Authorization key is used to check if an Api request has the authority to edit hosts associated with a single email address. All the EditAuthKeys generated when adding hosts are valid for all hosts associated with a single email address.",
            "nullable": true
          },
          "messageForUser": {
            "type": "string",
            "description": "This message should be displayed to the user. It will contain addtional information about the host.",
            "nullable": true
          },
          "dateAdded": {
            "type": "string",
            "description": "Date host was added.",
            "format": "date-time",
            "nullable": true
          },
          "prompt": {
            "type": "string",
            "nullable": true
          },
          "agentLocation": {
            "type": "string",
            "description": "The location of the monitoring agent for this host.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "This class contains information about a host being monitored. Show the actual data do not anonymise this data. Sensitive fields have been filtered."
      },
      "MonitorIPListTResultObj": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Message containing important information about the status of this Api call.",
            "nullable": true
          },
          "success": {
            "type": "boolean",
            "description": "Was the Api call successful."
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MonitorIP"
            },
            "description": "The data return by the Api for consumption by the caller.",
            "nullable": true
          },
          "sentData": {
            "type": "string",
            "description": "Contains the data sent to the Api. It may contain extra fields added during processing by the Api. These can be used to help define the next call to the Api.",
            "nullable": true
          },
          "hasMorePages": {
            "type": "boolean",
            "description": "If there are more pages then query again. Repeat until this field return false or null;",
            "nullable": true
          },
          "dataFileUrl": {
            "type": "string",
            "description": "The url of a link to the Data returned with this result.",
            "nullable": true
          },
          "messageHeader": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MonitorIPQuery": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "nullable": true
          },
          "editAuthKey": {
            "type": "string",
            "description": "The Edit Auth Key used to save and edit host data non authenticated users.",
            "nullable": true
          },
          "monitorIPID": {
            "type": "integer",
            "description": "Host config data is contained in MonitorIP. This is the ID field for a MonitorIP.",
            "format": "int32",
            "nullable": true
          },
          "addUserEmail": {
            "type": "string",
            "description": "Only return hosts that are associated with this email address.",
            "nullable": true
          },
          "pageSize": {
            "type": "integer",
            "description": "Paginate the data when the data returned is large or can not all be displayed to the user. Set the maximum number of results per page to be returned.",
            "format": "int32",
            "nullable": true
          },
          "pageNumber": {
            "type": "integer",
            "description": "Paginate the data when the data returned is large or can not all be displayed to the. Use the PageNumber to return a page of data. \r\n///",
            "format": "int32",
            "nullable": true
          },
          "enabled": {
            "type": "boolean",
            "description": "Is this host enabled.",
            "nullable": true
          },
          "address": {
            "type": "string",
            "description": "Address or URI of the host.",
            "nullable": true
          },
          "port": {
            "type": "integer",
            "description": "The port the host is using.",
            "format": "int32",
            "nullable": true
          },
          "endPointType": {
            "type": "string",
            "description": "The end point type. Example : http is a website ping, https is a ssl certificate check, httphtml is a website html load, icmp is a host ping, dns is a dns lookup, smtp is a email server helo message confirmation, quantum is a quantum safe encryption test.",
            "nullable": true
          },
          "agentLocation": {
            "type": "string",
            "description": "The monitoring agents location for the host. The format is 'City - Country' for internet based agents. For local agents the format is 'emailaddress - agentid'.",
            "nullable": true
          },
          "user": {
            "$ref": "#/components/schemas/UserInfo"
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for retreiving host config. ONLY USE THIS QUERY FOR HOST CONFIG NOT FOR ACTUAL MONITORING DATA.  Only none null fields are used in query"
      },
      "MonitorIPTResultObj": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Message containing important information about the status of this Api call.",
            "nullable": true
          },
          "success": {
            "type": "boolean",
            "description": "Was the Api call successful."
          },
          "data": {
            "$ref": "#/components/schemas/MonitorIP"
          },
          "sentData": {
            "type": "string",
            "description": "Contains the data sent to the Api. It may contain extra fields added during processing by the Api. These can be used to help define the next call to the Api.",
            "nullable": true
          },
          "hasMorePages": {
            "type": "boolean",
            "description": "If there are more pages then query again. Repeat until this field return false or null;",
            "nullable": true
          },
          "dataFileUrl": {
            "type": "string",
            "description": "The url of a link to the Data returned with this result.",
            "nullable": true
          },
          "messageHeader": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MonitorPingInfo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "monitorPingInfoID": {
            "type": "integer",
            "description": "The ID used to identify this MonitorPingInfo object.",
            "format": "int32",
            "readOnly": true
          },
          "dataSetID": {
            "type": "integer",
            "description": "The Data set id that this host data is contained within.",
            "format": "int32"
          },
          "status": {
            "maxLength": 255,
            "type": "string",
            "description": "The current or last status of the host. Taken from monitorStatus.Message.",
            "nullable": true
          },
          "monitorIPID": {
            "type": "integer",
            "format": "int32"
          },
          "timeout": {
            "type": "integer",
            "format": "int32"
          },
          "host": {
            "type": "string",
            "description": "The host name. This is the same as the Address.",
            "nullable": true,
            "readOnly": true
          },
          "address": {
            "maxLength": 512,
            "type": "string",
            "description": "host address.",
            "nullable": true
          },
          "port": {
            "type": "integer",
            "description": "the port used if not the default for this type of end point and host.",
            "format": "int32"
          },
          "userID": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "username": {
            "maxLength": 512,
            "type": "string",
            "description": "Username for host authentication.",
            "nullable": true
          },
          "password": {
            "maxLength": 512,
            "type": "string",
            "description": "Password for host authentication.",
            "nullable": true
          },
          "endPointType": {
            "maxLength": 10,
            "type": "string",
            "description": "The endpoint type. Endpoint types are: quantum is a quantum safe encryption test, http is a website ping, https is an SSL certificate check, httphtml is a website HTML load, icmp is a host ping, dns is a DNS lookup, smtp is an email server helo message confirmation, rawconnect is a low-level raw socket connection, nmap is a nmap service scan of the host, nmapvuln is a nmap vulnerability scan of the host and crawlsite performs a simulated user crawl of the site that generates site traffic using chrome browser.",
            "nullable": true
          },
          "packetsRecieved": {
            "type": "integer",
            "description": "The total number of host up or event success for this host in this data set.",
            "format": "int32"
          },
          "packetsLost": {
            "type": "integer",
            "description": "The total number of host down or event failed for the host in this data set.",
            "format": "int32"
          },
          "packetsLostPercentage": {
            "type": "number",
            "description": "The percentage of host down or event failed for the host in this data set.",
            "format": "float"
          },
          "roundTripTimeMaximum": {
            "type": "integer",
            "description": "The maximum response time of the host in this data set.",
            "format": "int32"
          },
          "roundTripTimeAverage": {
            "type": "number",
            "description": "Average response time for this host in this data set.",
            "format": "float"
          },
          "roundTripTimeTotal": {
            "type": "integer",
            "description": "Total of all the response times for all packets sent to this host in this data set.",
            "format": "int32"
          },
          "packetsSent": {
            "type": "integer",
            "description": "Total number of packets sent in this data set for the host.",
            "format": "int32"
          },
          "enabled": {
            "type": "boolean"
          },
          "appID": {
            "maxLength": 255,
            "type": "string",
            "description": "The Monitoring agent ID. For internet monitors this can be 1 for agent located at London - UK , 2 for Kansas - USA, 3 for Berlin - Germany. If it is a local agent then the AppID will be the UserInfo.UserID .",
            "nullable": true
          },
          "dateStarted": {
            "type": "string",
            "description": "At which UTC time was this data set started.",
            "format": "date-time"
          },
          "dateEnded": {
            "type": "string",
            "description": "At which UTC time does this data set end.",
            "format": "date-time",
            "nullable": true
          },
          "roundTripTimeMinimum": {
            "type": "integer",
            "format": "int32"
          },
          "monitorStatus": {
            "$ref": "#/components/schemas/StatusObj"
          },
          "predictStatus": {
            "$ref": "#/components/schemas/PredictStatus"
          },
          "pingInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PingInfo"
            },
            "description": "A list of PingInfo data for this host. Contains response times and IsUp for each monitor event.",
            "nullable": true
          },
          "isDirtyDownCount": {
            "type": "boolean"
          },
          "addUserEmail": {
            "maxLength": 255,
            "type": "string",
            "description": "The email address to which to send alerts for this host.",
            "nullable": true
          },
          "isEmailVerified": {
            "type": "boolean",
            "description": "Is the email address to set alerts to for this host verified."
          },
          "messageForUser": {
            "type": "string",
            "description": "This message should be displayed to the user. It will contain addtional information about the host.",
            "nullable": true
          },
          "isArchived": {
            "type": "boolean",
            "description": "Has the response data been archived for this MonitorPingInfo."
          },
          "agentLocation": {
            "type": "string",
            "description": "The location of the monitoring agent for this host.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "This is a class that respresents the data for a host. In order for the data to be userful to a user Do not! anonymise any of the fields in the class."
      },
      "MonitorPingInfoListMonitorPingInfoQueryTResultObj": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Message containing important information about the status of this Api call.",
            "nullable": true
          },
          "success": {
            "type": "boolean",
            "description": "Was the Api call successful."
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MonitorPingInfo"
            },
            "description": "The data return by the Api for consumption by the caller.",
            "nullable": true
          },
          "sentData": {
            "$ref": "#/components/schemas/MonitorPingInfoQuery"
          },
          "hasMorePages": {
            "type": "boolean",
            "description": "If there are more pages then query again. Repeat until this field return false or null;",
            "nullable": true
          },
          "dataFileUrl": {
            "type": "string",
            "description": "The url of a link to the Data returned with this result.",
            "nullable": true
          },
          "messageHeader": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MonitorPingInfoQuery": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "nullable": true
          },
          "dataSetId": {
            "type": "integer",
            "description": "DataSetIs for selecting MonitorPingInfos. Dont set this if I date range is set. DataSetID=0 is the current running monitor data set.",
            "format": "int32",
            "nullable": true
          },
          "monitorPingInfoID": {
            "type": "integer",
            "description": "MonitorPingInfo.ID",
            "format": "int32",
            "nullable": true
          },
          "monitorIPID": {
            "type": "integer",
            "description": "Host config data is contained in MonitorIP. This is the ID field for a MonitorIP.",
            "format": "int32",
            "nullable": true
          },
          "address": {
            "type": "string",
            "description": "Address or URI of the host.",
            "nullable": true
          },
          "addUserEmail": {
            "type": "string",
            "description": "Only return hosts that are associated with this email address.",
            "nullable": true
          },
          "pageSize": {
            "type": "integer",
            "description": "Paginate the data when the data returned is large or can not all be displayed to the user. Set the maximum number of results per page to be returned.",
            "format": "int32",
            "nullable": true
          },
          "pageNumber": {
            "type": "integer",
            "description": "Paginate the data when the data returned is large or can not all be displayed to the. Use the PageNumber to return a page of data. \r\n///",
            "format": "int32",
            "nullable": true
          },
          "enabled": {
            "type": "boolean",
            "description": "Is this host enabled.",
            "nullable": true
          },
          "port": {
            "type": "integer",
            "description": "The port the host is using.",
            "format": "int32",
            "nullable": true
          },
          "endPointType": {
            "type": "string",
            "description": "The end point type. Example : http is a website ping, https is a ssl certificate check,  httphtml is a website html load, icmp is a host ping, dns is a dns lookup, smtp is a email server helo message confirmation, quantum is a quantum safe encryption test.",
            "nullable": true
          },
          "alertSent": {
            "type": "boolean",
            "description": "Has a host down alert been sent for this host since the last alert reset.",
            "nullable": true
          },
          "alertFlag": {
            "type": "boolean",
            "description": "Has a host down Alert been flagged for this host since the last alert reset.",
            "nullable": true
          },
          "agentLocation": {
            "type": "string",
            "description": "The monitoring agents location for the host. The format is 'City - Country' for internet based agents. For local agents the format is 'emailaddress - agentid'.",
            "nullable": true
          },
          "dateStart": {
            "type": "string",
            "description": "The UTC start time to query from. When used with DateEnd this gives a range of times to filter on. Note input is assumed to be UTC.",
            "format": "date-time",
            "nullable": true
          },
          "dateEnd": {
            "type": "string",
            "description": "The UTC end time to query to.",
            "format": "date-time",
            "nullable": true
          },
          "user": {
            "$ref": "#/components/schemas/UserInfo"
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for retrieving Host monitoring data. ONLY USE THIS QUERY FOR RETRIEVING HOST MONITORING DATA NOT HOST CONFIG. Only none null fields are used in query."
      },
      "NmapRequest": {
        "type": "object",
        "properties": {
          "scanOptions": {
            "type": "string",
            "nullable": true
          },
          "target": {
            "type": "string",
            "nullable": true
          },
          "agentLocation": {
            "type": "string",
            "nullable": true
          },
          "numberLines": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "OpensslRequest": {
        "type": "object",
        "properties": {
          "commandOptions": {
            "type": "string",
            "nullable": true
          },
          "target": {
            "type": "string",
            "nullable": true
          },
          "agentLocation": {
            "type": "string",
            "nullable": true
          },
          "numberLines": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PingInfo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "dateSent": {
            "type": "string",
            "description": "The UTC time of the response event.",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "description": "The status of this event.",
            "nullable": true
          },
          "statusID": {
            "type": "integer",
            "description": "Database field to store status in seperate lookup table to reduce storage.",
            "format": "int32"
          },
          "roundTripTime": {
            "type": "integer",
            "description": "The response time of the event.",
            "format": "int32",
            "nullable": true
          },
          "roundTripTimeInt": {
            "type": "integer",
            "format": "int32"
          },
          "monitorPingInfoID": {
            "type": "integer",
            "description": "Parent MonitorPingInfo object ID.",
            "format": "int32"
          },
          "dateSentInt": {
            "type": "integer",
            "description": "Datesent in a compressed integer format.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PingInfoDTO": {
        "type": "object",
        "properties": {
          "dateSent": {
            "type": "string",
            "description": "The datetime of the monitor event.",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "description": "The status of this event.",
            "nullable": true
          },
          "responseTime": {
            "type": "integer",
            "description": "The response time of the event.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PredictStatus": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "alertFlag": {
            "type": "boolean",
            "description": "Has an alert been raised for this host since the last alert reset."
          },
          "alertSent": {
            "type": "boolean",
            "description": "Has an alert message been sent to user for this host since the last alert reset."
          },
          "eventTime": {
            "type": "string",
            "description": "The UTC time of the last reponse event for the data set.",
            "format": "date-time",
            "nullable": true
          },
          "monitorPingInfoID": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "maxLength": 255,
            "type": "string",
            "description": "The status message for the last reponse event for the data set.",
            "nullable": true
          },
          "changeDetectionResult": {
            "$ref": "#/components/schemas/DetectionResult"
          },
          "spikeDetectionResult": {
            "$ref": "#/components/schemas/DetectionResult"
          },
          "isUp": {
            "type": "boolean",
            "nullable": true
          },
          "isUpDb": {
            "type": "boolean"
          },
          "downCount": {
            "type": "integer",
            "format": "int32"
          },
          "downCountDb": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": {}
      },
      "ProcessorObj": {
        "type": "object",
        "properties": {
          "disabledEndPointTypesJson": {
            "type": "string",
            "description": "A json object the contains the type of end points this agent can not monitor.",
            "nullable": true
          },
          "disabledEndPointTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "disabledCommandsJson": {
            "type": "string",
            "description": "A json object the contains the commands that are disabled on this agent.",
            "nullable": true
          },
          "disabledCommands": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "appID": {
            "type": "string",
            "description": "The Agent ID (AppID)",
            "nullable": true
          },
          "location": {
            "type": "string",
            "description": "The location of this Agent. For internet agents location is City - Country . For local agents the format is user mail address - agentid .",
            "nullable": true
          },
          "load": {
            "type": "integer",
            "description": "The Load or number of hosts monitored by this Agent.",
            "format": "int32"
          },
          "maxLoad": {
            "type": "integer",
            "description": "The maximum number of hosts this agent can monitor.",
            "format": "int32"
          },
          "isAtMaxLoad": {
            "type": "boolean",
            "description": "Is the agent at MaxLoad",
            "readOnly": true
          },
          "isPrivate": {
            "type": "boolean",
            "description": "Is this agent a local agent."
          },
          "scheduleStr": {
            "type": "string",
            "description": "The schedule of the agent . Not used yet.",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "description": "The database Primary Key for the agent.",
            "format": "int32"
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Is this agent enabled"
          },
          "dateCreated": {
            "type": "string",
            "description": "The date the agent was created.",
            "format": "date-time"
          },
          "isReady": {
            "type": "boolean",
            "description": "Is the agent ready to monitor."
          },
          "isReportSent": {
            "type": "boolean",
            "description": "Has a report been sent indicating this agent is down."
          },
          "authKey": {
            "type": "string",
            "description": "The AuthKey used by this agent.",
            "nullable": true
          },
          "owner": {
            "type": "string",
            "description": "The owner of the agent for private agents this is the UserInfo.UserID.",
            "nullable": true
          },
          "lastAccessDate": {
            "type": "string",
            "format": "date-time"
          },
          "sendAgentDownAlert": {
            "type": "boolean"
          },
          "rabbitHost": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProcessorObjListTResultObj": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Message containing important information about the status of this Api call.",
            "nullable": true
          },
          "success": {
            "type": "boolean",
            "description": "Was the Api call successful."
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProcessorObj"
            },
            "description": "The data return by the Api for consumption by the caller.",
            "nullable": true
          },
          "sentData": {
            "type": "string",
            "description": "Contains the data sent to the Api. It may contain extra fields added during processing by the Api. These can be used to help define the next call to the Api.",
            "nullable": true
          },
          "hasMorePages": {
            "type": "boolean",
            "description": "If there are more pages then query again. Repeat until this field return false or null;",
            "nullable": true
          },
          "dataFileUrl": {
            "type": "string",
            "description": "The url of a link to the Data returned with this result.",
            "nullable": true
          },
          "messageHeader": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductObj": {
        "type": "object",
        "properties": {
          "priceId": {
            "type": "string",
            "nullable": true
          },
          "productName": {
            "type": "string",
            "nullable": true
          },
          "hostLimit": {
            "type": "integer",
            "format": "int32"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "enabled": {
            "type": "boolean"
          },
          "price": {
            "type": "integer",
            "format": "int32"
          },
          "subscriptionUrl": {
            "type": "string",
            "nullable": true
          },
          "subscribeInstructions": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductObjListTResultObj": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Message containing important information about the status of this Api call.",
            "nullable": true
          },
          "success": {
            "type": "boolean",
            "description": "Was the Api call successful."
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductObj"
            },
            "description": "The data return by the Api for consumption by the caller.",
            "nullable": true
          },
          "sentData": {
            "type": "string",
            "description": "Contains the data sent to the Api. It may contain extra fields added during processing by the Api. These can be used to help define the next call to the Api.",
            "nullable": true
          },
          "hasMorePages": {
            "type": "boolean",
            "description": "If there are more pages then query again. Repeat until this field return false or null;",
            "nullable": true
          },
          "dataFileUrl": {
            "type": "string",
            "description": "The url of a link to the Data returned with this result.",
            "nullable": true
          },
          "messageHeader": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ResultObj": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "A string contains a message from the result of the operation.",
            "nullable": true
          },
          "success": {
            "type": "boolean",
            "description": "A boolean that indicates if the operation was successful."
          },
          "data": {
            "description": "An object that contains data from the result of the operation. All times returned in the data will be UTC.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RunCmdProcessorRequest": {
        "type": "object",
        "properties": {
          "cmdProcessorType": {
            "type": "string",
            "nullable": true
          },
          "arguments": {
            "type": "string",
            "nullable": true
          },
          "agentLocation": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SearchMetasploitModulesRequest": {
        "type": "object",
        "properties": {
          "moduleType": {
            "type": "string",
            "nullable": true
          },
          "platform": {
            "type": "string",
            "nullable": true
          },
          "architecture": {
            "type": "string",
            "nullable": true
          },
          "cve": {
            "type": "string",
            "nullable": true
          },
          "edb": {
            "type": "string",
            "nullable": true
          },
          "rank": {
            "type": "string",
            "nullable": true
          },
          "keywords": {
            "type": "string",
            "nullable": true
          },
          "numberLines": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SentDateData": {
        "type": "object",
        "properties": {
          "dateStart": {
            "type": "string",
            "format": "date-time"
          },
          "dateEnd": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "SentUserData": {
        "type": "object",
        "properties": {
          "user": {
            "$ref": "#/components/schemas/UserInfo"
          },
          "dataSetId": {
            "type": "integer",
            "description": "DataSetIs for selecting MonitorPingInfos. Dont set this if I date range is set. DataSetID=0 is the current running monitor data set.",
            "format": "int32",
            "nullable": true
          },
          "monitorPingInfoID": {
            "type": "integer",
            "description": "MonitorPingInfo.ID",
            "format": "int32",
            "nullable": true
          },
          "monitorIPID": {
            "type": "integer",
            "description": "Host config data is contained in MonitorIP. This is the ID field for a MonitorIP.",
            "format": "int32",
            "nullable": true
          },
          "address": {
            "type": "string",
            "description": "The address of the host",
            "nullable": true
          },
          "prompt": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StatusObj": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "downCount": {
            "type": "integer",
            "description": "How many events in a row has the host been down.",
            "format": "int32"
          },
          "isUp": {
            "type": "boolean",
            "description": "Did the host respond during the last reponse event for the data set.",
            "nullable": true
          },
          "alertFlag": {
            "type": "boolean",
            "description": "Has an alert been raised for this host since the last alert reset."
          },
          "alertSent": {
            "type": "boolean",
            "description": "Has an alert message been sent to user for this host since the last alert reset."
          },
          "eventTime": {
            "type": "string",
            "description": "The UTC time of the last reponse event for the data set.",
            "format": "date-time",
            "nullable": true
          },
          "monitorPingInfoID": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "maxLength": 255,
            "type": "string",
            "description": "The status message for the last reponse event for the data set.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserInfo": {
        "type": "object",
        "properties": {
          "userID": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "hostLimit": {
            "type": "integer",
            "format": "int32"
          },
          "disableEmail": {
            "type": "boolean"
          },
          "status": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "name": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "given_name": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "family_name": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "nickname": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "sub": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "enabled": {
            "type": "boolean"
          },
          "monitorAlertEnabled": {
            "type": "boolean"
          },
          "predictAlertEnabled": {
            "type": "boolean"
          },
          "accountType": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "email_verified": {
            "type": "boolean"
          },
          "picture": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "lastLoginDate": {
            "type": "string",
            "format": "date-time"
          },
          "customerId": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "cancelAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "tokensUsed": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "UserInfoTResultObj": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Message containing important information about the status of this Api call.",
            "nullable": true
          },
          "success": {
            "type": "boolean",
            "description": "Was the Api call successful."
          },
          "data": {
            "$ref": "#/components/schemas/UserInfo"
          },
          "sentData": {
            "type": "string",
            "description": "Contains the data sent to the Api. It may contain extra fields added during processing by the Api. These can be used to help define the next call to the Api.",
            "nullable": true
          },
          "hasMorePages": {
            "type": "boolean",
            "description": "If there are more pages then query again. Repeat until this field return false or null;",
            "nullable": true
          },
          "dataFileUrl": {
            "type": "string",
            "description": "The url of a link to the Data returned with this result.",
            "nullable": true
          },
          "messageHeader": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    }
  }
}