A Monitoring Expert

A Monitoring Expert · GPT-Aktionen

Non-Authenticated APIs

You will be providing the user experience to interface with the free network monitor API services. You will hide the complexity of using this api service. Explaining things in simple terms unless the user requires technical explainations. 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, endpoint type, and email address to send alerts to. Explain what each endpoint is useful for monitoring. For instance, the HTTP and HTTPS endpoints are for monitoring web pages, with HTTPS specifically for secure connections and checking SSL certificates. The HTTPS endpoint will alert if the SSL certificate has expired, will expire in 7 days or less, or if there are other SSL errors. HTTPHTML is for full HTML page loading, ICMP for network reachability, DNS for domain name resolution, SMTP for email server health, and Raw Socket Connection for low-level network services. The Quantum Safe Encryption Test endpoint checks if the connection is using a quantum-safe TLS connection, vital for ensuring that encryption methods are robust against potential quantum computing decryption techniques. In the context of cybersecurity, quantum-safe TLS connections are designed to be secure against the computational capabilities of quantum computers, which could potentially break traditional encryption algorithms. 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 if necessary. When adding a host, users receive an EditAuthKey, which is essential for future edits. This key is not only shown to the user but also emailed to them for safekeeping. Keys are matched to email addresses; this means any key given for a host with the same email address is valid for all hosts using that same email address. If the user wants to delete a host, then edit the host and set hidden=true; this cannot be undone, so warn the user of this. They can disable 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. When a host is flagged as down, the user will receive an email giving information about this event. The user must have provided a valid email address to receive alerts and save host data. Warn them if they don't use a valid email address their host will be deleted. A user's email address must be verified to receive email alerts. Ask the user to check their spam folder as this may prevent them from receiving alerts.

  • POST /Alerts/ResetAlertForUserReset alerts for host . Required fields EditAuthKey.

    Reset a host { "iD" : 1234 , "editAuthKey" : "AESEncryptedString"} EditAuthKey is required to reset the alert for the host. The user should have a record of the EditAuthKey from when they added the host.

  • POST /HostConfig/AddHostGPTDefaultAsk the user for an email address before adding a host. To Add a new host; Address, EndPointType, AddUserEmail are required fields.

    add a host example {"address": "https://example.com","endPointType": "http", "addUserEmail" : "email@example.com"}

  • POST /HostConfig/EditHostGPTDefaultEdit a host. Required fields MonitorIPID and EditAuthKey. Other supplied fields will be updated.

    Edit a host {"monitorIPID" : 1234 , "SetEndPointType": "http","editAuthKey" : "UseGivenKey"} Warn the user if they do not provide a valid email address : The host will be deleted after a few days.

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

    Sample post data: { "dataSetId": 1 , "pageNumber" : 2, "pageSize" :150, "addUserEmail" : "user@test.com"}

  • POST /HostData/GetHostDataByHostAddressDefaultGet 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": "www.freenetworkmonitor.click", "dateStart": "2023-07-15T00:00:00Z","dateEnd": "2023-07-15T23:59:59Z"}

  • POST /HostInfo/GetMonitorIPsWithFilterDefaultGet 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: { "addUserEmail" : "test@test.com", "address" : "host.com"}

  • POST /Monitor/GetFilteredProcessorListDefaultGet 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/GetProductsDefaultGet available network monitor subscription product information. Prices are in dolars.
  • POST /ResponseTime/GetHostResonseObjDefaultGet 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/GetHostResponseObjByDateRangeDefaultGet 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.

    Returns a list of PingInfo objects within the provided start and end date range. 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.).

Ursprüngliches API-Schema
{
  "openapi": "3.0.1",
  "info": {
    "title": "Non-Authenticated APIs",
    "description": "You will be providing the user experience to interface with the free network monitor API services. You will hide the complexity of using this api service. Explaining things in simple terms unless the user requires technical explainations. 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, endpoint type, and email address to send alerts to. Explain what each endpoint is useful for monitoring. For instance, the HTTP and HTTPS endpoints are for monitoring web pages, with HTTPS specifically for secure connections and checking SSL certificates. The HTTPS endpoint will alert if the SSL certificate has expired, will expire in 7 days or less, or if there are other SSL errors. HTTPHTML is for full HTML page loading, ICMP for network reachability, DNS for domain name resolution, SMTP for email server health, and Raw Socket Connection for low-level network services. The Quantum Safe Encryption Test endpoint checks if the connection is using a quantum-safe TLS connection, vital for ensuring that encryption methods are robust against potential quantum computing decryption techniques. In the context of cybersecurity, quantum-safe TLS connections are designed to be secure against the computational capabilities of quantum computers, which could potentially break traditional encryption algorithms. 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 if necessary. When adding a host, users receive an EditAuthKey, which is essential for future edits. This key is not only shown to the user but also emailed to them for safekeeping. Keys are matched to email addresses; this means any key given for a host with the same email address is valid for all hosts using that same email address. If the user wants to delete a host, then edit the host and set hidden=true; this cannot be undone, so warn the user of this. They can disable 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. When a host is flagged as down, the user will receive an email giving information about this event. The user must have provided a valid email address to receive alerts and save host data. Warn them if they don't use a valid email address their host will be deleted. A user's email address must be verified to receive email alerts. Ask the user to check their spam folder as this may prevent them from receiving alerts.",
    "termsOfService": "https://monitorsrv.readyforquantum.com/privacypolicy.html",
    "contact": {
      "name": "Mahadeva Cottrell",
      "email": "support@mahadeva.co.uk"
    },
    "license": {
      "name": "Free Network Monitor License",
      "url": "https://monitorsrv.readyforquantum.com/license.html"
    },
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://monitorsrv.readyforquantum.com"
    }
  ],
  "paths": {
    "/Alerts/ResetAlertForUser": {
      "post": {
        "tags": [
          "Alerts"
        ],
        "summary": "Reset alerts for host . Required fields EditAuthKey.",
        "description": "Reset a host { \"iD\" : 1234 , \"editAuthKey\" : \"AESEncryptedString\"}\r\nEditAuthKey is required to reset the alert for the host. The user should have a record of the EditAuthKey from when they added the host.",
        "operationId": "ResetAlertForUser",
        "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/AddHostGPTDefault": {
      "post": {
        "tags": [
          "HostConfig"
        ],
        "summary": "Ask the user for an email address before adding a host. To Add a new host; Address, EndPointType, AddUserEmail are required fields.",
        "description": "add a host example {\"address\": \"https://example.com\",\"endPointType\": \"http\", \"addUserEmail\" : \"email@example.com\"}",
        "operationId": "AddHostGPTDefault",
        "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/EditHostGPTDefault": {
      "post": {
        "tags": [
          "HostConfig"
        ],
        "summary": "Edit a host. Required fields MonitorIPID and EditAuthKey. Other supplied fields will be updated.",
        "description": "Edit a host {\"monitorIPID\" : 1234 , \"SetEndPointType\": \"http\",\"editAuthKey\" : \"UseGivenKey\"}\r\nWarn the user if they do not provide a valid email address : The host will be deleted after a few days.",
        "operationId": "EditHostGPTDefault",
        "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/GetHostDataByDataSetIDDefault": {
      "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": "Sample post data: { \"dataSetId\": 1 , \"pageNumber\" : 2, \"pageSize\" :150, \"addUserEmail\" : \"user@test.com\"}",
        "operationId": "GetHostDataByDataSetIDDefault",
        "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/GetHostDataByHostAddressDefault": {
      "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\": \"www.freenetworkmonitor.click\", \"dateStart\": \"2023-07-15T00:00:00Z\",\"dateEnd\": \"2023-07-15T23:59:59Z\"}",
        "operationId": "GetHostDataByHostAddressDefault",
        "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/GetMonitorIPsWithFilterDefault": {
      "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: {   \"addUserEmail\" : \"test@test.com\", \"address\" : \"host.com\"}",
        "operationId": "GetMonitorIPsWithFilterDefault",
        "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
      }
    },
    "/Monitor/GetFilteredProcessorListDefault": {
      "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": "GetFilteredProcessorListDefault",
        "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/GetProductsDefault": {
      "get": {
        "tags": [
          "Monitor"
        ],
        "summary": "Get available network monitor subscription product information. Prices are in dolars.",
        "operationId": "GetProductsDefault",
        "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
      }
    },
    "/ResponseTime/GetHostResonseObjDefault": {
      "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": "GetHostResonseObjDefault",
        "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/GetHostResponseObjByDateRangeDefault": {
      "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": "Returns a list of PingInfo objects within the provided start and end date range.\r\nExample 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.).",
        "operationId": "GetHostResponseObjByDateRangeDefault",
        "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
      }
    }
  },
  "components": {
    "schemas": {
      "DateRangeQuery": {
        "type": "object",
        "properties": {
          "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."
      },
      "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
          }
        },
        "additionalProperties": false,
        "description": "This class holds data that is used to edit hosts."
      },
      "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 end point type for this host monitor data. 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
          },
          "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": 50,
            "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."
          },
          "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
          }
        },
        "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
      },
      "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 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
          },
          "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": 50,
            "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
          },
          "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
          }
        },
        "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
          },
          "apiKey": {
            "type": "string",
            "description": "The Api Key of the user. This can be used to save and edit host data.",
            "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
          },
          "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 end point type for this host monitor data. 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
          },
          "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": 50,
            "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."
          }
        },
        "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
          },
          "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."
      },
      "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",
            "nullable": true
          },
          "disabledEndPointTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A json object the contains the type of end points this agent can monitor.",
            "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 - local .",
            "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"
          }
        },
        "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"
          },
          "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
      },
      "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
          }
        },
        "additionalProperties": false
      }
    }
  }
}