{
  "id": "@itentialopensource/adapter-hyas_protect",
  "type": "Adapter",
  "export": "HyasProtect",
  "title": "Hyas_protect",
  "src": "adapter.js",
  "roles": [
    "admin"
  ],
  "methods": [
    {
      "name": "iapUpdateAdapterConfiguration",
      "summary": "Updates the adapter configuration",
      "description": "Updates the adapter configuration file with the provided changes",
      "input": [
        {
          "name": "configFile",
          "type": "string",
          "info": "The name of the file to change",
          "required": true,
          "schema": {
            "title": "configFile",
            "type": "string"
          }
        },
        {
          "name": "changes",
          "type": "object",
          "info": "JSON object containing the configuration changes",
          "required": true,
          "schema": {
            "title": "changes",
            "type": "object"
          }
        },
        {
          "name": "entity",
          "type": "string",
          "info": "The entity in which the changes are being made",
          "required": false,
          "schema": {
            "title": "entity",
            "type": "string"
          }
        },
        {
          "name": "type",
          "type": "string",
          "info": "The type of file to change - action, schema, or mock",
          "required": false,
          "schema": {
            "title": "type",
            "type": "string"
          }
        },
        {
          "name": "action",
          "type": "string",
          "info": "The action to be changed",
          "required": false,
          "schema": {
            "title": "action",
            "type": "string"
          }
        },
        {
          "name" : "replace",
          "type": "boolean",
          "info": "True to replace entire mock data, false to merge/append",
          "required": false,
          "schema": {
            "title": "replace",
            "type" : "boolean"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapUpdateAdapterConfiguration"
      },
      "task": true
    },
    {
      "name": "iapSuspendAdapter",
      "summary": "Suspends the adapter",
      "description": "Suspends the adapter",
      "input": [
        {
          "name": "mode",
          "type": "enum",
          "enumerals": [
            "pause",
            "error"
          ],
          "info": "How incoming requests are handled. Defaults to 'pause'",
          "description": "How incoming requests are handled. Defaults to 'pause'",
          "schema": {
            "title": "mode",
            "type": "string"
          },
          "required": false
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the adapter suspended status",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapSuspendAdapter"
      },
      "task": true
    },
    {
      "name": "iapUnsuspendAdapter",
      "summary": "Unsuspends the adapter",
      "description": "Unsuspends the adapter",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the adapter suspended status",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapUnsuspendAdapter"
      },
      "task": true
    },
    {
      "name": "iapGetAdapterQueue",
      "summary": "Return the requests that are waiting in the queue if throttling is enabled",
      "description": "Return the requests that are waiting in the queue if throttling is enabled",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the adapter queue",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapGetAdapterQueue"
      },
      "task": true
    },
    {
      "name": "iapFindAdapterPath",
      "summary": "Provides the ability to see if a particular API path is supported by the adapter",
      "description": "Provides the ability to see if a particular API path is supported by the adapter",
      "input": [
        {
          "name": "apiPath",
          "type": "string",
          "info": "The API Path you want to check - make sure to not include base path and version",
          "description": "The API Path you want to check - make sure to not include base path and version",
          "schema": {
            "title": "apiPath",
            "type": "string"
          },
          "required": true
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapFindAdapterPath"
      },
      "task": true
    },
    {
      "name": "iapTroubleshootAdapter",
      "summary": "Runs troubleshoot script for adapter",
      "description": "Runs troubleshoot script for adapter",
      "input": [
        {
          "name": "props",
          "type": "object",
          "info": "Object containing configuration, healthcheck and auth properties {'connProps':{'host': 'api.service.com', 'base_path': '/', 'protocol': 'http', 'port': 443, 'version': 'v1'},'healthCheckEndpoint': '/healthcheck', 'auth': {'auth_method': 'no authentication', 'username': 'username', 'password': 'password'}}",
          "required": true,
          "schema": {
            "title": "props",
            "type": "object"
          }
        },
        {
          "name": "persistFlag",
          "type": "boolean",
          "info": "Whether the input properties should be saved",
          "required": true,
          "schema": {
            "title": "persistFlag",
            "type": "boolean"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the test results",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapTroubleshootAdapter"
      },
      "task": true
    },
    {
      "name": "iapRunAdapterHealthcheck",
      "summary": "Runs healthcheck script for adapter",
      "description": "Runs healthcheck script for adapter",
      "input": [],
      "output": {
        "name": "result",
        "type": "boolean",
        "description": "Whether healthcheck passed or failed",
        "schema": {
          "title": "result",
          "type": "boolean"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapRunAdapterHealthcheck"
      },
      "task": true
    },
    {
      "name": "iapRunAdapterConnectivity",
      "summary": "Runs connectivity check script for adapter",
      "description": "Runs connectivity check script for adapter",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the test results",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapRunAdapterConnectivity"
      },
      "task": true
    },
    {
      "name": "iapRunAdapterBasicGet",
      "summary": "Runs basicGet script for adapter",
      "description": "Runs basicGet script for adapter",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the test results",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapRunAdapterBasicGet"
      },
      "task": true
    },
    {
      "name": "iapMoveAdapterEntitiesToDB",
      "summary": "Moves entities from an adapter into the IAP database",
      "description": "Moves entities from an adapter into the IAP database",
      "input": [],
      "output": {
        "name": "res",
        "type": "object",
        "description": "A JSON Object containing status, code and the response from the mongo transaction",
        "schema": {
          "title": "res",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapMoveAdapterEntitiesToDB"
      },
      "task": true
    },
    {
      "name": "iapDeactivateTasks",
      "summary": "Deactivate the inputted tasks",
      "description": "Deactivate the inputted tasks",
      "input": [
        {
          "name": "tasks",
          "type": "array",
          "description": "Tasks to deactivate",
          "schema": {
            "title": "tasks",
            "type": "array"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing success status",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapDeactivateTasks"
      },
      "task": true
    },
    {
      "name": "iapActivateTasks",
      "summary": "Activate the inputted tasks",
      "description": "activate the inputted tasks",
      "input": [
        {
          "name": "tasks",
          "type": "array",
          "description": "Tasks to activate",
          "schema": {
            "title": "tasks",
            "type": "array"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing success status",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapActivateTasks"
      },
      "task": true
    },
    {
      "name": "iapPopulateEntityCache",
      "summary": "Populate the cache for the given entities",
      "description": "Populate the cache for the given entities",
      "input": [
        {
          "name": "entityTypes",
          "type": "array",
          "info": "the entity type(s) to populate",
          "required": true,
          "schema": {
            "title": "entityTypes",
            "type": "array"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapPopulateEntityCache"
      },
      "task": true
    },
    {
      "name": "iapRetrieveEntitiesCache",
      "summary": "Retrieves data from cache for specified entity type",
      "description": "Retrieves data from cache for specified entity type",
      "input": [
        {
          "name": "entityType",
          "type": "string",
          "info": "entity of which to retrieve",
          "required": true,
          "schema": {
            "title": "entityType",
            "type": "string"
          }
        },
        {
          "name": "options",
          "type": "object",
          "info": "settings of which data to return and how to return it",
          "required": false,
          "schema": {
            "title": "options",
            "type": "object"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapRetrieveEntitiesCache"
      },
      "task": true
    },
    {
      "name": "getDevice",
      "summary": "Get the Appliance",
      "description": "Get the Appliance",
      "input": [
        {
          "name": "deviceName",
          "type": "string",
          "info": "An Appliance Device Name",
          "required": true,
          "schema": {
            "title": "deviceName",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getDevice"
      },
      "task": false
    },
    {
      "name": "getDevicesFiltered",
      "summary": "Get Appliances that match the filter",
      "description": "Get Appliances that match the filter",
      "input": [
        {
          "name": "options",
          "type": "object",
          "info": "options - e.g. { 'start': 1, 'limit': 20, 'filter': { 'name': 'abc123' } }",
          "required": true,
          "schema": {
            "title": "options",
            "type": "object"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "array",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "array"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getDevicesFiltered"
      },
      "task": false
    },
    {
      "name": "isAlive",
      "summary": "Checks the status for the provided Appliance",
      "description": "Checks the status for the provided Appliance",
      "input": [
        {
          "name": "deviceName",
          "type": "string",
          "info": "An Appliance Device Name",
          "required": true,
          "schema": {
            "title": "deviceName",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "boolean",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "boolean"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/isAlive"
      },
      "task": false
    },
    {
      "name": "getConfig",
      "summary": "Gets a config for the provided Appliance",
      "description": "Gets a config for the provided Appliance",
      "input": [
        {
          "name": "deviceName",
          "type": "string",
          "info": "An Appliance Device Name",
          "required": true,
          "schema": {
            "title": "deviceName",
            "type": "string"
          }
        },
        {
          "name": "format",
          "type": "string",
          "info": "The format to be returned - this is ignored as we always return json",
          "required": false,
          "schema": {
            "title": "format",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getConfig"
      },
      "task": false
    },
    {
      "name": "iapGetDeviceCount",
      "summary": "Gets a device count from the system",
      "description": "Gets a device count from the system",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapGetDeviceCount"
      },
      "task": false
    },
    {
      "name": "iapExpandedGenericAdapterRequest",
      "summary": "Makes the requested generic call with additional options",
      "description": "Makes the requested generic call with additional options via metadata",
      "input": [
        {
          "name": "metadata",
          "type": "object",
          "info": "metadata for the call (optional)",
          "description": "metadata for the call - allows for many enhancements (optional)",
          "schema": {
            "title": "metadata",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "uriPath",
          "type": "string",
          "info": "the path of the api call - do not include the host, port, base path or version",
          "description": "the path of the api call",
          "schema": {
            "title": "uriPath",
            "type": "string"
          },
          "required": false
        },
        {
          "name": "restMethod",
          "type": "string",
          "info": "the rest method (GET, POST, PUT, PATCH, DELETE)",
          "description": "the rest method (GET, POST, PUT, PATCH, DELETE)",
          "schema": {
            "title": "restMethod",
            "type": "string"
          },
          "required": false
        },
        {
          "name": "pathVars",
          "type": "object",
          "info": "the parameters to be put within the url path (optional)",
          "description": "the parameters to be put within the url path (optional)",
          "schema": {
            "title": "pathVars",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "queryData",
          "type": "object",
          "info": "the query parameters to be put on the url (optional)",
          "description": "the query parameters to be put on the url (optional)",
          "schema": {
            "title": "queryData",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "requestBody",
          "type": "object",
          "info": "the payload to be sent with the request (optional)",
          "description": "the payload to be sent with the request (optional)",
          "schema": {
            "title": "requestBody",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "addlHeaders",
          "type": "object",
          "info": "additional headers to be put on the call (optional)",
          "description": "additional headers to be put on the call (optional)",
          "schema": {
            "title": "addlHeaders",
            "type": "object"
          },
          "required": false
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapExpandedGenericAdapterRequest"
      },
      "task": true
    },
    {
      "name": "genericAdapterRequest",
      "summary": "Makes the requested generic call",
      "description": "Makes the requested generic call",
      "input": [
        {
          "name": "uriPath",
          "type": "string",
          "info": "the path of the api call - do not include the host, port, base path or version",
          "description": "the path of the api call",
          "schema": {
            "title": "uriPath",
            "type": "string"
          },
          "required": true
        },
        {
          "name": "restMethod",
          "type": "string",
          "info": "the rest method (GET, POST, PUT, PATCH, DELETE)",
          "description": "the rest method (GET, POST, PUT, PATCH, DELETE)",
          "schema": {
            "title": "restMethod",
            "type": "string"
          },
          "required": true
        },
        {
          "name": "queryData",
          "type": "object",
          "info": "the query parameters to be put on the url (optional)",
          "description": "the query parameters to be put on the url (optional)",
          "schema": {
            "title": "queryData",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "requestBody",
          "type": "object",
          "info": "the payload to be sent with the request (optional)",
          "description": "the payload to be sent with the request (optional)",
          "schema": {
            "title": "requestBody",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "addlHeaders",
          "type": "object",
          "info": "additional headers to be put on the call (optional)",
          "description": "additional headers to be put on the call (optional)",
          "schema": {
            "title": "addlHeaders",
            "type": "object"
          },
          "required": false
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/genericAdapterRequest"
      },
      "task": true
    },
    {
      "name": "genericAdapterRequestNoBasePath",
      "summary": "Makes the requested generic call",
      "description": "Makes the requested generic call",
      "input": [
        {
          "name": "uriPath",
          "type": "string",
          "info": "the path of the api call - do not include the host, port, base path or version",
          "description": "the path of the api call",
          "schema": {
            "title": "uriPath",
            "type": "string"
          },
          "required": true
        },
        {
          "name": "restMethod",
          "type": "string",
          "info": "the rest method (GET, POST, PUT, PATCH, DELETE)",
          "description": "the rest method (GET, POST, PUT, PATCH, DELETE)",
          "schema": {
            "title": "restMethod",
            "type": "string"
          },
          "required": true
        },
        {
          "name": "queryData",
          "type": "object",
          "info": "the query parameters to be put on the url (optional)",
          "description": "the query parameters to be put on the url (optional)",
          "schema": {
            "title": "queryData",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "requestBody",
          "type": "object",
          "info": "the payload to be sent with the request (optional)",
          "description": "the payload to be sent with the request (optional)",
          "schema": {
            "title": "requestBody",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "addlHeaders",
          "type": "object",
          "info": "additional headers to be put on the call (optional)",
          "description": "additional headers to be put on the call (optional)",
          "schema": {
            "title": "addlHeaders",
            "type": "object"
          },
          "required": false
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/genericAdapterRequestNoBasePath"
      },
      "task": true
    },
    {
      "name": "iapRunAdapterLint",
      "summary": "Run the adapter lint script to return the results",
      "description": "Run the adapter lint script to return the results",
      "input": [],
      "output": {
        "name": "result",
        "type": "string",
        "description": "A string containing the run results",
        "schema": {
          "title": "result",
          "type": "string"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/iapRunAdapterLint"
      },
      "task": true
    },
    {
      "name": "iapRunAdapterTests",
      "summary": "Run the adapter test scripts (baseunit and unit) to return the results",
      "description": "Run the adapter test scripts (baseunit and unit) to return the results",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/iapRunAdapterTests"
      },
      "task": true
    },
    {
      "name": "iapGetAdapterInventory",
      "summary": "Provide inventory information abbout the adapter",
      "description": "Provide inventory information abbout the adapter",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/iapGetAdapterInventory"
      },
      "task": true
    },
    {
      "name": "newcastleProtectTopChartsAggregates",
      "summary": "newcastle.protect.top_charts.aggregates",
      "description": "Get count aggregates for the top charts",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "The filter used to perform aggregate queries: object",
          "required": true,
          "schema": {
            "allOf": [
              {
                "type": "object"
              },
              {
                "description": "The filter used to perform aggregate queries"
              }
            ],
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "allOf": [
            {
              "title": "aggregate_response",
              "type": "object",
              "properties": {
                "query_type": {
                  "type": "string",
                  "description": "The query type that the aggregate is for",
                  "example": "fqdn"
                },
                "top_items": {
                  "type": "array",
                  "items": {
                    "title": "TopItem",
                    "type": "object",
                    "properties": {
                      "current_doc_count": {
                        "type": "integer",
                        "example": 9116
                      },
                      "key": {
                        "type": "string",
                        "example": "debug.opendns.com"
                      },
                      "previous_doc_count": {
                        "type": "integer",
                        "example": 7151
                      }
                    }
                  },
                  "description": "Top items"
                }
              },
              "description": "Aggregate response"
            },
            {
              "description": "Aggregate response"
            }
          ]
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/newcastleProtectTopChartsAggregates"
      },
      "task": true
    },
    {
      "name": "newcastleProtectBarChartsBar",
      "summary": "newcastle.protect.bar_charts.bar",
      "description": "Get bar chart data",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "The filter used to perform bar chart queries: object",
          "required": true,
          "schema": {
            "allOf": [
              {
                "type": "object"
              },
              {
                "description": "The filter used to perform bar chart queries"
              }
            ],
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "allOf": [
            {
              "title": "bar_response",
              "type": "object",
              "properties": {
                "query_type": {
                  "type": "string",
                  "description": "The query type that the aggregate is for",
                  "example": "no_answer_queries"
                },
                "top_items": {
                  "type": "array",
                  "items": {
                    "title": "TopItem1",
                    "type": "object",
                    "properties": {
                      "current_doc_count": {
                        "type": "integer",
                        "example": 369
                      },
                      "key": {
                        "type": "string",
                        "example": "2021-09-20 00:00:00"
                      },
                      "previous_doc_count": {
                        "type": "integer",
                        "example": 303
                      },
                      "previous_key": {
                        "type": "string",
                        "example": "2021-09-13 00:00:00"
                      }
                    }
                  },
                  "description": "Top items"
                }
              },
              "description": "Bar chart response"
            },
            {
              "description": "Bar chart response"
            }
          ]
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/newcastleProtectBarChartsBar"
      },
      "task": true
    },
    {
      "name": "newcastleProtectHistogramsHistogram",
      "summary": "newcastle.protect.histograms.histogram",
      "description": "Get histogram data for the real time charts",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "The filter used to perform histogram queries: object",
          "required": true,
          "schema": {
            "allOf": [
              {
                "type": "object"
              },
              {
                "description": "The filter used to perform histogram queries"
              }
            ],
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "allOf": [
            {
              "title": "histogram_response",
              "type": "object",
              "properties": {
                "query_type": {
                  "type": "string",
                  "description": "The query type that the aggregate is for",
                  "example": "queries"
                },
                "top_items": {
                  "type": "array",
                  "items": {
                    "title": "TopItem",
                    "type": "object",
                    "properties": {
                      "current_doc_count": {
                        "type": "integer",
                        "example": 9116
                      },
                      "key": {
                        "type": "string",
                        "example": "debug.opendns.com"
                      },
                      "previous_doc_count": {
                        "type": "integer",
                        "example": 7151
                      }
                    }
                  },
                  "description": "Top items"
                }
              },
              "description": "Histogram response"
            },
            {
              "description": "Histogram response"
            }
          ]
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/newcastleProtectHistogramsHistogram"
      },
      "task": true
    },
    {
      "name": "newcastleProtectSummariesSummary",
      "summary": "newcastle.protect.summaries.summary",
      "description": "Get request summaries",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "The filter used to perform summary queries: object",
          "required": true,
          "schema": {
            "allOf": [
              {
                "type": "object"
              },
              {
                "description": "The filter used to perform summary queries"
              }
            ],
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "allOf": [
            {
              "title": "summary_response",
              "type": "object",
              "properties": {
                "day_count": {
                  "type": "integer",
                  "example": 1
                },
                "query_type": {
                  "type": "string",
                  "description": "The query type that the aggregate is for",
                  "example": "blocked"
                },
                "total_count": {
                  "type": "integer",
                  "example": 0
                }
              },
              "description": "Summary response"
            },
            {
              "description": "Summary response"
            }
          ]
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/newcastleProtectSummariesSummary"
      },
      "task": true
    },
    {
      "name": "newcastleProtectHistogramsHistogramArtifact",
      "summary": "newcastle.protect.histograms.histogram_artifact",
      "description": "Get histogram data for the pop out panel timeline chart",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "The filter used to perform histogram queries: object",
          "required": true,
          "schema": {
            "allOf": [
              {
                "type": "object"
              },
              {
                "description": "The filter used to perform histogram queries"
              }
            ],
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "allOf": [
            {
              "title": "histogram_artifact_response",
              "type": "object",
              "properties": {
                "days": {
                  "type": "integer",
                  "description": "The number of days the histogram is for"
                },
                "query_type": {
                  "type": "string",
                  "description": "The query type that the histogram is for"
                }
              },
              "description": "Histogram response"
            },
            {
              "description": "Histogram response"
            }
          ]
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/newcastleProtectHistogramsHistogramArtifact"
      },
      "task": true
    },
    {
      "name": "newcastleProtectLogsLogs",
      "summary": "newcastle.protect.logs.logs",
      "description": "Get logs",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "The filter used to perform log queries: object",
          "required": true,
          "schema": {
            "allOf": [
              {
                "type": "object"
              },
              {
                "description": "The filter used to perform log queries"
              }
            ],
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "allOf": [
            {
              "title": "log_response",
              "type": "object",
              "properties": {
                "aggregates": {
                  "allOf": [
                    {
                      "title": "Aggregates",
                      "type": "object",
                      "properties": {
                        "queries": {
                          "type": "array",
                          "items": {
                            "title": "Query2",
                            "type": "object",
                            "properties": {
                              "count": {
                                "type": "integer",
                                "description": "Query type count",
                                "example": 2058
                              },
                              "key": {
                                "type": "string",
                                "description": "Query type key",
                                "example": "AAAA"
                              },
                              "name": {
                                "type": "string",
                                "description": "Query type display name",
                                "example": "AAAA"
                              }
                            },
                            "description": "Query type"
                          },
                          "description": "Collection of query type codes and counts"
                        },
                        "responses": {
                          "type": "array",
                          "items": {
                            "title": "Response",
                            "type": "object",
                            "properties": {
                              "count": {
                                "type": "integer",
                                "description": "Response code count",
                                "example": 8980
                              },
                              "key": {
                                "type": "string",
                                "description": "Response code key",
                                "example": "NoError"
                              },
                              "name": {
                                "type": "string",
                                "description": "Response code display name",
                                "example": "NoError"
                              }
                            },
                            "description": "Response codes"
                          },
                          "description": "Collection of response codes and counts"
                        }
                      },
                      "description": "Aggregates for the filter drop downs"
                    },
                    {
                      "description": "Aggregates for the filter drop downs"
                    }
                  ]
                },
                "total_count": {
                  "type": "integer",
                  "description": "total count of records without pagination",
                  "example": 197
                }
              },
              "description": "Summary response"
            },
            {
              "description": "Summary response"
            }
          ]
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/newcastleProtectLogsLogs"
      },
      "task": true
    },
    {
      "name": "newcastleProtectPassthroughPassthrough",
      "summary": "newcastle.protect.passthrough.passthrough",
      "description": "Get passthrough records",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "The filter used to perform passthrough queries: object",
          "required": true,
          "schema": {
            "allOf": [
              {
                "type": "object"
              },
              {
                "description": "The filter used to perform passthrough queries"
              }
            ],
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "allOf": [
            {
              "title": "passthrough_response",
              "type": "object",
              "properties": {
                "logs": {
                  "type": "array",
                  "items": {
                    "title": "Log",
                    "type": "object",
                    "properties": {
                      "alt_status": {
                        "type": "string",
                        "description": "The status of the request made through ALT [blocked, allow]",
                        "example": "allow"
                      },
                      "artifact": {
                        "type": "string",
                        "description": "The artifact looked up",
                        "example": "google.com"
                      },
                      "hyas_status": {
                        "type": "string",
                        "description": "The status of the request made through HYAS [blocked, allow]",
                        "example": "blocked"
                      },
                      "last_seen": {
                        "type": "string",
                        "description": "The most recent query for the artifact",
                        "example": "2021-11-05T05:00:00"
                      },
                      "query_count": {
                        "type": "integer",
                        "description": "The aggregated count of how many times the artifact was looked up, limited to the current params",
                        "example": 100
                      }
                    }
                  },
                  "description": "Collection of passthrough records"
                },
                "total_count": {
                  "type": "integer",
                  "description": "total count of records without pagination",
                  "example": 197
                }
              },
              "description": "Passthrough response"
            },
            {
              "description": "Passthrough response"
            }
          ]
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/newcastleProtectPassthroughPassthrough"
      },
      "task": true
    },
    {
      "name": "newcastleProtectReportsGetReport",
      "summary": "newcastle.protect.reports.get_report",
      "description": "Get executive report",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "The filter used to generate the report: object",
          "required": true,
          "schema": {
            "allOf": [
              {
                "type": "object"
              },
              {
                "description": "The filter used to generate the report"
              }
            ],
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/newcastleProtectReportsGetReport"
      },
      "task": true
    },
    {
      "name": "newcastleProtectReportsGetReports",
      "summary": "newcastle.protect.reports.get_reports",
      "description": "Get list of executive reports",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "allOf": [
            {
              "title": "reports_response",
              "type": "object",
              "properties": {
                "reports": {
                  "type": "array",
                  "items": {
                    "title": "Report",
                    "type": "object",
                    "properties": {
                      "client_id": {
                        "type": "string",
                        "description": "Client ID"
                      },
                      "datetime": {
                        "type": "string",
                        "description": "Report generation datetime"
                      },
                      "datetime_end": {
                        "type": "string",
                        "description": "Report end date"
                      },
                      "datetime_start": {
                        "type": "string",
                        "description": "Report start date"
                      },
                      "report_id": {
                        "type": "string",
                        "description": "Report ID"
                      }
                    },
                    "description": "Report"
                  },
                  "description": "Collection of reports"
                },
                "total_count": {
                  "type": "integer",
                  "description": "The total report count"
                }
              },
              "description": "List of reports and count"
            },
            {
              "description": "List of reports and count"
            }
          ]
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/newcastleProtectReportsGetReports"
      },
      "task": true
    }
  ],
  "views": []
}