{
  "id": "@itentialopensource/adapter-accedian_skylight",
  "type": "Adapter",
  "export": "AccedianSkylight",
  "title": "Accedian_skylight",
  "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": "getEndpoints",
      "summary": "Get endpoints",
      "description": "Get information (EndpointHead) on all endpoints.",
      "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": "/getEndpoints"
      },
      "task": true
    },
    {
      "name": "deleteEndpoint",
      "summary": "Delete endpoint",
      "description": "Delete endpoint",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "id: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/deleteEndpoint"
      },
      "task": true
    },
    {
      "name": "alterEndpointDescription",
      "summary": "Alter endpoint description.",
      "description": "Alter endpoint description.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "id: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "description",
          "type": "string",
          "info": "description: string",
          "required": false,
          "schema": {
            "title": "description",
            "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": "/alterEndpointDescription"
      },
      "task": true
    },
    {
      "name": "getEndpointInformation",
      "summary": "Get information about a endpoint (EndpointHead).",
      "description": "Get information about a endpoint (EndpointHead).",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "id: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/getEndpointInformation"
      },
      "task": true
    },
    {
      "name": "changeNameOfEndpoint",
      "summary": "Change name of endpoint.",
      "description": "Change name of endpoint.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "id: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "name",
          "type": "string",
          "info": "name: string",
          "required": false,
          "schema": {
            "title": "name",
            "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": "/changeNameOfEndpoint"
      },
      "task": true
    },
    {
      "name": "operationOnEndpoint",
      "summary": "Operation on endpoint",
      "description": "Operation on endpoint",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "id: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "action",
          "type": "string",
          "info": "action: string",
          "required": false,
          "schema": {
            "title": "action",
            "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": "/operationOnEndpoint"
      },
      "task": true
    },
    {
      "name": "getInformationOnEndpointsByType",
      "summary": "Get information on all endpoints of given type.",
      "description": "Get information (EndpointHead) on all endpoints of given type. Supported types are: Supervision, Reflector, or All.",
      "input": [
        {
          "name": "type",
          "type": "string",
          "info": "Supported types are: Supervision, Reflector, or All.: string",
          "required": true,
          "schema": {
            "title": "type",
            "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": "/getInformationOnEndpointsByType"
      },
      "task": true
    },
    {
      "name": "createNewReflectorEndpoint",
      "summary": "Create a new unmanaged reflector endpoint.",
      "description": "Create a new unmanaged reflector endpoint.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "body: object",
          "required": false,
          "schema": {
            "title": "body",
            "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": "/createNewReflectorEndpoint"
      },
      "task": true
    },
    {
      "name": "getReflectorEndpointByName",
      "summary": "Get reflector endpoint parameters by name (id).",
      "description": "Get reflector endpoint parameters by name (id).",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "endpoint name: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/getReflectorEndpointByName"
      },
      "task": true
    },
    {
      "name": "changeIpAddressUnmanagedEndpoint",
      "summary": "Change ip address of terminated/unresolved unmanaged endpoint.",
      "description": "Change ip address of terminated/unresolved unmanaged endpoint.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "id: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "ipAddress",
          "type": "string",
          "info": "IP Address: string",
          "required": false,
          "schema": {
            "title": "ipAddress",
            "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": "/changeIpAddressUnmanagedEndpoint"
      },
      "task": true
    },
    {
      "name": "changeCapabilityUnmanagedEndpoint",
      "summary": "Change capability of unmanaged endpoint.",
      "description": "Change capability of unmanaged endpoint.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "id: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "capabilities",
          "type": "string",
          "info": "Capabilities: string",
          "required": false,
          "schema": {
            "title": "capabilities",
            "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": "/changeCapabilityUnmanagedEndpoint"
      },
      "task": true
    },
    {
      "name": "getReflectorEndpointByMAC",
      "summary": "Get reflector endpoint parameters by mac.",
      "description": "Get reflector endpoint parameters by mac.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "mac address: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/getReflectorEndpointByMAC"
      },
      "task": true
    },
    {
      "name": "changeTwampControlProtocolSettings",
      "summary": "Change Twamp control protocol settings of unmanaged endpoint.",
      "description": "Change Twamp control protocol settings of unmanaged endpoint.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "endpoint name: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "twampCp",
          "type": "string",
          "info": "TwampCp: string",
          "required": false,
          "schema": {
            "title": "twampCp",
            "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": "/changeTwampControlProtocolSettings"
      },
      "task": true
    },
    {
      "name": "deleteTwampCp",
      "summary": "Delete twamp cp.",
      "description": "Delete twamp cp.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "endpoint name: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/deleteTwampCp"
      },
      "task": true
    },
    {
      "name": "createSupervisonEndpoint",
      "summary": "Create a new supervision endpoint.",
      "description": "Create a new supervision endpoint.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Endpoint: object",
          "required": false,
          "schema": {
            "title": "body",
            "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": "/createSupervisonEndpoint"
      },
      "task": true
    },
    {
      "name": "getSupervisionEndpointByName",
      "summary": "Get supervision endpoint parameters by name (id).",
      "description": "Get supervision endpoint parameters by name (id).",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "endpoint name: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/getSupervisionEndpointByName"
      },
      "task": true
    },
    {
      "name": "getSessionInformation",
      "summary": "Get information (SessionHead) on all nodes.",
      "description": "Get information (SessionHead) on all nodes.",
      "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": "/getSessionInformation"
      },
      "task": true
    },
    {
      "name": "deleteSession",
      "summary": "Delete a session.",
      "description": "Delete a session.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "session name: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/deleteSession"
      },
      "task": true
    },
    {
      "name": "alterSessionDescription",
      "summary": "Alter session description.",
      "description": "Alter session description.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "session name: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "description",
          "type": "string",
          "info": "Description: string",
          "required": false,
          "schema": {
            "title": "description",
            "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": "/alterSessionDescription"
      },
      "task": true
    },
    {
      "name": "getSessionHeadInformationByName",
      "summary": "Get information (SessionHead) by name (id).",
      "description": "Get information (SessionHead) by name (id).",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "session name: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/getSessionHeadInformationByName"
      },
      "task": true
    },
    {
      "name": "getSessionLastRR",
      "summary": "Get last RR.",
      "description": "Get last RR.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "session name: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/getSessionLastRR"
      },
      "task": true
    },
    {
      "name": "alterTerminatedNotResolvedSessionName",
      "summary": "Alter a Terminated or NotResolved session name.",
      "description": "Alter a Terminated or NotResolved session name.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "session name: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "body: object",
          "required": false,
          "schema": {
            "title": "body",
            "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": "/alterTerminatedNotResolvedSessionName"
      },
      "task": true
    },
    {
      "name": "operationOnSession",
      "summary": "Operation on session.",
      "description": "Operation on session.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "session name: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "action",
          "type": "string",
          "info": ": string",
          "required": false,
          "schema": {
            "title": "action",
            "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": "/operationOnSession"
      },
      "task": true
    },
    {
      "name": "alterTerminatedNotResolvedSessionStream",
      "summary": "Alter Terminated or NotResolved session stream.",
      "description": "Alter Terminated or NotResolved session stream.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "session name: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "stream",
          "type": "string",
          "info": ": string",
          "required": false,
          "schema": {
            "title": "stream",
            "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": "/alterTerminatedNotResolvedSessionStream"
      },
      "task": true
    },
    {
      "name": "createEchoSession",
      "summary": "Create a new ECHO session.",
      "description": "Create a new ECHO session.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "EchoSession: object",
          "required": false,
          "schema": {
            "title": "body",
            "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": "/createEchoSession"
      },
      "task": true
    },
    {
      "name": "getEchoSessionInformation",
      "summary": "Get information about a ECHO session.",
      "description": "Get information about a ECHO session.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "session name: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/getEchoSessionInformation"
      },
      "task": true
    },
    {
      "name": "createEthOamSession",
      "summary": "Create a new eth-oam session.",
      "description": "Create a new eth-oam session. Supported types are ETH-DM, ETH-LB, and ETH-VS.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "EthOamSession: object",
          "required": false,
          "schema": {
            "title": "body",
            "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": "/createEthOamSession"
      },
      "task": true
    },
    {
      "name": "getEthOamSessionInformation",
      "summary": "Get information about a eth-oam session.",
      "description": "Get information about a eth-oam session.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "session name: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/getEthOamSessionInformation"
      },
      "task": true
    },
    {
      "name": "createTWAMPSession",
      "summary": "Create a new TWAMP session.",
      "description": "Create a new TWAMP session.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "TwampSession: object",
          "required": false,
          "schema": {
            "title": "body",
            "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": "/createTWAMPSession"
      },
      "task": true
    },
    {
      "name": "getTWAMPSessionInformation",
      "summary": "Get information about a TWAMP session.",
      "description": "Get information about a TWAMP session.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "session name: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/getTWAMPSessionInformation"
      },
      "task": true
    },
    {
      "name": "createSLA",
      "summary": "Create a new SLA.",
      "description": "Create a new SLA.",
      "input": [
        {
          "name": "body",
          "type": "string",
          "info": "SLA: object",
          "required": false,
          "schema": {
            "title": "body",
            "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": "/createSLA"
      },
      "task": true
    },
    {
      "name": "getSLAs",
      "summary": "Get all SLAs",
      "description": "Get all SLAs.",
      "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": "/getSLAs"
      },
      "task": true
    },
    {
      "name": "deleteSLA",
      "summary": "Delete a SLA",
      "description": "Delete a SLA",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "SLA name: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/deleteSLA"
      },
      "task": true
    },
    {
      "name": "putSessionReferenceToSLA",
      "summary": "Put session reference to SLA.",
      "description": "Put session reference to SLA.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "SLA name: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "sessionRef",
          "type": "string",
          "info": "session ref: string",
          "required": false,
          "schema": {
            "title": "sessionRef",
            "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": "/putSessionReferenceToSLA"
      },
      "task": true
    },
    {
      "name": "getSessionReferencesForSLA",
      "summary": "Get all session references for sla.",
      "description": "Get all session references for sla.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "SLA name: string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/getSessionReferencesForSLA"
      },
      "task": true
    },
    {
      "name": "deleteSessionReferenceFromSLA",
      "summary": "Delete a session reference from a sla.",
      "description": "Delete a session reference from a sla.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "SLA name: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "ref",
          "type": "string",
          "info": "session name: string",
          "required": true,
          "schema": {
            "title": "ref",
            "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": "/deleteSessionReferenceFromSLA"
      },
      "task": true
    },
    {
      "name": "getSystemVersion",
      "summary": "System Version",
      "description": "Get system version.",
      "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": "/getSystemVersion"
      },
      "task": true
    },
    {
      "name": "getApiOrchestrateV3Agents",
      "summary": "Retrieve all agents",
      "description": "Retrieve all agents",
      "input": [
        {
          "name": "page",
          "type": "number",
          "info": "Page number - zero counting: 123",
          "required": false,
          "schema": {
            "title": "page",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Page size: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        }
      ],
      "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": "/getApiOrchestrateV3Agents"
      },
      "task": true
    },
    {
      "name": "getApiOrchestrateV3AgentsAgentId",
      "summary": "Retrieve an agent by agentId.",
      "description": "Retrieve an agent by agentId.",
      "input": [
        {
          "name": "agentId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "agentId",
            "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": "/getApiOrchestrateV3AgentsAgentId"
      },
      "task": true
    },
    {
      "name": "deleteApiOrchestrateV3AgentsAgentId",
      "summary": "Delete an agent specified by the provided agentId.",
      "description": "Delete an agent specified by the provided agentId.",
      "input": [
        {
          "name": "agentId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "agentId",
            "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": "/deleteApiOrchestrateV3AgentsAgentId"
      },
      "task": true
    },
    {
      "name": "postApiOrchestrateV3AgentsConfiguration",
      "summary": "Create an agent configuration",
      "description": "Create an agent configuration",
      "input": [
        {
          "name": "page",
          "type": "number",
          "info": "Page number - zero counting: 123",
          "required": false,
          "schema": {
            "title": "page",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Page size: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [agentConfigs]\", \"attributes\": {\"agentId\": \"string\", \"dataGateway\": {\"server\": \"string\", \"port\": 123, \"dataBrokerUseSsl\": \"boolean\", \"dataBrokerSslAllowSelfsigned\": \"boolean\", \"dataBrokerSslAllowInsecureCerts\": \"boolean\", \"dataBrokerSslAllowExpiredCerts\": \"boolean\", \"dataBrokerSslSkipHostnameCheck\": \"boolean\", \"pdgMetricsEnabled\": \"boolean\", \"brokerATO\": 123, \"brokerATOMaxCount\": 123}, \"reflector\": {\"reflectors\": [{\"reflectorType\": \"Must be one of [twampIpv4, twampIpv6, echoUdpIpv4, echoUdpIpv6, echoIcmpIpv4, echoIcmpIpv6]\", \"enable\": \"boolean\"}]}, \"metadata\": \"object\", \"identification\": {\"agentName\": \"string\"}}}}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "data"
            ],
            "description": "Object used to create an agent configuration",
            "properties": {
              "data": {
                "type": "object",
                "required": [
                  "type",
                  "attributes"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "agentConfigs"
                    ]
                  },
                  "attributes": {
                    "type": "object",
                    "properties": {
                      "agentId": {
                        "type": "string"
                      },
                      "dataGateway": {
                        "description": "Configuration elements for the data gateway.",
                        "type": "object",
                        "properties": {
                          "server": {
                            "type": "string",
                            "description": "IP or FQDN for the data broker to connect to."
                          },
                          "port": {
                            "type": "number",
                            "default": 55888,
                            "minimum": 1024,
                            "maximum": 65535,
                            "description": "The data broker connection port."
                          },
                          "dataBrokerUseSsl": {
                            "type": "boolean",
                            "description": "Enable secure connection."
                          },
                          "dataBrokerSslAllowSelfsigned": {
                            "type": "boolean",
                            "description": "Allow self signed certificates on the secure connection."
                          },
                          "dataBrokerSslAllowInsecureCerts": {
                            "type": "boolean",
                            "description": "Allow insecure certificates to be used for the secure connection."
                          },
                          "dataBrokerSslAllowExpiredCerts": {
                            "type": "boolean",
                            "description": "Allow the use of expired certificates on secure connections."
                          },
                          "dataBrokerSslSkipHostnameCheck": {
                            "type": "boolean",
                            "description": "Skip hostname/Common Name check on secure connection."
                          },
                          "pdgMetricsEnabled": {
                            "type": "boolean",
                            "default": false,
                            "description": "ENGINEERING ONLY Send internal performance data metrics."
                          },
                          "brokerATO": {
                            "type": "number",
                            "default": 5,
                            "minimum": 1,
                            "description": "ENGINEERING ONLY Set the ack timeout value in seconds. To disable please use AGENT_PDG_ACK_ENABLE=false."
                          },
                          "brokerATOMaxCount": {
                            "type": "number",
                            "default": 2,
                            "minimum": 1,
                            "description": "ENGINEERING ONLY Set the maximum number of ack timeouts before disconnect."
                          }
                        }
                      },
                      "reflector": {
                        "description": "Performance monitoring agent reflector configuration",
                        "type": "object",
                        "properties": {
                          "reflectors": {
                            "type": "array",
                            "items": {
                              "description": "TWAMP and Echo reflectors",
                              "required": [
                                "reflectorType",
                                "enable"
                              ],
                              "type": "object",
                              "properties": {
                                "reflectorType": {
                                  "type": "string",
                                  "enum": [
                                    "twampIpv4",
                                    "twampIpv6",
                                    "echoUdpIpv4",
                                    "echoUdpIpv6",
                                    "echoIcmpIpv4",
                                    "echoIcmpIpv6"
                                  ],
                                  "description": "Reflector type TWAMP IPv4/6, Echo UDP IPv4/6 or Echo ICMP IPv4/6",
                                  "example": "twampIpv4"
                                },
                                "enable": {
                                  "type": "boolean"
                                }
                              }
                            }
                          }
                        }
                      },
                      "metadata": {
                        "type": "object"
                      },
                      "identification": {
                        "type": "object",
                        "description": "Identification Information",
                        "properties": {
                          "agentName": {
                            "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": "/postApiOrchestrateV3AgentsConfiguration"
      },
      "task": true
    },
    {
      "name": "getApiOrchestrateV3AgentsConfiguration",
      "summary": "Retrieve all agent configurations",
      "description": "Retrieve all agent configurations",
      "input": [
        {
          "name": "page",
          "type": "number",
          "info": "Page number - zero counting: 123",
          "required": false,
          "schema": {
            "title": "page",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Page size: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        }
      ],
      "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": "/getApiOrchestrateV3AgentsConfiguration"
      },
      "task": true
    },
    {
      "name": "getApiOrchestrateV3AgentsConfigurationAgentId",
      "summary": "Retrieve an agent configuration by agentId.",
      "description": "Retrieve an agent configuration by agentId.",
      "input": [
        {
          "name": "agentId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "agentId",
            "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": "/getApiOrchestrateV3AgentsConfigurationAgentId"
      },
      "task": true
    },
    {
      "name": "putApiOrchestrateV3AgentsConfigurationAgentId",
      "summary": "Update an agent configuration specified by the provided agentId.",
      "description": "Update an agent configuration specified by the provided agentId.",
      "input": [
        {
          "name": "agentId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "agentId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [agentConfigs]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"agentId\": \"string\", \"dataGateway\": {\"server\": \"string\", \"port\": 123, \"dataBrokerUseSsl\": \"boolean\", \"dataBrokerSslAllowSelfsigned\": \"boolean\", \"dataBrokerSslAllowInsecureCerts\": \"boolean\", \"dataBrokerSslAllowExpiredCerts\": \"boolean\", \"dataBrokerSslSkipHostnameCheck\": \"boolean\", \"pdgMetricsEnabled\": \"boolean\", \"brokerATO\": 123, \"brokerATOMaxCount\": 123}, \"reflector\": {\"reflectors\": [{\"reflectorType\": \"Must be one of [twampIpv4, twampIpv6, echoUdpIpv4, echoUdpIpv6, echoIcmpIpv4, echoIcmpIpv6]\", \"enable\": \"boolean\"}]}, \"metadata\": \"object\", \"identification\": {\"agentName\": \"string\"}}}}",
          "required": false,
          "schema": {
            "type": "object",
            "required": [
              "data"
            ],
            "description": "Object used to update an existing agent configuration",
            "properties": {
              "data": {
                "type": "object",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "agentConfigs"
                    ]
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "agentId": {
                        "type": "string"
                      },
                      "dataGateway": {
                        "description": "Configuration elements for the data gateway.",
                        "type": "object",
                        "properties": {
                          "server": {
                            "type": "string",
                            "description": "IP or FQDN for the data broker to connect to."
                          },
                          "port": {
                            "type": "number",
                            "default": 55888,
                            "minimum": 1024,
                            "maximum": 65535,
                            "description": "The data broker connection port."
                          },
                          "dataBrokerUseSsl": {
                            "type": "boolean",
                            "description": "Enable secure connection."
                          },
                          "dataBrokerSslAllowSelfsigned": {
                            "type": "boolean",
                            "description": "Allow self signed certificates on the secure connection."
                          },
                          "dataBrokerSslAllowInsecureCerts": {
                            "type": "boolean",
                            "description": "Allow insecure certificates to be used for the secure connection."
                          },
                          "dataBrokerSslAllowExpiredCerts": {
                            "type": "boolean",
                            "description": "Allow the use of expired certificates on secure connections."
                          },
                          "dataBrokerSslSkipHostnameCheck": {
                            "type": "boolean",
                            "description": "Skip hostname/Common Name check on secure connection."
                          },
                          "pdgMetricsEnabled": {
                            "type": "boolean",
                            "default": false,
                            "description": "ENGINEERING ONLY Send internal performance data metrics."
                          },
                          "brokerATO": {
                            "type": "number",
                            "default": 5,
                            "minimum": 1,
                            "description": "ENGINEERING ONLY Set the ack timeout value in seconds. To disable please use AGENT_PDG_ACK_ENABLE=false."
                          },
                          "brokerATOMaxCount": {
                            "type": "number",
                            "default": 2,
                            "minimum": 1,
                            "description": "ENGINEERING ONLY Set the maximum number of ack timeouts before disconnect."
                          }
                        }
                      },
                      "reflector": {
                        "description": "Performance monitoring agent reflector configuration",
                        "type": "object",
                        "properties": {
                          "reflectors": {
                            "type": "array",
                            "items": {
                              "description": "TWAMP and Echo reflectors",
                              "required": [
                                "reflectorType",
                                "enable"
                              ],
                              "type": "object",
                              "properties": {
                                "reflectorType": {
                                  "type": "string",
                                  "enum": [
                                    "twampIpv4",
                                    "twampIpv6",
                                    "echoUdpIpv4",
                                    "echoUdpIpv6",
                                    "echoIcmpIpv4",
                                    "echoIcmpIpv6"
                                  ],
                                  "description": "Reflector type TWAMP IPv4/6, Echo UDP IPv4/6 or Echo ICMP IPv4/6",
                                  "example": "twampIpv4"
                                },
                                "enable": {
                                  "type": "boolean"
                                }
                              }
                            }
                          }
                        }
                      },
                      "metadata": {
                        "type": "object"
                      },
                      "identification": {
                        "type": "object",
                        "description": "Identification Information",
                        "properties": {
                          "agentName": {
                            "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": "/putApiOrchestrateV3AgentsConfigurationAgentId"
      },
      "task": true
    },
    {
      "name": "deleteApiOrchestrateV3AgentsConfigurationAgentId",
      "summary": "Delete an agent configuration specified by the provided agentId.",
      "description": "Delete an agent configuration specified by the provided agentId.",
      "input": [
        {
          "name": "agentId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "agentId",
            "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": "/deleteApiOrchestrateV3AgentsConfigurationAgentId"
      },
      "task": true
    },
    {
      "name": "postApiOrchestrateV3AgentsAgentIdCommand",
      "summary": "Sends a given command to be run for the agent specified by agentId",
      "description": "Sends a given command to be run for the agent specified by agentId",
      "input": [
        {
          "name": "agentId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "agentId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [agentCommands]\", \"attributes\": {\"command\": \"Must be one of [start, stop]\", \"args\": [{\"type\": \"Must be one of [throughput, baseline]\", \"sessionId\": \"string\", \"overrides\": {\"sessionType\": \"Must be one of [tcp-throughput, twamp-stateful, twamp-stateless, echo-udp, echo-icmp, path-trace]\", \"throughput\": {\"testServerAddress\": \"string\", \"testServerPort\": 123, \"testReverse\": \"boolean\", \"testDurationSecs\": 123, \"testReportIntervalSecs\": 123, \"testParallel\": 123, \"testDscp\": 123, \"testTracerouteDestPort\": 123, \"networkMaxRateBitsPerSec\": 123, \"networkMtuBytes\": 123, \"networkBottleneckBandwidthBitsPerSec\": 123, \"networkRttMs\": 123}}, \"populateFields\": \"array\"}]}}}",
          "required": false,
          "schema": {
            "type": "object",
            "required": [
              "data"
            ],
            "description": "Object used to create a command for the agent to run",
            "properties": {
              "data": {
                "type": "object",
                "required": [
                  "type",
                  "attributes"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "agentCommands"
                    ]
                  },
                  "attributes": {
                    "description": "Execute a command on the agent.",
                    "type": "object",
                    "required": [
                      "command"
                    ],
                    "properties": {
                      "command": {
                        "type": "string",
                        "enum": [
                          "start",
                          "stop"
                        ]
                      },
                      "args": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "List of arguments, dependent on the test.  Execute the command on a test or on a session. Use appropriate argument.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "throughput",
                                "baseline"
                              ],
                              "description": "Type of test to run. This field is specific to each service.",
                              "example": "baseline"
                            },
                            "sessionId": {
                              "type": "string",
                              "description": "Session identifier.",
                              "example": "f422344c-1b97-4bd4-8073-773fc592e9e2"
                            },
                            "overrides": {
                              "type": "object",
                              "required": [
                                "sessionType"
                              ],
                              "properties": {
                                "sessionType": {
                                  "type": "string",
                                  "enum": [
                                    "tcp-throughput",
                                    "twamp-stateful",
                                    "twamp-stateless",
                                    "echo-udp",
                                    "echo-icmp",
                                    "path-trace"
                                  ],
                                  "description": "Type of session or test"
                                },
                                "throughput": {
                                  "description": "RFC 6349 TCP throughput test session configuration",
                                  "type": "object",
                                  "properties": {
                                    "testServerAddress": {
                                      "type": "string",
                                      "description": "IP address of the test server.",
                                      "example": "13.0.0.9"
                                    },
                                    "testServerPort": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 65535,
                                      "default": 5201,
                                      "description": "IP port of the test server"
                                    },
                                    "testReverse": {
                                      "type": "boolean",
                                      "default": false,
                                      "description": "False means TCP traffic from agent-to-server."
                                    },
                                    "testDurationSecs": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 86400,
                                      "default": 60,
                                      "description": "Duration in seconds for the throughput test. testDurationSecs is ignored by the baseline test."
                                    },
                                    "testReportIntervalSecs": {
                                      "type": "number",
                                      "example": 1.5,
                                      "minimum": 1,
                                      "maximum": 60,
                                      "default": 1,
                                      "description": "Throughput test metrics reporting interval in seconds. testReportIntervalSecs is ignored by the baseline test."
                                    },
                                    "testParallel": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 128,
                                      "default": 1,
                                      "description": "The number of simultaneous connections to make to the server."
                                    },
                                    "testDscp": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 63,
                                      "default": 0,
                                      "description": "The Differentiated Services Code Point values in the IP header."
                                    },
                                    "testTracerouteDestPort": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 65535,
                                      "default": 33434,
                                      "description": "Destination IP port of the tracetroute probe. Usually, testTracerouteDestPort = testServerPort."
                                    },
                                    "networkMaxRateBitsPerSec": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "default": 0,
                                      "example": 280000000,
                                      "description": "Maximum rate in bits-per-second in baseline and throughput test phase. Zero means unbound."
                                    },
                                    "networkMtuBytes": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9000,
                                      "example": 1500,
                                      "description": "Maximum Transmission Unit in bytes. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
                                    },
                                    "networkBottleneckBandwidthBitsPerSec": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "example": 250000000,
                                      "description": "TCP bottleneck bandwidth in bits-per-second. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
                                    },
                                    "networkRttMs": {
                                      "type": "number",
                                      "minimum": 0,
                                      "example": 0.44,
                                      "description": "Round-trip time in milliseconds. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
                                    }
                                  }
                                }
                              }
                            },
                            "populateFields": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "networkMtuBytes",
                                  "networkBottleneckBandwidthBitsPerSec",
                                  "networkRttMs"
                                ]
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/postApiOrchestrateV3AgentsAgentIdCommand"
      },
      "task": true
    },
    {
      "name": "getApiOrchestrateV3AgentsSessions",
      "summary": "Retrieve all sessions",
      "description": "Retrieve all sessions",
      "input": [
        {
          "name": "page",
          "type": "number",
          "info": "Page number - zero counting: 123",
          "required": false,
          "schema": {
            "title": "page",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Page size: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        }
      ],
      "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": "/getApiOrchestrateV3AgentsSessions"
      },
      "task": true
    },
    {
      "name": "postApiOrchestrateV3AgentsSessions",
      "summary": "Create agent sessions",
      "description": "Create agent sessions",
      "input": [
        {
          "name": "page",
          "type": "number",
          "info": "Page number - zero counting: 123",
          "required": false,
          "schema": {
            "title": "page",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Page size: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [agentSessionLists]\", \"attributes\": {\"agentId\": \"string\", \"sessionlist\": {\"sessions\": [{\"sessionName\": \"string\", \"sessionId\": \"string\", \"sessionType\": \"Must be one of [tcp-throughput, twamp-stateful, twamp-stateless, echo-udp, echo-icmp, path-trace]\", \"enable\": \"boolean\", \"period\": \"Must be one of [continuous, once, repeat]\", \"twamp\": {\"senderAddr\": \"string\", \"senderPort\": 123, \"senderPayloadSize\": 123, \"senderRate\": 123, \"senderDscp\": 123, \"senderTtl\": 123, \"senderVprio\": 123, \"reflectorAddr\": \"string\", \"reflectorPort\": 123, \"reportInterval\": 123, \"controlAddr\": \"string\", \"controlPort\": 123, \"controlDscp\": 123, \"controlVprio\": 123, \"controlLegacy\": \"boolean\"}, \"echo\": {\"senderAddr\": \"string\", \"senderPort\": 123, \"senderPayloadSize\": 123, \"senderRate\": 123, \"senderDscp\": 123, \"senderTtl\": 123, \"senderVprio\": 123, \"reflectorAddr\": \"string\", \"reflectorPort\": 123, \"reportInterval\": 123}, \"throughput\": {\"testServerAddress\": \"string\", \"testServerPort\": 123, \"testReverse\": \"boolean\", \"testDurationSecs\": 123, \"testReportIntervalSecs\": 123, \"testParallel\": 123, \"testDscp\": 123, \"testTracerouteDestPort\": 123, \"networkMaxRateBitsPerSec\": 123, \"networkMtuBytes\": 123, \"networkBottleneckBandwidthBitsPerSec\": 123, \"networkRttMs\": 123}, \"trace\": {\"destination\": \"string\", \"destinationPort\": 123, \"senderPort\": 123, \"algorithm\": \"Must be one of [paris-traceroute]\", \"type\": \"Must be one of [udp, icmp, tcp]\", \"probingRate\": 123, \"senderTtlMin\": 123, \"senderTtlMax\": 123, \"senderDscp\": 123, \"probesPerHop\": 123, \"maxUndiscovered\": 123, \"waitSec\": 123, \"testDurationSec\": 123}}]}}}}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "data"
            ],
            "description": "Object used to bulk create sessions",
            "properties": {
              "data": {
                "type": "object",
                "required": [
                  "type",
                  "attributes"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "agentSessionLists"
                    ]
                  },
                  "attributes": {
                    "type": "object",
                    "properties": {
                      "agentId": {
                        "type": "string"
                      },
                      "sessionlist": {
                        "description": "agent sessions",
                        "type": "object",
                        "properties": {
                          "sessions": {
                            "type": "array",
                            "items": {
                              "description": "configuration of a session.",
                              "type": "object",
                              "required": [
                                "sessionName",
                                "sessionType",
                                "period",
                                "enable"
                              ],
                              "properties": {
                                "sessionName": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64,
                                  "description": "User-friendly session name, default generated by the agent",
                                  "example": "myTwampSession, Ottawa-to-Kanata"
                                },
                                "sessionId": {
                                  "type": "string",
                                  "description": "Session identifier.",
                                  "example": "f422344c-1b97-4bd4-8073-773fc592e9e2"
                                },
                                "sessionType": {
                                  "type": "string",
                                  "enum": [
                                    "tcp-throughput",
                                    "twamp-stateful",
                                    "twamp-stateless",
                                    "echo-udp",
                                    "echo-icmp",
                                    "path-trace"
                                  ],
                                  "description": "Type of session or test"
                                },
                                "enable": {
                                  "type": "boolean"
                                },
                                "period": {
                                  "type": "string",
                                  "description": "once, to run a finite duration test. continuous, to run the test continuously (e.g. TWAMP). repeat, to repeat the finite duration test indefinitely (e.g. throughput)",
                                  "enum": [
                                    "continuous",
                                    "once",
                                    "repeat"
                                  ]
                                },
                                "twamp": {
                                  "description": "TWAMP performance monitoring session configuration",
                                  "required": [
                                    "reflectorAddr"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "senderAddr": {
                                      "type": "string",
                                      "description": "TWAMP sender IPv4, IPv6 address or FQDN",
                                      "example": "8.8.8.8"
                                    },
                                    "senderPort": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 65535,
                                      "description": "TWAMP sender port number, default generated by agent",
                                      "example": 15000
                                    },
                                    "senderPayloadSize": {
                                      "type": "integer",
                                      "minimum": 41,
                                      "maximum": 1472,
                                      "description": "TWAMP payload size in bytes, default 82",
                                      "example": 82
                                    },
                                    "senderRate": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1000,
                                      "description": "TWAMP packet rate in PPS, default 10",
                                      "example": 10
                                    },
                                    "senderDscp": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 63,
                                      "description": "TWAMP sender DSCP value, default 0 (CS0)",
                                      "example": 32
                                    },
                                    "senderTtl": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 255,
                                      "description": "TWAMP sender TTL value, default 255",
                                      "example": 255
                                    },
                                    "senderVprio": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 7,
                                      "description": "TWAMP sender VLAN prio, default 0",
                                      "example": 0
                                    },
                                    "reflectorAddr": {
                                      "type": "string",
                                      "description": "TWAMP reflector IPv4, IPv6 address or FQDN",
                                      "example": "8.8.8.8"
                                    },
                                    "reflectorPort": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 65535,
                                      "description": "TWAMP reflector port number, default 862",
                                      "example": 862
                                    },
                                    "reportInterval": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 900,
                                      "description": "Reporting interval in seconds, default 30",
                                      "example": 30
                                    },
                                    "controlAddr": {
                                      "type": "string",
                                      "description": "TWAMP control server IPv4, IPv6 address or FQDN",
                                      "example": "8.8.8.8"
                                    },
                                    "controlPort": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 65535,
                                      "description": "TWAMP control server port number, default 862",
                                      "example": 862
                                    },
                                    "controlDscp": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 63,
                                      "description": "TWAMP control connection DSCP value, default 0 (CS0)",
                                      "example": 0
                                    },
                                    "controlVprio": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 7,
                                      "description": "TWAMP control connection VLAN prio, default 0",
                                      "example": 0
                                    },
                                    "controlLegacy": {
                                      "type": "boolean",
                                      "description": "TWAMP control legacy mode, default false",
                                      "example": false
                                    }
                                  }
                                },
                                "echo": {
                                  "description": "Echo performance monitoring session configuration",
                                  "required": [
                                    "reflectorAddr"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "senderAddr": {
                                      "type": "string",
                                      "description": "Echo sender IPv4 address or FQDN",
                                      "example": "8.8.8.8"
                                    },
                                    "senderPort": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 65535,
                                      "description": "Echo UDP sender port number, default generated by agent",
                                      "example": 15000
                                    },
                                    "senderPayloadSize": {
                                      "type": "integer",
                                      "minimum": 20,
                                      "maximum": 1472,
                                      "description": "Echo payload size in bytes, default 82",
                                      "example": 82
                                    },
                                    "senderRate": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1000,
                                      "description": "Echo packet rate in PPS, default 10",
                                      "example": 10
                                    },
                                    "senderDscp": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 63,
                                      "description": "Echo sender DSCP value, default 0 (CS0)",
                                      "example": 32
                                    },
                                    "senderTtl": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 255,
                                      "description": "Echo sender TTL value, default 255",
                                      "example": 255
                                    },
                                    "senderVprio": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 7,
                                      "description": "Echo sender VLAN prio, default 0",
                                      "example": 0
                                    },
                                    "reflectorAddr": {
                                      "type": "string",
                                      "description": "Echo reflector IPv4 address or FQDN",
                                      "example": "8.8.8.8"
                                    },
                                    "reflectorPort": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 65535,
                                      "description": "Echo UDP reflector port number, default 7",
                                      "example": 7
                                    },
                                    "reportInterval": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 900,
                                      "description": "Reporting interval in seconds, default 30",
                                      "example": 30
                                    }
                                  }
                                },
                                "throughput": {
                                  "description": "RFC 6349 TCP throughput test session configuration",
                                  "type": "object",
                                  "properties": {
                                    "testServerAddress": {
                                      "type": "string",
                                      "description": "IP address of the test server.",
                                      "example": "13.0.0.9"
                                    },
                                    "testServerPort": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 65535,
                                      "default": 5201,
                                      "description": "IP port of the test server"
                                    },
                                    "testReverse": {
                                      "type": "boolean",
                                      "default": false,
                                      "description": "False means TCP traffic from agent-to-server."
                                    },
                                    "testDurationSecs": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 86400,
                                      "default": 60,
                                      "description": "Duration in seconds for the throughput test. testDurationSecs is ignored by the baseline test."
                                    },
                                    "testReportIntervalSecs": {
                                      "type": "number",
                                      "example": 1.5,
                                      "minimum": 1,
                                      "maximum": 60,
                                      "default": 1,
                                      "description": "Throughput test metrics reporting interval in seconds. testReportIntervalSecs is ignored by the baseline test."
                                    },
                                    "testParallel": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 128,
                                      "default": 1,
                                      "description": "The number of simultaneous connections to make to the server."
                                    },
                                    "testDscp": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 63,
                                      "default": 0,
                                      "description": "The Differentiated Services Code Point values in the IP header."
                                    },
                                    "testTracerouteDestPort": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 65535,
                                      "default": 33434,
                                      "description": "Destination IP port of the tracetroute probe. Usually, testTracerouteDestPort = testServerPort."
                                    },
                                    "networkMaxRateBitsPerSec": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "default": 0,
                                      "example": 280000000,
                                      "description": "Maximum rate in bits-per-second in baseline and throughput test phase. Zero means unbound."
                                    },
                                    "networkMtuBytes": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9000,
                                      "example": 1500,
                                      "description": "Maximum Transmission Unit in bytes. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
                                    },
                                    "networkBottleneckBandwidthBitsPerSec": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "example": 250000000,
                                      "description": "TCP bottleneck bandwidth in bits-per-second. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
                                    },
                                    "networkRttMs": {
                                      "type": "number",
                                      "minimum": 0,
                                      "example": 0.44,
                                      "description": "Round-trip time in milliseconds. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
                                    }
                                  }
                                },
                                "trace": {
                                  "description": "Trace session configuration",
                                  "required": [
                                    "destination"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "destination": {
                                      "type": "string",
                                      "description": "Trace IPv4 address, IPv6 address or FQDN",
                                      "example": "8.8.8.8"
                                    },
                                    "destinationPort": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 65535,
                                      "default": 33457,
                                      "description": "Destination port number",
                                      "example": 33457
                                    },
                                    "senderPort": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 65535,
                                      "default": 33456,
                                      "description": "sender port number",
                                      "example": 33456
                                    },
                                    "algorithm": {
                                      "type": "string",
                                      "enum": [
                                        "paris-traceroute"
                                      ],
                                      "description": "Trace algoritm",
                                      "example": "paris"
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "udp",
                                        "icmp",
                                        "tcp"
                                      ],
                                      "default": "udp",
                                      "description": "Trace type",
                                      "example": "udp"
                                    },
                                    "probingRate": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 99,
                                      "default": 10,
                                      "description": "probing rate. Probes per second"
                                    },
                                    "senderTtlMin": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 255,
                                      "default": 1,
                                      "description": "Start the first probe from this TTL instead of 1"
                                    },
                                    "senderTtlMax": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 255,
                                      "default": 30,
                                      "description": "Set the max number of hops to be reached"
                                    },
                                    "senderDscp": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 63,
                                      "default": 0,
                                      "description": "DSCP value used by the IP probes, value 0 means CS0"
                                    },
                                    "probesPerHop": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 255,
                                      "default": 3,
                                      "description": "number of probes sent per hop"
                                    },
                                    "maxUndiscovered": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 255,
                                      "default": 3,
                                      "description": "maximum number of consecutive unresponsive hops causing test abort"
                                    },
                                    "waitSec": {
                                      "type": "number",
                                      "minimum": 0,
                                      "default": 5,
                                      "description": "number of seconds to wait for a probe response"
                                    },
                                    "testDurationSec": {
                                      "type": "number",
                                      "minimum": 0,
                                      "default": 180,
                                      "description": "timeout in seconds of the measurement (pass 0 to set it to infinity)",
                                      "example": 60
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/postApiOrchestrateV3AgentsSessions"
      },
      "task": true
    },
    {
      "name": "postApiOrchestrateV3AgentsSession",
      "summary": "Create an agent session",
      "description": "Create an agent session",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [agentSessions]\", \"attributes\": {\"agentId\": \"string\", \"session\": {\"sessionName\": \"string\", \"sessionId\": \"string\", \"sessionType\": \"Must be one of [tcp-throughput, twamp-stateful, twamp-stateless, echo-udp, echo-icmp, path-trace]\", \"enable\": \"boolean\", \"period\": \"Must be one of [continuous, once, repeat]\", \"twamp\": {\"senderAddr\": \"string\", \"senderPort\": 123, \"senderPayloadSize\": 123, \"senderRate\": 123, \"senderDscp\": 123, \"senderTtl\": 123, \"senderVprio\": 123, \"reflectorAddr\": \"string\", \"reflectorPort\": 123, \"reportInterval\": 123, \"controlAddr\": \"string\", \"controlPort\": 123, \"controlDscp\": 123, \"controlVprio\": 123, \"controlLegacy\": \"boolean\"}, \"echo\": {\"senderAddr\": \"string\", \"senderPort\": 123, \"senderPayloadSize\": 123, \"senderRate\": 123, \"senderDscp\": 123, \"senderTtl\": 123, \"senderVprio\": 123, \"reflectorAddr\": \"string\", \"reflectorPort\": 123, \"reportInterval\": 123}, \"throughput\": {\"testServerAddress\": \"string\", \"testServerPort\": 123, \"testReverse\": \"boolean\", \"testDurationSecs\": 123, \"testReportIntervalSecs\": 123, \"testParallel\": 123, \"testDscp\": 123, \"testTracerouteDestPort\": 123, \"networkMaxRateBitsPerSec\": 123, \"networkMtuBytes\": 123, \"networkBottleneckBandwidthBitsPerSec\": 123, \"networkRttMs\": 123}, \"trace\": {\"destination\": \"string\", \"destinationPort\": 123, \"senderPort\": 123, \"algorithm\": \"Must be one of [paris-traceroute]\", \"type\": \"Must be one of [udp, icmp, tcp]\", \"probingRate\": 123, \"senderTtlMin\": 123, \"senderTtlMax\": 123, \"senderDscp\": 123, \"probesPerHop\": 123, \"maxUndiscovered\": 123, \"waitSec\": 123, \"testDurationSec\": 123}}}}}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "data"
            ],
            "description": "Object used to create an agent session",
            "properties": {
              "data": {
                "type": "object",
                "required": [
                  "type",
                  "attributes"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "agentSessions"
                    ]
                  },
                  "attributes": {
                    "type": "object",
                    "properties": {
                      "agentId": {
                        "type": "string"
                      },
                      "session": {
                        "description": "configuration of a session.",
                        "type": "object",
                        "required": [
                          "sessionName",
                          "sessionType",
                          "period",
                          "enable"
                        ],
                        "properties": {
                          "sessionName": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "User-friendly session name, default generated by the agent",
                            "example": "myTwampSession, Ottawa-to-Kanata"
                          },
                          "sessionId": {
                            "type": "string",
                            "description": "Session identifier.",
                            "example": "f422344c-1b97-4bd4-8073-773fc592e9e2"
                          },
                          "sessionType": {
                            "type": "string",
                            "enum": [
                              "tcp-throughput",
                              "twamp-stateful",
                              "twamp-stateless",
                              "echo-udp",
                              "echo-icmp",
                              "path-trace"
                            ],
                            "description": "Type of session or test"
                          },
                          "enable": {
                            "type": "boolean"
                          },
                          "period": {
                            "type": "string",
                            "description": "once, to run a finite duration test. continuous, to run the test continuously (e.g. TWAMP). repeat, to repeat the finite duration test indefinitely (e.g. throughput)",
                            "enum": [
                              "continuous",
                              "once",
                              "repeat"
                            ]
                          },
                          "twamp": {
                            "description": "TWAMP performance monitoring session configuration",
                            "required": [
                              "reflectorAddr"
                            ],
                            "type": "object",
                            "properties": {
                              "senderAddr": {
                                "type": "string",
                                "description": "TWAMP sender IPv4, IPv6 address or FQDN",
                                "example": "8.8.8.8"
                              },
                              "senderPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "description": "TWAMP sender port number, default generated by agent",
                                "example": 15000
                              },
                              "senderPayloadSize": {
                                "type": "integer",
                                "minimum": 41,
                                "maximum": 1472,
                                "description": "TWAMP payload size in bytes, default 82",
                                "example": 82
                              },
                              "senderRate": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1000,
                                "description": "TWAMP packet rate in PPS, default 10",
                                "example": 10
                              },
                              "senderDscp": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 63,
                                "description": "TWAMP sender DSCP value, default 0 (CS0)",
                                "example": 32
                              },
                              "senderTtl": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 255,
                                "description": "TWAMP sender TTL value, default 255",
                                "example": 255
                              },
                              "senderVprio": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 7,
                                "description": "TWAMP sender VLAN prio, default 0",
                                "example": 0
                              },
                              "reflectorAddr": {
                                "type": "string",
                                "description": "TWAMP reflector IPv4, IPv6 address or FQDN",
                                "example": "8.8.8.8"
                              },
                              "reflectorPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "description": "TWAMP reflector port number, default 862",
                                "example": 862
                              },
                              "reportInterval": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 900,
                                "description": "Reporting interval in seconds, default 30",
                                "example": 30
                              },
                              "controlAddr": {
                                "type": "string",
                                "description": "TWAMP control server IPv4, IPv6 address or FQDN",
                                "example": "8.8.8.8"
                              },
                              "controlPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "description": "TWAMP control server port number, default 862",
                                "example": 862
                              },
                              "controlDscp": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 63,
                                "description": "TWAMP control connection DSCP value, default 0 (CS0)",
                                "example": 0
                              },
                              "controlVprio": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 7,
                                "description": "TWAMP control connection VLAN prio, default 0",
                                "example": 0
                              },
                              "controlLegacy": {
                                "type": "boolean",
                                "description": "TWAMP control legacy mode, default false",
                                "example": false
                              }
                            }
                          },
                          "echo": {
                            "description": "Echo performance monitoring session configuration",
                            "required": [
                              "reflectorAddr"
                            ],
                            "type": "object",
                            "properties": {
                              "senderAddr": {
                                "type": "string",
                                "description": "Echo sender IPv4 address or FQDN",
                                "example": "8.8.8.8"
                              },
                              "senderPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "description": "Echo UDP sender port number, default generated by agent",
                                "example": 15000
                              },
                              "senderPayloadSize": {
                                "type": "integer",
                                "minimum": 20,
                                "maximum": 1472,
                                "description": "Echo payload size in bytes, default 82",
                                "example": 82
                              },
                              "senderRate": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1000,
                                "description": "Echo packet rate in PPS, default 10",
                                "example": 10
                              },
                              "senderDscp": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 63,
                                "description": "Echo sender DSCP value, default 0 (CS0)",
                                "example": 32
                              },
                              "senderTtl": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 255,
                                "description": "Echo sender TTL value, default 255",
                                "example": 255
                              },
                              "senderVprio": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 7,
                                "description": "Echo sender VLAN prio, default 0",
                                "example": 0
                              },
                              "reflectorAddr": {
                                "type": "string",
                                "description": "Echo reflector IPv4 address or FQDN",
                                "example": "8.8.8.8"
                              },
                              "reflectorPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "description": "Echo UDP reflector port number, default 7",
                                "example": 7
                              },
                              "reportInterval": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 900,
                                "description": "Reporting interval in seconds, default 30",
                                "example": 30
                              }
                            }
                          },
                          "throughput": {
                            "description": "RFC 6349 TCP throughput test session configuration",
                            "type": "object",
                            "properties": {
                              "testServerAddress": {
                                "type": "string",
                                "description": "IP address of the test server.",
                                "example": "13.0.0.9"
                              },
                              "testServerPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "default": 5201,
                                "description": "IP port of the test server"
                              },
                              "testReverse": {
                                "type": "boolean",
                                "default": false,
                                "description": "False means TCP traffic from agent-to-server."
                              },
                              "testDurationSecs": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 86400,
                                "default": 60,
                                "description": "Duration in seconds for the throughput test. testDurationSecs is ignored by the baseline test."
                              },
                              "testReportIntervalSecs": {
                                "type": "number",
                                "example": 1.5,
                                "minimum": 1,
                                "maximum": 60,
                                "default": 1,
                                "description": "Throughput test metrics reporting interval in seconds. testReportIntervalSecs is ignored by the baseline test."
                              },
                              "testParallel": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 128,
                                "default": 1,
                                "description": "The number of simultaneous connections to make to the server."
                              },
                              "testDscp": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 63,
                                "default": 0,
                                "description": "The Differentiated Services Code Point values in the IP header."
                              },
                              "testTracerouteDestPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "default": 33434,
                                "description": "Destination IP port of the tracetroute probe. Usually, testTracerouteDestPort = testServerPort."
                              },
                              "networkMaxRateBitsPerSec": {
                                "type": "integer",
                                "minimum": 0,
                                "default": 0,
                                "example": 280000000,
                                "description": "Maximum rate in bits-per-second in baseline and throughput test phase. Zero means unbound."
                              },
                              "networkMtuBytes": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9000,
                                "example": 1500,
                                "description": "Maximum Transmission Unit in bytes. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
                              },
                              "networkBottleneckBandwidthBitsPerSec": {
                                "type": "integer",
                                "minimum": 0,
                                "example": 250000000,
                                "description": "TCP bottleneck bandwidth in bits-per-second. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
                              },
                              "networkRttMs": {
                                "type": "number",
                                "minimum": 0,
                                "example": 0.44,
                                "description": "Round-trip time in milliseconds. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
                              }
                            }
                          },
                          "trace": {
                            "description": "Trace session configuration",
                            "required": [
                              "destination"
                            ],
                            "type": "object",
                            "properties": {
                              "destination": {
                                "type": "string",
                                "description": "Trace IPv4 address, IPv6 address or FQDN",
                                "example": "8.8.8.8"
                              },
                              "destinationPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "default": 33457,
                                "description": "Destination port number",
                                "example": 33457
                              },
                              "senderPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "default": 33456,
                                "description": "sender port number",
                                "example": 33456
                              },
                              "algorithm": {
                                "type": "string",
                                "enum": [
                                  "paris-traceroute"
                                ],
                                "description": "Trace algoritm",
                                "example": "paris"
                              },
                              "type": {
                                "type": "string",
                                "enum": [
                                  "udp",
                                  "icmp",
                                  "tcp"
                                ],
                                "default": "udp",
                                "description": "Trace type",
                                "example": "udp"
                              },
                              "probingRate": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 99,
                                "default": 10,
                                "description": "probing rate. Probes per second"
                              },
                              "senderTtlMin": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 255,
                                "default": 1,
                                "description": "Start the first probe from this TTL instead of 1"
                              },
                              "senderTtlMax": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 255,
                                "default": 30,
                                "description": "Set the max number of hops to be reached"
                              },
                              "senderDscp": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 63,
                                "default": 0,
                                "description": "DSCP value used by the IP probes, value 0 means CS0"
                              },
                              "probesPerHop": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 255,
                                "default": 3,
                                "description": "number of probes sent per hop"
                              },
                              "maxUndiscovered": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 255,
                                "default": 3,
                                "description": "maximum number of consecutive unresponsive hops causing test abort"
                              },
                              "waitSec": {
                                "type": "number",
                                "minimum": 0,
                                "default": 5,
                                "description": "number of seconds to wait for a probe response"
                              },
                              "testDurationSec": {
                                "type": "number",
                                "minimum": 0,
                                "default": 180,
                                "description": "timeout in seconds of the measurement (pass 0 to set it to infinity)",
                                "example": 60
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/postApiOrchestrateV3AgentsSession"
      },
      "task": true
    },
    {
      "name": "putApiOrchestrateV3AgentsSession",
      "summary": "Update an agent session.",
      "description": "Update an agent session.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [agentSessions]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"agentId\": \"string\", \"session\": {\"sessionName\": \"string\", \"sessionId\": \"string\", \"sessionType\": \"Must be one of [tcp-throughput, twamp-stateful, twamp-stateless, echo-udp, echo-icmp, path-trace]\", \"enable\": \"boolean\", \"period\": \"Must be one of [continuous, once, repeat]\", \"twamp\": {\"senderAddr\": \"string\", \"senderPort\": 123, \"senderPayloadSize\": 123, \"senderRate\": 123, \"senderDscp\": 123, \"senderTtl\": 123, \"senderVprio\": 123, \"reflectorAddr\": \"string\", \"reflectorPort\": 123, \"reportInterval\": 123, \"controlAddr\": \"string\", \"controlPort\": 123, \"controlDscp\": 123, \"controlVprio\": 123, \"controlLegacy\": \"boolean\"}, \"echo\": {\"senderAddr\": \"string\", \"senderPort\": 123, \"senderPayloadSize\": 123, \"senderRate\": 123, \"senderDscp\": 123, \"senderTtl\": 123, \"senderVprio\": 123, \"reflectorAddr\": \"string\", \"reflectorPort\": 123, \"reportInterval\": 123}, \"throughput\": {\"testServerAddress\": \"string\", \"testServerPort\": 123, \"testReverse\": \"boolean\", \"testDurationSecs\": 123, \"testReportIntervalSecs\": 123, \"testParallel\": 123, \"testDscp\": 123, \"testTracerouteDestPort\": 123, \"networkMaxRateBitsPerSec\": 123, \"networkMtuBytes\": 123, \"networkBottleneckBandwidthBitsPerSec\": 123, \"networkRttMs\": 123}, \"trace\": {\"destination\": \"string\", \"destinationPort\": 123, \"senderPort\": 123, \"algorithm\": \"Must be one of [paris-traceroute]\", \"type\": \"Must be one of [udp, icmp, tcp]\", \"probingRate\": 123, \"senderTtlMin\": 123, \"senderTtlMax\": 123, \"senderDscp\": 123, \"probesPerHop\": 123, \"maxUndiscovered\": 123, \"waitSec\": 123, \"testDurationSec\": 123}}}}}",
          "required": false,
          "schema": {
            "type": "object",
            "required": [
              "data"
            ],
            "description": "Object used to update an existing agent session",
            "properties": {
              "data": {
                "type": "object",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "agentSessions"
                    ]
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "agentId": {
                        "type": "string"
                      },
                      "session": {
                        "description": "configuration of a session.",
                        "type": "object",
                        "required": [
                          "sessionName",
                          "sessionType",
                          "period",
                          "enable"
                        ],
                        "properties": {
                          "sessionName": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "User-friendly session name, default generated by the agent",
                            "example": "myTwampSession, Ottawa-to-Kanata"
                          },
                          "sessionId": {
                            "type": "string",
                            "description": "Session identifier.",
                            "example": "f422344c-1b97-4bd4-8073-773fc592e9e2"
                          },
                          "sessionType": {
                            "type": "string",
                            "enum": [
                              "tcp-throughput",
                              "twamp-stateful",
                              "twamp-stateless",
                              "echo-udp",
                              "echo-icmp",
                              "path-trace"
                            ],
                            "description": "Type of session or test"
                          },
                          "enable": {
                            "type": "boolean"
                          },
                          "period": {
                            "type": "string",
                            "description": "once, to run a finite duration test. continuous, to run the test continuously (e.g. TWAMP). repeat, to repeat the finite duration test indefinitely (e.g. throughput)",
                            "enum": [
                              "continuous",
                              "once",
                              "repeat"
                            ]
                          },
                          "twamp": {
                            "description": "TWAMP performance monitoring session configuration",
                            "required": [
                              "reflectorAddr"
                            ],
                            "type": "object",
                            "properties": {
                              "senderAddr": {
                                "type": "string",
                                "description": "TWAMP sender IPv4, IPv6 address or FQDN",
                                "example": "8.8.8.8"
                              },
                              "senderPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "description": "TWAMP sender port number, default generated by agent",
                                "example": 15000
                              },
                              "senderPayloadSize": {
                                "type": "integer",
                                "minimum": 41,
                                "maximum": 1472,
                                "description": "TWAMP payload size in bytes, default 82",
                                "example": 82
                              },
                              "senderRate": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1000,
                                "description": "TWAMP packet rate in PPS, default 10",
                                "example": 10
                              },
                              "senderDscp": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 63,
                                "description": "TWAMP sender DSCP value, default 0 (CS0)",
                                "example": 32
                              },
                              "senderTtl": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 255,
                                "description": "TWAMP sender TTL value, default 255",
                                "example": 255
                              },
                              "senderVprio": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 7,
                                "description": "TWAMP sender VLAN prio, default 0",
                                "example": 0
                              },
                              "reflectorAddr": {
                                "type": "string",
                                "description": "TWAMP reflector IPv4, IPv6 address or FQDN",
                                "example": "8.8.8.8"
                              },
                              "reflectorPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "description": "TWAMP reflector port number, default 862",
                                "example": 862
                              },
                              "reportInterval": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 900,
                                "description": "Reporting interval in seconds, default 30",
                                "example": 30
                              },
                              "controlAddr": {
                                "type": "string",
                                "description": "TWAMP control server IPv4, IPv6 address or FQDN",
                                "example": "8.8.8.8"
                              },
                              "controlPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "description": "TWAMP control server port number, default 862",
                                "example": 862
                              },
                              "controlDscp": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 63,
                                "description": "TWAMP control connection DSCP value, default 0 (CS0)",
                                "example": 0
                              },
                              "controlVprio": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 7,
                                "description": "TWAMP control connection VLAN prio, default 0",
                                "example": 0
                              },
                              "controlLegacy": {
                                "type": "boolean",
                                "description": "TWAMP control legacy mode, default false",
                                "example": false
                              }
                            }
                          },
                          "echo": {
                            "description": "Echo performance monitoring session configuration",
                            "required": [
                              "reflectorAddr"
                            ],
                            "type": "object",
                            "properties": {
                              "senderAddr": {
                                "type": "string",
                                "description": "Echo sender IPv4 address or FQDN",
                                "example": "8.8.8.8"
                              },
                              "senderPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "description": "Echo UDP sender port number, default generated by agent",
                                "example": 15000
                              },
                              "senderPayloadSize": {
                                "type": "integer",
                                "minimum": 20,
                                "maximum": 1472,
                                "description": "Echo payload size in bytes, default 82",
                                "example": 82
                              },
                              "senderRate": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1000,
                                "description": "Echo packet rate in PPS, default 10",
                                "example": 10
                              },
                              "senderDscp": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 63,
                                "description": "Echo sender DSCP value, default 0 (CS0)",
                                "example": 32
                              },
                              "senderTtl": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 255,
                                "description": "Echo sender TTL value, default 255",
                                "example": 255
                              },
                              "senderVprio": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 7,
                                "description": "Echo sender VLAN prio, default 0",
                                "example": 0
                              },
                              "reflectorAddr": {
                                "type": "string",
                                "description": "Echo reflector IPv4 address or FQDN",
                                "example": "8.8.8.8"
                              },
                              "reflectorPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "description": "Echo UDP reflector port number, default 7",
                                "example": 7
                              },
                              "reportInterval": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 900,
                                "description": "Reporting interval in seconds, default 30",
                                "example": 30
                              }
                            }
                          },
                          "throughput": {
                            "description": "RFC 6349 TCP throughput test session configuration",
                            "type": "object",
                            "properties": {
                              "testServerAddress": {
                                "type": "string",
                                "description": "IP address of the test server.",
                                "example": "13.0.0.9"
                              },
                              "testServerPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "default": 5201,
                                "description": "IP port of the test server"
                              },
                              "testReverse": {
                                "type": "boolean",
                                "default": false,
                                "description": "False means TCP traffic from agent-to-server."
                              },
                              "testDurationSecs": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 86400,
                                "default": 60,
                                "description": "Duration in seconds for the throughput test. testDurationSecs is ignored by the baseline test."
                              },
                              "testReportIntervalSecs": {
                                "type": "number",
                                "example": 1.5,
                                "minimum": 1,
                                "maximum": 60,
                                "default": 1,
                                "description": "Throughput test metrics reporting interval in seconds. testReportIntervalSecs is ignored by the baseline test."
                              },
                              "testParallel": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 128,
                                "default": 1,
                                "description": "The number of simultaneous connections to make to the server."
                              },
                              "testDscp": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 63,
                                "default": 0,
                                "description": "The Differentiated Services Code Point values in the IP header."
                              },
                              "testTracerouteDestPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "default": 33434,
                                "description": "Destination IP port of the tracetroute probe. Usually, testTracerouteDestPort = testServerPort."
                              },
                              "networkMaxRateBitsPerSec": {
                                "type": "integer",
                                "minimum": 0,
                                "default": 0,
                                "example": 280000000,
                                "description": "Maximum rate in bits-per-second in baseline and throughput test phase. Zero means unbound."
                              },
                              "networkMtuBytes": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9000,
                                "example": 1500,
                                "description": "Maximum Transmission Unit in bytes. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
                              },
                              "networkBottleneckBandwidthBitsPerSec": {
                                "type": "integer",
                                "minimum": 0,
                                "example": 250000000,
                                "description": "TCP bottleneck bandwidth in bits-per-second. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
                              },
                              "networkRttMs": {
                                "type": "number",
                                "minimum": 0,
                                "example": 0.44,
                                "description": "Round-trip time in milliseconds. This parameter is required by the throughput test. This parameter can be omitted or set to zero before running the baseline test to request for discovery."
                              }
                            }
                          },
                          "trace": {
                            "description": "Trace session configuration",
                            "required": [
                              "destination"
                            ],
                            "type": "object",
                            "properties": {
                              "destination": {
                                "type": "string",
                                "description": "Trace IPv4 address, IPv6 address or FQDN",
                                "example": "8.8.8.8"
                              },
                              "destinationPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "default": 33457,
                                "description": "Destination port number",
                                "example": 33457
                              },
                              "senderPort": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65535,
                                "default": 33456,
                                "description": "sender port number",
                                "example": 33456
                              },
                              "algorithm": {
                                "type": "string",
                                "enum": [
                                  "paris-traceroute"
                                ],
                                "description": "Trace algoritm",
                                "example": "paris"
                              },
                              "type": {
                                "type": "string",
                                "enum": [
                                  "udp",
                                  "icmp",
                                  "tcp"
                                ],
                                "default": "udp",
                                "description": "Trace type",
                                "example": "udp"
                              },
                              "probingRate": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 99,
                                "default": 10,
                                "description": "probing rate. Probes per second"
                              },
                              "senderTtlMin": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 255,
                                "default": 1,
                                "description": "Start the first probe from this TTL instead of 1"
                              },
                              "senderTtlMax": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 255,
                                "default": 30,
                                "description": "Set the max number of hops to be reached"
                              },
                              "senderDscp": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 63,
                                "default": 0,
                                "description": "DSCP value used by the IP probes, value 0 means CS0"
                              },
                              "probesPerHop": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 255,
                                "default": 3,
                                "description": "number of probes sent per hop"
                              },
                              "maxUndiscovered": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 255,
                                "default": 3,
                                "description": "maximum number of consecutive unresponsive hops causing test abort"
                              },
                              "waitSec": {
                                "type": "number",
                                "minimum": 0,
                                "default": 5,
                                "description": "number of seconds to wait for a probe response"
                              },
                              "testDurationSec": {
                                "type": "number",
                                "minimum": 0,
                                "default": 180,
                                "description": "timeout in seconds of the measurement (pass 0 to set it to infinity)",
                                "example": 60
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/putApiOrchestrateV3AgentsSession"
      },
      "task": true
    },
    {
      "name": "getApiOrchestrateV3AgentsSessionSessionId",
      "summary": "Retrieve an agent session by sessionId.",
      "description": "Retrieve an agent session by sessionId.",
      "input": [
        {
          "name": "sessionId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "sessionId",
            "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": "/getApiOrchestrateV3AgentsSessionSessionId"
      },
      "task": true
    },
    {
      "name": "deleteApiOrchestrateV3AgentsSessionSessionId",
      "summary": "Delete an agent session by sessionId.",
      "description": "Delete an agent session by sessionId.",
      "input": [
        {
          "name": "sessionId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "sessionId",
            "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": "/deleteApiOrchestrateV3AgentsSessionSessionId"
      },
      "task": true
    },
    {
      "name": "getApiOrchestrateV3AgentsSessionsAgentId",
      "summary": "Retrieve agent sessions by agentId.",
      "description": "Retrieve agent sessions by agentId.",
      "input": [
        {
          "name": "agentId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "agentId",
            "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": "/getApiOrchestrateV3AgentsSessionsAgentId"
      },
      "task": true
    },
    {
      "name": "deleteApiOrchestrateV3AgentsSessionsAgentId",
      "summary": "Delete all sessions for the provided agentId.",
      "description": "Delete all sessions for the provided agentId.",
      "input": [
        {
          "name": "agentId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "agentId",
            "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": "/deleteApiOrchestrateV3AgentsSessionsAgentId"
      },
      "task": true
    },
    {
      "name": "getApiOrchestrateV3AgentsSessionstatusSessionId",
      "summary": "Retrieves the session status for session with sessionId",
      "description": "Retrieves the session status for session with sessionId",
      "input": [
        {
          "name": "sessionId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "sessionId",
            "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": "/getApiOrchestrateV3AgentsSessionstatusSessionId"
      },
      "task": true
    },
    {
      "name": "postApiOrchestrateV3AgentsAgentIdSecrets",
      "summary": "Generates and returns the agent secrets required to start an agent",
      "description": "Generates and returns the agent secrets required to start an agent",
      "input": [
        {
          "name": "agentId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "agentId",
            "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": "/postApiOrchestrateV3AgentsAgentIdSecrets"
      },
      "task": true
    },
    {
      "name": "openIDConfiguration",
      "summary": "OpenIDConfiguration",
      "description": "OpenIDConfiguration",
      "input": [
        {
          "name": "clientName",
          "type": "string",
          "info": "The name of the openID provider we're trying to access: string",
          "required": true,
          "schema": {
            "title": "clientName",
            "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": "/openIDConfiguration"
      },
      "task": true
    },
    {
      "name": "openIDToken",
      "summary": "OpenIDToken",
      "description": "OpenIDToken",
      "input": [
        {
          "name": "clientName",
          "type": "string",
          "info": "The name of the openID provider we're trying to access: string",
          "required": true,
          "schema": {
            "title": "clientName",
            "type": "string"
          }
        },
        {
          "name": "grantType",
          "type": "string",
          "info": ": Must be one of [authorization_code]",
          "required": true,
          "schema": {
            "title": "grantType",
            "type": "string"
          }
        },
        {
          "name": "code",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "code",
            "type": "string"
          }
        },
        {
          "name": "clientId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "clientId",
            "type": "string"
          }
        },
        {
          "name": "clientSecret",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "clientSecret",
            "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": "/openIDToken"
      },
      "task": true
    },
    {
      "name": "openIDAuth",
      "summary": "OpenIDAuth",
      "description": "OpenIDAuth",
      "input": [
        {
          "name": "clientId",
          "type": "string",
          "info": "Our client ID which is registered in the OP: string",
          "required": true,
          "schema": {
            "title": "clientId",
            "type": "string"
          }
        },
        {
          "name": "redirectUri",
          "type": "string",
          "info": "URI of where the OP will redirect upon successful authentication: string",
          "required": true,
          "schema": {
            "title": "redirectUri",
            "type": "string"
          }
        },
        {
          "name": "responseType",
          "type": "string",
          "info": "What we are requesting from the OP: string",
          "required": true,
          "schema": {
            "title": "responseType",
            "type": "string"
          }
        },
        {
          "name": "state",
          "type": "string",
          "info": "Value that has to match between OIDC requests: string",
          "required": true,
          "schema": {
            "title": "state",
            "type": "string"
          }
        },
        {
          "name": "delegatedclientid",
          "type": "string",
          "info": ": string",
          "required": false,
          "schema": {
            "title": "delegatedclientid",
            "type": "string"
          }
        },
        {
          "name": "scope",
          "type": "string",
          "info": "scope of the OIDC request: string",
          "required": true,
          "schema": {
            "title": "scope",
            "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": "/openIDAuth"
      },
      "task": true
    },
    {
      "name": "samlRedirect",
      "summary": "SamlRedirect",
      "description": "SamlRedirect",
      "input": [
        {
          "name": "clientName",
          "type": "string",
          "info": "The name of the SAML client we'll be delegating auth to: string",
          "required": true,
          "schema": {
            "title": "clientName",
            "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": "/samlRedirect"
      },
      "task": true
    },
    {
      "name": "samlCallback",
      "summary": "SamlCallback",
      "description": "SamlCallback",
      "input": [
        {
          "name": "sAMLResponse",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "sAMLResponse",
            "type": "string"
          }
        },
        {
          "name": "relayState",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "relayState",
            "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": "/samlCallback"
      },
      "task": true
    },
    {
      "name": "samlSpMetadata",
      "summary": "SamlSpMetadata",
      "description": "SamlSpMetadata",
      "input": [
        {
          "name": "clientName",
          "type": "string",
          "info": "The name of the SAML provider we're trying to access: string",
          "required": true,
          "schema": {
            "title": "clientName",
            "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": "/samlSpMetadata"
      },
      "task": true
    },
    {
      "name": "createGrantingTicket",
      "summary": "CreateGrantingTicket",
      "description": "Create a Granting Ticket used to obtain Service Tickets",
      "input": [
        {
          "name": "username",
          "type": "string",
          "info": "Unique identifier of the User requesting access: string",
          "required": true,
          "schema": {
            "title": "username",
            "type": "string"
          }
        },
        {
          "name": "password",
          "type": "string",
          "info": "Password for the username of the User requesting access: string",
          "required": true,
          "schema": {
            "title": "password",
            "type": "string"
          }
        },
        {
          "name": "service",
          "type": "string",
          "info": "URL of the granting service.: Must be one of [https://cas.local/aastubs/]",
          "required": true,
          "schema": {
            "title": "service",
            "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": "/createGrantingTicket"
      },
      "task": true
    },
    {
      "name": "createServiceTicket",
      "summary": "CreateServiceTicket",
      "description": "Obtain a Service Ticket used to access a particular resource",
      "input": [
        {
          "name": "grantingTicket",
          "type": "string",
          "info": "The URL Granting ticket used to obtain the Service Ticket: string",
          "required": true,
          "schema": {
            "title": "grantingTicket",
            "type": "string"
          }
        },
        {
          "name": "service",
          "type": "string",
          "info": "URL of the granting service.: Must be one of [https://cas.local/aastubs/]",
          "required": true,
          "schema": {
            "title": "service",
            "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": "/createServiceTicket"
      },
      "task": true
    },
    {
      "name": "validateServiceTicket",
      "summary": "ValidateServiceTicket",
      "description": "Validate a Service Ticket used to access a particular resource",
      "input": [
        {
          "name": "ticket",
          "type": "string",
          "info": "The Service Ticket to be validated.: string",
          "required": true,
          "schema": {
            "title": "ticket",
            "type": "string"
          }
        },
        {
          "name": "service",
          "type": "string",
          "info": "URL of the granting service.: Must be one of [https://cas.local/aastubs/]",
          "required": true,
          "schema": {
            "title": "service",
            "type": "string"
          }
        },
        {
          "name": "format",
          "type": "string",
          "info": "The format of the validation response body.: Must be one of [JSON]",
          "required": true,
          "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": "/validateServiceTicket"
      },
      "task": true
    },
    {
      "name": "createUser",
      "summary": "CreateUser",
      "description": "Create a new User in Skylight AAA",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [users]\", \"id\": \"string\", \"attributes\": {\"tenants\": \"array\", \"emailAddress\": \"string\", \"password\": \"string\", \"name\": \"string\", \"roles\": \"array\", \"groups\": \"array\", \"isPasswordSet\": \"boolean\", \"isRegisteredForEmail\": \"boolean\", \"onboardingToken\": \"string\"}, \"relationships\": {\"roles\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [roles, addRole, removeRole]\"}]}, \"usergroups\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [usergroups, addGroup, removeGroup]\"}]}, \"tenants\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [tenants, addTenant, removeTenant]\"}]}}}}",
          "required": true,
          "schema": {
            "title": "JsonApiAAAUser",
            "type": "object",
            "properties": {
              "data": {
                "title": "AAAUser",
                "required": [
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type1",
                    "enum": [
                      "users"
                    ],
                    "type": "string",
                    "example": "users"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "AAAUserAttr",
                    "type": "object",
                    "properties": {
                      "tenants": {
                        "type": "array",
                        "items": {
                          "maxLength": 256,
                          "type": "string"
                        },
                        "description": ""
                      },
                      "emailAddress": {
                        "maxLength": 256,
                        "type": "string"
                      },
                      "password": {
                        "maxLength": 64,
                        "minLength": 8,
                        "type": "string"
                      },
                      "name": {
                        "maxLength": 64,
                        "type": "string"
                      },
                      "roles": {
                        "type": "array",
                        "items": {
                          "title": "Role2",
                          "enum": [
                            "unknown",
                            "skylight-admin",
                            "tenant-admin",
                            "tenant-user",
                            "tenant-contributor"
                          ],
                          "type": "string",
                          "example": "unknown"
                        },
                        "description": ""
                      },
                      "groups": {
                        "type": "array",
                        "items": {
                          "maxLength": 256,
                          "type": "string"
                        },
                        "description": ""
                      },
                      "isPasswordSet": {
                        "type": "boolean",
                        "default": false
                      },
                      "isRegisteredForEmail": {
                        "type": "boolean",
                        "default": false
                      },
                      "onboardingToken": {
                        "maxLength": 256,
                        "type": "string"
                      }
                    }
                  },
                  "relationships": {
                    "title": "Relationships",
                    "type": "object",
                    "properties": {
                      "roles": {
                        "title": "Roles",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type2",
                                  "enum": [
                                    "roles",
                                    "addRole",
                                    "removeRole"
                                  ],
                                  "type": "string",
                                  "example": "roles"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "usergroups": {
                        "title": "Usergroups",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum1",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type3",
                                  "enum": [
                                    "usergroups",
                                    "addGroup",
                                    "removeGroup"
                                  ],
                                  "type": "string",
                                  "example": "usergroups"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "tenants": {
                        "title": "Tenants",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum2",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type4",
                                  "enum": [
                                    "tenants",
                                    "addTenant",
                                    "removeTenant"
                                  ],
                                  "type": "string",
                                  "example": "tenants"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/createUser"
      },
      "task": true
    },
    {
      "name": "getAllUsers",
      "summary": "GetAllUsers",
      "description": "Retrieve a list of Users known to Skylight AAA",
      "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": "/getAllUsers"
      },
      "task": true
    },
    {
      "name": "updateUser",
      "summary": "UpdateUser",
      "description": "Update an existing User in Skylight AAA. Does not update User email or Password.",
      "input": [
        {
          "name": "userId",
          "type": "number",
          "info": "The unique identifier of the User to be updated.: 123",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [users]\", \"id\": \"string\", \"attributes\": {\"tenants\": \"array\", \"emailAddress\": \"string\", \"password\": \"string\", \"name\": \"string\", \"roles\": \"array\", \"groups\": \"array\", \"isPasswordSet\": \"boolean\", \"isRegisteredForEmail\": \"boolean\", \"onboardingToken\": \"string\"}, \"relationships\": {\"roles\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [roles, addRole, removeRole]\"}]}, \"usergroups\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [usergroups, addGroup, removeGroup]\"}]}, \"tenants\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [tenants, addTenant, removeTenant]\"}]}}}}",
          "required": true,
          "schema": {
            "title": "JsonApiAAAUser",
            "type": "object",
            "properties": {
              "data": {
                "title": "AAAUser",
                "required": [
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type1",
                    "enum": [
                      "users"
                    ],
                    "type": "string",
                    "example": "users"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "AAAUserAttr",
                    "type": "object",
                    "properties": {
                      "tenants": {
                        "type": "array",
                        "items": {
                          "maxLength": 256,
                          "type": "string"
                        },
                        "description": ""
                      },
                      "emailAddress": {
                        "maxLength": 256,
                        "type": "string"
                      },
                      "password": {
                        "maxLength": 64,
                        "minLength": 8,
                        "type": "string"
                      },
                      "name": {
                        "maxLength": 64,
                        "type": "string"
                      },
                      "roles": {
                        "type": "array",
                        "items": {
                          "title": "Role2",
                          "enum": [
                            "unknown",
                            "skylight-admin",
                            "tenant-admin",
                            "tenant-user",
                            "tenant-contributor"
                          ],
                          "type": "string",
                          "example": "unknown"
                        },
                        "description": ""
                      },
                      "groups": {
                        "type": "array",
                        "items": {
                          "maxLength": 256,
                          "type": "string"
                        },
                        "description": ""
                      },
                      "isPasswordSet": {
                        "type": "boolean",
                        "default": false
                      },
                      "isRegisteredForEmail": {
                        "type": "boolean",
                        "default": false
                      },
                      "onboardingToken": {
                        "maxLength": 256,
                        "type": "string"
                      }
                    }
                  },
                  "relationships": {
                    "title": "Relationships",
                    "type": "object",
                    "properties": {
                      "roles": {
                        "title": "Roles",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type2",
                                  "enum": [
                                    "roles",
                                    "addRole",
                                    "removeRole"
                                  ],
                                  "type": "string",
                                  "example": "roles"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "usergroups": {
                        "title": "Usergroups",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum1",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type3",
                                  "enum": [
                                    "usergroups",
                                    "addGroup",
                                    "removeGroup"
                                  ],
                                  "type": "string",
                                  "example": "usergroups"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "tenants": {
                        "title": "Tenants",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum2",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type4",
                                  "enum": [
                                    "tenants",
                                    "addTenant",
                                    "removeTenant"
                                  ],
                                  "type": "string",
                                  "example": "tenants"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/updateUser"
      },
      "task": true
    },
    {
      "name": "updateUserProperties",
      "summary": "UpdateUserProperties",
      "description": "Update properties of an existing User in Skylight AAA. Does not update User email or Password.",
      "input": [
        {
          "name": "userId",
          "type": "number",
          "info": "The unique identifier of the User to be updated.: 123",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [users]\", \"id\": \"string\", \"attributes\": {\"tenants\": \"array\", \"emailAddress\": \"string\", \"password\": \"string\", \"name\": \"string\", \"roles\": \"array\", \"groups\": \"array\", \"isPasswordSet\": \"boolean\", \"isRegisteredForEmail\": \"boolean\", \"onboardingToken\": \"string\"}, \"relationships\": {\"roles\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [roles, addRole, removeRole]\"}]}, \"usergroups\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [usergroups, addGroup, removeGroup]\"}]}, \"tenants\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [tenants, addTenant, removeTenant]\"}]}}}}",
          "required": true,
          "schema": {
            "title": "JsonApiAAAUser",
            "type": "object",
            "properties": {
              "data": {
                "title": "AAAUser",
                "required": [
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type1",
                    "enum": [
                      "users"
                    ],
                    "type": "string",
                    "example": "users"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "AAAUserAttr",
                    "type": "object",
                    "properties": {
                      "tenants": {
                        "type": "array",
                        "items": {
                          "maxLength": 256,
                          "type": "string"
                        },
                        "description": ""
                      },
                      "emailAddress": {
                        "maxLength": 256,
                        "type": "string"
                      },
                      "password": {
                        "maxLength": 64,
                        "minLength": 8,
                        "type": "string"
                      },
                      "name": {
                        "maxLength": 64,
                        "type": "string"
                      },
                      "roles": {
                        "type": "array",
                        "items": {
                          "title": "Role2",
                          "enum": [
                            "unknown",
                            "skylight-admin",
                            "tenant-admin",
                            "tenant-user",
                            "tenant-contributor"
                          ],
                          "type": "string",
                          "example": "unknown"
                        },
                        "description": ""
                      },
                      "groups": {
                        "type": "array",
                        "items": {
                          "maxLength": 256,
                          "type": "string"
                        },
                        "description": ""
                      },
                      "isPasswordSet": {
                        "type": "boolean",
                        "default": false
                      },
                      "isRegisteredForEmail": {
                        "type": "boolean",
                        "default": false
                      },
                      "onboardingToken": {
                        "maxLength": 256,
                        "type": "string"
                      }
                    }
                  },
                  "relationships": {
                    "title": "Relationships",
                    "type": "object",
                    "properties": {
                      "roles": {
                        "title": "Roles",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type2",
                                  "enum": [
                                    "roles",
                                    "addRole",
                                    "removeRole"
                                  ],
                                  "type": "string",
                                  "example": "roles"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "usergroups": {
                        "title": "Usergroups",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum1",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type3",
                                  "enum": [
                                    "usergroups",
                                    "addGroup",
                                    "removeGroup"
                                  ],
                                  "type": "string",
                                  "example": "usergroups"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "tenants": {
                        "title": "Tenants",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum2",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type4",
                                  "enum": [
                                    "tenants",
                                    "addTenant",
                                    "removeTenant"
                                  ],
                                  "type": "string",
                                  "example": "tenants"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/updateUserProperties"
      },
      "task": true
    },
    {
      "name": "getUser",
      "summary": "GetUser",
      "description": "Retrieve a single User by its known Id.",
      "input": [
        {
          "name": "userId",
          "type": "number",
          "info": "The unique identifier of the User to be returned.: 123",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "number"
          }
        }
      ],
      "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": "/getUser"
      },
      "task": true
    },
    {
      "name": "deleteUser",
      "summary": "DeleteUser",
      "description": "Delete a single User by its known Id.",
      "input": [
        {
          "name": "userId",
          "type": "number",
          "info": "The unique identifier of the User to be deleted.: 123",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "number"
          }
        }
      ],
      "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": "/deleteUser"
      },
      "task": true
    },
    {
      "name": "resetPassword",
      "summary": "ResetPassword",
      "description": "Reset a pasword for a User provisioned in Skylight AAA.",
      "input": [
        {
          "name": "userId",
          "type": "number",
          "info": "The unique identifier of the User to reset the password.: 123",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "number"
          }
        }
      ],
      "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": "/resetPassword"
      },
      "task": true
    },
    {
      "name": "changeEmailAddress",
      "summary": "ChangeEmailAddress",
      "description": "Change the email address of a User provisioned in Skylight AAA.",
      "input": [
        {
          "name": "userId",
          "type": "number",
          "info": "The unique identifier of the User which is changing email address: 123",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"oldEmailAddress\": \"string\", \"newEmailAddress\": \"string\"}",
          "required": true,
          "schema": {
            "title": "EmailChangeRequest",
            "required": [
              "oldEmailAddress",
              "newEmailAddress"
            ],
            "type": "object",
            "properties": {
              "oldEmailAddress": {
                "maxLength": 256,
                "type": "string"
              },
              "newEmailAddress": {
                "maxLength": 256,
                "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": "/changeEmailAddress"
      },
      "task": true
    },
    {
      "name": "updateAuthenticatedUserProperties",
      "summary": "UpdateAuthenticatedUserProperties",
      "description": "Update properties of the currently authenticated User in Skylight AAA. Does not update User email or Password.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [users]\", \"id\": \"string\", \"attributes\": {\"tenants\": \"array\", \"emailAddress\": \"string\", \"password\": \"string\", \"name\": \"string\", \"roles\": \"array\", \"groups\": \"array\", \"isPasswordSet\": \"boolean\", \"isRegisteredForEmail\": \"boolean\", \"onboardingToken\": \"string\"}, \"relationships\": {\"roles\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [roles, addRole, removeRole]\"}]}, \"usergroups\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [usergroups, addGroup, removeGroup]\"}]}, \"tenants\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [tenants, addTenant, removeTenant]\"}]}}}}",
          "required": true,
          "schema": {
            "title": "JsonApiAAAUser",
            "type": "object",
            "properties": {
              "data": {
                "title": "AAAUser",
                "required": [
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type1",
                    "enum": [
                      "users"
                    ],
                    "type": "string",
                    "example": "users"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "AAAUserAttr",
                    "type": "object",
                    "properties": {
                      "tenants": {
                        "type": "array",
                        "items": {
                          "maxLength": 256,
                          "type": "string"
                        },
                        "description": ""
                      },
                      "emailAddress": {
                        "maxLength": 256,
                        "type": "string"
                      },
                      "password": {
                        "maxLength": 64,
                        "minLength": 8,
                        "type": "string"
                      },
                      "name": {
                        "maxLength": 64,
                        "type": "string"
                      },
                      "roles": {
                        "type": "array",
                        "items": {
                          "title": "Role2",
                          "enum": [
                            "unknown",
                            "skylight-admin",
                            "tenant-admin",
                            "tenant-user",
                            "tenant-contributor"
                          ],
                          "type": "string",
                          "example": "unknown"
                        },
                        "description": ""
                      },
                      "groups": {
                        "type": "array",
                        "items": {
                          "maxLength": 256,
                          "type": "string"
                        },
                        "description": ""
                      },
                      "isPasswordSet": {
                        "type": "boolean",
                        "default": false
                      },
                      "isRegisteredForEmail": {
                        "type": "boolean",
                        "default": false
                      },
                      "onboardingToken": {
                        "maxLength": 256,
                        "type": "string"
                      }
                    }
                  },
                  "relationships": {
                    "title": "Relationships",
                    "type": "object",
                    "properties": {
                      "roles": {
                        "title": "Roles",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type2",
                                  "enum": [
                                    "roles",
                                    "addRole",
                                    "removeRole"
                                  ],
                                  "type": "string",
                                  "example": "roles"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "usergroups": {
                        "title": "Usergroups",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum1",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type3",
                                  "enum": [
                                    "usergroups",
                                    "addGroup",
                                    "removeGroup"
                                  ],
                                  "type": "string",
                                  "example": "usergroups"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "tenants": {
                        "title": "Tenants",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum2",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type4",
                                  "enum": [
                                    "tenants",
                                    "addTenant",
                                    "removeTenant"
                                  ],
                                  "type": "string",
                                  "example": "tenants"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/updateAuthenticatedUserProperties"
      },
      "task": true
    },
    {
      "name": "getAuthenticatedUser",
      "summary": "GetAuthenticatedUser",
      "description": "Retrieve the currently Authenticated User.",
      "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": "/getAuthenticatedUser"
      },
      "task": true
    },
    {
      "name": "deleteAuthenticatedUser",
      "summary": "DeleteAuthenticatedUser",
      "description": "Delete the currently Authenticated User.",
      "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": "/deleteAuthenticatedUser"
      },
      "task": true
    },
    {
      "name": "updateAuthenticatedUserPassword",
      "summary": "UpdateAuthenticatedUserPassword",
      "description": "Updates the password of the currently Authenticated User.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"oldPassword\": \"string\", \"newPassword\": \"string\"}",
          "required": true,
          "schema": {
            "title": "PasswordChangeRequest",
            "required": [
              "oldPassword",
              "newPassword"
            ],
            "type": "object",
            "properties": {
              "oldPassword": {
                "maxLength": 64,
                "minLength": 8,
                "type": "string"
              },
              "newPassword": {
                "maxLength": 64,
                "minLength": 8,
                "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": "/updateAuthenticatedUserPassword"
      },
      "task": true
    },
    {
      "name": "changeAuthenticatedUserEmailAddress",
      "summary": "ChangeAuthenticatedUserEmailAddress",
      "description": "Change the email address of the currently Authenticated User.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"oldEmailAddress\": \"string\", \"newEmailAddress\": \"string\"}",
          "required": true,
          "schema": {
            "title": "EmailChangeRequest",
            "required": [
              "oldEmailAddress",
              "newEmailAddress"
            ],
            "type": "object",
            "properties": {
              "oldEmailAddress": {
                "maxLength": 256,
                "type": "string"
              },
              "newEmailAddress": {
                "maxLength": 256,
                "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": "/changeAuthenticatedUserEmailAddress"
      },
      "task": true
    },
    {
      "name": "getUserByToken",
      "summary": "GetUserByToken",
      "description": "Retrieve the User mapped to the onboarding token.",
      "input": [
        {
          "name": "onboardingToken",
          "type": "string",
          "info": "The one-time use token provided to access the password set operation: string",
          "required": true,
          "schema": {
            "title": "onboardingToken",
            "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": "/getUserByToken"
      },
      "task": true
    },
    {
      "name": "setUserPassword",
      "summary": "SetUserPassword",
      "description": "Sets the password of a User that has had their password reset.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"password\": \"string\", \"onboardingToken\": \"string\"}",
          "required": true,
          "schema": {
            "title": "SetPasswordRequest",
            "required": [
              "password",
              "onboardingToken"
            ],
            "type": "object",
            "properties": {
              "password": {
                "maxLength": 64,
                "minLength": 8,
                "type": "string"
              },
              "onboardingToken": {
                "maxLength": 256,
                "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": "/setUserPassword"
      },
      "task": true
    },
    {
      "name": "login",
      "summary": "Login",
      "description": "Login a Skylight User",
      "input": [
        {
          "name": "username",
          "type": "string",
          "info": "Unique identifier of the User requesting access: string",
          "required": false,
          "schema": {
            "title": "username",
            "type": "string"
          }
        },
        {
          "name": "password",
          "type": "string",
          "info": "Password for the username of the User requesting access: string",
          "required": false,
          "schema": {
            "title": "password",
            "type": "string"
          }
        },
        {
          "name": "token",
          "type": "string",
          "info": "Signed JWT issues by Accedian. Can be used instead of username/password: string",
          "required": false,
          "schema": {
            "title": "token",
            "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": "/login"
      },
      "task": true
    },
    {
      "name": "logout",
      "summary": "Logout",
      "description": "Logout a Skylight User",
      "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": "/logout"
      },
      "task": true
    },
    {
      "name": "validate",
      "summary": "Validate",
      "description": "Validate an active Skylight Session and return User data",
      "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": "/validate"
      },
      "task": true
    },
    {
      "name": "validateSessionForProxy",
      "summary": "ValidateSessionForProxy",
      "description": "Validate an active Skylight Session. Sets headers for proxy requests to have access to user data.",
      "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": "/validateSessionForProxy"
      },
      "task": true
    },
    {
      "name": "createService",
      "summary": "CreateService",
      "description": "Create a new Service in Skylight AAA. This function is only available to Skylight Admin users.",
      "input": [
        {
          "name": "serviceName",
          "type": "string",
          "info": "Unique identifier of the Service to be added: string",
          "required": true,
          "schema": {
            "title": "serviceName",
            "type": "string"
          }
        },
        {
          "name": "username",
          "type": "string",
          "info": "Username: string",
          "required": true,
          "schema": {
            "title": "username",
            "type": "string"
          }
        },
        {
          "name": "password",
          "type": "string",
          "info": "Password: string",
          "required": true,
          "schema": {
            "title": "password",
            "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": "/createService"
      },
      "task": true
    },
    {
      "name": "getTenantInfo",
      "summary": "GetTenantInfo",
      "description": "Retrieves the generic identifyiong information for a customer.",
      "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": "/getTenantInfo"
      },
      "task": true
    },
    {
      "name": "setTenantIdentity",
      "summary": "SetTenantIdentity",
      "description": "Adds tenant identifying information which is retreived in the 'onboarding/tenant-info' call. Operation is only available to Skylight Administrators.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [tenant-info]\", \"id\": \"string\", \"attributes\": {\"tenantName\": \"string\", \"tenantId\": \"string\", \"allowPasswordAuth\": \"boolean\", \"providerLinks\": [{\"label\": \"string\", \"name\": \"string\", \"url\": \"string\", \"default\": \"boolean\"}]}}}",
          "required": true,
          "schema": {
            "title": "JsonApiTenantInfo",
            "type": "object",
            "properties": {
              "data": {
                "title": "TenantInfo",
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type16",
                    "enum": [
                      "tenant-info"
                    ],
                    "type": "string",
                    "example": "tenant-info"
                  },
                  "id": {
                    "type": "string",
                    "description": "The subdomain of the tenant"
                  },
                  "attributes": {
                    "title": "TenantInfoAttr",
                    "type": "object",
                    "properties": {
                      "tenantName": {
                        "maxLength": 256,
                        "type": "string"
                      },
                      "tenantId": {
                        "maxLength": 256,
                        "type": "string"
                      },
                      "allowPasswordAuth": {
                        "type": "boolean",
                        "default": false
                      },
                      "providerLinks": {
                        "type": "array",
                        "items": {
                          "title": "authProvider",
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "url": {
                              "type": "string"
                            },
                            "default": {
                              "type": "boolean"
                            }
                          }
                        },
                        "description": ""
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/setTenantIdentity"
      },
      "task": true
    },
    {
      "name": "deleteTenantIdentity",
      "summary": "DeleteTenantIdentity",
      "description": "Deletes tenant identifying information. Operation is only available to Skylight Administrators.",
      "input": [
        {
          "name": "subdomain",
          "type": "string",
          "info": "Unique identifier of the Subdomain to delete the tenant mapping: string",
          "required": true,
          "schema": {
            "title": "subdomain",
            "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": "/deleteTenantIdentity"
      },
      "task": true
    },
    {
      "name": "createToken",
      "summary": "CreateToken",
      "description": "Create a new web token for authentication/authorization",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [tokens]\", \"attributes\": {\"tokenID\": \"string\", \"iss\": \"string\", \"sub\": \"string\", \"aud\": \"string\", \"exp\": 123, \"nbf\": 123, \"permissions\": \"array\", \"zone\": \"string\", \"deploymentURL\": \"string\", \"tenantURL\": \"string\", \"natsHost\": \"string\", \"tenantID\": \"string\"}, \"id\": \"string\"}}",
          "required": true,
          "schema": {
            "title": "JsonApiJWT",
            "type": "object",
            "properties": {
              "data": {
                "title": "JWTClaims",
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type5",
                    "enum": [
                      "tokens"
                    ],
                    "type": "string",
                    "example": "tokens"
                  },
                  "attributes": {
                    "title": "Attributes",
                    "type": "object",
                    "properties": {
                      "tokenID": {
                        "type": "string",
                        "description": "ID of the jwt"
                      },
                      "iss": {
                        "type": "string",
                        "description": "Issuer of the jwt"
                      },
                      "sub": {
                        "type": "string",
                        "description": "Subject of the jwt (the user)"
                      },
                      "aud": {
                        "type": "string",
                        "description": "Audience - Recipient for which the JWT is intended (tenant name)"
                      },
                      "exp": {
                        "type": "integer",
                        "description": "Expiry of the JWT - in unix time format"
                      },
                      "nbf": {
                        "type": "integer",
                        "description": "Time before which the JWT must not be accepted for processing"
                      },
                      "permissions": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": ""
                      },
                      "zone": {
                        "type": "string",
                        "description": "Roadrunner Zone attribute"
                      },
                      "deploymentURL": {
                        "type": "string",
                        "description": "URL of the base deployment"
                      },
                      "tenantURL": {
                        "type": "string",
                        "description": "URL of the tenant this JWT was created for"
                      },
                      "natsHost": {
                        "type": "string",
                        "description": "Hostname of the nats server"
                      },
                      "tenantID": {
                        "type": "string",
                        "description": "ID of the tenant this JWT was created for"
                      }
                    }
                  },
                  "id": {
                    "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": "/createToken"
      },
      "task": true
    },
    {
      "name": "getAllTokens",
      "summary": "GetAllTokens",
      "description": "Retrieve a list of Tokens known to Skylight AAA",
      "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": "/getAllTokens"
      },
      "task": true
    },
    {
      "name": "getToken",
      "summary": "GetToken",
      "description": "Retrieve a single Token by its known Id.",
      "input": [
        {
          "name": "tokenId",
          "type": "number",
          "info": "The unique identifier of the Token to be returned.: 123",
          "required": true,
          "schema": {
            "title": "tokenId",
            "type": "number"
          }
        }
      ],
      "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": "/getToken"
      },
      "task": true
    },
    {
      "name": "updateToken",
      "summary": "UpdateToken",
      "description": "Update an existing Token in Skylight AAA.",
      "input": [
        {
          "name": "tokenId",
          "type": "number",
          "info": "The unique identifier of the Token to be updated.: 123",
          "required": true,
          "schema": {
            "title": "tokenId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [tokens]\", \"attributes\": {\"tokenID\": \"string\", \"iss\": \"string\", \"sub\": \"string\", \"aud\": \"string\", \"exp\": 123, \"nbf\": 123, \"permissions\": \"array\", \"zone\": \"string\", \"deploymentURL\": \"string\", \"tenantURL\": \"string\", \"natsHost\": \"string\", \"tenantID\": \"string\"}, \"id\": \"string\"}}",
          "required": true,
          "schema": {
            "title": "JsonApiJWT",
            "type": "object",
            "properties": {
              "data": {
                "title": "JWTClaims",
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type5",
                    "enum": [
                      "tokens"
                    ],
                    "type": "string",
                    "example": "tokens"
                  },
                  "attributes": {
                    "title": "Attributes",
                    "type": "object",
                    "properties": {
                      "tokenID": {
                        "type": "string",
                        "description": "ID of the jwt"
                      },
                      "iss": {
                        "type": "string",
                        "description": "Issuer of the jwt"
                      },
                      "sub": {
                        "type": "string",
                        "description": "Subject of the jwt (the user)"
                      },
                      "aud": {
                        "type": "string",
                        "description": "Audience - Recipient for which the JWT is intended (tenant name)"
                      },
                      "exp": {
                        "type": "integer",
                        "description": "Expiry of the JWT - in unix time format"
                      },
                      "nbf": {
                        "type": "integer",
                        "description": "Time before which the JWT must not be accepted for processing"
                      },
                      "permissions": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": ""
                      },
                      "zone": {
                        "type": "string",
                        "description": "Roadrunner Zone attribute"
                      },
                      "deploymentURL": {
                        "type": "string",
                        "description": "URL of the base deployment"
                      },
                      "tenantURL": {
                        "type": "string",
                        "description": "URL of the tenant this JWT was created for"
                      },
                      "natsHost": {
                        "type": "string",
                        "description": "Hostname of the nats server"
                      },
                      "tenantID": {
                        "type": "string",
                        "description": "ID of the tenant this JWT was created for"
                      }
                    }
                  },
                  "id": {
                    "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": "/updateToken"
      },
      "task": true
    },
    {
      "name": "deleteToken",
      "summary": "DeleteToken",
      "description": "Delete a single Token by its known Id.",
      "input": [
        {
          "name": "tokenId",
          "type": "number",
          "info": "The unique identifier of the Token to be deleted.: 123",
          "required": true,
          "schema": {
            "title": "tokenId",
            "type": "number"
          }
        }
      ],
      "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": "/deleteToken"
      },
      "task": true
    },
    {
      "name": "getAuthenticationMethod",
      "summary": "GetAuthenticationMethod",
      "description": "Returns a method for authentication given an email address",
      "input": [
        {
          "name": "emailAddress",
          "type": "string",
          "info": "Email address of the user trying to authenticate: string",
          "required": true,
          "schema": {
            "title": "emailAddress",
            "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": "/getAuthenticationMethod"
      },
      "task": true
    },
    {
      "name": "createUsergroup",
      "summary": "CreateUsergroup",
      "description": "Create a new Usergroup in Skylight AAA",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [usergroups]\", \"attributes\": {\"name\": \"string\", \"tenantId\": \"string\"}, \"id\": \"string\", \"relationships\": {\"users\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [user, users, addUser, removeUser]\"}]}, \"roles\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [roles, addRole, removeRole]\"}]}}}}",
          "required": true,
          "schema": {
            "title": "JsonApiUsergroup",
            "type": "object",
            "properties": {
              "data": {
                "title": "Usergroup",
                "required": [
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type6",
                    "enum": [
                      "usergroups"
                    ],
                    "type": "string",
                    "example": "usergroups"
                  },
                  "attributes": {
                    "title": "Attributes1",
                    "required": [
                      "name"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "maxLength": 128,
                        "type": "string"
                      },
                      "tenantId": {
                        "maxLength": 256,
                        "type": "string"
                      }
                    }
                  },
                  "id": {
                    "type": "string"
                  },
                  "relationships": {
                    "title": "UsergroupRelationships",
                    "type": "object",
                    "properties": {
                      "users": {
                        "title": "Users",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum3",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type7",
                                  "enum": [
                                    "user",
                                    "users",
                                    "addUser",
                                    "removeUser"
                                  ],
                                  "type": "string",
                                  "example": "user"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "roles": {
                        "title": "Roles",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type2",
                                  "enum": [
                                    "roles",
                                    "addRole",
                                    "removeRole"
                                  ],
                                  "type": "string",
                                  "example": "roles"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/createUsergroup"
      },
      "task": true
    },
    {
      "name": "getAllUsergroups",
      "summary": "GetAllUsergroups",
      "description": "Retrieve a list of Usergroups known to Skylight AAA",
      "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": "/getAllUsergroups"
      },
      "task": true
    },
    {
      "name": "getUsergroup",
      "summary": "GetUsergroup",
      "description": "Retrieve a single Usergroup by its known Id.",
      "input": [
        {
          "name": "usergroupId",
          "type": "number",
          "info": "The unique identifier of the Usergroup to be returned.: 123",
          "required": true,
          "schema": {
            "title": "usergroupId",
            "type": "number"
          }
        }
      ],
      "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": "/getUsergroup"
      },
      "task": true
    },
    {
      "name": "updateUsergroup",
      "summary": "UpdateUsergroup",
      "description": "Update an existing Usergroup in Skylight AAA.",
      "input": [
        {
          "name": "usergroupId",
          "type": "number",
          "info": "The unique identifier of the Usergroup to be updated.: 123",
          "required": true,
          "schema": {
            "title": "usergroupId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [usergroups]\", \"attributes\": {\"name\": \"string\", \"tenantId\": \"string\"}, \"id\": \"string\", \"relationships\": {\"users\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [user, users, addUser, removeUser]\"}]}, \"roles\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [roles, addRole, removeRole]\"}]}}}}",
          "required": true,
          "schema": {
            "title": "JsonApiUsergroupUpdate",
            "type": "object",
            "properties": {
              "data": {
                "title": "UsergroupUpdate",
                "required": [
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type6",
                    "enum": [
                      "usergroups"
                    ],
                    "type": "string",
                    "example": "usergroups"
                  },
                  "attributes": {
                    "title": "Attributes2",
                    "type": "object",
                    "properties": {
                      "name": {
                        "maxLength": 128,
                        "type": "string"
                      },
                      "tenantId": {
                        "maxLength": 256,
                        "type": "string"
                      }
                    }
                  },
                  "id": {
                    "type": "string"
                  },
                  "relationships": {
                    "title": "UsergroupRelationships",
                    "type": "object",
                    "properties": {
                      "users": {
                        "title": "Users",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum3",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type7",
                                  "enum": [
                                    "user",
                                    "users",
                                    "addUser",
                                    "removeUser"
                                  ],
                                  "type": "string",
                                  "example": "user"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "roles": {
                        "title": "Roles",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type2",
                                  "enum": [
                                    "roles",
                                    "addRole",
                                    "removeRole"
                                  ],
                                  "type": "string",
                                  "example": "roles"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/updateUsergroup"
      },
      "task": true
    },
    {
      "name": "deleteUsergroup",
      "summary": "DeleteUsergroup",
      "description": "Delete a single Usergroup by its known Id.",
      "input": [
        {
          "name": "usergroupId",
          "type": "number",
          "info": "The unique identifier of the Usergroup to be deleted.: 123",
          "required": true,
          "schema": {
            "title": "usergroupId",
            "type": "number"
          }
        }
      ],
      "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": "/deleteUsergroup"
      },
      "task": true
    },
    {
      "name": "createRole",
      "summary": "CreateRole",
      "description": "Create a new Role in Skylight AAA",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [roles]\", \"attributes\": {\"name\": \"string\", \"description\": \"string\", \"tenantId\": \"string\"}, \"id\": \"string\", \"relationships\": {\"permissions\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [permissions, addPermission, removePermission]\", \"attributes\": {\"selectors\": \"array\"}}]}}}}",
          "required": true,
          "schema": {
            "title": "JsonApiRole",
            "type": "object",
            "properties": {
              "data": {
                "title": "Role",
                "required": [
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type10",
                    "enum": [
                      "roles"
                    ],
                    "type": "string",
                    "example": "roles"
                  },
                  "attributes": {
                    "title": "Attributes3",
                    "required": [
                      "name",
                      "description"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "maxLength": 128,
                        "type": "string"
                      },
                      "description": {
                        "maxLength": 256,
                        "type": "string"
                      },
                      "tenantId": {
                        "maxLength": 256,
                        "type": "string"
                      }
                    }
                  },
                  "id": {
                    "type": "string"
                  },
                  "relationships": {
                    "title": "RoleToPermissionRelationship",
                    "type": "object",
                    "properties": {
                      "permissions": {
                        "title": "Permissions",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum5",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type11",
                                  "enum": [
                                    "permissions",
                                    "addPermission",
                                    "removePermission"
                                  ],
                                  "type": "string",
                                  "example": "permissions"
                                },
                                "attributes": {
                                  "title": "Attributes4",
                                  "type": "object",
                                  "properties": {
                                    "selectors": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": ""
                                    }
                                  }
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/createRole"
      },
      "task": true
    },
    {
      "name": "getAllRoles",
      "summary": "GetAllRoles",
      "description": "Retrieve a list of Roles known to Skylight AAA in the context of the active tenant",
      "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": "/getAllRoles"
      },
      "task": true
    },
    {
      "name": "getRole",
      "summary": "GetRole",
      "description": "Retrieve a single Role by its known Id",
      "input": [
        {
          "name": "roleId",
          "type": "number",
          "info": "The unique identifier of the Role to be returned: 123",
          "required": true,
          "schema": {
            "title": "roleId",
            "type": "number"
          }
        }
      ],
      "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": "/getRole"
      },
      "task": true
    },
    {
      "name": "updateRole",
      "summary": "UpdateRole",
      "description": "Update an existing Role in Skylight AAA",
      "input": [
        {
          "name": "roleId",
          "type": "number",
          "info": "The unique identifier of the Role to be updated.: 123",
          "required": true,
          "schema": {
            "title": "roleId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [roles]\", \"attributes\": {\"name\": \"string\", \"description\": \"string\", \"tenantId\": \"string\"}, \"id\": \"string\", \"relationships\": {\"permissions\": {\"data\": [{\"id\": \"string\", \"type\": \"Must be one of [permissions, addPermission, removePermission]\", \"attributes\": {\"selectors\": \"array\"}}]}}}}",
          "required": true,
          "schema": {
            "title": "JsonApiRoleUpdate",
            "type": "object",
            "properties": {
              "data": {
                "title": "RoleUpdate",
                "required": [
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type10",
                    "enum": [
                      "roles"
                    ],
                    "type": "string",
                    "example": "roles"
                  },
                  "attributes": {
                    "title": "Attributes5",
                    "type": "object",
                    "properties": {
                      "name": {
                        "maxLength": 128,
                        "type": "string"
                      },
                      "description": {
                        "maxLength": 256,
                        "type": "string"
                      },
                      "tenantId": {
                        "maxLength": 256,
                        "type": "string"
                      }
                    }
                  },
                  "id": {
                    "type": "string"
                  },
                  "relationships": {
                    "title": "RoleToPermissionRelationship",
                    "type": "object",
                    "properties": {
                      "permissions": {
                        "title": "Permissions",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "Datum5",
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "type": {
                                  "title": "Type11",
                                  "enum": [
                                    "permissions",
                                    "addPermission",
                                    "removePermission"
                                  ],
                                  "type": "string",
                                  "example": "permissions"
                                },
                                "attributes": {
                                  "title": "Attributes4",
                                  "type": "object",
                                  "properties": {
                                    "selectors": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": ""
                                    }
                                  }
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/updateRole"
      },
      "task": true
    },
    {
      "name": "deleteRole",
      "summary": "DeleteRole",
      "description": "Delete a single Role by its known Id",
      "input": [
        {
          "name": "roleId",
          "type": "number",
          "info": "The unique identifier of the Role to be deleted.: 123",
          "required": true,
          "schema": {
            "title": "roleId",
            "type": "number"
          }
        }
      ],
      "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": "/deleteRole"
      },
      "task": true
    },
    {
      "name": "createPermission",
      "summary": "CreatePermission",
      "description": "Create a new Permission in Skylight AAA",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [permissions]\", \"attributes\": {\"app\": \"string\", \"domains\": \"array\", \"actions\": \"array\", \"description\": \"string\"}, \"id\": \"string\"}}",
          "required": true,
          "schema": {
            "title": "JsonApiPermission",
            "type": "object",
            "properties": {
              "data": {
                "title": "Permission",
                "required": [
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type13",
                    "enum": [
                      "permissions"
                    ],
                    "type": "string",
                    "example": "permissions"
                  },
                  "attributes": {
                    "title": "Attributes6",
                    "required": [
                      "app",
                      "domains",
                      "actions",
                      "description"
                    ],
                    "type": "object",
                    "properties": {
                      "app": {
                        "type": "string",
                        "description": "The application that owns and enforces the permission"
                      },
                      "domains": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": ""
                      },
                      "actions": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": ""
                      },
                      "description": {
                        "type": "string",
                        "description": "A description of the permission"
                      }
                    }
                  },
                  "id": {
                    "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": "/createPermission"
      },
      "task": true
    },
    {
      "name": "getAllPermissions",
      "summary": "GetAllPermissions",
      "description": "Retrieve a list of Permissions known to Skylight AAA in the context of the active tenant",
      "input": [
        {
          "name": "domains",
          "type": "string",
          "info": "Filter permissions by comma separated list of domains: string",
          "required": false,
          "schema": {
            "title": "domains",
            "type": "string"
          }
        },
        {
          "name": "app",
          "type": "string",
          "info": "Filter permissions by app: string",
          "required": false,
          "schema": {
            "title": "app",
            "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": "/getAllPermissions"
      },
      "task": true
    },
    {
      "name": "getPermission",
      "summary": "GetPermission",
      "description": "Retrieve a single Permission by its known Id",
      "input": [
        {
          "name": "permissionId",
          "type": "number",
          "info": "The unique identifier of the Permission to be returned: 123",
          "required": true,
          "schema": {
            "title": "permissionId",
            "type": "number"
          }
        }
      ],
      "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": "/getPermission"
      },
      "task": true
    },
    {
      "name": "updatePermission",
      "summary": "UpdatePermission",
      "description": "Update an existing Permission in Skylight AAA",
      "input": [
        {
          "name": "permissionId",
          "type": "number",
          "info": "The unique identifier of the Permission to be updated.: 123",
          "required": true,
          "schema": {
            "title": "permissionId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [permissions]\", \"attributes\": {\"domains\": \"array\", \"actions\": \"array\", \"description\": \"string\"}, \"id\": \"string\"}}",
          "required": true,
          "schema": {
            "title": "JsonApiUpdatePermission",
            "type": "object",
            "properties": {
              "data": {
                "title": "PermissionUpdate",
                "required": [
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Type13",
                    "enum": [
                      "permissions"
                    ],
                    "type": "string",
                    "example": "permissions"
                  },
                  "attributes": {
                    "title": "Attributes7",
                    "type": "object",
                    "properties": {
                      "domains": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": ""
                      },
                      "actions": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": ""
                      },
                      "description": {
                        "type": "string",
                        "description": "A description of the permission"
                      }
                    }
                  },
                  "id": {
                    "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": "/updatePermission"
      },
      "task": true
    },
    {
      "name": "deletePermission",
      "summary": "DeletePermission",
      "description": "Delete a single Permission by its known Id",
      "input": [
        {
          "name": "permissionId",
          "type": "number",
          "info": "The unique identifier of the Permission to be deleted.: 123",
          "required": true,
          "schema": {
            "title": "permissionId",
            "type": "number"
          }
        }
      ],
      "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": "/deletePermission"
      },
      "task": true
    },
    {
      "name": "createScheduledExport",
      "summary": "CreateScheduledExport",
      "description": "Creates an export configuration",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"meta\": {\"enabled\": \"boolean\", \"createdBy\": \"string\", \"everyone\": \"Must be one of [none, viewer, editor, manager]\", \"viewers\": \"array\", \"editors\": \"array\", \"managers\": \"array\"}, \"data\": {\"id\": \"string\", \"type\": \"Must be one of [export-configs]\", \"attributes\": {\"name\": \"string\", \"tenantId\": \"string\", \"schedule\": {\"hour\": 123, \"dayOfMonth\": \"string\", \"dayOfWeek\": \"string\"}, \"duration\": \"string\", \"filters\": {\"includeOnlyCleanData\": \"boolean\", \"includeBusyHour\": \"boolean\", \"includeMaintenanceWindow\": \"boolean\", \"includeMetadata\": \"object\", \"objectType\": \"string\", \"direction\": \"array\"}, \"columns\": {\"metrics\": [{\"name\": \"string\", \"aggregator\": \"Must be one of [min, max, avg, sum]\"}], \"metadata\": \"array\", \"topology\": \"boolean\", \"thresholds\": [{\"comparator\": \"Must be one of [gte, lte]\", \"metric\": \"string\", \"value\": 123, \"aggregator\": \"Must be one of [min, max, avg, sum]\"}]}, \"emails\": \"array\", \"groupBy\": {\"type\": \"Must be one of [objectId]\", \"granularity\": \"Must be one of [P1D, PT1H]\"}}}}",
          "required": true,
          "schema": {
            "title": "ExportReportsConfigurationModel",
            "type": "object",
            "properties": {
              "meta": {
                "title": "ExportConfigurationMeta",
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true
                  },
                  "createdBy": {
                    "type": "string"
                  },
                  "everyone": {
                    "title": "Everyone",
                    "enum": [
                      "none",
                      "viewer",
                      "editor",
                      "manager"
                    ],
                    "type": "string",
                    "example": "none"
                  },
                  "viewers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": ""
                  },
                  "editors": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": ""
                  },
                  "managers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": ""
                  }
                },
                "description": "Resuable block for users to see permission properties for a resource"
              },
              "data": {
                "title": "Data",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Export Configuration ID"
                  },
                  "type": {
                    "title": "Type17",
                    "enum": [
                      "export-configs"
                    ],
                    "type": "string",
                    "example": "export-configs"
                  },
                  "attributes": {
                    "title": "Attributes9",
                    "required": [
                      "name",
                      "schedule",
                      "filters",
                      "columns",
                      "emails",
                      "groupBy"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "example": "My first Export Job"
                      },
                      "tenantId": {
                        "type": "string"
                      },
                      "schedule": {
                        "title": "Schedule",
                        "type": "object",
                        "properties": {
                          "hour": {
                            "type": "number",
                            "description": "When the report interval should end at. Jobs are run when system is not busy so the hour is a best effort. Can't be 'star'"
                          },
                          "dayOfMonth": {
                            "type": "string",
                            "description": "On what date of the month should this run. Note that if you wish to run this once a month for the LAST month of data, you should specify the 1 (st) of every month with a duration of `P1M`. You can only specify dayOfMonth or dayOfWeek. If both are filled in, your request will be rejected.",
                            "example": "14"
                          },
                          "dayOfWeek": {
                            "type": "string",
                            "description": "On what day of the week to schedule the job on. 0 is sunday, 1 is monday, 2 is tuesday, 3 is wednesday, 4 si thursday, 5 is friday, 6 is saturday"
                          }
                        }
                      },
                      "duration": {
                        "type": "string",
                        "description": "The duration of the query. P1M means 1 month from the time before expected execution of the report schedule.",
                        "example": "P1M"
                      },
                      "filters": {
                        "title": "Filters",
                        "required": [
                          "objectType"
                        ],
                        "type": "object",
                        "properties": {
                          "includeOnlyCleanData": {
                            "type": "boolean",
                            "description": "If true, includes records marked clean record flag",
                            "default": false
                          },
                          "includeBusyHour": {
                            "type": "boolean",
                            "description": "If true, includes records marked with busy hour flag",
                            "default": false
                          },
                          "includeMaintenanceWindow": {
                            "type": "boolean",
                            "description": "If true, includes records marked with maintenance flag",
                            "default": false
                          },
                          "includeMetadata": {
                            "type": "object",
                            "additionalProperties": {},
                            "description": "Include metadata key-values that you want to filter on"
                          },
                          "objectType": {
                            "type": "string",
                            "description": "We must know the object type the export is for. We cannot run a single report against multiple object types in this version.",
                            "example": "twamp-sf"
                          },
                          "direction": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          }
                        }
                      },
                      "columns": {
                        "title": "Columns",
                        "type": "object",
                        "properties": {
                          "metrics": {
                            "type": "array",
                            "items": {
                              "title": "ExportMetricSelector",
                              "required": [
                                "name",
                                "aggregator"
                              ],
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "example": "delayP95"
                                },
                                "aggregator": {
                                  "title": "ExportAggregators",
                                  "enum": [
                                    "min",
                                    "max",
                                    "avg",
                                    "sum"
                                  ],
                                  "type": "string",
                                  "example": "min"
                                }
                              }
                            },
                            "description": ""
                          },
                          "metadata": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "topology": {
                            "type": "boolean",
                            "default": false
                          },
                          "thresholds": {
                            "type": "array",
                            "items": {
                              "title": "ExportThresholdModel",
                              "required": [
                                "comparator",
                                "metric",
                                "value",
                                "aggregator"
                              ],
                              "type": "object",
                              "properties": {
                                "comparator": {
                                  "title": "Comparator",
                                  "enum": [
                                    "gte",
                                    "lte"
                                  ],
                                  "type": "string",
                                  "description": "The metric value can be greater or lesser (and equal) according to the operator",
                                  "example": "gte"
                                },
                                "metric": {
                                  "type": "string",
                                  "description": "The metric you want to test the threshold against",
                                  "example": "delayP95"
                                },
                                "value": {
                                  "type": "number",
                                  "description": "Value for the metric to compare to",
                                  "example": 42
                                },
                                "aggregator": {
                                  "title": "ExportAggregators",
                                  "enum": [
                                    "min",
                                    "max",
                                    "avg",
                                    "sum"
                                  ],
                                  "type": "string",
                                  "example": "min"
                                }
                              },
                              "description": "Model for Export Threshold Crossing columns, which will be a boolean type"
                            },
                            "description": ""
                          }
                        },
                        "description": "Columns you wish to see in the exported dataset, can be dimensions, metrics, metadata"
                      },
                      "emails": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of emails that will get the report",
                        "example": [
                          "jon@doe.com",
                          "fancy@nancy.com"
                        ]
                      },
                      "groupBy": {
                        "title": "GroupBy",
                        "required": [
                          "type",
                          "granularity"
                        ],
                        "type": "object",
                        "properties": {
                          "type": {
                            "enum": [
                              "objectId"
                            ],
                            "type": "string",
                            "description": "The metric you want to group on",
                            "example": "objectId"
                          },
                          "granularity": {
                            "title": "Granularity",
                            "enum": [
                              "P1D",
                              "PT1H"
                            ],
                            "type": "string",
                            "description": "The granularity to be applied to the aggregation. Note that PT1H is only allowed when the interval is less than 1 day",
                            "example": "P1D"
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "Model for the export configuration"
          }
        }
      ],
      "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": "/createScheduledExport"
      },
      "task": true
    },
    {
      "name": "getAllExportConfigurations",
      "summary": "GetAllExportConfigurations",
      "description": "Gets a list of export report",
      "input": [
        {
          "name": "includeDoc",
          "type": "boolean",
          "info": "If true, then the reports themselves will be returned, otherwise, only the document IDs: boolean",
          "required": false,
          "schema": {
            "title": "includeDoc",
            "type": "boolean"
          }
        },
        {
          "name": "rawMetadataKey",
          "type": "boolean",
          "info": "Metadata are mapped internally for speed and this flag exposes the actual key: boolean",
          "required": false,
          "schema": {
            "title": "rawMetadataKey",
            "type": "boolean"
          }
        },
        {
          "name": "enabled",
          "type": "boolean",
          "info": "Only return enabled configs: boolean",
          "required": false,
          "schema": {
            "title": "enabled",
            "type": "boolean"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "title": "ExportReportsConfigurationModel",
            "type": "object",
            "properties": {
              "meta": {
                "title": "ExportConfigurationMeta",
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true
                  },
                  "createdBy": {
                    "type": "string"
                  },
                  "everyone": {
                    "title": "Everyone",
                    "enum": [
                      "none",
                      "viewer",
                      "editor",
                      "manager"
                    ],
                    "type": "string",
                    "example": "none"
                  },
                  "viewers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": ""
                  },
                  "editors": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": ""
                  },
                  "managers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": ""
                  }
                },
                "description": "Resuable block for users to see permission properties for a resource"
              },
              "data": {
                "title": "Data",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Export Configuration ID"
                  },
                  "type": {
                    "title": "Type17",
                    "enum": [
                      "export-configs"
                    ],
                    "type": "string",
                    "example": "export-configs"
                  },
                  "attributes": {
                    "title": "Attributes9",
                    "required": [
                      "name",
                      "schedule",
                      "filters",
                      "columns",
                      "emails",
                      "groupBy"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "example": "My first Export Job"
                      },
                      "tenantId": {
                        "type": "string"
                      },
                      "schedule": {
                        "title": "Schedule",
                        "type": "object",
                        "properties": {
                          "hour": {
                            "type": "number",
                            "description": "When the report interval should end at. Jobs are run when system is not busy so the hour is a best effort. Can't be 'star'"
                          },
                          "dayOfMonth": {
                            "type": "string",
                            "description": "On what date of the month should this run. Note that if you wish to run this once a month for the LAST month of data, you should specify the 1 (st) of every month with a duration of `P1M`. You can only specify dayOfMonth or dayOfWeek. If both are filled in, your request will be rejected.",
                            "example": "14"
                          },
                          "dayOfWeek": {
                            "type": "string",
                            "description": "On what day of the week to schedule the job on. 0 is sunday, 1 is monday, 2 is tuesday, 3 is wednesday, 4 si thursday, 5 is friday, 6 is saturday"
                          }
                        }
                      },
                      "duration": {
                        "type": "string",
                        "description": "The duration of the query. P1M means 1 month from the time before expected execution of the report schedule.",
                        "example": "P1M"
                      },
                      "filters": {
                        "title": "Filters",
                        "required": [
                          "objectType"
                        ],
                        "type": "object",
                        "properties": {
                          "includeOnlyCleanData": {
                            "type": "boolean",
                            "description": "If true, includes records marked clean record flag",
                            "default": false
                          },
                          "includeBusyHour": {
                            "type": "boolean",
                            "description": "If true, includes records marked with busy hour flag",
                            "default": false
                          },
                          "includeMaintenanceWindow": {
                            "type": "boolean",
                            "description": "If true, includes records marked with maintenance flag",
                            "default": false
                          },
                          "includeMetadata": {
                            "type": "object",
                            "additionalProperties": {},
                            "description": "Include metadata key-values that you want to filter on"
                          },
                          "objectType": {
                            "type": "string",
                            "description": "We must know the object type the export is for. We cannot run a single report against multiple object types in this version.",
                            "example": "twamp-sf"
                          },
                          "direction": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          }
                        }
                      },
                      "columns": {
                        "title": "Columns",
                        "type": "object",
                        "properties": {
                          "metrics": {
                            "type": "array",
                            "items": {
                              "title": "ExportMetricSelector",
                              "required": [
                                "name",
                                "aggregator"
                              ],
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "example": "delayP95"
                                },
                                "aggregator": {
                                  "title": "ExportAggregators",
                                  "enum": [
                                    "min",
                                    "max",
                                    "avg",
                                    "sum"
                                  ],
                                  "type": "string",
                                  "example": "min"
                                }
                              }
                            },
                            "description": ""
                          },
                          "metadata": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "topology": {
                            "type": "boolean",
                            "default": false
                          },
                          "thresholds": {
                            "type": "array",
                            "items": {
                              "title": "ExportThresholdModel",
                              "required": [
                                "comparator",
                                "metric",
                                "value",
                                "aggregator"
                              ],
                              "type": "object",
                              "properties": {
                                "comparator": {
                                  "title": "Comparator",
                                  "enum": [
                                    "gte",
                                    "lte"
                                  ],
                                  "type": "string",
                                  "description": "The metric value can be greater or lesser (and equal) according to the operator",
                                  "example": "gte"
                                },
                                "metric": {
                                  "type": "string",
                                  "description": "The metric you want to test the threshold against",
                                  "example": "delayP95"
                                },
                                "value": {
                                  "type": "number",
                                  "description": "Value for the metric to compare to",
                                  "example": 42
                                },
                                "aggregator": {
                                  "title": "ExportAggregators",
                                  "enum": [
                                    "min",
                                    "max",
                                    "avg",
                                    "sum"
                                  ],
                                  "type": "string",
                                  "example": "min"
                                }
                              },
                              "description": "Model for Export Threshold Crossing columns, which will be a boolean type"
                            },
                            "description": ""
                          }
                        },
                        "description": "Columns you wish to see in the exported dataset, can be dimensions, metrics, metadata"
                      },
                      "emails": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of emails that will get the report",
                        "example": [
                          "jon@doe.com",
                          "fancy@nancy.com"
                        ]
                      },
                      "groupBy": {
                        "title": "GroupBy",
                        "required": [
                          "type",
                          "granularity"
                        ],
                        "type": "object",
                        "properties": {
                          "type": {
                            "enum": [
                              "objectId"
                            ],
                            "type": "string",
                            "description": "The metric you want to group on",
                            "example": "objectId"
                          },
                          "granularity": {
                            "title": "Granularity",
                            "enum": [
                              "P1D",
                              "PT1H"
                            ],
                            "type": "string",
                            "description": "The granularity to be applied to the aggregation. Note that PT1H is only allowed when the interval is less than 1 day",
                            "example": "P1D"
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "Model for the export configuration"
          },
          "description": ""
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAllExportConfigurations"
      },
      "task": true
    },
    {
      "name": "getExportConfiguration",
      "summary": "GetExportConfiguration",
      "description": "Gets an export configuration",
      "input": [
        {
          "name": "confId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "confId",
            "type": "string"
          }
        },
        {
          "name": "rawMetadataKey",
          "type": "boolean",
          "info": "Metadata are mapped internally for speed and this flag exposes the actual key: boolean",
          "required": false,
          "schema": {
            "title": "rawMetadataKey",
            "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": "/getExportConfiguration"
      },
      "task": true
    },
    {
      "name": "patchExportConfiguration",
      "summary": "PatchExportConfiguration",
      "description": "Patch an export Configuration",
      "input": [
        {
          "name": "confId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "confId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"meta\": {\"enabled\": \"boolean\", \"createdBy\": \"string\", \"everyone\": \"Must be one of [none, viewer, editor, manager]\", \"viewers\": \"array\", \"editors\": \"array\", \"managers\": \"array\"}, \"data\": {\"id\": \"string\", \"type\": \"Must be one of [export-configs]\", \"attributes\": {\"name\": \"string\", \"tenantId\": \"string\", \"schedule\": {\"hour\": 123, \"dayOfMonth\": \"string\", \"dayOfWeek\": \"string\"}, \"duration\": \"string\", \"filters\": {\"includeOnlyCleanData\": \"boolean\", \"includeBusyHour\": \"boolean\", \"includeMaintenanceWindow\": \"boolean\", \"includeMetadata\": \"object\", \"objectType\": \"string\", \"direction\": \"array\"}, \"columns\": {\"metrics\": [{\"name\": \"string\", \"aggregator\": \"Must be one of [min, max, avg, sum]\"}], \"metadata\": \"array\", \"topology\": \"boolean\", \"thresholds\": [{\"comparator\": \"Must be one of [gte, lte]\", \"metric\": \"string\", \"value\": 123, \"aggregator\": \"Must be one of [min, max, avg, sum]\"}]}, \"emails\": \"array\", \"groupBy\": {\"type\": \"Must be one of [objectId]\", \"granularity\": \"Must be one of [P1D, PT1H]\"}}}}",
          "required": true,
          "schema": {
            "title": "ExportReportsConfigurationModel",
            "type": "object",
            "properties": {
              "meta": {
                "title": "ExportConfigurationMeta",
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true
                  },
                  "createdBy": {
                    "type": "string"
                  },
                  "everyone": {
                    "title": "Everyone",
                    "enum": [
                      "none",
                      "viewer",
                      "editor",
                      "manager"
                    ],
                    "type": "string",
                    "example": "none"
                  },
                  "viewers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": ""
                  },
                  "editors": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": ""
                  },
                  "managers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": ""
                  }
                },
                "description": "Resuable block for users to see permission properties for a resource"
              },
              "data": {
                "title": "Data",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Export Configuration ID"
                  },
                  "type": {
                    "title": "Type17",
                    "enum": [
                      "export-configs"
                    ],
                    "type": "string",
                    "example": "export-configs"
                  },
                  "attributes": {
                    "title": "Attributes9",
                    "required": [
                      "name",
                      "schedule",
                      "filters",
                      "columns",
                      "emails",
                      "groupBy"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "example": "My first Export Job"
                      },
                      "tenantId": {
                        "type": "string"
                      },
                      "schedule": {
                        "title": "Schedule",
                        "type": "object",
                        "properties": {
                          "hour": {
                            "type": "number",
                            "description": "When the report interval should end at. Jobs are run when system is not busy so the hour is a best effort. Can't be 'star'"
                          },
                          "dayOfMonth": {
                            "type": "string",
                            "description": "On what date of the month should this run. Note that if you wish to run this once a month for the LAST month of data, you should specify the 1 (st) of every month with a duration of `P1M`. You can only specify dayOfMonth or dayOfWeek. If both are filled in, your request will be rejected.",
                            "example": "14"
                          },
                          "dayOfWeek": {
                            "type": "string",
                            "description": "On what day of the week to schedule the job on. 0 is sunday, 1 is monday, 2 is tuesday, 3 is wednesday, 4 si thursday, 5 is friday, 6 is saturday"
                          }
                        }
                      },
                      "duration": {
                        "type": "string",
                        "description": "The duration of the query. P1M means 1 month from the time before expected execution of the report schedule.",
                        "example": "P1M"
                      },
                      "filters": {
                        "title": "Filters",
                        "required": [
                          "objectType"
                        ],
                        "type": "object",
                        "properties": {
                          "includeOnlyCleanData": {
                            "type": "boolean",
                            "description": "If true, includes records marked clean record flag",
                            "default": false
                          },
                          "includeBusyHour": {
                            "type": "boolean",
                            "description": "If true, includes records marked with busy hour flag",
                            "default": false
                          },
                          "includeMaintenanceWindow": {
                            "type": "boolean",
                            "description": "If true, includes records marked with maintenance flag",
                            "default": false
                          },
                          "includeMetadata": {
                            "type": "object",
                            "additionalProperties": {},
                            "description": "Include metadata key-values that you want to filter on"
                          },
                          "objectType": {
                            "type": "string",
                            "description": "We must know the object type the export is for. We cannot run a single report against multiple object types in this version.",
                            "example": "twamp-sf"
                          },
                          "direction": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          }
                        }
                      },
                      "columns": {
                        "title": "Columns",
                        "type": "object",
                        "properties": {
                          "metrics": {
                            "type": "array",
                            "items": {
                              "title": "ExportMetricSelector",
                              "required": [
                                "name",
                                "aggregator"
                              ],
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "example": "delayP95"
                                },
                                "aggregator": {
                                  "title": "ExportAggregators",
                                  "enum": [
                                    "min",
                                    "max",
                                    "avg",
                                    "sum"
                                  ],
                                  "type": "string",
                                  "example": "min"
                                }
                              }
                            },
                            "description": ""
                          },
                          "metadata": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "topology": {
                            "type": "boolean",
                            "default": false
                          },
                          "thresholds": {
                            "type": "array",
                            "items": {
                              "title": "ExportThresholdModel",
                              "required": [
                                "comparator",
                                "metric",
                                "value",
                                "aggregator"
                              ],
                              "type": "object",
                              "properties": {
                                "comparator": {
                                  "title": "Comparator",
                                  "enum": [
                                    "gte",
                                    "lte"
                                  ],
                                  "type": "string",
                                  "description": "The metric value can be greater or lesser (and equal) according to the operator",
                                  "example": "gte"
                                },
                                "metric": {
                                  "type": "string",
                                  "description": "The metric you want to test the threshold against",
                                  "example": "delayP95"
                                },
                                "value": {
                                  "type": "number",
                                  "description": "Value for the metric to compare to",
                                  "example": 42
                                },
                                "aggregator": {
                                  "title": "ExportAggregators",
                                  "enum": [
                                    "min",
                                    "max",
                                    "avg",
                                    "sum"
                                  ],
                                  "type": "string",
                                  "example": "min"
                                }
                              },
                              "description": "Model for Export Threshold Crossing columns, which will be a boolean type"
                            },
                            "description": ""
                          }
                        },
                        "description": "Columns you wish to see in the exported dataset, can be dimensions, metrics, metadata"
                      },
                      "emails": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of emails that will get the report",
                        "example": [
                          "jon@doe.com",
                          "fancy@nancy.com"
                        ]
                      },
                      "groupBy": {
                        "title": "GroupBy",
                        "required": [
                          "type",
                          "granularity"
                        ],
                        "type": "object",
                        "properties": {
                          "type": {
                            "enum": [
                              "objectId"
                            ],
                            "type": "string",
                            "description": "The metric you want to group on",
                            "example": "objectId"
                          },
                          "granularity": {
                            "title": "Granularity",
                            "enum": [
                              "P1D",
                              "PT1H"
                            ],
                            "type": "string",
                            "description": "The granularity to be applied to the aggregation. Note that PT1H is only allowed when the interval is less than 1 day",
                            "example": "P1D"
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "Model for the export configuration"
          }
        }
      ],
      "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": "/patchExportConfiguration"
      },
      "task": true
    },
    {
      "name": "disableExportConfiguration",
      "summary": "DisableExportConfiguration",
      "description": "Disables an export Configuration",
      "input": [
        {
          "name": "confId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "confId",
            "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": "/disableExportConfiguration"
      },
      "task": true
    },
    {
      "name": "getAllExportReport",
      "summary": "GetAllExportReport",
      "description": "Gets a list of export report",
      "input": [
        {
          "name": "confId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "confId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "title": "ExportReportModel",
            "type": "object",
            "properties": {
              "meta": {
                "title": "ExportConfigurationMeta",
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true
                  },
                  "createdBy": {
                    "type": "string"
                  },
                  "everyone": {
                    "title": "Everyone",
                    "enum": [
                      "none",
                      "viewer",
                      "editor",
                      "manager"
                    ],
                    "type": "string",
                    "example": "none"
                  },
                  "viewers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": ""
                  },
                  "editors": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": ""
                  },
                  "managers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": ""
                  }
                },
                "description": "Resuable block for users to see permission properties for a resource"
              },
              "data": {
                "title": "Data1",
                "required": [
                  "id"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Export Configuration ID"
                  },
                  "type": {
                    "title": "Type18",
                    "enum": [
                      "datasetExport"
                    ],
                    "type": "string",
                    "example": "datasetExport"
                  },
                  "attributes": {
                    "title": "Attributes10",
                    "type": "object",
                    "properties": {
                      "format": {
                        "title": "Format",
                        "enum": [
                          "csv"
                        ],
                        "type": "string",
                        "description": "The format the payload is in.",
                        "example": "csv"
                      },
                      "lastModified": {
                        "type": "string",
                        "description": "The dataset's last modified timestamp",
                        "example": "2021-06-16T13:02:59.514Z"
                      },
                      "size": {
                        "type": "number",
                        "description": "Size of the payload attribute in bytes"
                      },
                      "compression": {
                        "type": "string",
                        "description": "The type of compression applied to the payload",
                        "example": "gzip"
                      },
                      "payload": {
                        "type": "string",
                        "description": "This is the dataset stored in BASE64. You must decode the BASE64 and then decompress it using the compression format defined in the 'compression' attribute. Example: `cat <file>.csv.gz.b64 | base64 -d | gzip -d > file.csv`"
                      },
                      "download": {
                        "type": "string",
                        "description": "Link to the file"
                      }
                    }
                  }
                }
              }
            },
            "description": "Returns an exported dataset"
          },
          "description": ""
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAllExportReport"
      },
      "task": true
    },
    {
      "name": "getExportReport",
      "summary": "GetExportReport",
      "description": "Download a report csv",
      "input": [
        {
          "name": "confId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "confId",
            "type": "string"
          }
        },
        {
          "name": "fileName",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "fileName",
            "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": "/getExportReport"
      },
      "task": true
    },
    {
      "name": "getSolutionManifest",
      "summary": "GetSolutionManifest",
      "description": "Retrieves the Skyligth Analytics release and solution versions as well as the manifest of all services. If the local manifest has been manually modified, the isDirty flag is set to indicate that the currently running version differs from the original version",
      "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": "/getSolutionManifest"
      },
      "task": true
    },
    {
      "name": "createTimeExclusion",
      "summary": "CreateTimeExclusion",
      "description": "Provisions a time exclusion for the current tenant",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [twe]\", \"attributes\": {\"name\": \"string\", \"description\": \"string\", \"locale\": \"string\", \"exclusionType\": \"Must be one of [busyHour, maintenance]\", \"match\": {\"monitoredObjectIds\": \"array\", \"metaData\": {\"include\": \"object\", \"exclude\": \"object\"}, \"applicationIds\": \"array\", \"zones\": \"array\", \"sensorIds\": \"array\"}, \"startTime\": \"string\", \"endTime\": \"string\", \"duration\": \"string\", \"recurrence\": [{\"freq\": \"Must be one of [SECONDLY, MINUTELY, HOURLY, DAILY, WEEKLY, MONTHLY, YEARLY]\", \"until\": \"string\", \"count\": 123, \"interval\": 123, \"bySecond\": \"array\", \"byMinute\": \"array\", \"byHour\": \"array\", \"byDay\": \"array\", \"byMonthDay\": \"array\", \"byYearDay\": \"array\", \"byWeekNo\": \"array\", \"byMonth\": \"array\", \"bySetPos\": \"array\", \"wkst\": \"string\"}]}}}",
          "required": true,
          "schema": {
            "title": "TimeExclusionRequestSpec",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data2",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "twe"
                    ],
                    "type": "string",
                    "example": "twe"
                  },
                  "attributes": {
                    "title": "TimeExclusionRequest",
                    "required": [
                      "name",
                      "exclusionType",
                      "match",
                      "startTime"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "locale": {
                        "type": "string",
                        "description": "Locale label - Should match tome zone define in startTime and endTime, but is not enforced"
                      },
                      "exclusionType": {
                        "title": "ExclusionType",
                        "enum": [
                          "busyHour",
                          "maintenance"
                        ],
                        "type": "string",
                        "example": "busyHour"
                      },
                      "match": {
                        "title": "TimeWindowExclusionMatch",
                        "type": "object",
                        "properties": {
                          "monitoredObjectIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "A list of monitored object IDs. Supports '*' wildcard to match all monitored objects"
                          },
                          "metaData": {
                            "title": "MetaData",
                            "type": "object",
                            "properties": {
                              "include": {
                                "type": "object",
                                "additionalProperties": {}
                              },
                              "exclude": {
                                "type": "object",
                                "additionalProperties": {}
                              }
                            }
                          },
                          "applicationIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "zones": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "sensorIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          }
                        }
                      },
                      "startTime": {
                        "type": "string"
                      },
                      "endTime": {
                        "type": "string"
                      },
                      "duration": {
                        "pattern": "P(\\d+W)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?",
                        "type": "string"
                      },
                      "recurrence": {
                        "type": "array",
                        "items": {
                          "title": "TimeWindowExclusionRecurrence",
                          "required": [
                            "freq"
                          ],
                          "type": "object",
                          "properties": {
                            "freq": {
                              "title": "Freq",
                              "enum": [
                                "SECONDLY",
                                "MINUTELY",
                                "HOURLY",
                                "DAILY",
                                "WEEKLY",
                                "MONTHLY",
                                "YEARLY"
                              ],
                              "type": "string",
                              "description": "The frequency",
                              "example": "SECONDLY"
                            },
                            "until": {
                              "type": "string",
                              "description": "The end of this recurrence"
                            },
                            "count": {
                              "type": "integer",
                              "description": "The maximum number of recurrence"
                            },
                            "interval": {
                              "type": "integer",
                              "description": "The numeric interval"
                            },
                            "bySecond": {
                              "type": "array",
                              "items": {
                                "maximum": 60,
                                "minimum": 0,
                                "type": "integer"
                              },
                              "description": ""
                            },
                            "byMinute": {
                              "type": "array",
                              "items": {
                                "maximum": 59,
                                "minimum": 0,
                                "type": "integer"
                              },
                              "description": ""
                            },
                            "byHour": {
                              "type": "array",
                              "items": {
                                "maximum": 23,
                                "minimum": 0,
                                "type": "integer"
                              },
                              "description": ""
                            },
                            "byDay": {
                              "type": "array",
                              "items": {
                                "pattern": "^(\\+|-)?([1-9]|[0-4][0-9]|5[0-3])?(MO|TU|WE|TH|FR|SA|SU)",
                                "type": "string"
                              },
                              "description": ""
                            },
                            "byMonthDay": {
                              "type": "array",
                              "items": {
                                "pattern": "^(\\+|-)?([1-9]|[1-2][0-9]|3[0-1])",
                                "type": "string"
                              },
                              "description": ""
                            },
                            "byYearDay": {
                              "type": "array",
                              "items": {
                                "pattern": "^(\\+|-)?([1-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-6])",
                                "type": "string"
                              },
                              "description": ""
                            },
                            "byWeekNo": {
                              "type": "array",
                              "items": {
                                "pattern": "^(\\+|-)?([1-9]|[0-4][0-9]|5[0-3])",
                                "type": "string"
                              },
                              "description": ""
                            },
                            "byMonth": {
                              "type": "array",
                              "items": {
                                "maximum": 12,
                                "minimum": 1,
                                "type": "integer"
                              },
                              "description": ""
                            },
                            "bySetPos": {
                              "type": "array",
                              "items": {
                                "pattern": "^(\\+|-)?([1-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-6])",
                                "type": "string"
                              },
                              "description": ""
                            },
                            "wkst": {
                              "pattern": "^(MO|TU|WE|TH|FR|SA|SU)",
                              "type": "string"
                            }
                          }
                        },
                        "description": ""
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/createTimeExclusion"
      },
      "task": true
    },
    {
      "name": "getAllTimeExclusion",
      "summary": "GetAllTimeExclusion",
      "description": "Retrieves all provisioned time exclusion for the current tenant",
      "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": "/getAllTimeExclusion"
      },
      "task": true
    },
    {
      "name": "updateTimeExclusion",
      "summary": "UpdateTimeExclusion",
      "description": "Updates a provisioned time exclusion of the current tenant",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"string\", \"attributes\": {\"name\": \"string\", \"description\": \"string\", \"locale\": \"string\", \"exclusionType\": \"Must be one of [busyHour, maintenance]\", \"match\": {\"monitoredObjectIds\": \"array\", \"metaData\": {\"include\": \"object\", \"exclude\": \"object\"}, \"applicationIds\": \"array\", \"zones\": \"array\", \"sensorIds\": \"array\"}, \"startTime\": \"string\", \"endTime\": \"string\", \"duration\": \"string\", \"recurrence\": [{\"freq\": \"Must be one of [SECONDLY, MINUTELY, HOURLY, DAILY, WEEKLY, MONTHLY, YEARLY]\", \"until\": \"string\", \"count\": 123, \"interval\": 123, \"bySecond\": \"array\", \"byMinute\": \"array\", \"byHour\": \"array\", \"byDay\": \"array\", \"byMonthDay\": \"array\", \"byYearDay\": \"array\", \"byWeekNo\": \"array\", \"byMonth\": \"array\", \"bySetPos\": \"array\", \"wkst\": \"string\"}]}}}",
          "required": true,
          "schema": {
            "title": "TimeExclusionUpdateRequestSpec",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data3",
                "required": [
                  "id",
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "TimeExclusionUpdateRequest",
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "locale": {
                        "type": "string",
                        "description": "Locale label - Should match tome zone define in startTime and endTime, but is not enforced"
                      },
                      "exclusionType": {
                        "title": "ExclusionType",
                        "enum": [
                          "busyHour",
                          "maintenance"
                        ],
                        "type": "string",
                        "example": "busyHour"
                      },
                      "match": {
                        "title": "TimeWindowExclusionMatch",
                        "type": "object",
                        "properties": {
                          "monitoredObjectIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "A list of monitored object IDs. Supports '*' wildcard to match all monitored objects"
                          },
                          "metaData": {
                            "title": "MetaData",
                            "type": "object",
                            "properties": {
                              "include": {
                                "type": "object",
                                "additionalProperties": {}
                              },
                              "exclude": {
                                "type": "object",
                                "additionalProperties": {}
                              }
                            }
                          },
                          "applicationIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "zones": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "sensorIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          }
                        }
                      },
                      "startTime": {
                        "type": "string"
                      },
                      "endTime": {
                        "type": "string"
                      },
                      "duration": {
                        "pattern": "P(\\d+W)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?",
                        "type": "string"
                      },
                      "recurrence": {
                        "type": "array",
                        "items": {
                          "title": "TimeWindowExclusionRecurrence",
                          "required": [
                            "freq"
                          ],
                          "type": "object",
                          "properties": {
                            "freq": {
                              "title": "Freq",
                              "enum": [
                                "SECONDLY",
                                "MINUTELY",
                                "HOURLY",
                                "DAILY",
                                "WEEKLY",
                                "MONTHLY",
                                "YEARLY"
                              ],
                              "type": "string",
                              "description": "The frequency",
                              "example": "SECONDLY"
                            },
                            "until": {
                              "type": "string",
                              "description": "The end of this recurrence"
                            },
                            "count": {
                              "type": "integer",
                              "description": "The maximum number of recurrence"
                            },
                            "interval": {
                              "type": "integer",
                              "description": "The numeric interval"
                            },
                            "bySecond": {
                              "type": "array",
                              "items": {
                                "maximum": 60,
                                "minimum": 0,
                                "type": "integer"
                              },
                              "description": ""
                            },
                            "byMinute": {
                              "type": "array",
                              "items": {
                                "maximum": 59,
                                "minimum": 0,
                                "type": "integer"
                              },
                              "description": ""
                            },
                            "byHour": {
                              "type": "array",
                              "items": {
                                "maximum": 23,
                                "minimum": 0,
                                "type": "integer"
                              },
                              "description": ""
                            },
                            "byDay": {
                              "type": "array",
                              "items": {
                                "pattern": "^(\\+|-)?([1-9]|[0-4][0-9]|5[0-3])?(MO|TU|WE|TH|FR|SA|SU)",
                                "type": "string"
                              },
                              "description": ""
                            },
                            "byMonthDay": {
                              "type": "array",
                              "items": {
                                "pattern": "^(\\+|-)?([1-9]|[1-2][0-9]|3[0-1])",
                                "type": "string"
                              },
                              "description": ""
                            },
                            "byYearDay": {
                              "type": "array",
                              "items": {
                                "pattern": "^(\\+|-)?([1-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-6])",
                                "type": "string"
                              },
                              "description": ""
                            },
                            "byWeekNo": {
                              "type": "array",
                              "items": {
                                "pattern": "^(\\+|-)?([1-9]|[0-4][0-9]|5[0-3])",
                                "type": "string"
                              },
                              "description": ""
                            },
                            "byMonth": {
                              "type": "array",
                              "items": {
                                "maximum": 12,
                                "minimum": 1,
                                "type": "integer"
                              },
                              "description": ""
                            },
                            "bySetPos": {
                              "type": "array",
                              "items": {
                                "pattern": "^(\\+|-)?([1-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-6])",
                                "type": "string"
                              },
                              "description": ""
                            },
                            "wkst": {
                              "pattern": "^(MO|TU|WE|TH|FR|SA|SU)",
                              "type": "string"
                            }
                          }
                        },
                        "description": ""
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/updateTimeExclusion"
      },
      "task": true
    },
    {
      "name": "getTimeExclusion",
      "summary": "GetTimeExclusion",
      "description": "Retrieves a provisioned time exclusion for the current tenant by name",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/getTimeExclusion"
      },
      "task": true
    },
    {
      "name": "deleteTimeExclusion",
      "summary": "DeleteTimeExclusion",
      "description": "Removes a provisioned time exclusion for the current tenant by name",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/deleteTimeExclusion"
      },
      "task": true
    },
    {
      "name": "timeExclusionEvents",
      "summary": "TimeExclusionEvents",
      "description": "Returns all time window exclusions for the tenant that have occurrences between start and end time. If monitoredObjectID is specified, only time window exclusions that affect the monitored object during the specified time window are returned",
      "input": [
        {
          "name": "start",
          "type": "number",
          "info": ": 123",
          "required": true,
          "schema": {
            "title": "start",
            "type": "number"
          }
        },
        {
          "name": "end",
          "type": "number",
          "info": ": 123",
          "required": true,
          "schema": {
            "title": "end",
            "type": "number"
          }
        },
        {
          "name": "monitoredObjectID",
          "type": "string",
          "info": ": string",
          "required": false,
          "schema": {
            "title": "monitoredObjectID",
            "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": "/timeExclusionEvents"
      },
      "task": true
    },
    {
      "name": "createTenantV2",
      "summary": "CreateTenantV2",
      "description": "Create a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [tenants]\", \"id\": \"string\", \"attributes\": {\"name\": \"string\", \"urlSubdomain\": \"string\", \"state\": \"Must be one of [USER_UNKNOWN, INVITED, ACTIVE, SUSPENDED, PENDING_DELETE]\", \"allowPasswordAuth\": \"boolean\", \"openIDProviders\": [{\"domainMapping\": \"object\", \"default\": \"boolean\", \"label\": \"string\", \"baseURL\": \"string\", \"clientID\": \"string\", \"clientName\": \"string\", \"secretEnv\": \"string\"}], \"samlProviders\": [{\"keystorePath\": \"string\", \"keystorePasswordEnv\": \"string\", \"privateKeyPasswordEnv\": \"string\", \"identityProviderMetadataPath\": \"string\", \"serviceProviderEntityID\": \"string\", \"serviceProviderMetadataPath\": \"string\", \"default\": \"boolean\", \"clientName\": \"string\", \"label\": \"string\"}]}}}",
          "required": true,
          "schema": {
            "title": "TenantCreationRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "TenantCreationObject",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "tenants"
                    ],
                    "type": "string",
                    "example": "tenants"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes11",
                    "required": [
                      "name",
                      "urlSubdomain",
                      "state"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the Tenant"
                      },
                      "urlSubdomain": {
                        "type": "string",
                        "description": "The subdomain used in the URL for accessing the Tenant's portal in Datahub"
                      },
                      "state": {
                        "title": "State",
                        "enum": [
                          "USER_UNKNOWN",
                          "INVITED",
                          "ACTIVE",
                          "SUSPENDED",
                          "PENDING_DELETE"
                        ],
                        "type": "string",
                        "description": "The current state of the Tenant",
                        "example": "USER_UNKNOWN"
                      },
                      "allowPasswordAuth": {
                        "type": "boolean",
                        "description": "Whether or not we allow username/password authentication"
                      },
                      "openIDProviders": {
                        "type": "array",
                        "items": {
                          "title": "OpenIDConfig",
                          "required": [
                            "baseURL",
                            "clientID"
                          ],
                          "type": "object",
                          "properties": {
                            "domainMapping": {
                              "type": "object",
                              "additionalProperties": {}
                            },
                            "default": {
                              "type": "boolean"
                            },
                            "label": {
                              "type": "string"
                            },
                            "baseURL": {
                              "type": "string"
                            },
                            "clientID": {
                              "type": "string"
                            },
                            "clientName": {
                              "type": "string"
                            },
                            "secretEnv": {
                              "type": "string"
                            }
                          }
                        },
                        "description": "Names of supported OpenID providers"
                      },
                      "samlProviders": {
                        "type": "array",
                        "items": {
                          "title": "SAMLConfig",
                          "required": [
                            "identityProviderMetadataPath"
                          ],
                          "type": "object",
                          "properties": {
                            "keystorePath": {
                              "type": "string"
                            },
                            "keystorePasswordEnv": {
                              "type": "string"
                            },
                            "privateKeyPasswordEnv": {
                              "type": "string"
                            },
                            "identityProviderMetadataPath": {
                              "type": "string"
                            },
                            "serviceProviderEntityID": {
                              "type": "string"
                            },
                            "serviceProviderMetadataPath": {
                              "type": "string"
                            },
                            "default": {
                              "type": "boolean",
                              "description": "If this flag is true, then UI will show this one as default login option"
                            },
                            "clientName": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            }
                          }
                        },
                        "description": "Names of supported SAML providers"
                      }
                    }
                  }
                }
              }
            },
            "description": "The request used when creating a new Tenant in Datahub"
          }
        }
      ],
      "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": "/createTenantV2"
      },
      "task": true
    },
    {
      "name": "getAllTenantsV2",
      "summary": "GetAllTenantsV2",
      "description": "Retrieve all Tenants.",
      "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": "/getAllTenantsV2"
      },
      "task": true
    },
    {
      "name": "getTenantV2",
      "summary": "GetTenantV2",
      "description": "Retrieve a Tenant by id.",
      "input": [
        {
          "name": "tenantId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "tenantId",
            "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": "/getTenantV2"
      },
      "task": true
    },
    {
      "name": "deleteTenantV2",
      "summary": "DeleteTenantV2",
      "description": "Delete a Tenant",
      "input": [
        {
          "name": "tenantId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "tenantId",
            "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": "/deleteTenantV2"
      },
      "task": true
    },
    {
      "name": "patchTenantV2",
      "summary": "PatchTenantV2",
      "description": "Patch a Tenant",
      "input": [
        {
          "name": "tenantId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "tenantId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [tenants]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"name\": \"string\", \"allowPasswordAuth\": \"boolean\", \"urlSubdomain\": \"string\", \"state\": \"Must be one of [USER_UNKNOWN, INVITED, ACTIVE, SUSPENDED, PENDING_DELETE]\", \"openIDProviders\": [{\"domainMapping\": \"object\", \"default\": \"boolean\", \"label\": \"string\", \"baseURL\": \"string\", \"clientID\": \"string\", \"clientName\": \"string\", \"secretEnv\": \"string\"}], \"samlProviders\": [{\"keystorePath\": \"string\", \"keystorePasswordEnv\": \"string\", \"privateKeyPasswordEnv\": \"string\", \"identityProviderMetadataPath\": \"string\", \"serviceProviderEntityID\": \"string\", \"serviceProviderMetadataPath\": \"string\", \"default\": \"boolean\", \"clientName\": \"string\", \"label\": \"string\"}]}}}",
          "required": true,
          "schema": {
            "title": "TenantUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "TenantUpdateObject",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "tenants"
                    ],
                    "type": "string",
                    "example": "tenants"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes12",
                    "required": [
                      "_rev"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "The current version of this record. Used to guarantee updates are made in the proper order"
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the Tenant"
                      },
                      "allowPasswordAuth": {
                        "type": "boolean",
                        "description": "Whether or not we allow username/password authentication"
                      },
                      "urlSubdomain": {
                        "type": "string",
                        "description": "The subdomain used in the URL for accessing the Tenant's portal in Datahub"
                      },
                      "state": {
                        "title": "State",
                        "enum": [
                          "USER_UNKNOWN",
                          "INVITED",
                          "ACTIVE",
                          "SUSPENDED",
                          "PENDING_DELETE"
                        ],
                        "type": "string",
                        "description": "The current state of the Tenant",
                        "example": "USER_UNKNOWN"
                      },
                      "openIDProviders": {
                        "type": "array",
                        "items": {
                          "title": "OpenIDConfig",
                          "required": [
                            "baseURL",
                            "clientID"
                          ],
                          "type": "object",
                          "properties": {
                            "domainMapping": {
                              "type": "object",
                              "additionalProperties": {}
                            },
                            "default": {
                              "type": "boolean"
                            },
                            "label": {
                              "type": "string"
                            },
                            "baseURL": {
                              "type": "string"
                            },
                            "clientID": {
                              "type": "string"
                            },
                            "clientName": {
                              "type": "string"
                            },
                            "secretEnv": {
                              "type": "string"
                            }
                          }
                        },
                        "description": "Names of supported OpenID providers"
                      },
                      "samlProviders": {
                        "type": "array",
                        "items": {
                          "title": "SAMLConfig",
                          "required": [
                            "identityProviderMetadataPath"
                          ],
                          "type": "object",
                          "properties": {
                            "keystorePath": {
                              "type": "string"
                            },
                            "keystorePasswordEnv": {
                              "type": "string"
                            },
                            "privateKeyPasswordEnv": {
                              "type": "string"
                            },
                            "identityProviderMetadataPath": {
                              "type": "string"
                            },
                            "serviceProviderEntityID": {
                              "type": "string"
                            },
                            "serviceProviderMetadataPath": {
                              "type": "string"
                            },
                            "default": {
                              "type": "boolean",
                              "description": "If this flag is true, then UI will show this one as default login option"
                            },
                            "clientName": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            }
                          }
                        },
                        "description": "Names of supported SAML providers"
                      }
                    }
                  }
                }
              }
            },
            "description": "The request used when updating an existing Tenant in Datahub"
          }
        }
      ],
      "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": "/patchTenantV2"
      },
      "task": true
    },
    {
      "name": "getTenantIdByAliasV2",
      "summary": "GetTenantIdByAliasV2",
      "description": "Returns the Id of a Tenant that matches the provided alias.",
      "input": [
        {
          "name": "value",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "value",
            "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": "/getTenantIdByAliasV2"
      },
      "task": true
    },
    {
      "name": "getTenantSummaryByAliasV2",
      "summary": "GetTenantSummaryByAliasV2",
      "description": "Returns a summary of the Tenant that matches the provided alias.",
      "input": [
        {
          "name": "value",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "value",
            "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": "/getTenantSummaryByAliasV2"
      },
      "task": true
    },
    {
      "name": "getIngestionDictionaryV2",
      "summary": "GetIngestionDictionaryV2",
      "description": "Retrieve an Ingestion Dictionary.",
      "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": "/getIngestionDictionaryV2"
      },
      "task": true
    },
    {
      "name": "getValidTypesV2",
      "summary": "GetValidTypesV2",
      "description": "Retrieve a Valid Types object.",
      "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": "/getValidTypesV2"
      },
      "task": true
    },
    {
      "name": "getTenantMetadataV2",
      "summary": "GetTenantMetadataV2",
      "description": "Retrieve a Tenant's Metadata. This API is authorized to Datahub Administrators only.",
      "input": [
        {
          "name": "tenantId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "tenantId",
            "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": "/getTenantMetadataV2"
      },
      "task": true
    },
    {
      "name": "updateTenantMetadataV2",
      "summary": "UpdateTenantMetadataV2",
      "description": "Update a Tenant's Metadata. This API is authorized to Datahub Administrators only.",
      "input": [
        {
          "name": "tenantId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "tenantId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [tenantMetadata]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"tenantName\": \"string\", \"metadataCategoryLimit\": 123, \"deltaBatchCompactionDurationMinutes\": 123, \"aggregateDataCleaningThreshold\": 123, \"ingestionVacuumSettings\": {\"metricAdmin\": \"string\", \"metricDelta\": \"string\", \"metricTable\": \"string\"}, \"baselinePeriod\": \"string\", \"latentDataPeriod\": \"string\", \"metricDatasourceSettings\": \"object\", \"metricQueryConfig\": {\"targetNumberOfDataPoints\": 123, \"datasourceQueryDurationMap\": \"object\"}, \"alertConfig\": {\"enabledAlertPolicyLimit\": {\"micro-tca\": 123, \"capture\": 123, \"security\": 123}}}}}",
          "required": true,
          "schema": {
            "title": "TenantMetadataUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data11",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "tenantMetadata"
                    ],
                    "type": "string",
                    "example": "tenantMetadata"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes18",
                    "required": [
                      "_rev",
                      "tenantName",
                      "metadataCategoryLimit",
                      "deltaBatchCompactionDurationMinutes",
                      "aggregateDataCleaningThreshold",
                      "ingestionVacuumSettings",
                      "baselinePeriod",
                      "latentDataPeriod",
                      "metricDatasourceSettings",
                      "metricQueryConfig",
                      "alertConfig"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "tenantName": {
                        "type": "string",
                        "description": "The name of a Tenant in Datahub"
                      },
                      "metadataCategoryLimit": {
                        "type": "integer",
                        "description": "The maximum amount of Metadata Categories allowed for this Tenant"
                      },
                      "deltaBatchCompactionDurationMinutes": {
                        "maximum": 30,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The amount of time we will compact collected delta batch ingestion notifications before submitting them for ingestion",
                        "example": 5
                      },
                      "aggregateDataCleaningThreshold": {
                        "maximum": 1,
                        "minimum": 0,
                        "exclusiveMinimum": 0,
                        "type": "number",
                        "description": "Percentage (0.0 - 1.0] of data points which must be marked as 'dirty' before the aggregated value will also be marked as 'dirty'"
                      },
                      "ingestionVacuumSettings": {
                        "title": "IngestionVersionRetetionProperties",
                        "required": [
                          "metricAdmin",
                          "metricDelta",
                          "metricTable"
                        ],
                        "type": "object",
                        "properties": {
                          "metricAdmin": {
                            "type": "string",
                            "description": "ISO8601 format period (only Time variant i.e. must start 'PT') which determines for what period of time old versions of metric admin data (baselines, ing profile data, etc) will be kept"
                          },
                          "metricDelta": {
                            "type": "string",
                            "description": "ISO8601 format period (only Time variant i.e. must start 'PT') which determines for what period of time old versions of metric delta will be kept"
                          },
                          "metricTable": {
                            "type": "string",
                            "description": "ISO8601 format period (only Time variant i.e. must start 'PT') which determines for what period of time old versions of metric refresh will be kept"
                          }
                        }
                      },
                      "baselinePeriod": {
                        "type": "string",
                        "description": "ISO8601 format period (only Time variant i.e. must start 'PT') which determines how far in the past data will contribute to the baseline average values of metrics."
                      },
                      "latentDataPeriod": {
                        "type": "string",
                        "description": "ISO8601 format period (only Time variant i.e. must start 'PT') which determines how far in the past data for this Tenant data will be accepted in the real-time ingestion pipeline."
                      },
                      "metricDatasourceSettings": {
                        "type": "object",
                        "additionalProperties": {
                          "title": "MetricDatasourceConfig",
                          "required": [
                            "maxIngestionPeriod",
                            "acceptNewData",
                            "retainData",
                            "canQuery",
                            "granularity",
                            "tableName"
                          ],
                          "type": "object",
                          "properties": {
                            "maxDeltaIngestionThreads": {
                              "type": "integer",
                              "description": "The maximum amount of threads that will be used to ingest data into this datasource for delta tasks"
                            },
                            "maxIngestionThreads": {
                              "type": "integer",
                              "description": "The maximum amount of threads that will be used to ingest data into this datasource for refresh tasks"
                            },
                            "maxRowsPerFile": {
                              "type": "integer",
                              "description": "The maximum amount of rows that will be stored in a persisted metric file"
                            },
                            "maxRowsInMemory": {
                              "type": "integer",
                              "description": "The maximum amount of rows that will be processed (among all threads) before persisting the metrics files"
                            },
                            "maxIngestionPeriod": {
                              "type": "string",
                              "description": "ISO8601 format period (only Time variant i.e. must start 'PT') which determines how far in the past data for this datasource will be accepted."
                            },
                            "acceptNewData": {
                              "type": "boolean",
                              "description": "If set to 'true' then new data will be ingested for this datasource. If 'false', no new data will be ingested for this datasource"
                            },
                            "retainData": {
                              "type": "boolean",
                              "description": "If set to 'true' then existing data must be retained up to the maxIngestionPeriod. If 'false', data for this datasource may be purged"
                            },
                            "canQuery": {
                              "type": "boolean",
                              "description": "If set to 'true' then this datasource may be queried up to maxIngestionPeriod. If 'false', data may be missing from this datasource so it should not be queried"
                            },
                            "granularity": {
                              "type": "string",
                              "description": "ISO8601 format period (only Time variant i.e. must start 'PT') which describes the granularity of the data in the datasource."
                            },
                            "tableName": {
                              "type": "string",
                              "description": "Name of the table root for finding ingestion data for this datasource."
                            }
                          },
                          "description": "Properties that describe how a metric datasource should be managed"
                        },
                        "description": "Holds a map of datasource granularity to properties that control how that granularity of metric datasource for the tenant is managed"
                      },
                      "metricQueryConfig": {
                        "title": "MetricQueryConfig",
                        "required": [
                          "targetNumberOfDataPoints",
                          "datasourceQueryDurationMap"
                        ],
                        "type": "object",
                        "properties": {
                          "targetNumberOfDataPoints": {
                            "type": "integer",
                            "description": "Approximate number of datapoints to return from any Session Metrics query. This is used to determine the Granularity bucket size for an interval."
                          },
                          "datasourceQueryDurationMap": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "string"
                            }
                          }
                        },
                        "description": "Properties that describe how Session metrics will be queried from a Multi-Resolution datasource setup"
                      },
                      "alertConfig": {
                        "title": "AlertConfig",
                        "type": "object",
                        "properties": {
                          "enabledAlertPolicyLimit": {
                            "title": "enabledAlertPolicyLimit",
                            "type": "object",
                            "properties": {
                              "micro-tca": {
                                "type": "integer",
                                "description": "Describes the total number of active micro-tca policies",
                                "example": 20
                              },
                              "capture": {
                                "type": "integer",
                                "description": "Describes the total number of active capture policies",
                                "example": 20
                              },
                              "security": {
                                "type": "integer",
                                "description": "Describes the total number of active security policies",
                                "example": 20
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update a TenantMetadata in Datahub"
          }
        }
      ],
      "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": "/updateTenantMetadataV2"
      },
      "task": true
    },
    {
      "name": "getAlertsForMonitoredObject",
      "summary": "getAlertsForMonitoredObject",
      "description": "Retrieve the alerts for a given monitoredObjectId over an interval",
      "input": [
        {
          "name": "monitoredObjectId",
          "type": "string",
          "info": "The monitored object id: string",
          "required": true,
          "schema": {
            "title": "monitoredObjectId",
            "type": "string"
          }
        },
        {
          "name": "interval",
          "type": "string",
          "info": "The interval in ISO 6801 standard but with the '/' replaced with '_': string",
          "required": true,
          "schema": {
            "title": "interval",
            "type": "string"
          }
        },
        {
          "name": "alertState",
          "type": "string",
          "info": "Filter on a particular condition. If left empty, both raised and clears will be returned.: Must be one of [raised, cleared, activeAndCleared]",
          "required": false,
          "schema": {
            "title": "alertState",
            "type": "string"
          }
        },
        {
          "name": "policyId",
          "type": "string",
          "info": "The Policy ID: string",
          "required": false,
          "schema": {
            "title": "policyId",
            "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": "/getAlertsForMonitoredObject"
      },
      "task": true
    },
    {
      "name": "getActiveAlertsForMonitoredObject",
      "summary": "getActiveAlertsForMonitoredObject",
      "description": "Retrieve active alerts for the provided monitoredObjectId",
      "input": [
        {
          "name": "monitoredObjectId",
          "type": "string",
          "info": "The monitored object id: string",
          "required": true,
          "schema": {
            "title": "monitoredObjectId",
            "type": "string"
          }
        },
        {
          "name": "policyId",
          "type": "string",
          "info": "The policyId: string",
          "required": false,
          "schema": {
            "title": "policyId",
            "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": "/getActiveAlertsForMonitoredObject"
      },
      "task": true
    },
    {
      "name": "deleteActiveAlertsForMonitoredObject",
      "summary": "deleteActiveAlertsForMonitoredObject",
      "description": "Delete Active Alerts for the provided monitoredObjectId",
      "input": [
        {
          "name": "monitoredObjectId",
          "type": "string",
          "info": "The monitored object id: string",
          "required": true,
          "schema": {
            "title": "monitoredObjectId",
            "type": "string"
          }
        },
        {
          "name": "policyId",
          "type": "string",
          "info": "The policyId: string",
          "required": false,
          "schema": {
            "title": "policyId",
            "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": "/deleteActiveAlertsForMonitoredObject"
      },
      "task": true
    },
    {
      "name": "createActiveAlertForMonitoredObject",
      "summary": "createActiveAlertForMonitoredObject",
      "description": "Create active alerts for the provided monitoredObjectId",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "The Active Alert: {\"tenantId\": \"string\", \"objectId\": \"string\", \"policyId\": \"string\", \"policyName\": \"string\", \"direction\": \"string\", \"raiseProcessedAt\": 123, \"startTimestamp\": 123, \"endTimestamp\": 123, \"alertState\": \"Must be one of [raised, cleared, error, forced-clear]\", \"policyType\": \"Must be one of [micro-tca, anomaly, capture, capture-automatic, security, capture-v2]\", \"metric\": \"string\", \"duration\": 123, \"meta\": \"object\", \"srcLat\": 123, \"srcLon\": 123, \"dstLat\": 123, \"dstLon\": 123, \"sourceLocation\": {\"lat\": 123, \"lon\": 123}, \"destinationLocation\": {\"lat\": 123, \"lon\": 123}, \"topology\": \"array\", \"value\": \"string\", \"comparator\": \"Must be one of [gt, lt, eq, gte, lte]\", \"sessionId\": \"string\", \"bcn\": \"string\", \"bca\": \"string\", \"ip\": \"string\", \"captureLayer\": \"string\", \"captureZone\": \"string\", \"captureApplicationId\": \"string\", \"captureZoneId\": \"string\", \"captureMetaThresholds\": 123, \"captureMetaValues\": \"string\", \"captureMetaIps\": \"string\", \"captureMetaDesc\": \"string\", \"captureMetaDate_stop\": 123, \"captureMetaDate_start\": 123, \"captureMetaIp_client\": \"string\", \"captureMetaIp_count\": 123, \"captureMetaStart\": 123, \"captureMetaStop\": 123, \"captureMetaName\": \"string\", \"captureMetaAlert_id\": 123, \"captureMetaNow\": 123, \"captureMetaFirst_sent\": 123, \"captureMetaLast_sent\": 123, \"captureMetaSite\": \"string\", \"captureMetaWorker\": \"string\", \"captureMetaFiring\": \"string\", \"captureMetaCertainty\": 123, \"captureMetaHostname\": \"string\", \"captureMetaCertainty_percent\": 123, \"captureClientZoneId\": \"string\", \"captureServerZoneId\": \"string\", \"severity\": \"Must be one of [low, medium, high, critical]\", \"sourceIp\": \"string\", \"destinationIp\": \"string\", \"killchain\": \"Must be one of [ActionsOnObjective, CommandAndControl, Exfiltration, Exploitation, Reconnaissance]\", \"securityJobType\": \"string\", \"sourceNetworkAssetRoles\": \"string\", \"destinationNetworkAssetRoles\": \"string\", \"securityState\": {\"currentState\": \"Must be one of [new, in-progress, resolved, closed]\", \"changeHistory\": [{\"from\": \"string\", \"to\": \"string\", \"userId\": \"string\", \"timestamp\": 123, \"comment\": \"string\"}]}, \"sourcePort\": 123, \"destinationPort\": 123}",
          "required": true,
          "schema": {
            "title": "ActiveAlert",
            "required": [
              "tenantId",
              "objectId",
              "policyId"
            ],
            "type": "object",
            "properties": {
              "tenantId": {
                "type": "string",
                "description": "The tenant ID"
              },
              "objectId": {
                "type": "string",
                "description": "The Object ID for the active alert"
              },
              "policyId": {
                "type": "string",
                "description": "The policy ID"
              },
              "policyName": {
                "type": "string",
                "description": "Message is associated with an existing policy's Name"
              },
              "direction": {
                "type": "string",
                "description": "The direction of the metric that caused the alert"
              },
              "raiseProcessedAt": {
                "type": "integer",
                "description": "When the alert was raised at. Note this is not the record's timestamp"
              },
              "startTimestamp": {
                "type": "integer",
                "description": "The timestamp of the last record in the series to trigger this alert"
              },
              "endTimestamp": {
                "type": "integer",
                "description": "The timestamp of the last record in the series to trigger the clearing of this alert"
              },
              "alertState": {
                "title": "AlertState",
                "enum": [
                  "raised",
                  "cleared",
                  "error",
                  "forced-clear"
                ],
                "type": "string",
                "description": "Message type\nforced-clear -\nraised - Policy is declaring violation conditions are met\ncleared - Policy is declaring recovery conditions are met\nerror - Analytics engine encountered an error at timestamp",
                "example": "raised"
              },
              "policyType": {
                "title": "PolicyType",
                "enum": [
                  "micro-tca",
                  "anomaly",
                  "capture",
                  "capture-automatic",
                  "security",
                  "capture-v2"
                ],
                "type": "string",
                "example": "micro-tca"
              },
              "metric": {
                "type": "string"
              },
              "duration": {
                "type": "number",
                "description": "The total amount of time spent in violation"
              },
              "meta": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                },
                "description": "Attributes added to a Monitored Object that help identify the Monitored Object as well as provide flitering/grouping properties"
              },
              "srcLat": {
                "type": "number",
                "description": "Geographic latitude of Monitored Object source"
              },
              "srcLon": {
                "type": "number",
                "description": "Geographic longitude of Monitored Object source"
              },
              "dstLat": {
                "type": "number",
                "description": "Geographic latitude of Monitored Object destination"
              },
              "dstLon": {
                "type": "number",
                "description": "Geographic longitude of Monitored Object destination"
              },
              "sourceLocation": {
                "title": "MonitoredObjectLocation",
                "required": [
                  "lat",
                  "lon"
                ],
                "type": "object",
                "properties": {
                  "lat": {
                    "type": "number",
                    "description": "Geographic latitude"
                  },
                  "lon": {
                    "type": "number",
                    "description": "Geographic longitude"
                  }
                },
                "description": "Defines the geographical location of the Monitored Object"
              },
              "destinationLocation": {
                "title": "MonitoredObjectLocation",
                "required": [
                  "lat",
                  "lon"
                ],
                "type": "object",
                "properties": {
                  "lat": {
                    "type": "number",
                    "description": "Geographic latitude"
                  },
                  "lon": {
                    "type": "number",
                    "description": "Geographic longitude"
                  }
                },
                "description": "Defines the geographical location of the Monitored Object"
              },
              "topology": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Tags used to describe the path segments associated with the Monitored Object"
              },
              "value": {
                "type": "string",
                "description": "This can either be the threshold value or a distance measure for dynamic thresholds"
              },
              "comparator": {
                "title": "Comparator1",
                "enum": [
                  "gt",
                  "lt",
                  "eq",
                  "gte",
                  "lte"
                ],
                "type": "string",
                "description": "Operand to use when evaluating the condition.\ngt  = greaterThan\nlt  = lessThan\neq  = equal",
                "example": "gt"
              },
              "sessionId": {
                "type": "string"
              },
              "bcn": {
                "type": "string"
              },
              "bca": {
                "type": "string"
              },
              "ip": {
                "type": "string"
              },
              "captureLayer": {
                "type": "string"
              },
              "captureZone": {
                "type": "string"
              },
              "captureApplicationId": {
                "type": "string"
              },
              "captureZoneId": {
                "type": "string"
              },
              "captureMetaThresholds": {
                "type": "number"
              },
              "captureMetaValues": {
                "type": "string"
              },
              "captureMetaIps": {
                "type": "string"
              },
              "captureMetaDesc": {
                "type": "string"
              },
              "captureMetaDate_stop": {
                "type": "number"
              },
              "captureMetaDate_start": {
                "type": "number"
              },
              "captureMetaIp_client": {
                "type": "string"
              },
              "captureMetaIp_count": {
                "type": "number"
              },
              "captureMetaStart": {
                "type": "number"
              },
              "captureMetaStop": {
                "type": "number"
              },
              "captureMetaName": {
                "type": "string"
              },
              "captureMetaAlert_id": {
                "type": "number"
              },
              "captureMetaNow": {
                "type": "number"
              },
              "captureMetaFirst_sent": {
                "type": "number"
              },
              "captureMetaLast_sent": {
                "type": "number"
              },
              "captureMetaSite": {
                "type": "string"
              },
              "captureMetaWorker": {
                "type": "string"
              },
              "captureMetaFiring": {
                "type": "string"
              },
              "captureMetaCertainty": {
                "type": "number"
              },
              "captureMetaHostname": {
                "type": "string"
              },
              "captureMetaCertainty_percent": {
                "type": "number"
              },
              "captureClientZoneId": {
                "type": "string"
              },
              "captureServerZoneId": {
                "type": "string"
              },
              "severity": {
                "title": "Severity",
                "enum": [
                  "low",
                  "medium",
                  "high",
                  "critical"
                ],
                "type": "string",
                "example": "low"
              },
              "sourceIp": {
                "type": "string"
              },
              "destinationIp": {
                "type": "string"
              },
              "killchain": {
                "title": "Killchain",
                "enum": [
                  "ActionsOnObjective",
                  "CommandAndControl",
                  "Exfiltration",
                  "Exploitation",
                  "Reconnaissance"
                ],
                "type": "string",
                "example": "ActionsOnObjective"
              },
              "securityJobType": {
                "type": "string"
              },
              "sourceNetworkAssetRoles": {
                "type": "string"
              },
              "destinationNetworkAssetRoles": {
                "type": "string"
              },
              "securityState": {
                "title": "ActiveAlertSecurityState",
                "type": "object",
                "properties": {
                  "currentState": {
                    "title": "CurrentState",
                    "enum": [
                      "new",
                      "in-progress",
                      "resolved",
                      "closed"
                    ],
                    "type": "string",
                    "example": "new"
                  },
                  "changeHistory": {
                    "type": "array",
                    "items": {
                      "title": "ActiveAlertSecurityStateUpdate",
                      "type": "object",
                      "properties": {
                        "from": {
                          "type": "string"
                        },
                        "to": {
                          "type": "string"
                        },
                        "userId": {
                          "type": "string"
                        },
                        "timestamp": {
                          "type": "integer"
                        },
                        "comment": {
                          "type": "string"
                        }
                      }
                    },
                    "description": ""
                  }
                }
              },
              "sourcePort": {
                "type": "number"
              },
              "destinationPort": {
                "type": "number"
              }
            },
            "description": "An active alert for a monitoredObject"
          }
        }
      ],
      "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": "/createActiveAlertForMonitoredObject"
      },
      "task": true
    },
    {
      "name": "getActiveAlertsForPolicy",
      "summary": "getActiveAlertsForPolicy",
      "description": "Retrieve active alerts for the provided policyId",
      "input": [
        {
          "name": "policyId",
          "type": "string",
          "info": "The policyId: string",
          "required": true,
          "schema": {
            "title": "policyId",
            "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": "/getActiveAlertsForPolicy"
      },
      "task": true
    },
    {
      "name": "deleteActiveAlertsForPolicy",
      "summary": "deleteActiveAlertsForPolicy",
      "description": "Delete Active Alerts for the provided policyId",
      "input": [
        {
          "name": "policyId",
          "type": "string",
          "info": "The policyId: string",
          "required": true,
          "schema": {
            "title": "policyId",
            "type": "string"
          }
        },
        {
          "name": "monitoredObjectId",
          "type": "string",
          "info": "The monitored object id: string",
          "required": false,
          "schema": {
            "title": "monitoredObjectId",
            "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": "/deleteActiveAlertsForPolicy"
      },
      "task": true
    },
    {
      "name": "getActiveAlertGroupBy",
      "summary": "getActiveAlertGroupBy",
      "description": "Retrieves specified aggregation grouped by the provided fields and filtered by the metadata specification",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [groupByActiveAlerts]\", \"attributes\": {\"queryContext\": {\"timeout\": 123, \"sortOnGroupingKey\": \"string\", \"sorted\": \"Must be one of [asc, desc]\", \"numResults\": 123}, \"metaContext\": {\"metadataFilters\": \"object\", \"metaExclude\": \"array\"}, \"groupingContext\": {\"strictGroupings\": \"boolean\", \"groupings\": [{\"groupName\": \"string\", \"groupType\": \"Must be one of [active, passive, meta]\"}]}, \"aggregation\": \"Must be one of [min, max, avg, count, sum]\", \"expressions\": {\"operator\": \"Must be one of [and, or]\", \"expressions\": [{\"field\": \"string\", \"condition\": {\"equal\": \"string\", \"notequal\": \"string\", \"lt\": 123, \"gt\": 123, \"in\": \"array\", \"notin\": \"array\"}, \"expressions\": {\"operator\": \"Must be one of [and, or]\", \"expressions\": \"array\"}}]}, \"alerts\": [{\"policyId\": \"array\", \"policyType\": \"array\", \"alertState\": \"array\", \"metric\": \"array\", \"direction\": \"array\", \"topology\": \"string\", \"objectId\": \"array\", \"captureZone\": \"array\", \"captureApplicationId\": \"array\", \"captureZoneId\": \"array\", \"captureLayer\": \"array\", \"captureClientZoneId\": \"array\", \"captureServerZoneId\": \"array\", \"severity\": \"array\", \"sourceIp\": \"array\", \"destinationIp\": \"array\", \"killchain\": \"array\", \"securityJobType\": \"array\", \"sourceNetworkAssetRoles\": \"array\", \"destinationNetworkAssetRoles\": \"array\", \"sourceLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}, \"destinationLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}}], \"enableSecurityMetrics\": \"boolean\"}}}",
          "required": true,
          "schema": {
            "title": "JsonApiActiveAlertGroupByRequest",
            "type": "object",
            "properties": {
              "data": {
                "title": "Data14",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "groupByActiveAlerts"
                    ],
                    "type": "string",
                    "example": "groupByActiveAlerts"
                  },
                  "attributes": {
                    "title": "ActiveAlertGroupByConfig",
                    "required": [
                      "groupingContext",
                      "alerts"
                    ],
                    "type": "object",
                    "properties": {
                      "queryContext": {
                        "title": "ActiveAlertGroupByQueryContext",
                        "type": "object",
                        "properties": {
                          "timeout": {
                            "type": "integer",
                            "description": "Query timeout in milliseconds",
                            "example": 30000
                          },
                          "sortOnGroupingKey": {
                            "type": "string",
                            "description": "Allows a client to sort on a grouping key instead of the metric's value",
                            "default": "policyId",
                            "example": "policyId"
                          },
                          "sorted": {
                            "title": "Sorted",
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "description": "Indicates whether the response should return grouped by queries in ascending or descending order. Only applicable to grouped queries.",
                            "example": "asc"
                          },
                          "numResults": {
                            "type": "integer",
                            "description": "Number of results to return in grouped queries. A non-positive integer for this value implies there is no result limit. Only applicable to grouped queries.",
                            "example": 10
                          }
                        },
                        "description": "Hints indicating how the query may be Returns"
                      },
                      "metaContext": {
                        "title": "MetaContext",
                        "required": [
                          "metadataFilters"
                        ],
                        "type": "object",
                        "properties": {
                          "metadataFilters": {
                            "type": "object",
                            "additionalProperties": {},
                            "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                            "example": {
                              "region": [
                                "montreal",
                                "ottawa"
                              ],
                              "group": [
                                "radio"
                              ]
                            }
                          },
                          "metaExclude": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                            "example": [
                              "group"
                            ]
                          }
                        },
                        "description": "Elements of the query that define metadata specific components"
                      },
                      "groupingContext": {
                        "title": "GroupingContext",
                        "required": [
                          "groupings"
                        ],
                        "type": "object",
                        "properties": {
                          "strictGroupings": {
                            "type": "boolean",
                            "description": "Value of true indicates that all requested groupings MUST exist within a data record in order to be considered for aggregation within that group"
                          },
                          "groupings": {
                            "type": "array",
                            "items": {
                              "title": "GroupingEntity",
                              "required": [
                                "groupName",
                                "groupType"
                              ],
                              "type": "object",
                              "properties": {
                                "groupName": {
                                  "type": "string"
                                },
                                "groupType": {
                                  "title": "GroupType",
                                  "enum": [
                                    "active",
                                    "passive",
                                    "meta"
                                  ],
                                  "type": "string",
                                  "example": "active"
                                }
                              },
                              "description": "Provides additional information about the entity to group by"
                            },
                            "description": ""
                          }
                        },
                        "description": "Defines how the results should be grouped"
                      },
                      "aggregation": {
                        "title": "SupportedAggregations",
                        "enum": [
                          "min",
                          "max",
                          "avg",
                          "count",
                          "sum"
                        ],
                        "type": "string",
                        "description": "The type of aggregation (avg/min/max/count/sum) avg - Returns the averaging the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. min - Returns the minimum value for the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. max - Returns the maximum value for the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. count - Returns the number of events within the specified bucket property. A single bucket is the preferred usage but multiple buckets can be used as a band pass filter.  sum - Returns the summed value of all records grouped by the provided groupings",
                        "example": "min"
                      },
                      "expressions": {
                        "title": "expressions",
                        "type": "object",
                        "properties": {
                          "operator": {
                            "title": "Operator",
                            "enum": [
                              "and",
                              "or"
                            ],
                            "type": "string",
                            "description": "Locical Operator for filter fields",
                            "example": "and"
                          },
                          "expressions": {
                            "type": "array",
                            "items": {
                              "title": "expressionItems",
                              "type": "object",
                              "properties": {
                                "field": {
                                  "type": "string"
                                },
                                "condition": {
                                  "title": "expressionCondition",
                                  "type": "object",
                                  "properties": {
                                    "equal": {
                                      "type": "string"
                                    },
                                    "notequal": {
                                      "type": "string"
                                    },
                                    "lt": {
                                      "type": "integer"
                                    },
                                    "gt": {
                                      "type": "integer"
                                    },
                                    "in": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": ""
                                    },
                                    "notin": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": ""
                                    }
                                  }
                                },
                                "expressions": {
                                  "title": "expressions",
                                  "type": "object",
                                  "properties": {
                                    "operator": {
                                      "title": "Operator",
                                      "enum": [
                                        "and",
                                        "or"
                                      ],
                                      "type": "string",
                                      "description": "Locical Operator for filter fields",
                                      "example": "and"
                                    },
                                    "expressions": {
                                      "type": "array",
                                      "items": {
                                        "type": "object"
                                      },
                                      "description": ""
                                    }
                                  }
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "alerts": {
                        "type": "array",
                        "items": {
                          "title": "ActiveAlertSpec",
                          "type": "object",
                          "properties": {
                            "policyId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Policy ID to filter on"
                            },
                            "policyType": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Hint to the query engine to limit the metric to certain types of entity.",
                              "example": [
                                "micro-tca",
                                "anomaly",
                                "capture",
                                "capture-automatic",
                                "security",
                                "capture-v2"
                              ]
                            },
                            "alertState": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Set of one or more alert state to be used by the filter",
                              "example": [
                                "raised",
                                "cleared"
                              ]
                            },
                            "metric": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Name that identifies the specific metric within a monitored object",
                              "example": [
                                "delayp95",
                                "hit.rtt.per_sec"
                              ]
                            },
                            "direction": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Set of one or more directions to be used by the filter to identify required metric records",
                              "example": [
                                "0",
                                "1"
                              ]
                            },
                            "topology": {
                              "type": "string",
                              "description": "Name of a node on the route of the Monitored Object"
                            },
                            "objectId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Set of object IDs to filter on",
                              "example": [
                                "333732dc-99d4-4224-915e-3972b50d10ef",
                                "931e7d13-6320-4ad7-ae06-7ff2df4f782a"
                              ]
                            },
                            "captureZone": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "captureApplicationId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "captureZoneId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "captureLayer": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "captureClientZoneId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "captureServerZoneId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "severity": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "sourceIp": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "destinationIp": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "killchain": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "securityJobType": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "sourceNetworkAssetRoles": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "destinationNetworkAssetRoles": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "sourceLocation": {
                              "title": "GeoFence",
                              "type": "object",
                              "properties": {
                                "box": {
                                  "title": "Box",
                                  "type": "object",
                                  "properties": {
                                    "topLeft": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    },
                                    "bottomRight": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "destinationLocation": {
                              "title": "GeoFence",
                              "type": "object",
                              "properties": {
                                "box": {
                                  "title": "Box",
                                  "type": "object",
                                  "properties": {
                                    "topLeft": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    },
                                    "bottomRight": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "description": "Filter object that identifies a specific metric within a monitored object by its key attributes"
                        },
                        "description": "A set of identifiers that considers specific alert based on the provided information"
                      },
                      "enableSecurityMetrics": {
                        "type": "boolean",
                        "description": "Enable additional aggregations for each group of alerts",
                        "default": false
                      }
                    },
                    "description": "The necessary request parameters for the metric api call"
                  }
                }
              }
            },
            "description": "JSON API compliant wrapper for the groupby query"
          }
        }
      ],
      "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": "/getActiveAlertGroupBy"
      },
      "task": true
    },
    {
      "name": "getActiveAlertsForMetaFilter",
      "summary": "getActiveAlertsForMetaFilter",
      "description": "Retrieve Active Alerts based on the provided filter criterea",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"queryContext\": {\"sort\": [{\"field\": \"Must be one of [objectId, killchain, policyId, securityJobType, severity, startTimestamp, endTimestamp, raiseProcessedAt, sourceIp, destinationIp]\", \"order\": \"Must be one of [asc, desc]\"}], \"numResults\": 123}, \"expressions\": {\"operator\": \"Must be one of [and, or]\", \"expressions\": [{\"field\": \"string\", \"condition\": {\"equal\": \"string\", \"notequal\": \"string\", \"lt\": 123, \"gt\": 123, \"in\": \"array\", \"notin\": \"array\"}, \"expressions\": {\"operator\": \"Must be one of [and, or]\", \"expressions\": \"array\"}}]}, \"meta\": \"object\", \"metaExclude\": \"array\", \"objectId\": \"array\", \"policyName\": \"string\", \"policyId\": \"array\", \"policyType\": \"array\", \"direction\": \"array\", \"metric\": \"array\", \"topology\": \"array\", \"captureZone\": \"array\", \"captureApplicationId\": \"array\", \"captureZoneId\": \"array\", \"captureLayer\": \"array\", \"captureClientZoneId\": \"array\", \"captureServerZoneId\": \"array\", \"severity\": \"array\", \"sourceLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}, \"destinationLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}, \"sourceIp\": \"array\", \"destinationIp\": \"array\", \"killchain\": \"array\", \"securityJobType\": \"array\", \"sourceNetworkAssetRoles\": \"array\", \"destinationNetworkAssetRoles\": \"array\"}",
          "required": true,
          "schema": {
            "title": "ActiveAlertsFilteredListRequest",
            "type": "object",
            "properties": {
              "queryContext": {
                "title": "ActiveAlertsQueryContext",
                "type": "object",
                "properties": {
                  "sort": {
                    "type": "array",
                    "items": {
                      "title": "ActiveAlertsQueryContextSortEntry",
                      "required": [
                        "field"
                      ],
                      "type": "object",
                      "properties": {
                        "field": {
                          "title": "Field",
                          "enum": [
                            "objectId",
                            "killchain",
                            "policyId",
                            "securityJobType",
                            "severity",
                            "startTimestamp",
                            "endTimestamp",
                            "raiseProcessedAt",
                            "sourceIp",
                            "destinationIp"
                          ],
                          "type": "string",
                          "example": "objectId"
                        },
                        "order": {
                          "title": "Order",
                          "enum": [
                            "asc",
                            "desc"
                          ],
                          "type": "string",
                          "example": "asc"
                        }
                      }
                    },
                    "description": ""
                  },
                  "numResults": {
                    "type": "integer"
                  }
                }
              },
              "expressions": {
                "title": "expressions",
                "type": "object",
                "properties": {
                  "operator": {
                    "title": "Operator",
                    "enum": [
                      "and",
                      "or"
                    ],
                    "type": "string",
                    "description": "Locical Operator for filter fields",
                    "example": "and"
                  },
                  "expressions": {
                    "type": "array",
                    "items": {
                      "title": "expressionItems",
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string"
                        },
                        "condition": {
                          "title": "expressionCondition",
                          "type": "object",
                          "properties": {
                            "equal": {
                              "type": "string"
                            },
                            "notequal": {
                              "type": "string"
                            },
                            "lt": {
                              "type": "integer"
                            },
                            "gt": {
                              "type": "integer"
                            },
                            "in": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "notin": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          }
                        },
                        "expressions": {
                          "title": "expressions",
                          "type": "object",
                          "properties": {
                            "operator": {
                              "title": "Operator",
                              "enum": [
                                "and",
                                "or"
                              ],
                              "type": "string",
                              "description": "Locical Operator for filter fields",
                              "example": "and"
                            },
                            "expressions": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              },
                              "description": ""
                            }
                          }
                        }
                      }
                    },
                    "description": ""
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": {},
                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                "example": {
                  "region": [
                    "montreal",
                    "ottawa"
                  ],
                  "group": [
                    "radio"
                  ]
                }
              },
              "metaExclude": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                "example": [
                  "group"
                ]
              },
              "objectId": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "The Object ID for the active alert"
              },
              "policyName": {
                "type": "string",
                "description": "Message is associated with an existing policy's Name"
              },
              "policyId": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "The policy ID"
              },
              "policyType": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "direction": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "The direction of the metric that caused the alert"
              },
              "metric": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "topology": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "captureZone": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "captureApplicationId": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "captureZoneId": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "captureLayer": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "captureClientZoneId": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "captureServerZoneId": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "severity": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "sourceLocation": {
                "title": "GeoFence",
                "type": "object",
                "properties": {
                  "box": {
                    "title": "Box",
                    "type": "object",
                    "properties": {
                      "topLeft": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      },
                      "bottomRight": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "destinationLocation": {
                "title": "GeoFence",
                "type": "object",
                "properties": {
                  "box": {
                    "title": "Box",
                    "type": "object",
                    "properties": {
                      "topLeft": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      },
                      "bottomRight": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "sourceIp": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "destinationIp": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "killchain": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "securityJobType": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "sourceNetworkAssetRoles": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "destinationNetworkAssetRoles": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              }
            }
          }
        }
      ],
      "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": "/getActiveAlertsForMetaFilter"
      },
      "task": true
    },
    {
      "name": "getActiveAlertsFilteredCounts",
      "summary": "getActiveAlertsFilteredCounts",
      "description": "Retrieve Counts of Active Alerts based on the provided filter criterea",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [activeAlertCounts]\", \"attributes\": {\"aggregation\": \"Must be one of [count]\", \"filters\": {\"queryContext\": {\"sort\": [{\"field\": \"Must be one of [objectId, killchain, policyId, securityJobType, severity, startTimestamp, endTimestamp, raiseProcessedAt, sourceIp, destinationIp]\", \"order\": \"Must be one of [asc, desc]\"}], \"numResults\": 123}, \"expressions\": {\"operator\": \"Must be one of [and, or]\", \"expressions\": [{\"field\": \"string\", \"condition\": {\"equal\": \"string\", \"notequal\": \"string\", \"lt\": 123, \"gt\": 123, \"in\": \"array\", \"notin\": \"array\"}, \"expressions\": {\"operator\": \"Must be one of [and, or]\", \"expressions\": \"array\"}}]}, \"meta\": \"object\", \"metaExclude\": \"array\", \"objectId\": \"array\", \"policyName\": \"string\", \"policyId\": \"array\", \"policyType\": \"array\", \"direction\": \"array\", \"metric\": \"array\", \"topology\": \"array\", \"captureZone\": \"array\", \"captureApplicationId\": \"array\", \"captureZoneId\": \"array\", \"captureLayer\": \"array\", \"captureClientZoneId\": \"array\", \"captureServerZoneId\": \"array\", \"severity\": \"array\", \"sourceLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}, \"destinationLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}, \"sourceIp\": \"array\", \"destinationIp\": \"array\", \"killchain\": \"array\", \"securityJobType\": \"array\", \"sourceNetworkAssetRoles\": \"array\", \"destinationNetworkAssetRoles\": \"array\"}}}}",
          "required": true,
          "schema": {
            "title": "ActiveAlertsFilteredCountsRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data13",
                "required": [
                  "id",
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "activeAlertCounts"
                    ],
                    "type": "string",
                    "example": "activeAlertCounts"
                  },
                  "attributes": {
                    "title": "Attributes21",
                    "type": "object",
                    "properties": {
                      "aggregation": {
                        "title": "Aggregation",
                        "enum": [
                          "count"
                        ],
                        "type": "string",
                        "description": "Count will provide you the number of active alerts in total.",
                        "example": "count"
                      },
                      "filters": {
                        "title": "ActiveAlertsFilteredListRequest",
                        "type": "object",
                        "properties": {
                          "queryContext": {
                            "title": "ActiveAlertsQueryContext",
                            "type": "object",
                            "properties": {
                              "sort": {
                                "type": "array",
                                "items": {
                                  "title": "ActiveAlertsQueryContextSortEntry",
                                  "required": [
                                    "field"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "field": {
                                      "title": "Field",
                                      "enum": [
                                        "objectId",
                                        "killchain",
                                        "policyId",
                                        "securityJobType",
                                        "severity",
                                        "startTimestamp",
                                        "endTimestamp",
                                        "raiseProcessedAt",
                                        "sourceIp",
                                        "destinationIp"
                                      ],
                                      "type": "string",
                                      "example": "objectId"
                                    },
                                    "order": {
                                      "title": "Order",
                                      "enum": [
                                        "asc",
                                        "desc"
                                      ],
                                      "type": "string",
                                      "example": "asc"
                                    }
                                  }
                                },
                                "description": ""
                              },
                              "numResults": {
                                "type": "integer"
                              }
                            }
                          },
                          "expressions": {
                            "title": "expressions",
                            "type": "object",
                            "properties": {
                              "operator": {
                                "title": "Operator",
                                "enum": [
                                  "and",
                                  "or"
                                ],
                                "type": "string",
                                "description": "Locical Operator for filter fields",
                                "example": "and"
                              },
                              "expressions": {
                                "type": "array",
                                "items": {
                                  "title": "expressionItems",
                                  "type": "object",
                                  "properties": {
                                    "field": {
                                      "type": "string"
                                    },
                                    "condition": {
                                      "title": "expressionCondition",
                                      "type": "object",
                                      "properties": {
                                        "equal": {
                                          "type": "string"
                                        },
                                        "notequal": {
                                          "type": "string"
                                        },
                                        "lt": {
                                          "type": "integer"
                                        },
                                        "gt": {
                                          "type": "integer"
                                        },
                                        "in": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          },
                                          "description": ""
                                        },
                                        "notin": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          },
                                          "description": ""
                                        }
                                      }
                                    },
                                    "expressions": {
                                      "title": "expressions",
                                      "type": "object",
                                      "properties": {
                                        "operator": {
                                          "title": "Operator",
                                          "enum": [
                                            "and",
                                            "or"
                                          ],
                                          "type": "string",
                                          "description": "Locical Operator for filter fields",
                                          "example": "and"
                                        },
                                        "expressions": {
                                          "type": "array",
                                          "items": {
                                            "type": "object"
                                          },
                                          "description": ""
                                        }
                                      }
                                    }
                                  }
                                },
                                "description": ""
                              }
                            }
                          },
                          "meta": {
                            "type": "object",
                            "additionalProperties": {},
                            "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                            "example": {
                              "region": [
                                "montreal",
                                "ottawa"
                              ],
                              "group": [
                                "radio"
                              ]
                            }
                          },
                          "metaExclude": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                            "example": [
                              "group"
                            ]
                          },
                          "objectId": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "The Object ID for the active alert"
                          },
                          "policyName": {
                            "type": "string",
                            "description": "Message is associated with an existing policy's Name"
                          },
                          "policyId": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "The policy ID"
                          },
                          "policyType": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "direction": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "The direction of the metric that caused the alert"
                          },
                          "metric": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "topology": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "captureZone": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "captureApplicationId": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "captureZoneId": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "captureLayer": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "captureClientZoneId": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "captureServerZoneId": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "severity": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "sourceLocation": {
                            "title": "GeoFence",
                            "type": "object",
                            "properties": {
                              "box": {
                                "title": "Box",
                                "type": "object",
                                "properties": {
                                  "topLeft": {
                                    "title": "SpatialCoordinates",
                                    "required": [
                                      "latitude",
                                      "longitude"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "latitude": {
                                        "type": "number"
                                      },
                                      "longitude": {
                                        "type": "number"
                                      }
                                    }
                                  },
                                  "bottomRight": {
                                    "title": "SpatialCoordinates",
                                    "required": [
                                      "latitude",
                                      "longitude"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "latitude": {
                                        "type": "number"
                                      },
                                      "longitude": {
                                        "type": "number"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "destinationLocation": {
                            "title": "GeoFence",
                            "type": "object",
                            "properties": {
                              "box": {
                                "title": "Box",
                                "type": "object",
                                "properties": {
                                  "topLeft": {
                                    "title": "SpatialCoordinates",
                                    "required": [
                                      "latitude",
                                      "longitude"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "latitude": {
                                        "type": "number"
                                      },
                                      "longitude": {
                                        "type": "number"
                                      }
                                    }
                                  },
                                  "bottomRight": {
                                    "title": "SpatialCoordinates",
                                    "required": [
                                      "latitude",
                                      "longitude"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "latitude": {
                                        "type": "number"
                                      },
                                      "longitude": {
                                        "type": "number"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "sourceIp": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "destinationIp": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "killchain": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "securityJobType": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "sourceNetworkAssetRoles": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          },
                          "destinationNetworkAssetRoles": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": ""
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/getActiveAlertsFilteredCounts"
      },
      "task": true
    },
    {
      "name": "updateActiveAlertsSecurityState",
      "summary": "updateActiveAlertsSecurityState",
      "description": "Update the security state of alerts with provided objectIDs",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"targetAlerts\": \"array\", \"newState\": \"Must be one of [new, in-progress, resolved, closed]\", \"comment\": \"string\"}",
          "required": true,
          "schema": {
            "title": "ActiveAlertsSecurityStateUpdateRequest",
            "required": [
              "targetAlerts",
              "newState"
            ],
            "type": "object",
            "properties": {
              "targetAlerts": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "A list of objectIDs of alerts to change security state of"
              },
              "newState": {
                "title": "NewState",
                "enum": [
                  "new",
                  "in-progress",
                  "resolved",
                  "closed"
                ],
                "type": "string",
                "example": "new"
              },
              "comment": {
                "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": "/updateActiveAlertsSecurityState"
      },
      "task": true
    },
    {
      "name": "createRequestAlertPolicy",
      "summary": "createRequestAlertPolicy",
      "description": "Create an Alert Policy",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [alertPolicies]\", \"id\": \"string\", \"relationships\": {\"createdBy\": {\"data\": {\"type\": \"string\", \"id\": \"string\"}}, \"modifiedBy\": {\"data\": {\"type\": \"string\", \"id\": \"string\"}}, \"tenantId\": {\"data\": {\"type\": \"string\", \"id\": \"string\"}}, \"tenantName\": {\"data\": {\"type\": \"string\", \"id\": \"string\"}}}, \"included\": [{\"id\": \"string\", \"type\": \"Must be one of [status]\", \"attributes\": {\"activeAlerts\": 123, \"totalObjects\": 123}}], \"attributes\": {\"enabled\": \"boolean\", \"deleted\": \"boolean\", \"_rev\": \"string\", \"lastModifiedTimestamp\": 123, \"createdTimestamp\": 123, \"useCleanData\": \"boolean\", \"useBusyHourOnly\": \"boolean\", \"useMaintenance\": \"boolean\", \"conditions\": [{\"triggersOn\": {\"duration\": \"string\", \"metric\": {\"type\": \"Must be one of [session, capture, security]\", \"layer\": \"string\", \"vendor\": \"string\", \"objectType\": \"array\", \"id\": \"string\", \"direction\": \"array\"}, \"ratioPercent\": 123, \"value\": \"string\", \"values\": \"array\", \"comparator\": \"Must be one of [gt, lt, eq, gte, lte, in]\", \"blacklist\": [{\"field\": \"string\", \"value\": \"string\", \"description\": \"string\"}], \"whitelist\": [{\"field\": \"string\", \"value\": \"string\", \"description\": \"string\"}]}, \"recoversOn\": {\"duration\": \"string\", \"metric\": {\"type\": \"Must be one of [session, capture, security]\", \"layer\": \"string\", \"vendor\": \"string\", \"objectType\": \"array\", \"id\": \"string\", \"direction\": \"array\"}, \"ratioPercent\": 123, \"value\": \"string\", \"values\": \"array\", \"comparator\": \"Must be one of [gt, lt, eq, gte, lte, in]\", \"blacklist\": [{\"field\": \"string\", \"value\": \"string\", \"description\": \"string\"}], \"whitelist\": [{\"field\": \"string\", \"value\": \"string\", \"description\": \"string\"}]}}], \"configuration\": {\"policyType\": \"Must be one of [micro-tca, anomaly, capture, security, capture-v2]\", \"aggregationGranularity\": \"undefined\", \"severity\": \"Must be one of [low, medium, high, critical]\", \"killchain\": \"Must be one of [ActionsOnObjective, CommandAndControl, Exfiltration, Exploitation, Reconnaissance]\", \"context\": [{\"key\": \"string\", \"values\": \"array\"}]}, \"name\": \"string\", \"description\": \"string\", \"tags\": \"string\"}}}",
          "required": true,
          "schema": {
            "title": "alertPolicyCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "alertPolicy",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "alertPolicies"
                    ],
                    "type": "string",
                    "example": "alertPolicies"
                  },
                  "id": {
                    "type": "string"
                  },
                  "relationships": {
                    "title": "Relationships2",
                    "type": "object",
                    "properties": {
                      "createdBy": {
                        "title": "JsonApiSingleRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "title": "JsonApiRelationshipData",
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "modifiedBy": {
                        "title": "JsonApiSingleRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "title": "JsonApiRelationshipData",
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "tenantId": {
                        "title": "JsonApiSingleRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "title": "JsonApiRelationshipData",
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "tenantName": {
                        "title": "JsonApiSingleRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "title": "JsonApiRelationshipData",
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "included": {
                    "type": "array",
                    "items": {
                      "title": "alertPoliciesStatistics",
                      "required": [
                        "id",
                        "type",
                        "attributes"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "The timestamp when this status was queried at"
                        },
                        "type": {
                          "enum": [
                            "status"
                          ],
                          "type": "string",
                          "example": "status"
                        },
                        "attributes": {
                          "title": "Attributes79",
                          "required": [
                            "activeAlerts",
                            "totalObjects"
                          ],
                          "type": "object",
                          "properties": {
                            "activeAlerts": {
                              "type": "integer",
                              "description": "Number of alerts that have crossed thresholds"
                            },
                            "totalObjects": {
                              "type": "integer",
                              "description": "Total number of objects in this policy's object set"
                            }
                          }
                        }
                      }
                    },
                    "description": ""
                  },
                  "attributes": {
                    "title": "Attributes80",
                    "required": [
                      "conditions",
                      "configuration",
                      "name",
                      "description"
                    ],
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Controls whether this policy should be enabled",
                        "default": true
                      },
                      "deleted": {
                        "type": "boolean",
                        "description": "This flag is to tell us whether the alert has been deleted and cannot be modified. The reasoning we don't do a real delete is because existing alerts in the database still need to correspond to something.",
                        "default": false
                      },
                      "_rev": {
                        "type": "string",
                        "description": "Policy revision. Not necessarily sequential"
                      },
                      "lastModifiedTimestamp": {
                        "type": "integer",
                        "description": "Last modification timestamp in POSIX epoch generated by server"
                      },
                      "createdTimestamp": {
                        "type": "integer",
                        "description": "Creation timestamp in POSIX epoch generated by server"
                      },
                      "useCleanData": {
                        "type": "boolean",
                        "description": "By default alerts will ignore records that are marked dirty. This can be overriden (switch this to false) in the scenarios that alert should check invalid records.",
                        "default": true
                      },
                      "useBusyHourOnly": {
                        "type": "boolean",
                        "description": "By default alerts will ignore records that are marked as busyHour. If this is set to true, ONLY busy hour data will be considered when alert rules are applied",
                        "default": false
                      },
                      "useMaintenance": {
                        "type": "boolean",
                        "description": "By default alerts will consider records that are marked as maintenance. If this is set to false, data tagged as maintenance will be ignored when alert rules are applied",
                        "default": true
                      },
                      "conditions": {
                        "type": "array",
                        "items": {
                          "title": "alertConditionGroup",
                          "required": [
                            "triggersOn"
                          ],
                          "type": "object",
                          "properties": {
                            "triggersOn": {
                              "title": "alertCondition",
                              "type": "object",
                              "properties": {
                                "duration": {
                                  "type": "string",
                                  "default": "PT5M"
                                },
                                "metric": {
                                  "title": "Metric",
                                  "required": [
                                    "vendor"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "title": "Type31",
                                      "enum": [
                                        "session",
                                        "capture",
                                        "security"
                                      ],
                                      "type": "string",
                                      "example": "session"
                                    },
                                    "layer": {
                                      "type": "string",
                                      "description": "Capture field name",
                                      "example": "http"
                                    },
                                    "vendor": {
                                      "type": "string",
                                      "description": "Vendor name associated with the monitored object",
                                      "example": "accedian-twamp"
                                    },
                                    "objectType": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "Object types to be considered as part of the filter",
                                      "example": [
                                        "twamp-sl",
                                        "twamp-sf"
                                      ]
                                    },
                                    "id": {
                                      "type": "string",
                                      "description": "The metric's identifier",
                                      "example": "delayP95"
                                    },
                                    "direction": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "Set of one or more directions to be used by the filter to identify required metric records",
                                      "example": [
                                        "0"
                                      ]
                                    }
                                  }
                                },
                                "ratioPercent": {
                                  "type": "number"
                                },
                                "value": {
                                  "type": "string"
                                },
                                "values": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": ""
                                },
                                "comparator": {
                                  "title": "Comparator4",
                                  "enum": [
                                    "gt",
                                    "lt",
                                    "eq",
                                    "gte",
                                    "lte",
                                    "in"
                                  ],
                                  "type": "string",
                                  "description": "Operand to use when evaluating the condition.\ngt  = greaterThan\nlt  = lessThan\neq  = equal",
                                  "example": "gt"
                                },
                                "blacklist": {
                                  "type": "array",
                                  "items": {
                                    "title": "alertConditionListEntry",
                                    "required": [
                                      "field",
                                      "value"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "field": {
                                        "type": "string"
                                      },
                                      "value": {
                                        "type": "string"
                                      },
                                      "description": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "description": "Generic blacklist of fields and their values that can trigger an alert.\nSupported only for \"security\" policy type!"
                                },
                                "whitelist": {
                                  "type": "array",
                                  "items": {
                                    "title": "alertConditionListEntry",
                                    "required": [
                                      "field",
                                      "value"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "field": {
                                        "type": "string"
                                      },
                                      "value": {
                                        "type": "string"
                                      },
                                      "description": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "description": ""
                                }
                              }
                            },
                            "recoversOn": {
                              "title": "alertCondition",
                              "type": "object",
                              "properties": {
                                "duration": {
                                  "type": "string",
                                  "default": "PT5M"
                                },
                                "metric": {
                                  "title": "Metric",
                                  "required": [
                                    "vendor"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "title": "Type31",
                                      "enum": [
                                        "session",
                                        "capture",
                                        "security"
                                      ],
                                      "type": "string",
                                      "example": "session"
                                    },
                                    "layer": {
                                      "type": "string",
                                      "description": "Capture field name",
                                      "example": "http"
                                    },
                                    "vendor": {
                                      "type": "string",
                                      "description": "Vendor name associated with the monitored object",
                                      "example": "accedian-twamp"
                                    },
                                    "objectType": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "Object types to be considered as part of the filter",
                                      "example": [
                                        "twamp-sl",
                                        "twamp-sf"
                                      ]
                                    },
                                    "id": {
                                      "type": "string",
                                      "description": "The metric's identifier",
                                      "example": "delayP95"
                                    },
                                    "direction": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "Set of one or more directions to be used by the filter to identify required metric records",
                                      "example": [
                                        "0"
                                      ]
                                    }
                                  }
                                },
                                "ratioPercent": {
                                  "type": "number"
                                },
                                "value": {
                                  "type": "string"
                                },
                                "values": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": ""
                                },
                                "comparator": {
                                  "title": "Comparator4",
                                  "enum": [
                                    "gt",
                                    "lt",
                                    "eq",
                                    "gte",
                                    "lte",
                                    "in"
                                  ],
                                  "type": "string",
                                  "description": "Operand to use when evaluating the condition.\ngt  = greaterThan\nlt  = lessThan\neq  = equal",
                                  "example": "gt"
                                },
                                "blacklist": {
                                  "type": "array",
                                  "items": {
                                    "title": "alertConditionListEntry",
                                    "required": [
                                      "field",
                                      "value"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "field": {
                                        "type": "string"
                                      },
                                      "value": {
                                        "type": "string"
                                      },
                                      "description": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "description": "Generic blacklist of fields and their values that can trigger an alert.\nSupported only for \"security\" policy type!"
                                },
                                "whitelist": {
                                  "type": "array",
                                  "items": {
                                    "title": "alertConditionListEntry",
                                    "required": [
                                      "field",
                                      "value"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "field": {
                                        "type": "string"
                                      },
                                      "value": {
                                        "type": "string"
                                      },
                                      "description": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "description": ""
                                }
                              }
                            }
                          },
                          "description": "\"The conditions for an alert (violation or recovery). eg: metric > threshold\"\n\"Note that metric will in the future support composite metrics.\""
                        },
                        "description": ""
                      },
                      "configuration": {
                        "title": "alertsConfiguration",
                        "required": [
                          "policyType"
                        ],
                        "type": "object",
                        "properties": {
                          "policyType": {
                            "title": "PolicyType3",
                            "enum": [
                              "micro-tca",
                              "anomaly",
                              "capture",
                              "security",
                              "capture-v2"
                            ],
                            "type": "string",
                            "description": "micro-tca - Alerts per monitored object.\nanomaly   - Alerts detected by the Anomaly detector.\ncapture   - Alerts for Capture\ncapture-v2 - Alerts for Capture with a v2 schema.",
                            "example": "micro-tca"
                          },
                          "aggregationGranularity": {
                            "description": "Capture aggregation's granularity. The alert condition's duration must be same or larger than this value."
                          },
                          "severity": {
                            "title": "Severity",
                            "enum": [
                              "low",
                              "medium",
                              "high",
                              "critical"
                            ],
                            "type": "string",
                            "example": "low"
                          },
                          "killchain": {
                            "title": "Killchain2",
                            "enum": [
                              "ActionsOnObjective",
                              "CommandAndControl",
                              "Exfiltration",
                              "Exploitation",
                              "Reconnaissance"
                            ],
                            "type": "string",
                            "description": "Killchain step according to MITRE techniques. Applicable to security alerts only.",
                            "example": "ActionsOnObjective"
                          },
                          "context": {
                            "type": "array",
                            "items": {
                              "title": "genericFilterMapItem",
                              "type": "object",
                              "properties": {
                                "key": {
                                  "type": "string",
                                  "example": "zone"
                                },
                                "values": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": "",
                                  "example": [
                                    "paris",
                                    "lyon"
                                  ]
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "name": {
                        "maxLength": 64,
                        "minLength": 1,
                        "type": "string",
                        "description": "The name of the alert so it can be easily differentiated."
                      },
                      "description": {
                        "maxLength": 512,
                        "type": "string",
                        "description": "Brief description of what the Alert Policy will do"
                      },
                      "tags": {
                        "maxLength": 255,
                        "type": "string",
                        "description": "Miscellaneous data the user wants to tag this alert with",
                        "example": "orderId:uuid123"
                      }
                    },
                    "description": "Every alert policy requires a trigger condition. Recovery is optional as some alarms may need to be stopped\nby an operator.\nTrigger condition  - This is the policies that causes an alarm to start\nRecovery condition - This is the policies that automatically causes an alarm to stop"
                  }
                }
              }
            },
            "description": "JSON API wrapper for creating Alert Policy"
          }
        }
      ],
      "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": "/createRequestAlertPolicy"
      },
      "task": true
    },
    {
      "name": "getAllRequestAlertPolicy",
      "summary": "getAllRequestAlertPolicy",
      "description": "Get all Alert Policies",
      "input": [
        {
          "name": "useRawMetaKey",
          "type": "boolean",
          "info": "Returns the raw metadata key's ID from the DB.: boolean",
          "required": false,
          "schema": {
            "title": "useRawMetaKey",
            "type": "boolean"
          }
        },
        {
          "name": "includeDeleted",
          "type": "boolean",
          "info": "Include deleted policies in the results.: boolean",
          "required": false,
          "schema": {
            "title": "includeDeleted",
            "type": "boolean"
          }
        },
        {
          "name": "policyType",
          "type": "string",
          "info": "Only include policies of specified types.: string",
          "required": false,
          "schema": {
            "title": "policyType",
            "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": "/getAllRequestAlertPolicy"
      },
      "task": true
    },
    {
      "name": "patchAutomaticAlertPolicy",
      "summary": "patchAutomaticAlertPolicy",
      "description": "Patch automaticAlertPolicy",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"rev\": \"string\", \"configuration\": {\"enabled\": \"boolean\", \"capture\": {\"scanDetection\": {\"enabled\": \"boolean\", \"false_pos_rate\": 123, \"remember_duration\": \"string\", \"time_step\": \"string\", \"max_ports\": 123, \"max_hosts\": 123, \"max_num_packets\": 123, \"top_size\": 123, \"top_max_size\": 123, \"alert_memory\": \"string\", \"whilelist\": \"array\"}, \"ddosDetection\": {\"enabled\": \"boolean\", \"false_pos_rate\": 123, \"remember_duration\": \"string\", \"avg_win\": \"string\", \"whitelist\": \"array\"}, \"synFloodDetection\": {\"enabled\": \"boolean\", \"time_step\": \"string\", \"max_syns_per_sec\": 123, \"top_size\": 123, \"top_max_size\": 123, \"alert_memory\": \"string\", \"whitelist\": \"array\"}, \"perApplication\": {\"enabled\": \"boolean\", \"fitting_points\": 123, \"smooth_coefficient\": 123}}, \"sessionAnomaly\": {\"enabled\": \"boolean\"}}}}",
          "required": true,
          "schema": {
            "title": "AutomaticAlertPolicyCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data50",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "rev": {
                    "type": "string"
                  },
                  "configuration": {
                    "title": "AutomaticAlertConfiguration",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "default": true
                      },
                      "capture": {
                        "title": "Capture",
                        "type": "object",
                        "properties": {
                          "scanDetection": {
                            "title": "ScanDetection",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "default": false
                              },
                              "false_pos_rate": {
                                "type": "number"
                              },
                              "remember_duration": {
                                "type": "string"
                              },
                              "time_step": {
                                "type": "string"
                              },
                              "max_ports": {
                                "type": "number"
                              },
                              "max_hosts": {
                                "type": "number"
                              },
                              "max_num_packets": {
                                "type": "number"
                              },
                              "top_size": {
                                "type": "number"
                              },
                              "top_max_size": {
                                "type": "number"
                              },
                              "alert_memory": {
                                "type": "string"
                              },
                              "whilelist": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                },
                                "description": ""
                              }
                            }
                          },
                          "ddosDetection": {
                            "title": "DdosDetection",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "default": false
                              },
                              "false_pos_rate": {
                                "type": "number"
                              },
                              "remember_duration": {
                                "type": "string"
                              },
                              "avg_win": {
                                "type": "string"
                              },
                              "whitelist": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                },
                                "description": ""
                              }
                            }
                          },
                          "synFloodDetection": {
                            "title": "SynFloodDetection",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "default": false
                              },
                              "time_step": {
                                "type": "string"
                              },
                              "max_syns_per_sec": {
                                "type": "number"
                              },
                              "top_size": {
                                "type": "number"
                              },
                              "top_max_size": {
                                "type": "number"
                              },
                              "alert_memory": {
                                "type": "string"
                              },
                              "whitelist": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                },
                                "description": ""
                              }
                            }
                          },
                          "perApplication": {
                            "title": "PerApplication",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "default": false
                              },
                              "fitting_points": {
                                "type": "number"
                              },
                              "smooth_coefficient": {
                                "type": "number"
                              }
                            }
                          }
                        }
                      },
                      "sessionAnomaly": {
                        "title": "SessionAnomaly",
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean"
                          }
                        },
                        "description": "Place holder for anomoly detection"
                      }
                    },
                    "description": "We have built in rules that are already running and the user will be able to tune those rules here."
                  }
                }
              }
            },
            "description": "JSON API wrapper for creating Alert Policy"
          }
        }
      ],
      "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": "/patchAutomaticAlertPolicy"
      },
      "task": true
    },
    {
      "name": "getAutomaticAlertPolicy",
      "summary": "getAutomaticAlertPolicy",
      "description": "Get Automatic Detection Policy",
      "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": "/getAutomaticAlertPolicy"
      },
      "task": true
    },
    {
      "name": "getRequestAlertPolicy",
      "summary": "getRequestAlertPolicy",
      "description": "Get a specific Alert Policy",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "useRawMetaKey",
          "type": "boolean",
          "info": "Returns the raw metadata key's ID from the DB.: boolean",
          "required": false,
          "schema": {
            "title": "useRawMetaKey",
            "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": "/getRequestAlertPolicy"
      },
      "task": true
    },
    {
      "name": "deleteRequestAlertPolicy",
      "summary": "deleteRequestAlertPolicy",
      "description": "Note that this does not physically delete a policy. It will become disabled and unmodifiable in order to provide references to existing alerts.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "id",
            "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": "/deleteRequestAlertPolicy"
      },
      "task": true
    },
    {
      "name": "patchRequestAlertPolicy",
      "summary": "PatchRequestAlertPolicy",
      "description": "Provides ability to patch a Alert Policy",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "force",
          "type": "string",
          "info": "If a alert state is currently alarming, Skylight will block put updates if the force query parameter is not set to true.: Must be one of [false, true]",
          "required": false,
          "schema": {
            "title": "force",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [alertPolicies]\", \"id\": \"string\", \"relationships\": {\"createdBy\": {\"data\": {\"type\": \"string\", \"id\": \"string\"}}, \"modifiedBy\": {\"data\": {\"type\": \"string\", \"id\": \"string\"}}, \"tenantId\": {\"data\": {\"type\": \"string\", \"id\": \"string\"}}, \"tenantName\": {\"data\": {\"type\": \"string\", \"id\": \"string\"}}}, \"included\": [{\"id\": \"string\", \"type\": \"Must be one of [status]\", \"attributes\": {\"activeAlerts\": 123, \"totalObjects\": 123}}], \"attributes\": {\"enabled\": \"boolean\", \"deleted\": \"boolean\", \"_rev\": \"string\", \"lastModifiedTimestamp\": 123, \"createdTimestamp\": 123, \"useCleanData\": \"boolean\", \"useBusyHourOnly\": \"boolean\", \"useMaintenance\": \"boolean\", \"conditions\": [{\"triggersOn\": {\"duration\": \"string\", \"metric\": {\"type\": \"Must be one of [session, capture, security]\", \"layer\": \"string\", \"vendor\": \"string\", \"objectType\": \"array\", \"id\": \"string\", \"direction\": \"array\"}, \"ratioPercent\": 123, \"value\": \"string\", \"values\": \"array\", \"comparator\": \"Must be one of [gt, lt, eq, gte, lte, in]\", \"blacklist\": [{\"field\": \"string\", \"value\": \"string\", \"description\": \"string\"}], \"whitelist\": [{\"field\": \"string\", \"value\": \"string\", \"description\": \"string\"}]}, \"recoversOn\": {\"duration\": \"string\", \"metric\": {\"type\": \"Must be one of [session, capture, security]\", \"layer\": \"string\", \"vendor\": \"string\", \"objectType\": \"array\", \"id\": \"string\", \"direction\": \"array\"}, \"ratioPercent\": 123, \"value\": \"string\", \"values\": \"array\", \"comparator\": \"Must be one of [gt, lt, eq, gte, lte, in]\", \"blacklist\": [{\"field\": \"string\", \"value\": \"string\", \"description\": \"string\"}], \"whitelist\": [{\"field\": \"string\", \"value\": \"string\", \"description\": \"string\"}]}}], \"configuration\": {\"policyType\": \"Must be one of [micro-tca, anomaly, capture, security, capture-v2]\", \"aggregationGranularity\": \"undefined\", \"severity\": \"Must be one of [low, medium, high, critical]\", \"killchain\": \"Must be one of [ActionsOnObjective, CommandAndControl, Exfiltration, Exploitation, Reconnaissance]\", \"context\": [{\"key\": \"string\", \"values\": \"array\"}]}, \"name\": \"string\", \"description\": \"string\", \"tags\": \"string\"}}}",
          "required": true,
          "schema": {
            "title": "alertPolicyCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "alertPolicy",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "alertPolicies"
                    ],
                    "type": "string",
                    "example": "alertPolicies"
                  },
                  "id": {
                    "type": "string"
                  },
                  "relationships": {
                    "title": "Relationships2",
                    "type": "object",
                    "properties": {
                      "createdBy": {
                        "title": "JsonApiSingleRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "title": "JsonApiRelationshipData",
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "modifiedBy": {
                        "title": "JsonApiSingleRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "title": "JsonApiRelationshipData",
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "tenantId": {
                        "title": "JsonApiSingleRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "title": "JsonApiRelationshipData",
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "tenantName": {
                        "title": "JsonApiSingleRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "title": "JsonApiRelationshipData",
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "included": {
                    "type": "array",
                    "items": {
                      "title": "alertPoliciesStatistics",
                      "required": [
                        "id",
                        "type",
                        "attributes"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "The timestamp when this status was queried at"
                        },
                        "type": {
                          "enum": [
                            "status"
                          ],
                          "type": "string",
                          "example": "status"
                        },
                        "attributes": {
                          "title": "Attributes79",
                          "required": [
                            "activeAlerts",
                            "totalObjects"
                          ],
                          "type": "object",
                          "properties": {
                            "activeAlerts": {
                              "type": "integer",
                              "description": "Number of alerts that have crossed thresholds"
                            },
                            "totalObjects": {
                              "type": "integer",
                              "description": "Total number of objects in this policy's object set"
                            }
                          }
                        }
                      }
                    },
                    "description": ""
                  },
                  "attributes": {
                    "title": "Attributes80",
                    "required": [
                      "conditions",
                      "configuration",
                      "name",
                      "description"
                    ],
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Controls whether this policy should be enabled",
                        "default": true
                      },
                      "deleted": {
                        "type": "boolean",
                        "description": "This flag is to tell us whether the alert has been deleted and cannot be modified. The reasoning we don't do a real delete is because existing alerts in the database still need to correspond to something.",
                        "default": false
                      },
                      "_rev": {
                        "type": "string",
                        "description": "Policy revision. Not necessarily sequential"
                      },
                      "lastModifiedTimestamp": {
                        "type": "integer",
                        "description": "Last modification timestamp in POSIX epoch generated by server"
                      },
                      "createdTimestamp": {
                        "type": "integer",
                        "description": "Creation timestamp in POSIX epoch generated by server"
                      },
                      "useCleanData": {
                        "type": "boolean",
                        "description": "By default alerts will ignore records that are marked dirty. This can be overriden (switch this to false) in the scenarios that alert should check invalid records.",
                        "default": true
                      },
                      "useBusyHourOnly": {
                        "type": "boolean",
                        "description": "By default alerts will ignore records that are marked as busyHour. If this is set to true, ONLY busy hour data will be considered when alert rules are applied",
                        "default": false
                      },
                      "useMaintenance": {
                        "type": "boolean",
                        "description": "By default alerts will consider records that are marked as maintenance. If this is set to false, data tagged as maintenance will be ignored when alert rules are applied",
                        "default": true
                      },
                      "conditions": {
                        "type": "array",
                        "items": {
                          "title": "alertConditionGroup",
                          "required": [
                            "triggersOn"
                          ],
                          "type": "object",
                          "properties": {
                            "triggersOn": {
                              "title": "alertCondition",
                              "type": "object",
                              "properties": {
                                "duration": {
                                  "type": "string",
                                  "default": "PT5M"
                                },
                                "metric": {
                                  "title": "Metric",
                                  "required": [
                                    "vendor"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "title": "Type31",
                                      "enum": [
                                        "session",
                                        "capture",
                                        "security"
                                      ],
                                      "type": "string",
                                      "example": "session"
                                    },
                                    "layer": {
                                      "type": "string",
                                      "description": "Capture field name",
                                      "example": "http"
                                    },
                                    "vendor": {
                                      "type": "string",
                                      "description": "Vendor name associated with the monitored object",
                                      "example": "accedian-twamp"
                                    },
                                    "objectType": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "Object types to be considered as part of the filter",
                                      "example": [
                                        "twamp-sl",
                                        "twamp-sf"
                                      ]
                                    },
                                    "id": {
                                      "type": "string",
                                      "description": "The metric's identifier",
                                      "example": "delayP95"
                                    },
                                    "direction": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "Set of one or more directions to be used by the filter to identify required metric records",
                                      "example": [
                                        "0"
                                      ]
                                    }
                                  }
                                },
                                "ratioPercent": {
                                  "type": "number"
                                },
                                "value": {
                                  "type": "string"
                                },
                                "values": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": ""
                                },
                                "comparator": {
                                  "title": "Comparator4",
                                  "enum": [
                                    "gt",
                                    "lt",
                                    "eq",
                                    "gte",
                                    "lte",
                                    "in"
                                  ],
                                  "type": "string",
                                  "description": "Operand to use when evaluating the condition.\ngt  = greaterThan\nlt  = lessThan\neq  = equal",
                                  "example": "gt"
                                },
                                "blacklist": {
                                  "type": "array",
                                  "items": {
                                    "title": "alertConditionListEntry",
                                    "required": [
                                      "field",
                                      "value"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "field": {
                                        "type": "string"
                                      },
                                      "value": {
                                        "type": "string"
                                      },
                                      "description": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "description": "Generic blacklist of fields and their values that can trigger an alert.\nSupported only for \"security\" policy type!"
                                },
                                "whitelist": {
                                  "type": "array",
                                  "items": {
                                    "title": "alertConditionListEntry",
                                    "required": [
                                      "field",
                                      "value"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "field": {
                                        "type": "string"
                                      },
                                      "value": {
                                        "type": "string"
                                      },
                                      "description": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "description": ""
                                }
                              }
                            },
                            "recoversOn": {
                              "title": "alertCondition",
                              "type": "object",
                              "properties": {
                                "duration": {
                                  "type": "string",
                                  "default": "PT5M"
                                },
                                "metric": {
                                  "title": "Metric",
                                  "required": [
                                    "vendor"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "title": "Type31",
                                      "enum": [
                                        "session",
                                        "capture",
                                        "security"
                                      ],
                                      "type": "string",
                                      "example": "session"
                                    },
                                    "layer": {
                                      "type": "string",
                                      "description": "Capture field name",
                                      "example": "http"
                                    },
                                    "vendor": {
                                      "type": "string",
                                      "description": "Vendor name associated with the monitored object",
                                      "example": "accedian-twamp"
                                    },
                                    "objectType": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "Object types to be considered as part of the filter",
                                      "example": [
                                        "twamp-sl",
                                        "twamp-sf"
                                      ]
                                    },
                                    "id": {
                                      "type": "string",
                                      "description": "The metric's identifier",
                                      "example": "delayP95"
                                    },
                                    "direction": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "Set of one or more directions to be used by the filter to identify required metric records",
                                      "example": [
                                        "0"
                                      ]
                                    }
                                  }
                                },
                                "ratioPercent": {
                                  "type": "number"
                                },
                                "value": {
                                  "type": "string"
                                },
                                "values": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": ""
                                },
                                "comparator": {
                                  "title": "Comparator4",
                                  "enum": [
                                    "gt",
                                    "lt",
                                    "eq",
                                    "gte",
                                    "lte",
                                    "in"
                                  ],
                                  "type": "string",
                                  "description": "Operand to use when evaluating the condition.\ngt  = greaterThan\nlt  = lessThan\neq  = equal",
                                  "example": "gt"
                                },
                                "blacklist": {
                                  "type": "array",
                                  "items": {
                                    "title": "alertConditionListEntry",
                                    "required": [
                                      "field",
                                      "value"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "field": {
                                        "type": "string"
                                      },
                                      "value": {
                                        "type": "string"
                                      },
                                      "description": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "description": "Generic blacklist of fields and their values that can trigger an alert.\nSupported only for \"security\" policy type!"
                                },
                                "whitelist": {
                                  "type": "array",
                                  "items": {
                                    "title": "alertConditionListEntry",
                                    "required": [
                                      "field",
                                      "value"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "field": {
                                        "type": "string"
                                      },
                                      "value": {
                                        "type": "string"
                                      },
                                      "description": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "description": ""
                                }
                              }
                            }
                          },
                          "description": "\"The conditions for an alert (violation or recovery). eg: metric > threshold\"\n\"Note that metric will in the future support composite metrics.\""
                        },
                        "description": ""
                      },
                      "configuration": {
                        "title": "alertsConfiguration",
                        "required": [
                          "policyType"
                        ],
                        "type": "object",
                        "properties": {
                          "policyType": {
                            "title": "PolicyType3",
                            "enum": [
                              "micro-tca",
                              "anomaly",
                              "capture",
                              "security",
                              "capture-v2"
                            ],
                            "type": "string",
                            "description": "micro-tca - Alerts per monitored object.\nanomaly   - Alerts detected by the Anomaly detector.\ncapture   - Alerts for Capture\ncapture-v2 - Alerts for Capture with a v2 schema.",
                            "example": "micro-tca"
                          },
                          "aggregationGranularity": {
                            "description": "Capture aggregation's granularity. The alert condition's duration must be same or larger than this value."
                          },
                          "severity": {
                            "title": "Severity",
                            "enum": [
                              "low",
                              "medium",
                              "high",
                              "critical"
                            ],
                            "type": "string",
                            "example": "low"
                          },
                          "killchain": {
                            "title": "Killchain2",
                            "enum": [
                              "ActionsOnObjective",
                              "CommandAndControl",
                              "Exfiltration",
                              "Exploitation",
                              "Reconnaissance"
                            ],
                            "type": "string",
                            "description": "Killchain step according to MITRE techniques. Applicable to security alerts only.",
                            "example": "ActionsOnObjective"
                          },
                          "context": {
                            "type": "array",
                            "items": {
                              "title": "genericFilterMapItem",
                              "type": "object",
                              "properties": {
                                "key": {
                                  "type": "string",
                                  "example": "zone"
                                },
                                "values": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": "",
                                  "example": [
                                    "paris",
                                    "lyon"
                                  ]
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "name": {
                        "maxLength": 64,
                        "minLength": 1,
                        "type": "string",
                        "description": "The name of the alert so it can be easily differentiated."
                      },
                      "description": {
                        "maxLength": 512,
                        "type": "string",
                        "description": "Brief description of what the Alert Policy will do"
                      },
                      "tags": {
                        "maxLength": 255,
                        "type": "string",
                        "description": "Miscellaneous data the user wants to tag this alert with",
                        "example": "orderId:uuid123"
                      }
                    },
                    "description": "Every alert policy requires a trigger condition. Recovery is optional as some alarms may need to be stopped\nby an operator.\nTrigger condition  - This is the policies that causes an alarm to start\nRecovery condition - This is the policies that automatically causes an alarm to stop"
                  }
                }
              }
            },
            "description": "JSON API wrapper for creating Alert Policy"
          }
        }
      ],
      "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": "/patchRequestAlertPolicy"
      },
      "task": true
    },
    {
      "name": "getAlertPolicyHistory",
      "summary": "getAlertPolicyHistory",
      "description": "Please use the query parameters to limit the scope of the results. Otherwise, this will return all the raw alerts for a time interval",
      "input": [
        {
          "name": "policyId",
          "type": "string",
          "info": "The Policy ID: string",
          "required": false,
          "schema": {
            "title": "policyId",
            "type": "string"
          }
        },
        {
          "name": "interval",
          "type": "string",
          "info": "The interval in ISO 6801 standard but with the '/' replaced with '_': string",
          "required": false,
          "schema": {
            "title": "interval",
            "type": "string"
          }
        },
        {
          "name": "monitoredObjectId",
          "type": "string",
          "info": "The monitored object alert history: string",
          "required": false,
          "schema": {
            "title": "monitoredObjectId",
            "type": "string"
          }
        },
        {
          "name": "alertState",
          "type": "string",
          "info": "Provide all the includes: Must be one of [raised, cleared]",
          "required": false,
          "schema": {
            "title": "alertState",
            "type": "string"
          }
        },
        {
          "name": "policyType",
          "type": "string",
          "info": ": Must be one of [micro-tca, anomaly, capture, capture-automatic]",
          "required": false,
          "schema": {
            "title": "policyType",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Maximum number of results to return: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "useRawMetaKey",
          "type": "boolean",
          "info": "Returns the raw metadata key's ID from the DB.: boolean",
          "required": false,
          "schema": {
            "title": "useRawMetaKey",
            "type": "boolean"
          }
        },
        {
          "name": "category",
          "type": "string",
          "info": "Category to filter on: string",
          "required": false,
          "schema": {
            "title": "category",
            "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": "/getAlertPolicyHistory"
      },
      "task": true
    },
    {
      "name": "getAlertingGroupByV3",
      "summary": "GetAlertingGroupByV3",
      "description": "Retrieves specified aggregation grouped by the provided fields and filtered by the metadata specification",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [groupByAlerts]\", \"attributes\": {\"queryContext\": {\"groupNull\": \"boolean\", \"ignoreCleaning\": \"boolean\", \"timeout\": 123, \"sortOnGroupingKey\": \"string\", \"sorted\": \"Must be one of [asc, desc]\", \"numResults\": 123}, \"metaContext\": {\"metadataFilters\": \"object\", \"metaExclude\": \"array\"}, \"groupingContext\": {\"strictGroupings\": \"boolean\", \"groupings\": [{\"groupName\": \"string\", \"groupType\": \"Must be one of [active, passive, meta]\"}]}, \"interval\": \"string\", \"aggregation\": \"Must be one of [min, max, avg, count, sum]\", \"metrics\": [{\"policyId\": \"array\", \"policyType\": \"array\", \"alertState\": \"array\", \"metric\": \"array\", \"uid\": \"array\", \"startTimestamp\": \"array\", \"captureSpec\": \"object\", \"objectType\": \"array\", \"direction\": \"array\", \"geoSpatial\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"sourceLocation\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"destinationLocation\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"topology\": \"string\", \"valueBoundary\": {\"type\": \"Must be one of [fixed, baseline_percentage, baseline_static_below, baseline_static_above]\", \"filterMetric\": \"string\", \"lower\": {\"value\": 123, \"strict\": \"boolean\"}, \"upper\": {\"value\": 123, \"strict\": \"boolean\"}}, \"objectId\": \"array\", \"captureClientZoneId\": \"array\", \"captureServerZoneId\": \"array\", \"severity\": \"array\", \"sourceIp\": \"array\", \"destinationIp\": \"array\", \"killchain\": \"array\", \"securityJobType\": \"array\", \"sourceNetworkAssetRoles\": \"array\", \"destinationNetworkAssetRoles\": \"array\"}]}}}",
          "required": true,
          "schema": {
            "title": "JsonApiAlertGroupByRequest",
            "type": "object",
            "properties": {
              "data": {
                "title": "Data45",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "groupByAlerts"
                    ],
                    "type": "string",
                    "example": "groupByAlerts"
                  },
                  "attributes": {
                    "title": "AlertGroupByConfig",
                    "required": [
                      "groupingContext",
                      "interval",
                      "aggregation",
                      "metrics"
                    ],
                    "type": "object",
                    "properties": {
                      "queryContext": {
                        "title": "AlertQueryContext",
                        "type": "object",
                        "properties": {
                          "groupNull": {
                            "type": "boolean",
                            "description": "When doing a group by, there are columns with no value associated with the metadata key supplied. By default, we ignore these rows but in certain use-cases, it is advantageous to group all the records not in the set as a new value.",
                            "default": false
                          },
                          "ignoreCleaning": {
                            "type": "boolean",
                            "description": "A value of true will have the aggregation request execute on all data regardless of whether it has been cleaned or not"
                          },
                          "timeout": {
                            "type": "integer",
                            "description": "Query timeout in milliseconds",
                            "example": 30000
                          },
                          "sortOnGroupingKey": {
                            "type": "string",
                            "description": "Allows a client to sort on a grouping key instead of the metric's value",
                            "default": "metric",
                            "example": "startTimestamp"
                          },
                          "sorted": {
                            "title": "Sorted",
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "description": "Indicates whether the response should return grouped by queries in ascending or descending order. Only applicable to grouped queries.",
                            "example": "asc"
                          },
                          "numResults": {
                            "type": "integer",
                            "description": "Number of results to return in grouped queries. A non-positive integer for this value implies there is no result limit. Only applicable to grouped queries.",
                            "example": 10
                          }
                        },
                        "description": "Hints indicating how the query may be Returns"
                      },
                      "metaContext": {
                        "title": "MetaContext",
                        "required": [
                          "metadataFilters"
                        ],
                        "type": "object",
                        "properties": {
                          "metadataFilters": {
                            "type": "object",
                            "additionalProperties": {},
                            "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                            "example": {
                              "region": [
                                "montreal",
                                "ottawa"
                              ],
                              "group": [
                                "radio"
                              ]
                            }
                          },
                          "metaExclude": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                            "example": [
                              "group"
                            ]
                          }
                        },
                        "description": "Elements of the query that define metadata specific components"
                      },
                      "groupingContext": {
                        "title": "GroupingContext",
                        "required": [
                          "groupings"
                        ],
                        "type": "object",
                        "properties": {
                          "strictGroupings": {
                            "type": "boolean",
                            "description": "Value of true indicates that all requested groupings MUST exist within a data record in order to be considered for aggregation within that group"
                          },
                          "groupings": {
                            "type": "array",
                            "items": {
                              "title": "GroupingEntity",
                              "required": [
                                "groupName",
                                "groupType"
                              ],
                              "type": "object",
                              "properties": {
                                "groupName": {
                                  "type": "string"
                                },
                                "groupType": {
                                  "title": "GroupType",
                                  "enum": [
                                    "active",
                                    "passive",
                                    "meta"
                                  ],
                                  "type": "string",
                                  "example": "active"
                                }
                              },
                              "description": "Provides additional information about the entity to group by"
                            },
                            "description": ""
                          }
                        },
                        "description": "Defines how the results should be grouped"
                      },
                      "interval": {
                        "type": "string",
                        "description": "Time boundary for the metrics under consideration using the ISO-8601 standard",
                        "example": "2018-04-08T14:00:00/2018-04-09T15:00:00"
                      },
                      "aggregation": {
                        "title": "SupportedAggregations",
                        "enum": [
                          "min",
                          "max",
                          "avg",
                          "count",
                          "sum"
                        ],
                        "type": "string",
                        "description": "The type of aggregation (avg/min/max/count/sum) avg - Returns the averaging the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. min - Returns the minimum value for the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. max - Returns the maximum value for the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. count - Returns the number of events within the specified bucket property. A single bucket is the preferred usage but multiple buckets can be used as a band pass filter.  sum - Returns the summed value of all records grouped by the provided groupings",
                        "example": "min"
                      },
                      "metrics": {
                        "type": "array",
                        "items": {
                          "title": "AlertSpec",
                          "type": "object",
                          "properties": {
                            "policyId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Policy ID to filter on"
                            },
                            "policyType": {
                              "type": "array",
                              "items": {
                                "title": "PolicyType1",
                                "enum": [
                                  "capture",
                                  "capture-automatic",
                                  "micro-tca",
                                  "anomaly",
                                  "security"
                                ],
                                "type": "string",
                                "example": "capture"
                              },
                              "description": "Hint to the query engine to limit the metric to certain types of entity."
                            },
                            "alertState": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Set of one or more alert state to be used by the filter",
                              "example": [
                                "raised",
                                "cleared"
                              ]
                            },
                            "metric": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Name that identifies the specific metric within a monitored object",
                              "example": [
                                "delayp95",
                                "hit.rtt.per_sec"
                              ]
                            },
                            "uid": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Filter on Alert UID.",
                              "example": [
                                "111111111"
                              ]
                            },
                            "startTimestamp": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "description": "Start Timestamp to filter on"
                            },
                            "captureSpec": {
                              "type": "object",
                              "additionalProperties": {}
                            },
                            "objectType": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Object types to be considered as part of the filter",
                              "example": [
                                "twamp-sl",
                                "flowmeter"
                              ]
                            },
                            "direction": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Set of one or more directions to be used by the filter to identify required metric records",
                              "example": [
                                "0",
                                "1"
                              ]
                            },
                            "geoSpatial": {
                              "title": "SpatialFilter",
                              "type": "object",
                              "properties": {
                                "rectangular": {
                                  "title": "Rectangular",
                                  "type": "object",
                                  "properties": {
                                    "minCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    },
                                    "maxCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "sourceLocation": {
                              "title": "SpatialFilter",
                              "type": "object",
                              "properties": {
                                "rectangular": {
                                  "title": "Rectangular",
                                  "type": "object",
                                  "properties": {
                                    "minCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    },
                                    "maxCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "destinationLocation": {
                              "title": "SpatialFilter",
                              "type": "object",
                              "properties": {
                                "rectangular": {
                                  "title": "Rectangular",
                                  "type": "object",
                                  "properties": {
                                    "minCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    },
                                    "maxCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "topology": {
                              "type": "string",
                              "description": "Name of a node on the route of the Monitored Object"
                            },
                            "valueBoundary": {
                              "title": "MetricBucket",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Type25",
                                  "enum": [
                                    "fixed",
                                    "baseline_percentage",
                                    "baseline_static_below",
                                    "baseline_static_above"
                                  ],
                                  "type": "string",
                                  "example": "fixed"
                                },
                                "filterMetric": {
                                  "type": "string"
                                },
                                "lower": {
                                  "title": "Lower",
                                  "required": [
                                    "value"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "value": {
                                      "type": "number",
                                      "description": "The lower, positive number to be used to describe the lowest value of the bucket. Omitting this value assumes that this bucket includes anything lower than the defined \"upper\" value"
                                    },
                                    "strict": {
                                      "type": "boolean",
                                      "description": "If set to true, then the lower value is assumed to be exclusive. Otherwise a value of false or the absence of this value assumes that the lower value is to be taken inclusively"
                                    }
                                  },
                                  "description": "The specification for the lower boundary of the bucket"
                                },
                                "upper": {
                                  "title": "Upper",
                                  "required": [
                                    "value"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "value": {
                                      "type": "number",
                                      "description": "The upper, positive number to be used to describe the highest value of the bucket. Omitting this value assumes that this bucket includes anything higher than the defined \"lower\" value"
                                    },
                                    "strict": {
                                      "type": "boolean",
                                      "description": "If set to true, then the upper value is assumed to be exclusive. Otherwise a value of false or the absence of this value assumes that the upper value is to be taken inclusively"
                                    }
                                  },
                                  "description": "The specification for the upper boundary of the bucket"
                                }
                              }
                            },
                            "objectId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Set of object IDs to filter on",
                              "example": [
                                "333732dc-99d4-4224-915e-3972b50d10ef",
                                "931e7d13-6320-4ad7-ae06-7ff2df4f782a"
                              ]
                            },
                            "captureClientZoneId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "captureServerZoneId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "severity": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "sourceIp": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "destinationIp": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "killchain": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "securityJobType": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "sourceNetworkAssetRoles": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "destinationNetworkAssetRoles": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          },
                          "description": "Filter object that identifies a specific metric within a monitored object by its key attributes"
                        },
                        "description": "A set of identifiers that considers specific metrics based on the provided information"
                      }
                    },
                    "description": "The necessary request parameters for the metric api call"
                  }
                }
              }
            },
            "description": "JSON API compliant wrapper for the groupby query"
          }
        }
      ],
      "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": "/getAlertingGroupByV3"
      },
      "task": true
    },
    {
      "name": "getAlertingAggregateV3",
      "summary": "GetAlertingAggregateV3",
      "description": "Aggregates the provided metrics and filters them based on the provided criteria",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [aggregateAlerts]\", \"attributes\": {\"queryContext\": {\"ignoreCleaning\": \"boolean\", \"focusBusyHour\": \"boolean\", \"ignoreMaintenance\": \"boolean\", \"timeout\": 123, \"sorted\": \"Must be one of [asc, desc]\", \"numResults\": 123}, \"metaContext\": {\"metadataFilters\": \"object\", \"metaExclude\": \"array\"}, \"interval\": \"string\", \"granularity\": \"string\", \"aggregation\": \"Must be one of [min, max, avg, count, sum]\", \"metrics\": [{\"policyId\": \"array\", \"policyType\": \"array\", \"alertState\": \"array\", \"metric\": \"array\", \"uid\": \"array\", \"startTimestamp\": \"array\", \"captureSpec\": \"object\", \"objectType\": \"array\", \"direction\": \"array\", \"geoSpatial\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"sourceLocation\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"destinationLocation\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"topology\": \"string\", \"valueBoundary\": {\"type\": \"Must be one of [fixed, baseline_percentage, baseline_static_below, baseline_static_above]\", \"filterMetric\": \"string\", \"lower\": {\"value\": 123, \"strict\": \"boolean\"}, \"upper\": {\"value\": 123, \"strict\": \"boolean\"}}, \"objectId\": \"array\", \"captureClientZoneId\": \"array\", \"captureServerZoneId\": \"array\", \"severity\": \"array\", \"sourceIp\": \"array\", \"destinationIp\": \"array\", \"killchain\": \"array\", \"securityJobType\": \"array\", \"sourceNetworkAssetRoles\": \"array\", \"destinationNetworkAssetRoles\": \"array\"}]}}}",
          "required": true,
          "schema": {
            "title": "JsonApiAlertAggregateRequest",
            "type": "object",
            "properties": {
              "data": {
                "title": "Data47",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "aggregateAlerts"
                    ],
                    "type": "string",
                    "example": "aggregateAlerts"
                  },
                  "attributes": {
                    "title": "V2AlertAggregateConfig",
                    "required": [
                      "interval",
                      "granularity",
                      "aggregation",
                      "metrics"
                    ],
                    "type": "object",
                    "properties": {
                      "queryContext": {
                        "title": "QueryContext",
                        "type": "object",
                        "properties": {
                          "ignoreCleaning": {
                            "type": "boolean",
                            "description": "A value of true will have the aggregation request execute on all data regardless of whether it has been cleaned or not"
                          },
                          "focusBusyHour": {
                            "type": "boolean",
                            "description": "A value of true will only consider data tagged as 'busyHour' for the aggregation request"
                          },
                          "ignoreMaintenance": {
                            "type": "boolean",
                            "description": "A value of true will ignore data tagged as 'maintenance' for the aggregation request"
                          },
                          "timeout": {
                            "type": "integer",
                            "description": "Query timeout in milliseconds",
                            "example": 30000
                          },
                          "sorted": {
                            "title": "Sorted",
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "description": "Indicates whether the response should return grouped by queries in ascending or descending order. Only applicable to grouped queries.",
                            "example": "asc"
                          },
                          "numResults": {
                            "type": "integer",
                            "description": "Number of results to return in grouped queries. A non-positive integer for this value implies there is no result limit. Only applicable to grouped queries.",
                            "example": 10
                          }
                        },
                        "description": "Hints indicating how the query may be Returns"
                      },
                      "metaContext": {
                        "title": "MetaContext",
                        "required": [
                          "metadataFilters"
                        ],
                        "type": "object",
                        "properties": {
                          "metadataFilters": {
                            "type": "object",
                            "additionalProperties": {},
                            "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                            "example": {
                              "region": [
                                "montreal",
                                "ottawa"
                              ],
                              "group": [
                                "radio"
                              ]
                            }
                          },
                          "metaExclude": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                            "example": [
                              "group"
                            ]
                          }
                        },
                        "description": "Elements of the query that define metadata specific components"
                      },
                      "interval": {
                        "type": "string",
                        "description": "Time boundary for the metrics under consideration using the ISO-8601 standard",
                        "example": "2018-04-08T14:00:00/2018-04-09T15:00:00"
                      },
                      "granularity": {
                        "type": "string",
                        "description": "the granularity for timeseries in ISO-8601 duration format, or ALL",
                        "example": "PT1H"
                      },
                      "aggregation": {
                        "title": "SupportedAggregations",
                        "enum": [
                          "min",
                          "max",
                          "avg",
                          "count",
                          "sum"
                        ],
                        "type": "string",
                        "description": "The type of aggregation (avg/min/max/count/sum) avg - Returns the averaging the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. min - Returns the minimum value for the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. max - Returns the maximum value for the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. count - Returns the number of events within the specified bucket property. A single bucket is the preferred usage but multiple buckets can be used as a band pass filter.  sum - Returns the summed value of all records grouped by the provided groupings",
                        "example": "min"
                      },
                      "metrics": {
                        "type": "array",
                        "items": {
                          "title": "AlertSpec",
                          "type": "object",
                          "properties": {
                            "policyId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Policy ID to filter on"
                            },
                            "policyType": {
                              "type": "array",
                              "items": {
                                "title": "PolicyType1",
                                "enum": [
                                  "capture",
                                  "capture-automatic",
                                  "micro-tca",
                                  "anomaly",
                                  "security"
                                ],
                                "type": "string",
                                "example": "capture"
                              },
                              "description": "Hint to the query engine to limit the metric to certain types of entity."
                            },
                            "alertState": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Set of one or more alert state to be used by the filter",
                              "example": [
                                "raised",
                                "cleared"
                              ]
                            },
                            "metric": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Name that identifies the specific metric within a monitored object",
                              "example": [
                                "delayp95",
                                "hit.rtt.per_sec"
                              ]
                            },
                            "uid": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Filter on Alert UID.",
                              "example": [
                                "111111111"
                              ]
                            },
                            "startTimestamp": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "description": "Start Timestamp to filter on"
                            },
                            "captureSpec": {
                              "type": "object",
                              "additionalProperties": {}
                            },
                            "objectType": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Object types to be considered as part of the filter",
                              "example": [
                                "twamp-sl",
                                "flowmeter"
                              ]
                            },
                            "direction": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Set of one or more directions to be used by the filter to identify required metric records",
                              "example": [
                                "0",
                                "1"
                              ]
                            },
                            "geoSpatial": {
                              "title": "SpatialFilter",
                              "type": "object",
                              "properties": {
                                "rectangular": {
                                  "title": "Rectangular",
                                  "type": "object",
                                  "properties": {
                                    "minCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    },
                                    "maxCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "sourceLocation": {
                              "title": "SpatialFilter",
                              "type": "object",
                              "properties": {
                                "rectangular": {
                                  "title": "Rectangular",
                                  "type": "object",
                                  "properties": {
                                    "minCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    },
                                    "maxCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "destinationLocation": {
                              "title": "SpatialFilter",
                              "type": "object",
                              "properties": {
                                "rectangular": {
                                  "title": "Rectangular",
                                  "type": "object",
                                  "properties": {
                                    "minCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    },
                                    "maxCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "topology": {
                              "type": "string",
                              "description": "Name of a node on the route of the Monitored Object"
                            },
                            "valueBoundary": {
                              "title": "MetricBucket",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Type25",
                                  "enum": [
                                    "fixed",
                                    "baseline_percentage",
                                    "baseline_static_below",
                                    "baseline_static_above"
                                  ],
                                  "type": "string",
                                  "example": "fixed"
                                },
                                "filterMetric": {
                                  "type": "string"
                                },
                                "lower": {
                                  "title": "Lower",
                                  "required": [
                                    "value"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "value": {
                                      "type": "number",
                                      "description": "The lower, positive number to be used to describe the lowest value of the bucket. Omitting this value assumes that this bucket includes anything lower than the defined \"upper\" value"
                                    },
                                    "strict": {
                                      "type": "boolean",
                                      "description": "If set to true, then the lower value is assumed to be exclusive. Otherwise a value of false or the absence of this value assumes that the lower value is to be taken inclusively"
                                    }
                                  },
                                  "description": "The specification for the lower boundary of the bucket"
                                },
                                "upper": {
                                  "title": "Upper",
                                  "required": [
                                    "value"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "value": {
                                      "type": "number",
                                      "description": "The upper, positive number to be used to describe the highest value of the bucket. Omitting this value assumes that this bucket includes anything higher than the defined \"lower\" value"
                                    },
                                    "strict": {
                                      "type": "boolean",
                                      "description": "If set to true, then the upper value is assumed to be exclusive. Otherwise a value of false or the absence of this value assumes that the upper value is to be taken inclusively"
                                    }
                                  },
                                  "description": "The specification for the upper boundary of the bucket"
                                }
                              }
                            },
                            "objectId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Set of object IDs to filter on",
                              "example": [
                                "333732dc-99d4-4224-915e-3972b50d10ef",
                                "931e7d13-6320-4ad7-ae06-7ff2df4f782a"
                              ]
                            },
                            "captureClientZoneId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "captureServerZoneId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "severity": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "sourceIp": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "destinationIp": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "killchain": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "securityJobType": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "sourceNetworkAssetRoles": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "destinationNetworkAssetRoles": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          },
                          "description": "Filter object that identifies a specific metric within a monitored object by its key attributes"
                        },
                        "description": "A set of identifiers that considers specific metrics based on the provided information"
                      }
                    },
                    "description": "The necessary request parameters for the metric api call"
                  }
                }
              }
            },
            "description": "JSON API compliant wrapper for the aggregate query"
          }
        }
      ],
      "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": "/getAlertingAggregateV3"
      },
      "task": true
    },
    {
      "name": "getRamenState",
      "summary": "getRamenState",
      "description": "Get the latest ramen state for a given tenant.",
      "input": [
        {
          "name": "tenantId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "tenantId",
            "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": "/getRamenState"
      },
      "task": true
    },
    {
      "name": "createAnalyticsV2",
      "summary": "CreateAnalyticsV2",
      "description": "Request Analytical analysis from Datahub",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [analytics]\", \"id\": \"string\", \"attributes\": {\"request\": {\"type\": \"Must be one of [verticalSliceQuery]\", \"patternMatch\": {\"timeSlice\": {\"configuration\": {\"pattern\": [{\"timestamp\": \"string\", \"value\": 123}], \"interval\": \"string\", \"granularity\": \"string\", \"numResults\": 123, \"constraints\": {\"vendor\": \"string\", \"objectType\": \"string\", \"metric\": \"string\", \"direction\": \"string\"}}, \"match\": {\"constraints\": [{\"vendor\": \"string\", \"objectType\": \"string\", \"metric\": \"string\", \"direction\": \"string\"}]}}}}}}}",
          "required": true,
          "schema": {
            "title": "AnalyticsRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data16",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "analytics"
                    ],
                    "type": "string",
                    "example": "analytics"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes23",
                    "type": "object",
                    "properties": {
                      "request": {
                        "title": "Request",
                        "type": "object",
                        "properties": {
                          "type": {
                            "title": "Type23",
                            "enum": [
                              "verticalSliceQuery"
                            ],
                            "type": "string",
                            "example": "verticalSliceQuery"
                          },
                          "patternMatch": {
                            "title": "AnalyticsPatternMatch",
                            "type": "object",
                            "properties": {
                              "timeSlice": {
                                "title": "AnalyticsTimeSlice",
                                "type": "object",
                                "properties": {
                                  "configuration": {
                                    "title": "Configuration",
                                    "required": [
                                      "pattern",
                                      "interval",
                                      "granularity",
                                      "constraints"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "pattern": {
                                        "type": "array",
                                        "items": {
                                          "title": "MetricResultEntry",
                                          "required": [
                                            "timestamp",
                                            "value"
                                          ],
                                          "type": "object",
                                          "properties": {
                                            "timestamp": {
                                              "type": "string"
                                            },
                                            "value": {
                                              "type": "number"
                                            }
                                          },
                                          "description": "A singular time series entry that contains the timestamp and value"
                                        },
                                        "description": "The analytics engine will normalize the pattern time series and then determine monitored objects with similar patterns for the given interval. This will not do time stretching on the dataset but will fill in the gaps so it is one continuous segment."
                                      },
                                      "interval": {
                                        "type": "string",
                                        "description": "The window of time for which the time slice pattern will be evaluated. Uses ISO 8601 timestamp formatting rules."
                                      },
                                      "granularity": {
                                        "type": "string",
                                        "description": "The granularity of the datapoints in ISO 8601 format",
                                        "example": "PT1M"
                                      },
                                      "numResults": {
                                        "type": "integer",
                                        "description": "The number of results to return for the time slice analysis"
                                      },
                                      "constraints": {
                                        "title": "AnalyticsTargetScope",
                                        "required": [
                                          "vendor",
                                          "objectType",
                                          "metric",
                                          "direction"
                                        ],
                                        "type": "object",
                                        "properties": {
                                          "vendor": {
                                            "type": "string"
                                          },
                                          "objectType": {
                                            "type": "string"
                                          },
                                          "metric": {
                                            "type": "string"
                                          },
                                          "direction": {
                                            "type": "string"
                                          }
                                        },
                                        "description": "Properties that filter what matched patterns will be returned. If not provided, then the widest match range will be returned"
                                      }
                                    },
                                    "description": "Details outlining the pattern that will be compared against to determine approximate matches"
                                  },
                                  "match": {
                                    "title": "Match",
                                    "type": "object",
                                    "properties": {
                                      "constraints": {
                                        "type": "array",
                                        "items": {
                                          "title": "AnalyticsTargetScope",
                                          "required": [
                                            "vendor",
                                            "objectType",
                                            "metric",
                                            "direction"
                                          ],
                                          "type": "object",
                                          "properties": {
                                            "vendor": {
                                              "type": "string"
                                            },
                                            "objectType": {
                                              "type": "string"
                                            },
                                            "metric": {
                                              "type": "string"
                                            },
                                            "direction": {
                                              "type": "string"
                                            }
                                          },
                                          "description": "Properties that filter what matched patterns will be returned. If not provided, then the widest match range will be returned"
                                        },
                                        "description": "An array of metric related scoping parameters for which scopes of data the pattern should be matched against"
                                      }
                                    },
                                    "description": "Details outlining the specific types of metrics to compare the pattern against for matches"
                                  }
                                },
                                "description": "Defines the Time Slice sub-class of anaylics request"
                              }
                            },
                            "description": "Defines the Pattern Match class of anaylics request"
                          }
                        },
                        "description": "Request for Analytical analysis from Datahub"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to request a specific analysis from Datahub"
          }
        }
      ],
      "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": "/createAnalyticsV2"
      },
      "task": true
    },
    {
      "name": "getAllAnalyticsV2",
      "summary": "GetAllAnalyticsV2",
      "description": "Get all currently stored Analytics Result Objects",
      "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": "/getAllAnalyticsV2"
      },
      "task": true
    },
    {
      "name": "getAnalyticsV2",
      "summary": "GetAnalyticsV2",
      "description": "Retrieve an Analytics result by Id.",
      "input": [
        {
          "name": "analyticsId",
          "type": "string",
          "info": "Unique identifier of an Analytics request in Datahub: string",
          "required": true,
          "schema": {
            "title": "analyticsId",
            "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": "/getAnalyticsV2"
      },
      "task": true
    },
    {
      "name": "deleteAnalyticsV2",
      "summary": "DeleteAnalyticsV2",
      "description": "Delete an Analytics result by Id.",
      "input": [
        {
          "name": "analyticsId",
          "type": "string",
          "info": "Unique identifier of an Analytics request in Datahub: string",
          "required": true,
          "schema": {
            "title": "analyticsId",
            "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": "/deleteAnalyticsV2"
      },
      "task": true
    },
    {
      "name": "createBrandingV2",
      "summary": "CreateBrandingV2",
      "description": "Create a Branding for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [brandings]\", \"id\": \"string\", \"attributes\": {\"color\": \"string\", \"logo\": {\"file\": {\"content_type\": \"string\", \"data\": \"string\"}}}}}",
          "required": true,
          "schema": {
            "title": "BrandingCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data17",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "brandings"
                    ],
                    "type": "string",
                    "example": "brandings"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes25",
                    "type": "object",
                    "properties": {
                      "color": {
                        "type": "string",
                        "description": "The primary colour used for the Datahub UI"
                      },
                      "logo": {
                        "title": "BrandingLogo",
                        "type": "object",
                        "properties": {
                          "file": {
                            "title": "File",
                            "type": "object",
                            "properties": {
                              "content_type": {
                                "type": "string",
                                "description": "Describes the media type of the document stored"
                              },
                              "data": {
                                "type": "string",
                                "description": "Contains the image data for the uploaded branding logo"
                              }
                            }
                          }
                        },
                        "description": "Describes the information used to display the branding logo image on the Datahub UI"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/createBrandingV2"
      },
      "task": true
    },
    {
      "name": "getAllBrandingsV2",
      "summary": "GetAllBrandingsV2",
      "description": "Retrieve all Brandings for the specified Tenant.",
      "input": [
        {
          "name": "zone",
          "type": "string",
          "info": ": string",
          "required": false,
          "schema": {
            "title": "zone",
            "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": "/getAllBrandingsV2"
      },
      "task": true
    },
    {
      "name": "getBrandingV2",
      "summary": "GetBrandingV2",
      "description": "Retrieve a Tenant Branding by Id.",
      "input": [
        {
          "name": "brandingId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "brandingId",
            "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": "/getBrandingV2"
      },
      "task": true
    },
    {
      "name": "updateBrandingV2",
      "summary": "UpdateBrandingV2",
      "description": "Update a Tenant Branding specified by the provided Branding Id.",
      "input": [
        {
          "name": "brandingId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "brandingId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [brandings]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"color\": \"string\", \"logo\": {\"file\": {\"content_type\": \"string\", \"data\": \"string\"}}}}}",
          "required": true,
          "schema": {
            "title": "BrandingUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data18",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "brandings"
                    ],
                    "type": "string",
                    "example": "brandings"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes26",
                    "required": [
                      "_rev"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "color": {
                        "type": "string",
                        "description": "The primary colour used for the Datahub UI"
                      },
                      "logo": {
                        "title": "BrandingLogo",
                        "type": "object",
                        "properties": {
                          "file": {
                            "title": "File",
                            "type": "object",
                            "properties": {
                              "content_type": {
                                "type": "string",
                                "description": "Describes the media type of the document stored"
                              },
                              "data": {
                                "type": "string",
                                "description": "Contains the image data for the uploaded branding logo"
                              }
                            }
                          }
                        },
                        "description": "Describes the information used to display the branding logo image on the Datahub UI"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/updateBrandingV2"
      },
      "task": true
    },
    {
      "name": "deleteBrandingV2",
      "summary": "DeleteBrandingV2",
      "description": "Delete a Tenant Branding specified by the provided Branding Id.",
      "input": [
        {
          "name": "brandingId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "brandingId",
            "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": "/deleteBrandingV2"
      },
      "task": true
    },
    {
      "name": "createLocaleV2",
      "summary": "CreateLocaleV2",
      "description": "Create a Locale for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [locales]\", \"id\": \"string\", \"attributes\": {\"intl\": \"string\", \"moment\": \"string\", \"timezone\": \"string\"}}}",
          "required": true,
          "schema": {
            "title": "LocaleCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data19",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "locales"
                    ],
                    "type": "string",
                    "example": "locales"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes28",
                    "required": [
                      "intl",
                      "moment",
                      "timezone"
                    ],
                    "type": "object",
                    "properties": {
                      "intl": {
                        "type": "string",
                        "description": "The short-form code for the internationalization region"
                      },
                      "moment": {
                        "type": "string"
                      },
                      "timezone": {
                        "type": "string",
                        "description": "Timezone used to coordinate timestamps for the specified region"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/createLocaleV2"
      },
      "task": true
    },
    {
      "name": "getAllLocalesV2",
      "summary": "GetAllLocalesV2",
      "description": "Retrieve all Locales for the specified Tenant.",
      "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": "/getAllLocalesV2"
      },
      "task": true
    },
    {
      "name": "getLocaleV2",
      "summary": "GetLocaleV2",
      "description": "Retrieve a Tenant Locale by Id.",
      "input": [
        {
          "name": "localeId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "localeId",
            "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": "/getLocaleV2"
      },
      "task": true
    },
    {
      "name": "updateLocaleV2",
      "summary": "UpdateLocaleV2",
      "description": "Update a Locale for a Tenant.",
      "input": [
        {
          "name": "localeId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "localeId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [locales]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"intl\": \"string\", \"moment\": \"string\", \"timezone\": \"string\"}}}",
          "required": true,
          "schema": {
            "title": "LocaleUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data20",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "locales"
                    ],
                    "type": "string",
                    "example": "locales"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes29",
                    "required": [
                      "_rev"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "intl": {
                        "type": "string",
                        "description": "The short-form code for the internationalization region"
                      },
                      "moment": {
                        "type": "string"
                      },
                      "timezone": {
                        "type": "string",
                        "description": "Timezone used to coordinate timestamps for the specified region"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/updateLocaleV2"
      },
      "task": true
    },
    {
      "name": "deleteLocaleV2",
      "summary": "DeleteLocaleV2",
      "description": "Delete a Tenant Locale specified by the provided Locale Id.",
      "input": [
        {
          "name": "localeId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "localeId",
            "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": "/deleteLocaleV2"
      },
      "task": true
    },
    {
      "name": "createCompositeMetricV2",
      "summary": "CreateCompositeMetricV2",
      "description": "Create a composite Metric for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [compositeMetrics]\", \"attributes\": {\"name\": \"string\", \"direction\": \"string\", \"vendor\": \"string\", \"objectType\": \"array\", \"description\": \"string\", \"enabled\": \"boolean\", \"unitType\": \"string\", \"operation\": {\"type\": \"Must be one of [add, subtract, divide, multiply]\", \"parameters\": [{\"type\": \"Must be one of [constant, metric, compositeMetric]\", \"metricIdentifier\": {\"vendor\": \"string\", \"objectType\": \"array\", \"metric\": \"string\", \"direction\": \"array\"}, \"constant\": {\"value\": 123}, \"compositionId\": \"string\"}]}}}}",
          "required": true,
          "schema": {
            "title": "CompositeMetricCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data21",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "compositeMetrics"
                    ],
                    "type": "string",
                    "example": "compositeMetrics"
                  },
                  "attributes": {
                    "title": "Attributes32",
                    "required": [
                      "name",
                      "direction",
                      "vendor",
                      "objectType",
                      "enabled",
                      "unitType",
                      "operation"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "Name of the composition"
                      },
                      "direction": {
                        "type": "string",
                        "description": "The composite metric user's defined direction."
                      },
                      "vendor": {
                        "type": "string",
                        "description": "The composite metric user's defined direction."
                      },
                      "objectType": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "Object types to be considered as part of the filter",
                        "example": [
                          {
                            "0": "twamp-pe"
                          },
                          {
                            "0": "twamp-sl",
                            "1": "twamp-sf"
                          }
                        ]
                      },
                      "description": {
                        "type": "string",
                        "description": "Space to provide in depth explanation of the composition."
                      },
                      "enabled": {
                        "type": "boolean",
                        "description": "Used to enable/disable the composition from the GUI. Compositions are always available when using the RESTful API."
                      },
                      "unitType": {
                        "type": "string",
                        "description": "The composite metric's unit of measurement."
                      },
                      "operation": {
                        "title": "CompositeMetricOperation",
                        "required": [
                          "type",
                          "parameters"
                        ],
                        "type": "object",
                        "properties": {
                          "type": {
                            "title": "Type26",
                            "enum": [
                              "add",
                              "subtract",
                              "divide",
                              "multiply"
                            ],
                            "type": "string",
                            "example": "add"
                          },
                          "parameters": {
                            "type": "array",
                            "items": {
                              "title": "CompositionParameters",
                              "required": [
                                "type"
                              ],
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Type27",
                                  "enum": [
                                    "constant",
                                    "metric",
                                    "compositeMetric"
                                  ],
                                  "type": "string",
                                  "example": "constant"
                                },
                                "metricIdentifier": {
                                  "title": "MetricIdentifierFilter",
                                  "required": [
                                    "objectType",
                                    "metric"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "vendor": {
                                      "type": "string",
                                      "description": "Vendor name associated with the monitored object",
                                      "example": "accedian-twamp"
                                    },
                                    "objectType": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "Object types to be considered as part of the filter",
                                      "example": [
                                        {
                                          "0": "twamp-pe"
                                        },
                                        {
                                          "0": "twamp-sl",
                                          "1": "twamp-sf"
                                        }
                                      ]
                                    },
                                    "metric": {
                                      "type": "string",
                                      "description": "Name that identifies the specific metric within a monitored object",
                                      "example": "delayP95"
                                    },
                                    "direction": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "Set of one or more directions to be used by the filter to identify required metric records",
                                      "example": [
                                        {
                                          "0": "0"
                                        },
                                        {
                                          "0": "0",
                                          "1": "1"
                                        }
                                      ]
                                    }
                                  },
                                  "description": "Filter object that identifies a specific metric within a monitored object by its key attributes"
                                },
                                "constant": {
                                  "title": "CompositeConstant",
                                  "required": [
                                    "value"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "value": {
                                      "type": "number"
                                    }
                                  },
                                  "description": "For arithmetic compositions, constant float values be used as part of the artihmetic"
                                },
                                "compositionId": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          }
                        },
                        "description": "CompositeMetric metrics operations."
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to create a CompositeMetric metric in Datahub"
          }
        }
      ],
      "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": "/createCompositeMetricV2"
      },
      "task": true
    },
    {
      "name": "getAllCompositeMetricsV2",
      "summary": "GetAllCompositeMetricsV2",
      "description": "Retrieve all composite metrics for the specified Tenant.",
      "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": "/getAllCompositeMetricsV2"
      },
      "task": true
    },
    {
      "name": "getCompositeMetricV2",
      "summary": "GetCompositeMetricV2",
      "description": "Retrieve a composite metric by Id.",
      "input": [
        {
          "name": "compositeMetricId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "compositeMetricId",
            "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": "/getCompositeMetricV2"
      },
      "task": true
    },
    {
      "name": "updateCompositeMetricV2",
      "summary": "UpdateCompositeMetricV2",
      "description": "Update a composite metric specified by the provided Id.",
      "input": [
        {
          "name": "compositeMetricId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "compositeMetricId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [compositeMetrics]\", \"attributes\": {\"_rev\": \"string\", \"name\": \"string\", \"direction\": \"string\", \"vendor\": \"string\", \"objectType\": \"array\", \"description\": \"string\", \"enabled\": \"boolean\", \"unitType\": \"string\", \"operation\": {\"type\": \"Must be one of [add, subtract, divide, multiply]\", \"parameters\": [{\"type\": \"Must be one of [constant, metric, compositeMetric]\", \"metricIdentifier\": {\"vendor\": \"string\", \"objectType\": \"array\", \"metric\": \"string\", \"direction\": \"array\"}, \"constant\": {\"value\": 123}, \"compositionId\": \"string\"}]}}}}",
          "required": true,
          "schema": {
            "title": "CompositeMetricUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data22",
                "required": [
                  "id",
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "compositeMetrics"
                    ],
                    "type": "string",
                    "example": "compositeMetrics"
                  },
                  "attributes": {
                    "title": "Attributes33",
                    "required": [
                      "_rev"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string",
                        "description": "Name of the composition"
                      },
                      "direction": {
                        "type": "string",
                        "description": "The composite metric user's defined direction."
                      },
                      "vendor": {
                        "type": "string",
                        "description": "The composite metric user's defined direction."
                      },
                      "objectType": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "Object types to be considered as part of the filter",
                        "example": [
                          {
                            "0": "twamp-pe"
                          },
                          {
                            "0": "twamp-sl",
                            "1": "twamp-sf"
                          }
                        ]
                      },
                      "description": {
                        "type": "string",
                        "description": "Space to provide in depth explanation of the composition."
                      },
                      "enabled": {
                        "type": "boolean"
                      },
                      "unitType": {
                        "type": "string",
                        "description": "The composite metric's unit of measurement."
                      },
                      "operation": {
                        "title": "CompositeMetricOperation",
                        "required": [
                          "type",
                          "parameters"
                        ],
                        "type": "object",
                        "properties": {
                          "type": {
                            "title": "Type26",
                            "enum": [
                              "add",
                              "subtract",
                              "divide",
                              "multiply"
                            ],
                            "type": "string",
                            "example": "add"
                          },
                          "parameters": {
                            "type": "array",
                            "items": {
                              "title": "CompositionParameters",
                              "required": [
                                "type"
                              ],
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Type27",
                                  "enum": [
                                    "constant",
                                    "metric",
                                    "compositeMetric"
                                  ],
                                  "type": "string",
                                  "example": "constant"
                                },
                                "metricIdentifier": {
                                  "title": "MetricIdentifierFilter",
                                  "required": [
                                    "objectType",
                                    "metric"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "vendor": {
                                      "type": "string",
                                      "description": "Vendor name associated with the monitored object",
                                      "example": "accedian-twamp"
                                    },
                                    "objectType": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "Object types to be considered as part of the filter",
                                      "example": [
                                        {
                                          "0": "twamp-pe"
                                        },
                                        {
                                          "0": "twamp-sl",
                                          "1": "twamp-sf"
                                        }
                                      ]
                                    },
                                    "metric": {
                                      "type": "string",
                                      "description": "Name that identifies the specific metric within a monitored object",
                                      "example": "delayP95"
                                    },
                                    "direction": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      },
                                      "description": "Set of one or more directions to be used by the filter to identify required metric records",
                                      "example": [
                                        {
                                          "0": "0"
                                        },
                                        {
                                          "0": "0",
                                          "1": "1"
                                        }
                                      ]
                                    }
                                  },
                                  "description": "Filter object that identifies a specific metric within a monitored object by its key attributes"
                                },
                                "constant": {
                                  "title": "CompositeConstant",
                                  "required": [
                                    "value"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "value": {
                                      "type": "number"
                                    }
                                  },
                                  "description": "For arithmetic compositions, constant float values be used as part of the artihmetic"
                                },
                                "compositionId": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          }
                        },
                        "description": "CompositeMetric metrics operations."
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update a CompositeMetric metric in Datahub"
          }
        }
      ],
      "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": "/updateCompositeMetricV2"
      },
      "task": true
    },
    {
      "name": "deleteCompositeMetricV2",
      "summary": "DeleteCompositeMetricV2",
      "description": "Delete a composite metric specified by the provided Id.",
      "input": [
        {
          "name": "compositeMetricId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "compositeMetricId",
            "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": "/deleteCompositeMetricV2"
      },
      "task": true
    },
    {
      "name": "createConnectorConfigV2",
      "summary": "CreateConnectorConfigV2",
      "description": "Create a ConnectorConfig for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [connectorConfigs]\", \"id\": \"string\", \"attributes\": {\"name\": \"string\", \"url\": \"string\", \"port\": 123, \"pollingFrequency\": 123, \"username\": \"string\", \"password\": \"string\", \"exportGroup\": \"string\", \"datahubHeartbeatFrequency\": 123, \"datahubConnectionRetryFrequency\": 123, \"type\": \"string\", \"zone\": \"string\", \"prometheusAddr\": \"string\", \"prometheusPort\": 123, \"ciscoTelemetryConfig\": {\"logFetchResults\": \"boolean\", \"logTableResults\": \"boolean\", \"recordMappings\": [{\"monitoredObjectId\": \"string\", \"objectType\": \"string\", \"sysUpTimeticks\": \"string\", \"sysCurrentTime\": \"string\", \"mappingType\": \"Must be one of [scalars, array, timetickArray]\", \"mappingMatch\": {\"key\": \"string\", \"matches\": \"string\"}, \"mappings\": [{\"headerName\": \"string\", \"rawSourceName\": \"string\", \"ObjectOIDMappingType\": \"Must be one of [oidIndex, instanceID, encoded, encodedv2, lookup]\", \"rawRecordType\": \"Must be one of [timestamp, fixed, interpolate, mapped, rate, rateMean, rate1, rate5, rate15, oidIndex, timetick, instanceID, encoded, encodedv2, lookup, transformation, instanceIDMap]\", \"includeInObjectId\": \"boolean\", \"Transformation\": {\"Operation\": \"string\", \"Parameter\": \"string\", \"Type\": \"Must be one of [fixed, interpolate]\"}, \"InstanceIDIdx\": \"array\", \"ChildOid\": \"string\", \"LookupSrcName\": \"string\", \"LookupDestName\": \"string\", \"objectIdJoinKey\": \"string\"}]}]}, \"openMetricsConfig\": {\"logFetchResults\": \"boolean\", \"logTableResults\": \"boolean\", \"metricsGatewayHost\": \"string\", \"metricsGatewayPort\": 123, \"metricsGatewayURL\": \"string\", \"metricsGatewayTLS\": \"boolean\", \"metricsGatewayJWT\": \"boolean\", \"blockDuplicateAgentIds\": \"boolean\", \"recordMappings\": [{\"monitoredObjectId\": \"string\", \"objectType\": \"string\", \"sysUpTimeticks\": \"string\", \"sysCurrentTime\": \"string\", \"mappingType\": \"Must be one of [scalars, array, timetickArray]\", \"mappingMatch\": {\"key\": \"string\", \"matches\": \"string\"}, \"mappings\": [{\"headerName\": \"string\", \"rawSourceName\": \"string\", \"ObjectOIDMappingType\": \"Must be one of [oidIndex, instanceID, encoded, encodedv2, lookup]\", \"rawRecordType\": \"Must be one of [timestamp, fixed, interpolate, mapped, rate, rateMean, rate1, rate5, rate15, oidIndex, timetick, instanceID, encoded, encodedv2, lookup, transformation, instanceIDMap]\", \"includeInObjectId\": \"boolean\", \"Transformation\": {\"Operation\": \"string\", \"Parameter\": \"string\", \"Type\": \"Must be one of [fixed, interpolate]\"}, \"InstanceIDIdx\": \"array\", \"ChildOid\": \"string\", \"LookupSrcName\": \"string\", \"LookupDestName\": \"string\", \"objectIdJoinKey\": \"string\"}]}], \"enableNativeMetrics\": \"boolean\"}, \"openMetricsScraperConfig\": {\"prometheusConfig\": \"string\", \"batchFrequency\": \"string\", \"dictionaryReportFrequency\": \"string\"}, \"agentProxyConfig\": {\"orchestratorHost\": \"string\", \"orchestratorPort\": 123, \"orchestratorURL\": \"string\", \"agentProxyHost\": \"string\", \"agentProxyTLS\": \"boolean\", \"agentProxyJWT\": \"boolean\", \"agentProxyPort\": 123, \"agentProxyURL\": \"string\"}, \"SNMPConfig\": {\"targetList\": [{\"host\": \"string\", \"port\": 123, \"name\": \"string\"}], \"logWalkResults\": \"boolean\", \"logSNMPTableResults\": \"boolean\", \"version\": \"string\", \"V3PrivacyProtocol\": \"Must be one of [AES, DES]\", \"V3AuthenticationProtocol\": \"Must be one of [SHA, MD5]\", \"V3PrivMode\": \"Must be one of [NoAuthNoPriv, AuthNoPriv, AuthPriv]\", \"community\": \"string\", \"walkType\": \"Must be one of [walk, bulkwalk]\", \"timeout\": \"string\", \"maxRepetition\": 123, \"baseOIDs\": \"array\", \"mibPath\": \"string\", \"recordMappings\": [{\"monitoredObjectId\": \"string\", \"objectType\": \"string\", \"sysUpTimeticks\": \"string\", \"sysCurrentTime\": \"string\", \"mappingType\": \"Must be one of [scalars, array, timetickArray]\", \"mappingMatch\": {\"key\": \"string\", \"matches\": \"string\"}, \"mappings\": [{\"headerName\": \"string\", \"rawSourceName\": \"string\", \"ObjectOIDMappingType\": \"Must be one of [oidIndex, instanceID, encoded, encodedv2, lookup]\", \"rawRecordType\": \"Must be one of [timestamp, fixed, interpolate, mapped, rate, rateMean, rate1, rate5, rate15, oidIndex, timetick, instanceID, encoded, encodedv2, lookup, transformation, instanceIDMap]\", \"includeInObjectId\": \"boolean\", \"Transformation\": {\"Operation\": \"string\", \"Parameter\": \"string\", \"Type\": \"Must be one of [fixed, interpolate]\"}, \"InstanceIDIdx\": \"array\", \"ChildOid\": \"string\", \"LookupSrcName\": \"string\", \"LookupDestName\": \"string\", \"objectIdJoinKey\": \"string\"}]}], \"testRawFilePaths\": \"array\"}, \"SNMPTrapSenderConfig\": {\"trapTargetHost\": \"string\", \"trapTargetPort\": \"string\", \"community\": \"string\", \"timeout\": 123}, \"MQTTConfig\": {\"brokerURI\": \"string\", \"clientID\": \"string\", \"notificationTopic\": \"string\", \"user\": \"string\", \"token\": \"string\"}, \"restartRoadrunner\": \"boolean\", \"pauseRoadRunnerMetricIngestion\": \"boolean\", \"sessionFilterProfileID\": \"string\"}}}",
          "required": true,
          "schema": {
            "title": "ConnectorConfigCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data23",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "connectorConfigs"
                    ],
                    "type": "string",
                    "example": "connectorConfigs"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes34",
                    "required": [
                      "url",
                      "type"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "url": {
                        "type": "string"
                      },
                      "port": {
                        "type": "integer"
                      },
                      "pollingFrequency": {
                        "type": "integer",
                        "default": 60
                      },
                      "username": {
                        "type": "string"
                      },
                      "password": {
                        "type": "string"
                      },
                      "exportGroup": {
                        "type": "string"
                      },
                      "datahubHeartbeatFrequency": {
                        "type": "integer"
                      },
                      "datahubConnectionRetryFrequency": {
                        "type": "integer"
                      },
                      "type": {
                        "type": "string"
                      },
                      "zone": {
                        "pattern": "^[a-zA-Z0-9:_-]*$",
                        "type": "string"
                      },
                      "prometheusAddr": {
                        "type": "string",
                        "description": "When set, instructs roadrunner to connect to this local prometheus store intermediary metrics"
                      },
                      "prometheusPort": {
                        "type": "integer"
                      },
                      "ciscoTelemetryConfig": {
                        "title": "CiscoTelemetryConfig",
                        "type": "object",
                        "properties": {
                          "logFetchResults": {
                            "type": "boolean",
                            "description": "Intruct roadrunner to dump all data retrieved from cisco-pipeline to log"
                          },
                          "logTableResults": {
                            "type": "boolean",
                            "description": "Intruct roadrunner to dump a table view in the logs of the data extracted from cisco-pipeline. WARNING - On system with lots of\nSNMP targets, this can quite drastically reduce peformance"
                          },
                          "recordMappings": {
                            "type": "array",
                            "items": {
                              "title": "RecordMappingHeader",
                              "required": [
                                "monitoredObjectId",
                                "objectType"
                              ],
                              "type": "object",
                              "properties": {
                                "monitoredObjectId": {
                                  "type": "string"
                                },
                                "objectType": {
                                  "type": "string"
                                },
                                "sysUpTimeticks": {
                                  "type": "string",
                                  "description": "The OID (or SNMPv2-MIB::sysUpTime )"
                                },
                                "sysCurrentTime": {
                                  "type": "string",
                                  "description": "The oid (or mib handle) for the current time of the system. We use that and sysUpTimeTick \nto compute a date from timetick"
                                },
                                "mappingType": {
                                  "title": "MappingType",
                                  "enum": [
                                    "scalars",
                                    "array",
                                    "timetickArray"
                                  ],
                                  "type": "string",
                                  "description": "Describes if the raw record format is a single scalar or if it is express as an array. \nIn some raw format (for instance, SNMP, or CiscoTelemetry), arrays are natively supported. When this is the \ncase, the connectors instance will be instructed to parse the array and generate one row of data\nper row in the array",
                                  "example": "scalars"
                                },
                                "mappingMatch": {
                                  "title": "MatchEntry",
                                  "required": [
                                    "key",
                                    "matches"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "key": {
                                      "type": "string"
                                    },
                                    "matches": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "mappings": {
                                  "type": "array",
                                  "items": {
                                    "title": "RecordMapping",
                                    "required": [
                                      "headerName",
                                      "rawSourceName"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "headerName": {
                                        "type": "string",
                                        "description": "Defines the header name for the column of data to be sent to Analytics"
                                      },
                                      "rawSourceName": {
                                        "type": "string",
                                        "description": "The Source name of the metrics to fetch. For SNMP, this can be either a mib handle (for instance, for Mib2, SNMPv2-MIB::sysName), \nor the equivalent OID (.1.3.6.1.2.1.1.5.0). Note that for in order for mib handle resolution to work, the appropriate mib must have been\nprovided to Connector's deployed instance upfront."
                                      },
                                      "ObjectOIDMappingType": {
                                        "title": "ObjectOIDMappingType",
                                        "enum": [
                                          "oidIndex",
                                          "instanceID",
                                          "encoded",
                                          "encodedv2",
                                          "lookup"
                                        ],
                                        "type": "string",
                                        "description": "Describes how objects IDs are encoded inside the OID. In some cases, portions of the OID are used as an instance ID, and this is important to know\nand use for mapping data to the correct object.",
                                        "example": "oidIndex"
                                      },
                                      "rawRecordType": {
                                        "title": "RawRecordType",
                                        "enum": [
                                          "timestamp",
                                          "fixed",
                                          "interpolate",
                                          "mapped",
                                          "rate",
                                          "rateMean",
                                          "rate1",
                                          "rate5",
                                          "rate15",
                                          "oidIndex",
                                          "timetick",
                                          "instanceID",
                                          "encoded",
                                          "encodedv2",
                                          "lookup",
                                          "transformation",
                                          "instanceIDMap"
                                        ],
                                        "type": "string",
                                        "description": "Describes if the raw record format a generated timestamp at the connector level (for \nsources where the collection time is not available), \"fixed\" (an absolute provided here), \"interpolate\" (we apply the value from another \nfield specified in the rawSourceName -- for instance, if field \"Name\" is interpolated and has rawSourceName=objectId, we will use the computed \nobjectId to set the value of the field \"Name\") or if it is express as an mapped value, (fetched from the data received from the probed host).\n\"rateMean\", \"rate1\", \"rate5\" and \"rate15\" computes the specified rate and sets this mapping with the appropriate value.",
                                        "example": "timestamp"
                                      },
                                      "includeInObjectId": {
                                        "type": "boolean",
                                        "description": "Wether this record's value must be included as part of the object-ID in the row",
                                        "default": false
                                      },
                                      "Transformation": {
                                        "title": "Transformation",
                                        "type": "object",
                                        "properties": {
                                          "Operation": {
                                            "type": "string"
                                          },
                                          "Parameter": {
                                            "type": "string"
                                          },
                                          "Type": {
                                            "title": "Type28",
                                            "enum": [
                                              "fixed",
                                              "interpolate"
                                            ],
                                            "type": "string",
                                            "example": "fixed"
                                          }
                                        }
                                      },
                                      "InstanceIDIdx": {
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "integer"
                                        },
                                        "description": "If it's a single number, it's the index of the value in the OID (after we split on dots).\nIf it's an array of 2, it's the start and end indeces of the OID."
                                      },
                                      "ChildOid": {
                                        "type": "string",
                                        "description": "The full child oid to match on",
                                        "example": "1.2.3"
                                      },
                                      "LookupSrcName": {
                                        "type": "string",
                                        "description": "The source name of the value we will need in order to do the lookup"
                                      },
                                      "LookupDestName": {
                                        "type": "string",
                                        "description": "The name of the field we're matching the lookup against'"
                                      },
                                      "objectIdJoinKey": {
                                        "type": "string",
                                        "description": "Which chain of characters to use to join this value's to the object Id. Only applicable when \"includeInObjectId\" is true",
                                        "default": "-"
                                      }
                                    }
                                  },
                                  "description": ""
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "openMetricsConfig": {
                        "title": "OpenMetricsConfig",
                        "type": "object",
                        "properties": {
                          "logFetchResults": {
                            "type": "boolean",
                            "description": "Instruct roadrunner to dump all data retrieved from open metrics pipeline to log"
                          },
                          "logTableResults": {
                            "type": "boolean",
                            "description": "Instruct roadrunner to dump a table view in the logs of the data extracted from open metrics pipeline"
                          },
                          "metricsGatewayHost": {
                            "type": "string",
                            "description": "The address of the web server which the data source will receive metrics on."
                          },
                          "metricsGatewayPort": {
                            "type": "integer",
                            "description": "The port for the web server which the data source will receive metrics on."
                          },
                          "metricsGatewayURL": {
                            "type": "string",
                            "description": "Endpoint on the web server on which open metrics will be received."
                          },
                          "metricsGatewayTLS": {
                            "type": "boolean",
                            "description": "Use TLS between the agent and RR for OpenMetrics data"
                          },
                          "metricsGatewayJWT": {
                            "type": "boolean",
                            "description": "Perform JWT verification on connections between the sensor agents and RR for OpenMetricsData",
                            "default": true
                          },
                          "blockDuplicateAgentIds": {
                            "type": "boolean",
                            "description": "Block connections from sensor agents if another connection is already registered with the same id",
                            "default": true
                          },
                          "recordMappings": {
                            "type": "array",
                            "items": {
                              "title": "RecordMappingHeader",
                              "required": [
                                "monitoredObjectId",
                                "objectType"
                              ],
                              "type": "object",
                              "properties": {
                                "monitoredObjectId": {
                                  "type": "string"
                                },
                                "objectType": {
                                  "type": "string"
                                },
                                "sysUpTimeticks": {
                                  "type": "string",
                                  "description": "The OID (or SNMPv2-MIB::sysUpTime )"
                                },
                                "sysCurrentTime": {
                                  "type": "string",
                                  "description": "The oid (or mib handle) for the current time of the system. We use that and sysUpTimeTick \nto compute a date from timetick"
                                },
                                "mappingType": {
                                  "title": "MappingType",
                                  "enum": [
                                    "scalars",
                                    "array",
                                    "timetickArray"
                                  ],
                                  "type": "string",
                                  "description": "Describes if the raw record format is a single scalar or if it is express as an array. \nIn some raw format (for instance, SNMP, or CiscoTelemetry), arrays are natively supported. When this is the \ncase, the connectors instance will be instructed to parse the array and generate one row of data\nper row in the array",
                                  "example": "scalars"
                                },
                                "mappingMatch": {
                                  "title": "MatchEntry",
                                  "required": [
                                    "key",
                                    "matches"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "key": {
                                      "type": "string"
                                    },
                                    "matches": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "mappings": {
                                  "type": "array",
                                  "items": {
                                    "title": "RecordMapping",
                                    "required": [
                                      "headerName",
                                      "rawSourceName"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "headerName": {
                                        "type": "string",
                                        "description": "Defines the header name for the column of data to be sent to Analytics"
                                      },
                                      "rawSourceName": {
                                        "type": "string",
                                        "description": "The Source name of the metrics to fetch. For SNMP, this can be either a mib handle (for instance, for Mib2, SNMPv2-MIB::sysName), \nor the equivalent OID (.1.3.6.1.2.1.1.5.0). Note that for in order for mib handle resolution to work, the appropriate mib must have been\nprovided to Connector's deployed instance upfront."
                                      },
                                      "ObjectOIDMappingType": {
                                        "title": "ObjectOIDMappingType",
                                        "enum": [
                                          "oidIndex",
                                          "instanceID",
                                          "encoded",
                                          "encodedv2",
                                          "lookup"
                                        ],
                                        "type": "string",
                                        "description": "Describes how objects IDs are encoded inside the OID. In some cases, portions of the OID are used as an instance ID, and this is important to know\nand use for mapping data to the correct object.",
                                        "example": "oidIndex"
                                      },
                                      "rawRecordType": {
                                        "title": "RawRecordType",
                                        "enum": [
                                          "timestamp",
                                          "fixed",
                                          "interpolate",
                                          "mapped",
                                          "rate",
                                          "rateMean",
                                          "rate1",
                                          "rate5",
                                          "rate15",
                                          "oidIndex",
                                          "timetick",
                                          "instanceID",
                                          "encoded",
                                          "encodedv2",
                                          "lookup",
                                          "transformation",
                                          "instanceIDMap"
                                        ],
                                        "type": "string",
                                        "description": "Describes if the raw record format a generated timestamp at the connector level (for \nsources where the collection time is not available), \"fixed\" (an absolute provided here), \"interpolate\" (we apply the value from another \nfield specified in the rawSourceName -- for instance, if field \"Name\" is interpolated and has rawSourceName=objectId, we will use the computed \nobjectId to set the value of the field \"Name\") or if it is express as an mapped value, (fetched from the data received from the probed host).\n\"rateMean\", \"rate1\", \"rate5\" and \"rate15\" computes the specified rate and sets this mapping with the appropriate value.",
                                        "example": "timestamp"
                                      },
                                      "includeInObjectId": {
                                        "type": "boolean",
                                        "description": "Wether this record's value must be included as part of the object-ID in the row",
                                        "default": false
                                      },
                                      "Transformation": {
                                        "title": "Transformation",
                                        "type": "object",
                                        "properties": {
                                          "Operation": {
                                            "type": "string"
                                          },
                                          "Parameter": {
                                            "type": "string"
                                          },
                                          "Type": {
                                            "title": "Type28",
                                            "enum": [
                                              "fixed",
                                              "interpolate"
                                            ],
                                            "type": "string",
                                            "example": "fixed"
                                          }
                                        }
                                      },
                                      "InstanceIDIdx": {
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "integer"
                                        },
                                        "description": "If it's a single number, it's the index of the value in the OID (after we split on dots).\nIf it's an array of 2, it's the start and end indeces of the OID."
                                      },
                                      "ChildOid": {
                                        "type": "string",
                                        "description": "The full child oid to match on",
                                        "example": "1.2.3"
                                      },
                                      "LookupSrcName": {
                                        "type": "string",
                                        "description": "The source name of the value we will need in order to do the lookup"
                                      },
                                      "LookupDestName": {
                                        "type": "string",
                                        "description": "The name of the field we're matching the lookup against'"
                                      },
                                      "objectIdJoinKey": {
                                        "type": "string",
                                        "description": "Which chain of characters to use to join this value's to the object Id. Only applicable when \"includeInObjectId\" is true",
                                        "default": "-"
                                      }
                                    }
                                  },
                                  "description": ""
                                }
                              }
                            },
                            "description": ""
                          },
                          "enableNativeMetrics": {
                            "type": "boolean",
                            "description": "Feature flag to enable connector to publish open metrics in native format."
                          }
                        }
                      },
                      "openMetricsScraperConfig": {
                        "title": "OpenMetricsScraperConfig",
                        "required": [
                          "prometheusConfig"
                        ],
                        "type": "object",
                        "properties": {
                          "prometheusConfig": {
                            "type": "string",
                            "description": "Raw contents of a prometheus.yml config to use while scraping"
                          },
                          "batchFrequency": {
                            "type": "string",
                            "description": "Metric data is batched and marked as ready for sending from RoadRunner at this frequency.",
                            "example": "30s"
                          },
                          "dictionaryReportFrequency": {
                            "type": "string",
                            "description": "Ingestion Dictionaries are sent from RoadRunner at this frequency.",
                            "example": "30s"
                          }
                        }
                      },
                      "agentProxyConfig": {
                        "title": "AgentProxyConfig",
                        "type": "object",
                        "properties": {
                          "orchestratorHost": {
                            "type": "string",
                            "description": "Address or hostname of the sensor orchestration component."
                          },
                          "orchestratorPort": {
                            "type": "integer",
                            "description": "The port which the sensor orchestration component is listening for connections on."
                          },
                          "orchestratorURL": {
                            "type": "string",
                            "description": "The endpoint on the sensor orchestrator for agent control traffic."
                          },
                          "agentProxyHost": {
                            "type": "string",
                            "description": "The address of the proxy server used by the sensor agents for control messages."
                          },
                          "agentProxyTLS": {
                            "type": "boolean",
                            "description": "Use TLS between the agent and RR for control messages"
                          },
                          "agentProxyJWT": {
                            "type": "boolean",
                            "description": "Perform JWT authentication on connections between the sensor agents and RR for control messages",
                            "default": true
                          },
                          "agentProxyPort": {
                            "type": "integer",
                            "description": "The port for the proxy server used by the sensor agents for control messages."
                          },
                          "agentProxyURL": {
                            "type": "string",
                            "description": "Endpoint on the proxy server for sensor agents to use for establishing a connection to the proxy."
                          }
                        }
                      },
                      "SNMPConfig": {
                        "title": "SNMPConfig",
                        "required": [
                          "targetList",
                          "version",
                          "baseOIDs"
                        ],
                        "type": "object",
                        "properties": {
                          "targetList": {
                            "type": "array",
                            "items": {
                              "title": "TargetList",
                              "type": "object",
                              "properties": {
                                "host": {
                                  "type": "string"
                                },
                                "port": {
                                  "type": "integer",
                                  "default": 161
                                },
                                "name": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          },
                          "logWalkResults": {
                            "type": "boolean",
                            "description": "Intruct roadrunner to dump the total walk resutls to log for debug purposes. WARNING - On system with lots of\nSNMP targets, this can quite drastically reduce peformance"
                          },
                          "logSNMPTableResults": {
                            "type": "boolean",
                            "description": "Intruct roadrunner to dump a table view in the logs of the data extracted from the SNMP walk. WARNING - On system with lots of\nSNMP targets, this can quite drastically reduce peformance"
                          },
                          "version": {
                            "type": "string",
                            "description": "The SNMP Version protocol to use (either v2c or v3)",
                            "example": "v3"
                          },
                          "V3PrivacyProtocol": {
                            "title": "V3PrivacyProtocol",
                            "enum": [
                              "AES",
                              "DES"
                            ],
                            "type": "string",
                            "description": "The privacy protocol to use (AES or DES)",
                            "example": "AES"
                          },
                          "V3AuthenticationProtocol": {
                            "title": "V3AuthenticationProtocol",
                            "enum": [
                              "SHA",
                              "MD5"
                            ],
                            "type": "string",
                            "description": "The authentication protocol to use for V3 (SHA or MD5)",
                            "example": "SHA"
                          },
                          "V3PrivMode": {
                            "title": "V3PrivMode",
                            "enum": [
                              "NoAuthNoPriv",
                              "AuthNoPriv",
                              "AuthPriv"
                            ],
                            "type": "string",
                            "description": "The v3 privacy mode (NoAuthNoPriv, AuthNoPriv, AuthPriv)",
                            "example": "NoAuthNoPriv"
                          },
                          "community": {
                            "type": "string",
                            "description": "When using v2c SNMP version, the community to use",
                            "default": "public"
                          },
                          "walkType": {
                            "title": "WalkType",
                            "enum": [
                              "walk",
                              "bulkwalk"
                            ],
                            "type": "string",
                            "description": "Allows the choice of using snmp walk vs snmp bulk walk",
                            "example": "walk"
                          },
                          "timeout": {
                            "type": "string",
                            "description": "The fetch timeout duration (in go time.Duration string format)",
                            "default": "10s"
                          },
                          "maxRepetition": {
                            "type": "integer",
                            "description": "The maximum number of elements to fetch in a bulkGetNext (used during SNMPv3 walks)",
                            "default": 20
                          },
                          "baseOIDs": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "The base OID to start the SNMP walk from. A single bulk fetch is issued every Polling frequency using the OID as root"
                          },
                          "mibPath": {
                            "type": "string",
                            "description": "A path that is local to the roadrunner instances and that contains properly json formatted mibs for mib resolution. \nSee https://github.com/qmsk/snmpbot for details",
                            "default": "/defaultmibs/"
                          },
                          "recordMappings": {
                            "type": "array",
                            "items": {
                              "title": "RecordMappingHeader",
                              "required": [
                                "monitoredObjectId",
                                "objectType"
                              ],
                              "type": "object",
                              "properties": {
                                "monitoredObjectId": {
                                  "type": "string"
                                },
                                "objectType": {
                                  "type": "string"
                                },
                                "sysUpTimeticks": {
                                  "type": "string",
                                  "description": "The OID (or SNMPv2-MIB::sysUpTime )"
                                },
                                "sysCurrentTime": {
                                  "type": "string",
                                  "description": "The oid (or mib handle) for the current time of the system. We use that and sysUpTimeTick \nto compute a date from timetick"
                                },
                                "mappingType": {
                                  "title": "MappingType",
                                  "enum": [
                                    "scalars",
                                    "array",
                                    "timetickArray"
                                  ],
                                  "type": "string",
                                  "description": "Describes if the raw record format is a single scalar or if it is express as an array. \nIn some raw format (for instance, SNMP, or CiscoTelemetry), arrays are natively supported. When this is the \ncase, the connectors instance will be instructed to parse the array and generate one row of data\nper row in the array",
                                  "example": "scalars"
                                },
                                "mappingMatch": {
                                  "title": "MatchEntry",
                                  "required": [
                                    "key",
                                    "matches"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "key": {
                                      "type": "string"
                                    },
                                    "matches": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "mappings": {
                                  "type": "array",
                                  "items": {
                                    "title": "RecordMapping",
                                    "required": [
                                      "headerName",
                                      "rawSourceName"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "headerName": {
                                        "type": "string",
                                        "description": "Defines the header name for the column of data to be sent to Analytics"
                                      },
                                      "rawSourceName": {
                                        "type": "string",
                                        "description": "The Source name of the metrics to fetch. For SNMP, this can be either a mib handle (for instance, for Mib2, SNMPv2-MIB::sysName), \nor the equivalent OID (.1.3.6.1.2.1.1.5.0). Note that for in order for mib handle resolution to work, the appropriate mib must have been\nprovided to Connector's deployed instance upfront."
                                      },
                                      "ObjectOIDMappingType": {
                                        "title": "ObjectOIDMappingType",
                                        "enum": [
                                          "oidIndex",
                                          "instanceID",
                                          "encoded",
                                          "encodedv2",
                                          "lookup"
                                        ],
                                        "type": "string",
                                        "description": "Describes how objects IDs are encoded inside the OID. In some cases, portions of the OID are used as an instance ID, and this is important to know\nand use for mapping data to the correct object.",
                                        "example": "oidIndex"
                                      },
                                      "rawRecordType": {
                                        "title": "RawRecordType",
                                        "enum": [
                                          "timestamp",
                                          "fixed",
                                          "interpolate",
                                          "mapped",
                                          "rate",
                                          "rateMean",
                                          "rate1",
                                          "rate5",
                                          "rate15",
                                          "oidIndex",
                                          "timetick",
                                          "instanceID",
                                          "encoded",
                                          "encodedv2",
                                          "lookup",
                                          "transformation",
                                          "instanceIDMap"
                                        ],
                                        "type": "string",
                                        "description": "Describes if the raw record format a generated timestamp at the connector level (for \nsources where the collection time is not available), \"fixed\" (an absolute provided here), \"interpolate\" (we apply the value from another \nfield specified in the rawSourceName -- for instance, if field \"Name\" is interpolated and has rawSourceName=objectId, we will use the computed \nobjectId to set the value of the field \"Name\") or if it is express as an mapped value, (fetched from the data received from the probed host).\n\"rateMean\", \"rate1\", \"rate5\" and \"rate15\" computes the specified rate and sets this mapping with the appropriate value.",
                                        "example": "timestamp"
                                      },
                                      "includeInObjectId": {
                                        "type": "boolean",
                                        "description": "Wether this record's value must be included as part of the object-ID in the row",
                                        "default": false
                                      },
                                      "Transformation": {
                                        "title": "Transformation",
                                        "type": "object",
                                        "properties": {
                                          "Operation": {
                                            "type": "string"
                                          },
                                          "Parameter": {
                                            "type": "string"
                                          },
                                          "Type": {
                                            "title": "Type28",
                                            "enum": [
                                              "fixed",
                                              "interpolate"
                                            ],
                                            "type": "string",
                                            "example": "fixed"
                                          }
                                        }
                                      },
                                      "InstanceIDIdx": {
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "integer"
                                        },
                                        "description": "If it's a single number, it's the index of the value in the OID (after we split on dots).\nIf it's an array of 2, it's the start and end indeces of the OID."
                                      },
                                      "ChildOid": {
                                        "type": "string",
                                        "description": "The full child oid to match on",
                                        "example": "1.2.3"
                                      },
                                      "LookupSrcName": {
                                        "type": "string",
                                        "description": "The source name of the value we will need in order to do the lookup"
                                      },
                                      "LookupDestName": {
                                        "type": "string",
                                        "description": "The name of the field we're matching the lookup against'"
                                      },
                                      "objectIdJoinKey": {
                                        "type": "string",
                                        "description": "Which chain of characters to use to join this value's to the object Id. Only applicable when \"includeInObjectId\" is true",
                                        "default": "-"
                                      }
                                    }
                                  },
                                  "description": ""
                                }
                              }
                            },
                            "description": ""
                          },
                          "testRawFilePaths": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "For SNMP testing, Roadrunner can fetch a test file from that location and serve it instead of \nhaving to connect to real devices."
                          }
                        }
                      },
                      "SNMPTrapSenderConfig": {
                        "title": "SNMPTrapSenderConfig",
                        "required": [
                          "trapTargetHost",
                          "trapTargetPort",
                          "community"
                        ],
                        "type": "object",
                        "properties": {
                          "trapTargetHost": {
                            "type": "string"
                          },
                          "trapTargetPort": {
                            "type": "string"
                          },
                          "community": {
                            "type": "string"
                          },
                          "timeout": {
                            "type": "integer"
                          }
                        }
                      },
                      "MQTTConfig": {
                        "title": "MQTTConfig",
                        "type": "object",
                        "properties": {
                          "brokerURI": {
                            "type": "string"
                          },
                          "clientID": {
                            "type": "string"
                          },
                          "notificationTopic": {
                            "type": "string"
                          },
                          "user": {
                            "type": "string"
                          },
                          "token": {
                            "type": "string"
                          }
                        }
                      },
                      "restartRoadrunner": {
                        "type": "boolean",
                        "description": "Triggers a restart of roadrunner on configuration reload"
                      },
                      "pauseRoadRunnerMetricIngestion": {
                        "type": "boolean",
                        "description": "Pauses RoadRunner Ingestion",
                        "default": false
                      },
                      "sessionFilterProfileID": {
                        "type": "string",
                        "description": "If set, RR will fetch and use the session filter profile for the given ID."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/createConnectorConfigV2"
      },
      "task": true
    },
    {
      "name": "getAllConnectorConfigsV2",
      "summary": "GetAllConnectorConfigsV2",
      "description": "Retrieve all ConnectorConfigs for the specified Tenant.",
      "input": [
        {
          "name": "zone",
          "type": "string",
          "info": ": string",
          "required": false,
          "schema": {
            "title": "zone",
            "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": "/getAllConnectorConfigsV2"
      },
      "task": true
    },
    {
      "name": "getConnectorConfigV2",
      "summary": "GetConnectorConfigV2",
      "description": "Retrieve a Tenant ConnectorConfig by Id.",
      "input": [
        {
          "name": "connectorId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "connectorId",
            "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": "/getConnectorConfigV2"
      },
      "task": true
    },
    {
      "name": "updateConnectorConfigV2",
      "summary": "UpdateConnectorConfigV2",
      "description": "Update a Tenant ConnectorConfig specified by the provided Connector Id.",
      "input": [
        {
          "name": "connectorId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "connectorId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [connectorConfigs]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"name\": \"string\", \"url\": \"string\", \"port\": 123, \"pollingFrequency\": 123, \"username\": \"string\", \"password\": \"string\", \"exportGroup\": \"string\", \"datahubHeartbeatFrequency\": 123, \"datahubConnectionRetryFrequency\": 123, \"type\": \"string\", \"zone\": \"string\", \"prometheusAddr\": \"string\", \"prometheusPort\": 123, \"ciscoTelemetryConfig\": {\"logFetchResults\": \"boolean\", \"logTableResults\": \"boolean\", \"recordMappings\": [{\"monitoredObjectId\": \"string\", \"objectType\": \"string\", \"sysUpTimeticks\": \"string\", \"sysCurrentTime\": \"string\", \"mappingType\": \"Must be one of [scalars, array, timetickArray]\", \"mappingMatch\": {\"key\": \"string\", \"matches\": \"string\"}, \"mappings\": [{\"headerName\": \"string\", \"rawSourceName\": \"string\", \"ObjectOIDMappingType\": \"Must be one of [oidIndex, instanceID, encoded, encodedv2, lookup]\", \"rawRecordType\": \"Must be one of [timestamp, fixed, interpolate, mapped, rate, rateMean, rate1, rate5, rate15, oidIndex, timetick, instanceID, encoded, encodedv2, lookup, transformation, instanceIDMap]\", \"includeInObjectId\": \"boolean\", \"Transformation\": {\"Operation\": \"string\", \"Parameter\": \"string\", \"Type\": \"Must be one of [fixed, interpolate]\"}, \"InstanceIDIdx\": \"array\", \"ChildOid\": \"string\", \"LookupSrcName\": \"string\", \"LookupDestName\": \"string\", \"objectIdJoinKey\": \"string\"}]}]}, \"openMetricsConfig\": {\"logFetchResults\": \"boolean\", \"logTableResults\": \"boolean\", \"metricsGatewayHost\": \"string\", \"metricsGatewayPort\": 123, \"metricsGatewayURL\": \"string\", \"metricsGatewayTLS\": \"boolean\", \"metricsGatewayJWT\": \"boolean\", \"blockDuplicateAgentIds\": \"boolean\", \"recordMappings\": [{\"monitoredObjectId\": \"string\", \"objectType\": \"string\", \"sysUpTimeticks\": \"string\", \"sysCurrentTime\": \"string\", \"mappingType\": \"Must be one of [scalars, array, timetickArray]\", \"mappingMatch\": {\"key\": \"string\", \"matches\": \"string\"}, \"mappings\": [{\"headerName\": \"string\", \"rawSourceName\": \"string\", \"ObjectOIDMappingType\": \"Must be one of [oidIndex, instanceID, encoded, encodedv2, lookup]\", \"rawRecordType\": \"Must be one of [timestamp, fixed, interpolate, mapped, rate, rateMean, rate1, rate5, rate15, oidIndex, timetick, instanceID, encoded, encodedv2, lookup, transformation, instanceIDMap]\", \"includeInObjectId\": \"boolean\", \"Transformation\": {\"Operation\": \"string\", \"Parameter\": \"string\", \"Type\": \"Must be one of [fixed, interpolate]\"}, \"InstanceIDIdx\": \"array\", \"ChildOid\": \"string\", \"LookupSrcName\": \"string\", \"LookupDestName\": \"string\", \"objectIdJoinKey\": \"string\"}]}], \"enableNativeMetrics\": \"boolean\"}, \"openMetricsScraperConfig\": {\"prometheusConfig\": \"string\", \"batchFrequency\": \"string\", \"dictionaryReportFrequency\": \"string\"}, \"agentProxyConfig\": {\"orchestratorHost\": \"string\", \"orchestratorPort\": 123, \"orchestratorURL\": \"string\", \"agentProxyHost\": \"string\", \"agentProxyTLS\": \"boolean\", \"agentProxyJWT\": \"boolean\", \"agentProxyPort\": 123, \"agentProxyURL\": \"string\"}, \"SNMPConfig\": {\"targetList\": [{\"host\": \"string\", \"port\": 123, \"name\": \"string\"}], \"logWalkResults\": \"boolean\", \"logSNMPTableResults\": \"boolean\", \"version\": \"string\", \"V3PrivacyProtocol\": \"Must be one of [AES, DES]\", \"V3AuthenticationProtocol\": \"Must be one of [SHA, MD5]\", \"V3PrivMode\": \"Must be one of [NoAuthNoPriv, AuthNoPriv, AuthPriv]\", \"community\": \"string\", \"walkType\": \"Must be one of [walk, bulkwalk]\", \"timeout\": \"string\", \"maxRepetition\": 123, \"baseOIDs\": \"array\", \"mibPath\": \"string\", \"recordMappings\": [{\"monitoredObjectId\": \"string\", \"objectType\": \"string\", \"sysUpTimeticks\": \"string\", \"sysCurrentTime\": \"string\", \"mappingType\": \"Must be one of [scalars, array, timetickArray]\", \"mappingMatch\": {\"key\": \"string\", \"matches\": \"string\"}, \"mappings\": [{\"headerName\": \"string\", \"rawSourceName\": \"string\", \"ObjectOIDMappingType\": \"Must be one of [oidIndex, instanceID, encoded, encodedv2, lookup]\", \"rawRecordType\": \"Must be one of [timestamp, fixed, interpolate, mapped, rate, rateMean, rate1, rate5, rate15, oidIndex, timetick, instanceID, encoded, encodedv2, lookup, transformation, instanceIDMap]\", \"includeInObjectId\": \"boolean\", \"Transformation\": {\"Operation\": \"string\", \"Parameter\": \"string\", \"Type\": \"Must be one of [fixed, interpolate]\"}, \"InstanceIDIdx\": \"array\", \"ChildOid\": \"string\", \"LookupSrcName\": \"string\", \"LookupDestName\": \"string\", \"objectIdJoinKey\": \"string\"}]}], \"testRawFilePaths\": \"array\"}, \"SNMPTrapSenderConfig\": {\"trapTargetHost\": \"string\", \"trapTargetPort\": \"string\", \"community\": \"string\", \"timeout\": 123}, \"MQTTConfig\": {\"brokerURI\": \"string\", \"clientID\": \"string\", \"notificationTopic\": \"string\", \"user\": \"string\", \"token\": \"string\"}, \"sessionFilterProfileID\": \"string\"}}}",
          "required": true,
          "schema": {
            "title": "ConnectorConfigUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data24",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "connectorConfigs"
                    ],
                    "type": "string",
                    "example": "connectorConfigs"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes35",
                    "required": [
                      "_rev"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "name": {
                        "type": "string"
                      },
                      "url": {
                        "type": "string"
                      },
                      "port": {
                        "type": "integer"
                      },
                      "pollingFrequency": {
                        "type": "integer"
                      },
                      "username": {
                        "type": "string"
                      },
                      "password": {
                        "type": "string"
                      },
                      "exportGroup": {
                        "type": "string"
                      },
                      "datahubHeartbeatFrequency": {
                        "type": "integer"
                      },
                      "datahubConnectionRetryFrequency": {
                        "type": "integer"
                      },
                      "type": {
                        "type": "string"
                      },
                      "zone": {
                        "pattern": "^[a-zA-Z0-9_-]*$",
                        "type": "string"
                      },
                      "prometheusAddr": {
                        "type": "string",
                        "description": "When set, instructs roadrunner to connect to this local prometheus store intermediary metrics"
                      },
                      "prometheusPort": {
                        "type": "integer"
                      },
                      "ciscoTelemetryConfig": {
                        "title": "CiscoTelemetryConfig",
                        "type": "object",
                        "properties": {
                          "logFetchResults": {
                            "type": "boolean",
                            "description": "Intruct roadrunner to dump all data retrieved from cisco-pipeline to log"
                          },
                          "logTableResults": {
                            "type": "boolean",
                            "description": "Intruct roadrunner to dump a table view in the logs of the data extracted from cisco-pipeline. WARNING - On system with lots of\nSNMP targets, this can quite drastically reduce peformance"
                          },
                          "recordMappings": {
                            "type": "array",
                            "items": {
                              "title": "RecordMappingHeader",
                              "required": [
                                "monitoredObjectId",
                                "objectType"
                              ],
                              "type": "object",
                              "properties": {
                                "monitoredObjectId": {
                                  "type": "string"
                                },
                                "objectType": {
                                  "type": "string"
                                },
                                "sysUpTimeticks": {
                                  "type": "string",
                                  "description": "The OID (or SNMPv2-MIB::sysUpTime )"
                                },
                                "sysCurrentTime": {
                                  "type": "string",
                                  "description": "The oid (or mib handle) for the current time of the system. We use that and sysUpTimeTick \nto compute a date from timetick"
                                },
                                "mappingType": {
                                  "title": "MappingType",
                                  "enum": [
                                    "scalars",
                                    "array",
                                    "timetickArray"
                                  ],
                                  "type": "string",
                                  "description": "Describes if the raw record format is a single scalar or if it is express as an array. \nIn some raw format (for instance, SNMP, or CiscoTelemetry), arrays are natively supported. When this is the \ncase, the connectors instance will be instructed to parse the array and generate one row of data\nper row in the array",
                                  "example": "scalars"
                                },
                                "mappingMatch": {
                                  "title": "MatchEntry",
                                  "required": [
                                    "key",
                                    "matches"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "key": {
                                      "type": "string"
                                    },
                                    "matches": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "mappings": {
                                  "type": "array",
                                  "items": {
                                    "title": "RecordMapping",
                                    "required": [
                                      "headerName",
                                      "rawSourceName"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "headerName": {
                                        "type": "string",
                                        "description": "Defines the header name for the column of data to be sent to Analytics"
                                      },
                                      "rawSourceName": {
                                        "type": "string",
                                        "description": "The Source name of the metrics to fetch. For SNMP, this can be either a mib handle (for instance, for Mib2, SNMPv2-MIB::sysName), \nor the equivalent OID (.1.3.6.1.2.1.1.5.0). Note that for in order for mib handle resolution to work, the appropriate mib must have been\nprovided to Connector's deployed instance upfront."
                                      },
                                      "ObjectOIDMappingType": {
                                        "title": "ObjectOIDMappingType",
                                        "enum": [
                                          "oidIndex",
                                          "instanceID",
                                          "encoded",
                                          "encodedv2",
                                          "lookup"
                                        ],
                                        "type": "string",
                                        "description": "Describes how objects IDs are encoded inside the OID. In some cases, portions of the OID are used as an instance ID, and this is important to know\nand use for mapping data to the correct object.",
                                        "example": "oidIndex"
                                      },
                                      "rawRecordType": {
                                        "title": "RawRecordType",
                                        "enum": [
                                          "timestamp",
                                          "fixed",
                                          "interpolate",
                                          "mapped",
                                          "rate",
                                          "rateMean",
                                          "rate1",
                                          "rate5",
                                          "rate15",
                                          "oidIndex",
                                          "timetick",
                                          "instanceID",
                                          "encoded",
                                          "encodedv2",
                                          "lookup",
                                          "transformation",
                                          "instanceIDMap"
                                        ],
                                        "type": "string",
                                        "description": "Describes if the raw record format a generated timestamp at the connector level (for \nsources where the collection time is not available), \"fixed\" (an absolute provided here), \"interpolate\" (we apply the value from another \nfield specified in the rawSourceName -- for instance, if field \"Name\" is interpolated and has rawSourceName=objectId, we will use the computed \nobjectId to set the value of the field \"Name\") or if it is express as an mapped value, (fetched from the data received from the probed host).\n\"rateMean\", \"rate1\", \"rate5\" and \"rate15\" computes the specified rate and sets this mapping with the appropriate value.",
                                        "example": "timestamp"
                                      },
                                      "includeInObjectId": {
                                        "type": "boolean",
                                        "description": "Wether this record's value must be included as part of the object-ID in the row",
                                        "default": false
                                      },
                                      "Transformation": {
                                        "title": "Transformation",
                                        "type": "object",
                                        "properties": {
                                          "Operation": {
                                            "type": "string"
                                          },
                                          "Parameter": {
                                            "type": "string"
                                          },
                                          "Type": {
                                            "title": "Type28",
                                            "enum": [
                                              "fixed",
                                              "interpolate"
                                            ],
                                            "type": "string",
                                            "example": "fixed"
                                          }
                                        }
                                      },
                                      "InstanceIDIdx": {
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "integer"
                                        },
                                        "description": "If it's a single number, it's the index of the value in the OID (after we split on dots).\nIf it's an array of 2, it's the start and end indeces of the OID."
                                      },
                                      "ChildOid": {
                                        "type": "string",
                                        "description": "The full child oid to match on",
                                        "example": "1.2.3"
                                      },
                                      "LookupSrcName": {
                                        "type": "string",
                                        "description": "The source name of the value we will need in order to do the lookup"
                                      },
                                      "LookupDestName": {
                                        "type": "string",
                                        "description": "The name of the field we're matching the lookup against'"
                                      },
                                      "objectIdJoinKey": {
                                        "type": "string",
                                        "description": "Which chain of characters to use to join this value's to the object Id. Only applicable when \"includeInObjectId\" is true",
                                        "default": "-"
                                      }
                                    }
                                  },
                                  "description": ""
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "openMetricsConfig": {
                        "title": "OpenMetricsConfig",
                        "type": "object",
                        "properties": {
                          "logFetchResults": {
                            "type": "boolean",
                            "description": "Instruct roadrunner to dump all data retrieved from open metrics pipeline to log"
                          },
                          "logTableResults": {
                            "type": "boolean",
                            "description": "Instruct roadrunner to dump a table view in the logs of the data extracted from open metrics pipeline"
                          },
                          "metricsGatewayHost": {
                            "type": "string",
                            "description": "The address of the web server which the data source will receive metrics on."
                          },
                          "metricsGatewayPort": {
                            "type": "integer",
                            "description": "The port for the web server which the data source will receive metrics on."
                          },
                          "metricsGatewayURL": {
                            "type": "string",
                            "description": "Endpoint on the web server on which open metrics will be received."
                          },
                          "metricsGatewayTLS": {
                            "type": "boolean",
                            "description": "Use TLS between the agent and RR for OpenMetrics data"
                          },
                          "metricsGatewayJWT": {
                            "type": "boolean",
                            "description": "Perform JWT verification on connections between the sensor agents and RR for OpenMetricsData",
                            "default": true
                          },
                          "blockDuplicateAgentIds": {
                            "type": "boolean",
                            "description": "Block connections from sensor agents if another connection is already registered with the same id",
                            "default": true
                          },
                          "recordMappings": {
                            "type": "array",
                            "items": {
                              "title": "RecordMappingHeader",
                              "required": [
                                "monitoredObjectId",
                                "objectType"
                              ],
                              "type": "object",
                              "properties": {
                                "monitoredObjectId": {
                                  "type": "string"
                                },
                                "objectType": {
                                  "type": "string"
                                },
                                "sysUpTimeticks": {
                                  "type": "string",
                                  "description": "The OID (or SNMPv2-MIB::sysUpTime )"
                                },
                                "sysCurrentTime": {
                                  "type": "string",
                                  "description": "The oid (or mib handle) for the current time of the system. We use that and sysUpTimeTick \nto compute a date from timetick"
                                },
                                "mappingType": {
                                  "title": "MappingType",
                                  "enum": [
                                    "scalars",
                                    "array",
                                    "timetickArray"
                                  ],
                                  "type": "string",
                                  "description": "Describes if the raw record format is a single scalar or if it is express as an array. \nIn some raw format (for instance, SNMP, or CiscoTelemetry), arrays are natively supported. When this is the \ncase, the connectors instance will be instructed to parse the array and generate one row of data\nper row in the array",
                                  "example": "scalars"
                                },
                                "mappingMatch": {
                                  "title": "MatchEntry",
                                  "required": [
                                    "key",
                                    "matches"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "key": {
                                      "type": "string"
                                    },
                                    "matches": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "mappings": {
                                  "type": "array",
                                  "items": {
                                    "title": "RecordMapping",
                                    "required": [
                                      "headerName",
                                      "rawSourceName"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "headerName": {
                                        "type": "string",
                                        "description": "Defines the header name for the column of data to be sent to Analytics"
                                      },
                                      "rawSourceName": {
                                        "type": "string",
                                        "description": "The Source name of the metrics to fetch. For SNMP, this can be either a mib handle (for instance, for Mib2, SNMPv2-MIB::sysName), \nor the equivalent OID (.1.3.6.1.2.1.1.5.0). Note that for in order for mib handle resolution to work, the appropriate mib must have been\nprovided to Connector's deployed instance upfront."
                                      },
                                      "ObjectOIDMappingType": {
                                        "title": "ObjectOIDMappingType",
                                        "enum": [
                                          "oidIndex",
                                          "instanceID",
                                          "encoded",
                                          "encodedv2",
                                          "lookup"
                                        ],
                                        "type": "string",
                                        "description": "Describes how objects IDs are encoded inside the OID. In some cases, portions of the OID are used as an instance ID, and this is important to know\nand use for mapping data to the correct object.",
                                        "example": "oidIndex"
                                      },
                                      "rawRecordType": {
                                        "title": "RawRecordType",
                                        "enum": [
                                          "timestamp",
                                          "fixed",
                                          "interpolate",
                                          "mapped",
                                          "rate",
                                          "rateMean",
                                          "rate1",
                                          "rate5",
                                          "rate15",
                                          "oidIndex",
                                          "timetick",
                                          "instanceID",
                                          "encoded",
                                          "encodedv2",
                                          "lookup",
                                          "transformation",
                                          "instanceIDMap"
                                        ],
                                        "type": "string",
                                        "description": "Describes if the raw record format a generated timestamp at the connector level (for \nsources where the collection time is not available), \"fixed\" (an absolute provided here), \"interpolate\" (we apply the value from another \nfield specified in the rawSourceName -- for instance, if field \"Name\" is interpolated and has rawSourceName=objectId, we will use the computed \nobjectId to set the value of the field \"Name\") or if it is express as an mapped value, (fetched from the data received from the probed host).\n\"rateMean\", \"rate1\", \"rate5\" and \"rate15\" computes the specified rate and sets this mapping with the appropriate value.",
                                        "example": "timestamp"
                                      },
                                      "includeInObjectId": {
                                        "type": "boolean",
                                        "description": "Wether this record's value must be included as part of the object-ID in the row",
                                        "default": false
                                      },
                                      "Transformation": {
                                        "title": "Transformation",
                                        "type": "object",
                                        "properties": {
                                          "Operation": {
                                            "type": "string"
                                          },
                                          "Parameter": {
                                            "type": "string"
                                          },
                                          "Type": {
                                            "title": "Type28",
                                            "enum": [
                                              "fixed",
                                              "interpolate"
                                            ],
                                            "type": "string",
                                            "example": "fixed"
                                          }
                                        }
                                      },
                                      "InstanceIDIdx": {
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "integer"
                                        },
                                        "description": "If it's a single number, it's the index of the value in the OID (after we split on dots).\nIf it's an array of 2, it's the start and end indeces of the OID."
                                      },
                                      "ChildOid": {
                                        "type": "string",
                                        "description": "The full child oid to match on",
                                        "example": "1.2.3"
                                      },
                                      "LookupSrcName": {
                                        "type": "string",
                                        "description": "The source name of the value we will need in order to do the lookup"
                                      },
                                      "LookupDestName": {
                                        "type": "string",
                                        "description": "The name of the field we're matching the lookup against'"
                                      },
                                      "objectIdJoinKey": {
                                        "type": "string",
                                        "description": "Which chain of characters to use to join this value's to the object Id. Only applicable when \"includeInObjectId\" is true",
                                        "default": "-"
                                      }
                                    }
                                  },
                                  "description": ""
                                }
                              }
                            },
                            "description": ""
                          },
                          "enableNativeMetrics": {
                            "type": "boolean",
                            "description": "Feature flag to enable connector to publish open metrics in native format."
                          }
                        }
                      },
                      "openMetricsScraperConfig": {
                        "title": "OpenMetricsScraperConfig",
                        "required": [
                          "prometheusConfig"
                        ],
                        "type": "object",
                        "properties": {
                          "prometheusConfig": {
                            "type": "string",
                            "description": "Raw contents of a prometheus.yml config to use while scraping"
                          },
                          "batchFrequency": {
                            "type": "string",
                            "description": "Metric data is batched and marked as ready for sending from RoadRunner at this frequency.",
                            "example": "30s"
                          },
                          "dictionaryReportFrequency": {
                            "type": "string",
                            "description": "Ingestion Dictionaries are sent from RoadRunner at this frequency.",
                            "example": "30s"
                          }
                        }
                      },
                      "agentProxyConfig": {
                        "title": "AgentProxyConfig",
                        "type": "object",
                        "properties": {
                          "orchestratorHost": {
                            "type": "string",
                            "description": "Address or hostname of the sensor orchestration component."
                          },
                          "orchestratorPort": {
                            "type": "integer",
                            "description": "The port which the sensor orchestration component is listening for connections on."
                          },
                          "orchestratorURL": {
                            "type": "string",
                            "description": "The endpoint on the sensor orchestrator for agent control traffic."
                          },
                          "agentProxyHost": {
                            "type": "string",
                            "description": "The address of the proxy server used by the sensor agents for control messages."
                          },
                          "agentProxyTLS": {
                            "type": "boolean",
                            "description": "Use TLS between the agent and RR for control messages"
                          },
                          "agentProxyJWT": {
                            "type": "boolean",
                            "description": "Perform JWT authentication on connections between the sensor agents and RR for control messages",
                            "default": true
                          },
                          "agentProxyPort": {
                            "type": "integer",
                            "description": "The port for the proxy server used by the sensor agents for control messages."
                          },
                          "agentProxyURL": {
                            "type": "string",
                            "description": "Endpoint on the proxy server for sensor agents to use for establishing a connection to the proxy."
                          }
                        }
                      },
                      "SNMPConfig": {
                        "title": "SNMPConfig",
                        "required": [
                          "targetList",
                          "version",
                          "baseOIDs"
                        ],
                        "type": "object",
                        "properties": {
                          "targetList": {
                            "type": "array",
                            "items": {
                              "title": "TargetList",
                              "type": "object",
                              "properties": {
                                "host": {
                                  "type": "string"
                                },
                                "port": {
                                  "type": "integer",
                                  "default": 161
                                },
                                "name": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          },
                          "logWalkResults": {
                            "type": "boolean",
                            "description": "Intruct roadrunner to dump the total walk resutls to log for debug purposes. WARNING - On system with lots of\nSNMP targets, this can quite drastically reduce peformance"
                          },
                          "logSNMPTableResults": {
                            "type": "boolean",
                            "description": "Intruct roadrunner to dump a table view in the logs of the data extracted from the SNMP walk. WARNING - On system with lots of\nSNMP targets, this can quite drastically reduce peformance"
                          },
                          "version": {
                            "type": "string",
                            "description": "The SNMP Version protocol to use (either v2c or v3)",
                            "example": "v3"
                          },
                          "V3PrivacyProtocol": {
                            "title": "V3PrivacyProtocol",
                            "enum": [
                              "AES",
                              "DES"
                            ],
                            "type": "string",
                            "description": "The privacy protocol to use (AES or DES)",
                            "example": "AES"
                          },
                          "V3AuthenticationProtocol": {
                            "title": "V3AuthenticationProtocol",
                            "enum": [
                              "SHA",
                              "MD5"
                            ],
                            "type": "string",
                            "description": "The authentication protocol to use for V3 (SHA or MD5)",
                            "example": "SHA"
                          },
                          "V3PrivMode": {
                            "title": "V3PrivMode",
                            "enum": [
                              "NoAuthNoPriv",
                              "AuthNoPriv",
                              "AuthPriv"
                            ],
                            "type": "string",
                            "description": "The v3 privacy mode (NoAuthNoPriv, AuthNoPriv, AuthPriv)",
                            "example": "NoAuthNoPriv"
                          },
                          "community": {
                            "type": "string",
                            "description": "When using v2c SNMP version, the community to use",
                            "default": "public"
                          },
                          "walkType": {
                            "title": "WalkType",
                            "enum": [
                              "walk",
                              "bulkwalk"
                            ],
                            "type": "string",
                            "description": "Allows the choice of using snmp walk vs snmp bulk walk",
                            "example": "walk"
                          },
                          "timeout": {
                            "type": "string",
                            "description": "The fetch timeout duration (in go time.Duration string format)",
                            "default": "10s"
                          },
                          "maxRepetition": {
                            "type": "integer",
                            "description": "The maximum number of elements to fetch in a bulkGetNext (used during SNMPv3 walks)",
                            "default": 20
                          },
                          "baseOIDs": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "The base OID to start the SNMP walk from. A single bulk fetch is issued every Polling frequency using the OID as root"
                          },
                          "mibPath": {
                            "type": "string",
                            "description": "A path that is local to the roadrunner instances and that contains properly json formatted mibs for mib resolution. \nSee https://github.com/qmsk/snmpbot for details",
                            "default": "/defaultmibs/"
                          },
                          "recordMappings": {
                            "type": "array",
                            "items": {
                              "title": "RecordMappingHeader",
                              "required": [
                                "monitoredObjectId",
                                "objectType"
                              ],
                              "type": "object",
                              "properties": {
                                "monitoredObjectId": {
                                  "type": "string"
                                },
                                "objectType": {
                                  "type": "string"
                                },
                                "sysUpTimeticks": {
                                  "type": "string",
                                  "description": "The OID (or SNMPv2-MIB::sysUpTime )"
                                },
                                "sysCurrentTime": {
                                  "type": "string",
                                  "description": "The oid (or mib handle) for the current time of the system. We use that and sysUpTimeTick \nto compute a date from timetick"
                                },
                                "mappingType": {
                                  "title": "MappingType",
                                  "enum": [
                                    "scalars",
                                    "array",
                                    "timetickArray"
                                  ],
                                  "type": "string",
                                  "description": "Describes if the raw record format is a single scalar or if it is express as an array. \nIn some raw format (for instance, SNMP, or CiscoTelemetry), arrays are natively supported. When this is the \ncase, the connectors instance will be instructed to parse the array and generate one row of data\nper row in the array",
                                  "example": "scalars"
                                },
                                "mappingMatch": {
                                  "title": "MatchEntry",
                                  "required": [
                                    "key",
                                    "matches"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "key": {
                                      "type": "string"
                                    },
                                    "matches": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "mappings": {
                                  "type": "array",
                                  "items": {
                                    "title": "RecordMapping",
                                    "required": [
                                      "headerName",
                                      "rawSourceName"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "headerName": {
                                        "type": "string",
                                        "description": "Defines the header name for the column of data to be sent to Analytics"
                                      },
                                      "rawSourceName": {
                                        "type": "string",
                                        "description": "The Source name of the metrics to fetch. For SNMP, this can be either a mib handle (for instance, for Mib2, SNMPv2-MIB::sysName), \nor the equivalent OID (.1.3.6.1.2.1.1.5.0). Note that for in order for mib handle resolution to work, the appropriate mib must have been\nprovided to Connector's deployed instance upfront."
                                      },
                                      "ObjectOIDMappingType": {
                                        "title": "ObjectOIDMappingType",
                                        "enum": [
                                          "oidIndex",
                                          "instanceID",
                                          "encoded",
                                          "encodedv2",
                                          "lookup"
                                        ],
                                        "type": "string",
                                        "description": "Describes how objects IDs are encoded inside the OID. In some cases, portions of the OID are used as an instance ID, and this is important to know\nand use for mapping data to the correct object.",
                                        "example": "oidIndex"
                                      },
                                      "rawRecordType": {
                                        "title": "RawRecordType",
                                        "enum": [
                                          "timestamp",
                                          "fixed",
                                          "interpolate",
                                          "mapped",
                                          "rate",
                                          "rateMean",
                                          "rate1",
                                          "rate5",
                                          "rate15",
                                          "oidIndex",
                                          "timetick",
                                          "instanceID",
                                          "encoded",
                                          "encodedv2",
                                          "lookup",
                                          "transformation",
                                          "instanceIDMap"
                                        ],
                                        "type": "string",
                                        "description": "Describes if the raw record format a generated timestamp at the connector level (for \nsources where the collection time is not available), \"fixed\" (an absolute provided here), \"interpolate\" (we apply the value from another \nfield specified in the rawSourceName -- for instance, if field \"Name\" is interpolated and has rawSourceName=objectId, we will use the computed \nobjectId to set the value of the field \"Name\") or if it is express as an mapped value, (fetched from the data received from the probed host).\n\"rateMean\", \"rate1\", \"rate5\" and \"rate15\" computes the specified rate and sets this mapping with the appropriate value.",
                                        "example": "timestamp"
                                      },
                                      "includeInObjectId": {
                                        "type": "boolean",
                                        "description": "Wether this record's value must be included as part of the object-ID in the row",
                                        "default": false
                                      },
                                      "Transformation": {
                                        "title": "Transformation",
                                        "type": "object",
                                        "properties": {
                                          "Operation": {
                                            "type": "string"
                                          },
                                          "Parameter": {
                                            "type": "string"
                                          },
                                          "Type": {
                                            "title": "Type28",
                                            "enum": [
                                              "fixed",
                                              "interpolate"
                                            ],
                                            "type": "string",
                                            "example": "fixed"
                                          }
                                        }
                                      },
                                      "InstanceIDIdx": {
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "integer"
                                        },
                                        "description": "If it's a single number, it's the index of the value in the OID (after we split on dots).\nIf it's an array of 2, it's the start and end indeces of the OID."
                                      },
                                      "ChildOid": {
                                        "type": "string",
                                        "description": "The full child oid to match on",
                                        "example": "1.2.3"
                                      },
                                      "LookupSrcName": {
                                        "type": "string",
                                        "description": "The source name of the value we will need in order to do the lookup"
                                      },
                                      "LookupDestName": {
                                        "type": "string",
                                        "description": "The name of the field we're matching the lookup against'"
                                      },
                                      "objectIdJoinKey": {
                                        "type": "string",
                                        "description": "Which chain of characters to use to join this value's to the object Id. Only applicable when \"includeInObjectId\" is true",
                                        "default": "-"
                                      }
                                    }
                                  },
                                  "description": ""
                                }
                              }
                            },
                            "description": ""
                          },
                          "testRawFilePaths": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "For SNMP testing, Roadrunner can fetch a test file from that location and serve it instead of \nhaving to connect to real devices."
                          }
                        }
                      },
                      "SNMPTrapSenderConfig": {
                        "title": "SNMPTrapSenderConfig",
                        "required": [
                          "trapTargetHost",
                          "trapTargetPort",
                          "community"
                        ],
                        "type": "object",
                        "properties": {
                          "trapTargetHost": {
                            "type": "string"
                          },
                          "trapTargetPort": {
                            "type": "string"
                          },
                          "community": {
                            "type": "string"
                          },
                          "timeout": {
                            "type": "integer"
                          }
                        }
                      },
                      "MQTTConfig": {
                        "title": "MQTTConfig",
                        "type": "object",
                        "properties": {
                          "brokerURI": {
                            "type": "string"
                          },
                          "clientID": {
                            "type": "string"
                          },
                          "notificationTopic": {
                            "type": "string"
                          },
                          "user": {
                            "type": "string"
                          },
                          "token": {
                            "type": "string"
                          }
                        }
                      },
                      "sessionFilterProfileID": {
                        "type": "string",
                        "description": "If set, RR will fetch and use the session filter profile for the given ID."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/updateConnectorConfigV2"
      },
      "task": true
    },
    {
      "name": "deleteConnectorConfigV2",
      "summary": "DeleteConnectorConfigV2",
      "description": "Delete a Tenant ConnectorConfig specified by the provided Connector Id.",
      "input": [
        {
          "name": "connectorId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "connectorId",
            "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": "/deleteConnectorConfigV2"
      },
      "task": true
    },
    {
      "name": "createConnectorInstanceV2",
      "summary": "CreateConnectorInstanceV2",
      "description": "Create a ConnectorInstance for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [connectorInstances]\", \"id\": \"string\", \"attributes\": {\"status\": \"string\", \"hostname\": \"string\"}}}",
          "required": true,
          "schema": {
            "title": "ConnectorInstanceCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data25",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "connectorInstances"
                    ],
                    "type": "string",
                    "example": "connectorInstances"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes37",
                    "required": [
                      "status",
                      "hostname"
                    ],
                    "type": "object",
                    "properties": {
                      "status": {
                        "type": "string"
                      },
                      "hostname": {
                        "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": "/createConnectorInstanceV2"
      },
      "task": true
    },
    {
      "name": "getAllConnectorInstancesV2",
      "summary": "GetAllConnectorInstancesV2",
      "description": "Retrieve all ConnectorInstances for the specified Tenant.",
      "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": "/getAllConnectorInstancesV2"
      },
      "task": true
    },
    {
      "name": "getConnectorInstanceV2",
      "summary": "GetConnectorInstanceV2",
      "description": "Retrieve a Tenant ConnectorInstance by Id.",
      "input": [
        {
          "name": "connectorInstanceId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "connectorInstanceId",
            "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": "/getConnectorInstanceV2"
      },
      "task": true
    },
    {
      "name": "updateConnectorInstanceV2",
      "summary": "UpdateConnectorInstanceV2",
      "description": "Update a ConnectorInstance for a Tenant.",
      "input": [
        {
          "name": "connectorInstanceId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "connectorInstanceId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [connectorInstances]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"status\": \"string\", \"hostname\": \"string\", \"createdTimestamp\": 123, \"lastModifiedTimestamp\": 123}}}",
          "required": true,
          "schema": {
            "title": "ConnectorInstanceUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data26",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "connectorInstances"
                    ],
                    "type": "string",
                    "example": "connectorInstances"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes38",
                    "required": [
                      "_rev"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "status": {
                        "type": "string"
                      },
                      "hostname": {
                        "type": "string"
                      },
                      "createdTimestamp": {
                        "type": "integer",
                        "description": "Time since epoch at which this object was instantiated."
                      },
                      "lastModifiedTimestamp": {
                        "type": "integer",
                        "description": "Time since epoch at which this object was last altered."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/updateConnectorInstanceV2"
      },
      "task": true
    },
    {
      "name": "deleteConnectorInstanceV2",
      "summary": "DeleteConnectorInstanceV2",
      "description": "Delete a Tenant ConnectorInstance specified by the provided Connector Instance Id.",
      "input": [
        {
          "name": "connectorInstanceId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "connectorInstanceId",
            "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": "/deleteConnectorInstanceV2"
      },
      "task": true
    },
    {
      "name": "createDashboardV2",
      "summary": "CreateDashboardV2",
      "description": "Create a Dashboard for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [dashboards]\", \"id\": \"string\", \"relationships\": {\"cards\": {\"data\": [{\"type\": \"string\", \"id\": \"string\"}]}, \"thresholdProfile\": {\"data\": {\"type\": \"string\", \"id\": \"string\"}}, \"editors\": {\"data\": [{\"type\": \"string\", \"id\": \"string\"}]}, \"managers\": {\"data\": [{\"type\": \"string\", \"id\": \"string\"}]}, \"createdBy\": {\"data\": {\"type\": \"string\", \"id\": \"string\"}}, \"viewers\": {\"data\": [{\"type\": \"string\", \"id\": \"string\"}]}}, \"attributes\": {\"name\": \"string\", \"category\": \"string\", \"metaExclude\": \"array\", \"metadataFilters\": [{\"key\": \"string\", \"values\": \"array\"}], \"cardPositions\": \"object\", \"_permissions\": \"array\", \"sharedWithAll\": \"Must be one of [none, viewers, editors, managers]\"}}}",
          "required": true,
          "schema": {
            "title": "DashboardCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data30",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "dashboards"
                    ],
                    "type": "string",
                    "example": "dashboards"
                  },
                  "id": {
                    "type": "string"
                  },
                  "relationships": {
                    "title": "DashboardRelationships",
                    "type": "object",
                    "properties": {
                      "cards": {
                        "title": "JsonApiRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "JsonApiRelationshipData",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string"
                                },
                                "id": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "thresholdProfile": {
                        "title": "JsonApiSingleRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "title": "JsonApiRelationshipData",
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "editors": {
                        "title": "JsonApiRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "JsonApiRelationshipData",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string"
                                },
                                "id": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "managers": {
                        "title": "JsonApiRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "JsonApiRelationshipData",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string"
                                },
                                "id": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "createdBy": {
                        "title": "JsonApiSingleRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "title": "JsonApiRelationshipData",
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "viewers": {
                        "title": "JsonApiRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "JsonApiRelationshipData",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string"
                                },
                                "id": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      }
                    }
                  },
                  "attributes": {
                    "title": "Attributes43",
                    "required": [
                      "name"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "User provided identifier for a Dashboard"
                      },
                      "category": {
                        "type": "string",
                        "description": "Name of the visual 'group' where this Dashboard will be displayed when looking at the list of all Dashboards in Datahub"
                      },
                      "metaExclude": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                        "example": [
                          "group"
                        ]
                      },
                      "metadataFilters": {
                        "type": "array",
                        "items": {
                          "title": "MetadataFilter",
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string"
                            },
                            "values": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          },
                          "description": "Used to obtain a list of Monitoreed Objects which will be useds to provide metric data to the Dashboard"
                        },
                        "description": "List of filters used to obtain a list of Monitoreed Objects which will be useds to provide metric data to the Dashboard"
                      },
                      "cardPositions": {
                        "type": "object",
                        "additionalProperties": {
                          "title": "CardPositions1",
                          "required": [
                            "position"
                          ],
                          "type": "object",
                          "properties": {
                            "position": {
                              "type": "integer",
                              "description": "The placement order of this card on the Dashboard"
                            },
                            "dimensions": {
                              "title": "Dimensions",
                              "type": "object",
                              "properties": {
                                "columns": {
                                  "type": "integer"
                                },
                                "rows": {
                                  "type": "integer"
                                }
                              },
                              "description": "The amount of columns and rows this card will occupy"
                            }
                          }
                        },
                        "description": "Describes the locations of the Cards on the Dashboard in the Datahub UI"
                      },
                      "_permissions": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": ""
                      },
                      "sharedWithAll": {
                        "title": "SharedWithAll",
                        "enum": [
                          "none",
                          "viewers",
                          "editors",
                          "managers"
                        ],
                        "type": "string",
                        "example": "none"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to create a Dashboard in Datahub"
          }
        }
      ],
      "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": "/createDashboardV2"
      },
      "task": true
    },
    {
      "name": "getAllDashboardsV2",
      "summary": "GetAllDashboardsV2",
      "description": "Retrieve all Dashboards for the specified Tenant.",
      "input": [
        {
          "name": "zone",
          "type": "string",
          "info": ": string",
          "required": false,
          "schema": {
            "title": "zone",
            "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": "/getAllDashboardsV2"
      },
      "task": true
    },
    {
      "name": "getDashboardV2",
      "summary": "GetDashboardV2",
      "description": "Retrieve a Tenant Dashboard by Id.",
      "input": [
        {
          "name": "dashboardId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "dashboardId",
            "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": "/getDashboardV2"
      },
      "task": true
    },
    {
      "name": "updateDashboardV2",
      "summary": "UpdateDashboardV2",
      "description": "Update a Tenant Dashboard specified by the provided Dashboard Id.",
      "input": [
        {
          "name": "dashboardId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "dashboardId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [dashboards]\", \"id\": \"string\", \"relationships\": {\"cards\": {\"data\": [{\"type\": \"string\", \"id\": \"string\"}]}, \"thresholdProfile\": {\"data\": {\"type\": \"string\", \"id\": \"string\"}}, \"editors\": {\"data\": [{\"type\": \"string\", \"id\": \"string\"}]}, \"managers\": {\"data\": [{\"type\": \"string\", \"id\": \"string\"}]}, \"createdBy\": {\"data\": {\"type\": \"string\", \"id\": \"string\"}}, \"viewers\": {\"data\": [{\"type\": \"string\", \"id\": \"string\"}]}}, \"attributes\": {\"_rev\": \"string\", \"name\": \"string\", \"category\": \"string\", \"metaExclude\": \"array\", \"metadataFilters\": [{\"key\": \"string\", \"values\": \"array\"}], \"cardPositions\": \"object\", \"_permissions\": \"array\", \"sharedWithAll\": \"Must be one of [none, viewers, editors, managers]\"}}}",
          "required": true,
          "schema": {
            "title": "DashboardUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data31",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "dashboards"
                    ],
                    "type": "string",
                    "example": "dashboards"
                  },
                  "id": {
                    "type": "string"
                  },
                  "relationships": {
                    "title": "DashboardRelationships",
                    "type": "object",
                    "properties": {
                      "cards": {
                        "title": "JsonApiRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "JsonApiRelationshipData",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string"
                                },
                                "id": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "thresholdProfile": {
                        "title": "JsonApiSingleRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "title": "JsonApiRelationshipData",
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "editors": {
                        "title": "JsonApiRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "JsonApiRelationshipData",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string"
                                },
                                "id": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "managers": {
                        "title": "JsonApiRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "JsonApiRelationshipData",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string"
                                },
                                "id": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      },
                      "createdBy": {
                        "title": "JsonApiSingleRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "title": "JsonApiRelationshipData",
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "viewers": {
                        "title": "JsonApiRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "JsonApiRelationshipData",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string"
                                },
                                "id": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      }
                    }
                  },
                  "attributes": {
                    "title": "Attributes44",
                    "required": [
                      "_rev",
                      "name"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "name": {
                        "type": "string",
                        "description": "User provided identifier for a Dashboard"
                      },
                      "category": {
                        "type": "string",
                        "description": "Name of the visual 'group' where this Dashboard will be displayed when looking at the list of all Dashboards in Datahub"
                      },
                      "metaExclude": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                        "example": [
                          "group"
                        ]
                      },
                      "metadataFilters": {
                        "type": "array",
                        "items": {
                          "title": "MetadataFilter",
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string"
                            },
                            "values": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          },
                          "description": "Used to obtain a list of Monitoreed Objects which will be useds to provide metric data to the Dashboard"
                        },
                        "description": "List of filters used to obtain a list of Monitoreed Objects which will be useds to provide metric data to the Dashboard"
                      },
                      "cardPositions": {
                        "type": "object",
                        "additionalProperties": {
                          "title": "CardPositions1",
                          "required": [
                            "position"
                          ],
                          "type": "object",
                          "properties": {
                            "position": {
                              "type": "integer",
                              "description": "The placement order of this card on the Dashboard"
                            },
                            "dimensions": {
                              "title": "Dimensions",
                              "type": "object",
                              "properties": {
                                "columns": {
                                  "type": "integer"
                                },
                                "rows": {
                                  "type": "integer"
                                }
                              },
                              "description": "The amount of columns and rows this card will occupy"
                            }
                          }
                        },
                        "description": "Describes the locations of the Cards on the Dashboard in the Datahub UI"
                      },
                      "_permissions": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": ""
                      },
                      "sharedWithAll": {
                        "title": "SharedWithAll",
                        "enum": [
                          "none",
                          "viewers",
                          "editors",
                          "managers"
                        ],
                        "type": "string",
                        "example": "none"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update a Dashboard in Datahub"
          }
        }
      ],
      "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": "/updateDashboardV2"
      },
      "task": true
    },
    {
      "name": "deleteDashboardV2",
      "summary": "DeleteDashboardV2",
      "description": "Delete a Tenant Dashboard specified by the provided Dashboard Id.",
      "input": [
        {
          "name": "dashboardId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "dashboardId",
            "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": "/deleteDashboardV2"
      },
      "task": true
    },
    {
      "name": "createCardV2",
      "summary": "CreateCardV2",
      "description": "Create a Card for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [cards]\", \"id\": \"string\", \"attributes\": {\"name\": \"string\", \"description\": \"string\", \"state\": \"Must be one of [active, pending]\", \"visualization\": {\"key\": \"string\", \"label\": \"string\", \"category\": \"string\", \"icon\": \"string\", \"component\": \"string\", \"queryParams\": {\"limit\": 123, \"sortDescending\": \"boolean\", \"aggregator\": \"Must be one of [min, max, avg]\"}, \"availability\": {\"count\": 123, \"type\": \"array\"}, \"defaultDimensions\": {\"columns\": 123, \"rows\": 123}}, \"metaExclude\": \"array\", \"metadataFilters\": [{\"key\": \"string\", \"values\": \"array\"}], \"metrics\": [{\"key\": \"string\", \"label\": \"string\", \"vendorLabel\": \"string\", \"vendorKey\": \"string\", \"vendor\": \"string\", \"objectType\": \"string\", \"unit\": \"string\", \"type\": \"string\", \"rawMetricId\": \"string\", \"metric\": \"string\", \"metricKey\": \"string\", \"enabled\": \"boolean\", \"monitoredObjectTypes\": \"array\", \"directions\": \"array\", \"units\": \"array\", \"options\": {\"useExplicitSeries\": \"boolean\", \"useBins\": \"boolean\", \"formatUnit\": \"string\", \"bins\": \"array\", \"series\": \"array\", \"type\": \"Must be one of [measure, events, bins]\", \"directions\": \"array\", \"buckets\": \"array\", \"aggregation\": \"Must be one of [none, sum, min, max, avg]\"}}]}}}",
          "required": true,
          "schema": {
            "title": "CardCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data32",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "cards"
                    ],
                    "type": "string",
                    "example": "cards"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes46",
                    "required": [
                      "name",
                      "state"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "state": {
                        "title": "State3",
                        "enum": [
                          "active",
                          "pending"
                        ],
                        "type": "string",
                        "example": "active"
                      },
                      "visualization": {
                        "title": "CardVisualization",
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string",
                            "description": "Label referencing the type of visualization to be displayed"
                          },
                          "label": {
                            "type": "string",
                            "description": "User provided identifier for a Visualization"
                          },
                          "category": {
                            "type": "string"
                          },
                          "icon": {
                            "type": "string"
                          },
                          "component": {
                            "type": "string"
                          },
                          "queryParams": {
                            "title": "QueryParams",
                            "type": "object",
                            "properties": {
                              "limit": {
                                "type": "integer",
                                "description": "Restricts the number ofresults to the provided limit."
                              },
                              "sortDescending": {
                                "type": "boolean",
                                "description": "Items will be displayed sorted in descending order when true, ascending order when false",
                                "default": true
                              },
                              "aggregator": {
                                "title": "Aggregator2",
                                "enum": [
                                  "min",
                                  "max",
                                  "avg"
                                ],
                                "type": "string",
                                "description": "The type of aggregation to use when displaying the values",
                                "example": "min"
                              }
                            }
                          },
                          "availability": {
                            "title": "Availability",
                            "type": "object",
                            "properties": {
                              "count": {
                                "type": "integer"
                              },
                              "type": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                },
                                "description": ""
                              }
                            }
                          },
                          "defaultDimensions": {
                            "title": "DefaultDimensions",
                            "type": "object",
                            "properties": {
                              "columns": {
                                "type": "integer"
                              },
                              "rows": {
                                "type": "integer"
                              }
                            }
                          }
                        }
                      },
                      "metaExclude": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                        "example": [
                          "group"
                        ]
                      },
                      "metadataFilters": {
                        "type": "array",
                        "items": {
                          "title": "MetadataFilter",
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string"
                            },
                            "values": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          },
                          "description": "Used to obtain a list of Monitoreed Objects which will be useds to provide metric data to the Dashboard"
                        },
                        "description": ""
                      },
                      "metrics": {
                        "type": "array",
                        "items": {
                          "title": "CardMetric",
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            },
                            "vendorLabel": {
                              "type": "string"
                            },
                            "vendorKey": {
                              "type": "string"
                            },
                            "vendor": {
                              "type": "string"
                            },
                            "objectType": {
                              "type": "string"
                            },
                            "unit": {
                              "type": "string"
                            },
                            "type": {
                              "type": "string"
                            },
                            "rawMetricId": {
                              "type": "string"
                            },
                            "metric": {
                              "type": "string"
                            },
                            "metricKey": {
                              "type": "string"
                            },
                            "enabled": {
                              "type": "boolean"
                            },
                            "monitoredObjectTypes": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "directions": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "units": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "options": {
                              "title": "Options",
                              "type": "object",
                              "properties": {
                                "useExplicitSeries": {
                                  "type": "boolean"
                                },
                                "useBins": {
                                  "type": "boolean"
                                },
                                "formatUnit": {
                                  "type": "string"
                                },
                                "bins": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  },
                                  "description": ""
                                },
                                "series": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": ""
                                },
                                "type": {
                                  "title": "Type29",
                                  "enum": [
                                    "measure",
                                    "events",
                                    "bins"
                                  ],
                                  "type": "string",
                                  "example": "measure"
                                },
                                "directions": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": ""
                                },
                                "buckets": {
                                  "type": "array",
                                  "items": {
                                    "type": "object"
                                  },
                                  "description": ""
                                },
                                "aggregation": {
                                  "title": "Aggregation1",
                                  "enum": [
                                    "none",
                                    "sum",
                                    "min",
                                    "max",
                                    "avg"
                                  ],
                                  "type": "string",
                                  "example": "none"
                                }
                              }
                            }
                          }
                        },
                        "description": ""
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to create a Card in Datahub"
          }
        }
      ],
      "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": "/createCardV2"
      },
      "task": true
    },
    {
      "name": "getAllCardsV2",
      "summary": "GetAllCardsV2",
      "description": "Retrieve all Cards for the specified Tenant.",
      "input": [
        {
          "name": "zone",
          "type": "string",
          "info": ": string",
          "required": false,
          "schema": {
            "title": "zone",
            "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": "/getAllCardsV2"
      },
      "task": true
    },
    {
      "name": "getCardV2",
      "summary": "GetCardV2",
      "description": "Retrieve a Tenant Card by Id.",
      "input": [
        {
          "name": "cardId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "cardId",
            "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": "/getCardV2"
      },
      "task": true
    },
    {
      "name": "updateCardV2",
      "summary": "UpdateCardV2",
      "description": "Update a Tenant Card specified by the provided Card Id.",
      "input": [
        {
          "name": "cardId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "cardId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [cards]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"name\": \"string\", \"description\": \"string\", \"state\": \"Must be one of [active, pending]\", \"visualization\": {\"key\": \"string\", \"label\": \"string\", \"category\": \"string\", \"icon\": \"string\", \"component\": \"string\", \"queryParams\": {\"limit\": 123, \"sortDescending\": \"boolean\", \"aggregator\": \"Must be one of [min, max, avg]\"}, \"availability\": {\"count\": 123, \"type\": \"array\"}, \"defaultDimensions\": {\"columns\": 123, \"rows\": 123}}, \"metaExclude\": \"array\", \"metadataFilters\": [{\"key\": \"string\", \"values\": \"array\"}], \"metrics\": [{\"key\": \"string\", \"label\": \"string\", \"vendorLabel\": \"string\", \"vendorKey\": \"string\", \"vendor\": \"string\", \"objectType\": \"string\", \"unit\": \"string\", \"type\": \"string\", \"rawMetricId\": \"string\", \"metric\": \"string\", \"metricKey\": \"string\", \"enabled\": \"boolean\", \"monitoredObjectTypes\": \"array\", \"directions\": \"array\", \"units\": \"array\", \"options\": {\"useExplicitSeries\": \"boolean\", \"useBins\": \"boolean\", \"formatUnit\": \"string\", \"bins\": \"array\", \"series\": \"array\", \"type\": \"Must be one of [measure, events, bins]\", \"directions\": \"array\", \"buckets\": \"array\", \"aggregation\": \"Must be one of [none, sum, min, max, avg]\"}}]}}}",
          "required": true,
          "schema": {
            "title": "CardUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data33",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "cards"
                    ],
                    "type": "string",
                    "example": "cards"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes47",
                    "required": [
                      "_rev"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "name": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "state": {
                        "title": "State3",
                        "enum": [
                          "active",
                          "pending"
                        ],
                        "type": "string",
                        "example": "active"
                      },
                      "visualization": {
                        "title": "CardVisualization",
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string",
                            "description": "Label referencing the type of visualization to be displayed"
                          },
                          "label": {
                            "type": "string",
                            "description": "User provided identifier for a Visualization"
                          },
                          "category": {
                            "type": "string"
                          },
                          "icon": {
                            "type": "string"
                          },
                          "component": {
                            "type": "string"
                          },
                          "queryParams": {
                            "title": "QueryParams",
                            "type": "object",
                            "properties": {
                              "limit": {
                                "type": "integer",
                                "description": "Restricts the number ofresults to the provided limit."
                              },
                              "sortDescending": {
                                "type": "boolean",
                                "description": "Items will be displayed sorted in descending order when true, ascending order when false",
                                "default": true
                              },
                              "aggregator": {
                                "title": "Aggregator2",
                                "enum": [
                                  "min",
                                  "max",
                                  "avg"
                                ],
                                "type": "string",
                                "description": "The type of aggregation to use when displaying the values",
                                "example": "min"
                              }
                            }
                          },
                          "availability": {
                            "title": "Availability",
                            "type": "object",
                            "properties": {
                              "count": {
                                "type": "integer"
                              },
                              "type": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                },
                                "description": ""
                              }
                            }
                          },
                          "defaultDimensions": {
                            "title": "DefaultDimensions",
                            "type": "object",
                            "properties": {
                              "columns": {
                                "type": "integer"
                              },
                              "rows": {
                                "type": "integer"
                              }
                            }
                          }
                        }
                      },
                      "metaExclude": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                        "example": [
                          "group"
                        ]
                      },
                      "metadataFilters": {
                        "type": "array",
                        "items": {
                          "title": "MetadataFilter",
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string"
                            },
                            "values": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          },
                          "description": "Used to obtain a list of Monitoreed Objects which will be useds to provide metric data to the Dashboard"
                        },
                        "description": ""
                      },
                      "metrics": {
                        "type": "array",
                        "items": {
                          "title": "CardMetric",
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            },
                            "vendorLabel": {
                              "type": "string"
                            },
                            "vendorKey": {
                              "type": "string"
                            },
                            "vendor": {
                              "type": "string"
                            },
                            "objectType": {
                              "type": "string"
                            },
                            "unit": {
                              "type": "string"
                            },
                            "type": {
                              "type": "string"
                            },
                            "rawMetricId": {
                              "type": "string"
                            },
                            "metric": {
                              "type": "string"
                            },
                            "metricKey": {
                              "type": "string"
                            },
                            "enabled": {
                              "type": "boolean"
                            },
                            "monitoredObjectTypes": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "directions": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "units": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "options": {
                              "title": "Options",
                              "type": "object",
                              "properties": {
                                "useExplicitSeries": {
                                  "type": "boolean"
                                },
                                "useBins": {
                                  "type": "boolean"
                                },
                                "formatUnit": {
                                  "type": "string"
                                },
                                "bins": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  },
                                  "description": ""
                                },
                                "series": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": ""
                                },
                                "type": {
                                  "title": "Type29",
                                  "enum": [
                                    "measure",
                                    "events",
                                    "bins"
                                  ],
                                  "type": "string",
                                  "example": "measure"
                                },
                                "directions": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": ""
                                },
                                "buckets": {
                                  "type": "array",
                                  "items": {
                                    "type": "object"
                                  },
                                  "description": ""
                                },
                                "aggregation": {
                                  "title": "Aggregation1",
                                  "enum": [
                                    "none",
                                    "sum",
                                    "min",
                                    "max",
                                    "avg"
                                  ],
                                  "type": "string",
                                  "example": "none"
                                }
                              }
                            }
                          }
                        },
                        "description": ""
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update a Card in Datahub"
          }
        }
      ],
      "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": "/updateCardV2"
      },
      "task": true
    },
    {
      "name": "deleteCardV2",
      "summary": "DeleteCardV2",
      "description": "Delete a Tenant Card specified by the provided Card Id.",
      "input": [
        {
          "name": "cardId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "cardId",
            "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": "/deleteCardV2"
      },
      "task": true
    },
    {
      "name": "createDataCleaningProfile",
      "summary": "CreateDataCleaningProfile",
      "description": "Provides ability to Create a Tenant Data Cleaning Profile",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [dataCleaningProfiles]\", \"id\": \"string\", \"attributes\": {\"rules\": [{\"metricVendor\": \"string\", \"metricLabel\": \"string\", \"triggerCondition\": {\"comparator\": \"Must be one of [gt, lt, gte, lte, eq]\", \"value\": \"string\", \"valueAggregate\": \"Must be one of [min, max, avg]\", \"duration\": \"string\"}, \"clearCondition\": {\"comparator\": \"Must be one of [gt, lt, gte, lte, eq]\", \"value\": \"string\", \"valueAggregate\": \"Must be one of [min, max, avg]\", \"duration\": \"string\"}}]}}}",
          "required": true,
          "schema": {
            "title": "DataCleaningProfileCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data34",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "dataCleaningProfiles"
                    ],
                    "type": "string",
                    "example": "dataCleaningProfiles"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes49",
                    "required": [
                      "rules"
                    ],
                    "type": "object",
                    "properties": {
                      "rules": {
                        "type": "array",
                        "items": {
                          "title": "DataCleaningRule",
                          "required": [
                            "metricVendor",
                            "metricLabel",
                            "triggerCondition",
                            "clearCondition"
                          ],
                          "type": "object",
                          "properties": {
                            "metricVendor": {
                              "type": "string",
                              "description": "The name of the vendor which provides the metric used in the rule."
                            },
                            "metricLabel": {
                              "type": "string",
                              "description": "The name of the metric used in the rule."
                            },
                            "triggerCondition": {
                              "title": "DataCleaningCondition",
                              "required": [
                                "comparator",
                                "value",
                                "valueAggregate",
                                "duration"
                              ],
                              "type": "object",
                              "properties": {
                                "comparator": {
                                  "title": "Comparator2",
                                  "enum": [
                                    "gt",
                                    "lt",
                                    "gte",
                                    "lte",
                                    "eq"
                                  ],
                                  "type": "string",
                                  "description": "Operand to use when evaluating the condition. [gt=greaterThan, lt=lessThan, gte=greaterThanOrEqual, lte=lessThanOrEqual, eq=equal]",
                                  "example": "gt"
                                },
                                "value": {
                                  "type": "string",
                                  "description": "The value against which the selected metric will be compared."
                                },
                                "valueAggregate": {
                                  "title": "ValueAggregate",
                                  "enum": [
                                    "min",
                                    "max",
                                    "avg"
                                  ],
                                  "type": "string",
                                  "description": "The method of aggregation by which the selected metric will be aggregateds. [min=minimum, max=maximum, avg=average]",
                                  "example": "min"
                                },
                                "duration": {
                                  "type": "string",
                                  "description": "ISO-8601 interval over which this codition will be evaluated."
                                }
                              },
                              "description": "A condition used to evalutate when a data cleaning rule should be triggered or cleared."
                            },
                            "clearCondition": {
                              "title": "DataCleaningCondition",
                              "required": [
                                "comparator",
                                "value",
                                "valueAggregate",
                                "duration"
                              ],
                              "type": "object",
                              "properties": {
                                "comparator": {
                                  "title": "Comparator2",
                                  "enum": [
                                    "gt",
                                    "lt",
                                    "gte",
                                    "lte",
                                    "eq"
                                  ],
                                  "type": "string",
                                  "description": "Operand to use when evaluating the condition. [gt=greaterThan, lt=lessThan, gte=greaterThanOrEqual, lte=lessThanOrEqual, eq=equal]",
                                  "example": "gt"
                                },
                                "value": {
                                  "type": "string",
                                  "description": "The value against which the selected metric will be compared."
                                },
                                "valueAggregate": {
                                  "title": "ValueAggregate",
                                  "enum": [
                                    "min",
                                    "max",
                                    "avg"
                                  ],
                                  "type": "string",
                                  "description": "The method of aggregation by which the selected metric will be aggregateds. [min=minimum, max=maximum, avg=average]",
                                  "example": "min"
                                },
                                "duration": {
                                  "type": "string",
                                  "description": "ISO-8601 interval over which this codition will be evaluated."
                                }
                              },
                              "description": "A condition used to evalutate when a data cleaning rule should be triggered or cleared."
                            }
                          },
                          "description": "Provides the logic used to determine when data should be ommitted from queries"
                        },
                        "description": "List of all the rules to evaluate for Data Cleaning"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to create a Data Cleaning Profile in Datahub"
          }
        }
      ],
      "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": "/createDataCleaningProfile"
      },
      "task": true
    },
    {
      "name": "getDataCleaningProfiles",
      "summary": "GetDataCleaningProfiles",
      "description": "Retrieve all Data Cleaning Profiles for a Tenant.",
      "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": "/getDataCleaningProfiles"
      },
      "task": true
    },
    {
      "name": "getDataCleaningProfile",
      "summary": "GetDataCleaningProfile",
      "description": "Retrieve a Data Cleaning Profiles for a Tenant.",
      "input": [
        {
          "name": "profileId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "profileId",
            "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": "/getDataCleaningProfile"
      },
      "task": true
    },
    {
      "name": "updateDataCleaningProfile",
      "summary": "UpdateDataCleaningProfile",
      "description": "Provides ability to Update a Tenant Data Cleaning Profile",
      "input": [
        {
          "name": "profileId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "profileId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [dataCleaningProfiles]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"rules\": [{\"metricVendor\": \"string\", \"metricLabel\": \"string\", \"triggerCondition\": {\"comparator\": \"Must be one of [gt, lt, gte, lte, eq]\", \"value\": \"string\", \"valueAggregate\": \"Must be one of [min, max, avg]\", \"duration\": \"string\"}, \"clearCondition\": {\"comparator\": \"Must be one of [gt, lt, gte, lte, eq]\", \"value\": \"string\", \"valueAggregate\": \"Must be one of [min, max, avg]\", \"duration\": \"string\"}}]}}}",
          "required": true,
          "schema": {
            "title": "DataCleaningProfileUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data35",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "dataCleaningProfiles"
                    ],
                    "type": "string",
                    "example": "dataCleaningProfiles"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes50",
                    "required": [
                      "_rev",
                      "rules"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "rules": {
                        "type": "array",
                        "items": {
                          "title": "DataCleaningRule",
                          "required": [
                            "metricVendor",
                            "metricLabel",
                            "triggerCondition",
                            "clearCondition"
                          ],
                          "type": "object",
                          "properties": {
                            "metricVendor": {
                              "type": "string",
                              "description": "The name of the vendor which provides the metric used in the rule."
                            },
                            "metricLabel": {
                              "type": "string",
                              "description": "The name of the metric used in the rule."
                            },
                            "triggerCondition": {
                              "title": "DataCleaningCondition",
                              "required": [
                                "comparator",
                                "value",
                                "valueAggregate",
                                "duration"
                              ],
                              "type": "object",
                              "properties": {
                                "comparator": {
                                  "title": "Comparator2",
                                  "enum": [
                                    "gt",
                                    "lt",
                                    "gte",
                                    "lte",
                                    "eq"
                                  ],
                                  "type": "string",
                                  "description": "Operand to use when evaluating the condition. [gt=greaterThan, lt=lessThan, gte=greaterThanOrEqual, lte=lessThanOrEqual, eq=equal]",
                                  "example": "gt"
                                },
                                "value": {
                                  "type": "string",
                                  "description": "The value against which the selected metric will be compared."
                                },
                                "valueAggregate": {
                                  "title": "ValueAggregate",
                                  "enum": [
                                    "min",
                                    "max",
                                    "avg"
                                  ],
                                  "type": "string",
                                  "description": "The method of aggregation by which the selected metric will be aggregateds. [min=minimum, max=maximum, avg=average]",
                                  "example": "min"
                                },
                                "duration": {
                                  "type": "string",
                                  "description": "ISO-8601 interval over which this codition will be evaluated."
                                }
                              },
                              "description": "A condition used to evalutate when a data cleaning rule should be triggered or cleared."
                            },
                            "clearCondition": {
                              "title": "DataCleaningCondition",
                              "required": [
                                "comparator",
                                "value",
                                "valueAggregate",
                                "duration"
                              ],
                              "type": "object",
                              "properties": {
                                "comparator": {
                                  "title": "Comparator2",
                                  "enum": [
                                    "gt",
                                    "lt",
                                    "gte",
                                    "lte",
                                    "eq"
                                  ],
                                  "type": "string",
                                  "description": "Operand to use when evaluating the condition. [gt=greaterThan, lt=lessThan, gte=greaterThanOrEqual, lte=lessThanOrEqual, eq=equal]",
                                  "example": "gt"
                                },
                                "value": {
                                  "type": "string",
                                  "description": "The value against which the selected metric will be compared."
                                },
                                "valueAggregate": {
                                  "title": "ValueAggregate",
                                  "enum": [
                                    "min",
                                    "max",
                                    "avg"
                                  ],
                                  "type": "string",
                                  "description": "The method of aggregation by which the selected metric will be aggregateds. [min=minimum, max=maximum, avg=average]",
                                  "example": "min"
                                },
                                "duration": {
                                  "type": "string",
                                  "description": "ISO-8601 interval over which this codition will be evaluated."
                                }
                              },
                              "description": "A condition used to evalutate when a data cleaning rule should be triggered or cleared."
                            }
                          },
                          "description": "Provides the logic used to determine when data should be ommitted from queries"
                        },
                        "description": "List of all the rules to evaluate for Data Cleaning"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update a Data Cleaning Profile in Datahub"
          }
        }
      ],
      "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": "/updateDataCleaningProfile"
      },
      "task": true
    },
    {
      "name": "deleteDataCleaningProfile",
      "summary": "DeleteDataCleaningProfile",
      "description": "Delete a Data Cleaning Profile for a Tenant.",
      "input": [
        {
          "name": "profileId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "profileId",
            "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": "/deleteDataCleaningProfile"
      },
      "task": true
    },
    {
      "name": "getDataCleaningHistory",
      "summary": "GetDataCleaningHistory",
      "description": "Retrieve data cleaning event history for a given monitored object and time period.",
      "input": [
        {
          "name": "monitoredObjectId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "monitoredObjectId",
            "type": "string"
          }
        },
        {
          "name": "interval",
          "type": "string",
          "info": "ISO-8601 Interval: string",
          "required": true,
          "schema": {
            "title": "interval",
            "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": "/getDataCleaningHistory"
      },
      "task": true
    },
    {
      "name": "downloadRoadrunner",
      "summary": "DownloadRoadrunner",
      "description": "Download a roadrunner tarball ready for installing",
      "input": [
        {
          "name": "zone",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "zone",
            "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": "/downloadRoadrunner"
      },
      "task": true
    },
    {
      "name": "createIngestionProfileV2",
      "summary": "CreateIngestionProfileV2",
      "description": "Create an Ingestion Profile for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [ingestionProfiles]\", \"id\": \"string\", \"attributes\": {\"metrics\": {\"vendorMap\": \"object\"}, \"metricList\": [{\"vendor\": \"string\", \"monitoredObjectType\": \"string\", \"metric\": \"string\", \"enabled\": \"boolean\", \"direction\": \"string\", \"dimensions\": \"object\"}]}}}",
          "required": true,
          "schema": {
            "title": "IngestionProfileCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data36",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "ingestionProfiles"
                    ],
                    "type": "string",
                    "example": "ingestionProfiles"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes53",
                    "required": [
                      "metrics"
                    ],
                    "type": "object",
                    "properties": {
                      "metrics": {
                        "title": "IngestionProfileMetrics",
                        "type": "object",
                        "properties": {
                          "vendorMap": {
                            "type": "object",
                            "additionalProperties": {
                              "title": "VendorMap",
                              "type": "object",
                              "properties": {
                                "monitoredObjectTypeMap": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "title": "MonitoredObjectTypeMap",
                                    "type": "object",
                                    "properties": {
                                      "metricMap": {
                                        "type": "object",
                                        "additionalProperties": {
                                          "type": "boolean"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "description": "This object will be deprecated in a future version of the Datahub API"
                      },
                      "metricList": {
                        "type": "array",
                        "items": {
                          "title": "IngestionProfileMetricListItem",
                          "type": "object",
                          "properties": {
                            "vendor": {
                              "type": "string",
                              "description": "The name of the Vendor from which this Metric originates"
                            },
                            "monitoredObjectType": {
                              "type": "string",
                              "description": "The name of the type of Monitored Object for which this Metric is applicable"
                            },
                            "metric": {
                              "type": "string",
                              "description": "The name of the Metric"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "When true, this metric will be recorded by Datahub. When false, this metric is ommitted."
                            },
                            "direction": {
                              "type": "string",
                              "description": "Describes the direction of the test in case a Threshold needs to be different for one direction (i.e. actuator to reflector) versus another (i.e. round trip)"
                            },
                            "dimensions": {
                              "type": "object",
                              "description": "Provides data properties by which the Metric may be filtered and/or aggregated"
                            }
                          },
                          "description": "Provides customization on which Metrics will be available to query from Datahub"
                        },
                        "description": ""
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to create an Ingestion Profile in Datahub"
          }
        }
      ],
      "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": "/createIngestionProfileV2"
      },
      "task": true
    },
    {
      "name": "getAllIngestionProfilesV2",
      "summary": "GetAllIngestionProfilesV2",
      "description": "Get all Tenant Ingestion Profiles",
      "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": "/getAllIngestionProfilesV2"
      },
      "task": true
    },
    {
      "name": "getIngestionProfileV2",
      "summary": "GetIngestionProfileV2",
      "description": "Retrieve a Tenant Ingestion Profile by id.",
      "input": [
        {
          "name": "ingestionProfileId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "ingestionProfileId",
            "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": "/getIngestionProfileV2"
      },
      "task": true
    },
    {
      "name": "updateIngestionProfileV2",
      "summary": "UpdateIngestionProfileV2",
      "description": "Update a Tenant Ingestion Profile",
      "input": [
        {
          "name": "ingestionProfileId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "ingestionProfileId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [ingestionProfiles]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"metrics\": {\"vendorMap\": \"object\"}, \"metricList\": [{\"vendor\": \"string\", \"monitoredObjectType\": \"string\", \"metric\": \"string\", \"enabled\": \"boolean\", \"direction\": \"string\", \"dimensions\": \"object\"}]}}}",
          "required": true,
          "schema": {
            "title": "IngestionProfileUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data37",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "ingestionProfiles"
                    ],
                    "type": "string",
                    "example": "ingestionProfiles"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes54",
                    "required": [
                      "_rev"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "metrics": {
                        "title": "IngestionProfileMetrics",
                        "type": "object",
                        "properties": {
                          "vendorMap": {
                            "type": "object",
                            "additionalProperties": {
                              "title": "VendorMap",
                              "type": "object",
                              "properties": {
                                "monitoredObjectTypeMap": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "title": "MonitoredObjectTypeMap",
                                    "type": "object",
                                    "properties": {
                                      "metricMap": {
                                        "type": "object",
                                        "additionalProperties": {
                                          "type": "boolean"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "description": "This object will be deprecated in a future version of the Datahub API"
                      },
                      "metricList": {
                        "type": "array",
                        "items": {
                          "title": "IngestionProfileMetricListItem",
                          "type": "object",
                          "properties": {
                            "vendor": {
                              "type": "string",
                              "description": "The name of the Vendor from which this Metric originates"
                            },
                            "monitoredObjectType": {
                              "type": "string",
                              "description": "The name of the type of Monitored Object for which this Metric is applicable"
                            },
                            "metric": {
                              "type": "string",
                              "description": "The name of the Metric"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "When true, this metric will be recorded by Datahub. When false, this metric is ommitted."
                            },
                            "direction": {
                              "type": "string",
                              "description": "Describes the direction of the test in case a Threshold needs to be different for one direction (i.e. actuator to reflector) versus another (i.e. round trip)"
                            },
                            "dimensions": {
                              "type": "object",
                              "description": "Provides data properties by which the Metric may be filtered and/or aggregated"
                            }
                          },
                          "description": "Provides customization on which Metrics will be available to query from Datahub"
                        },
                        "description": "A list of objects that allow customization on which Metrics will be available to query from Datahub"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update an Ingestion Profile in Datahub"
          }
        }
      ],
      "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": "/updateIngestionProfileV2"
      },
      "task": true
    },
    {
      "name": "deleteIngestionProfileV2",
      "summary": "DeleteIngestionProfileV2",
      "description": "Delete a Tenant Ingestion Profile specified by the provided Ingestion Profile Id.",
      "input": [
        {
          "name": "ingestionProfileId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "ingestionProfileId",
            "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": "/deleteIngestionProfileV2"
      },
      "task": true
    },
    {
      "name": "createMetadataConfigV2",
      "summary": "CreateMetadataConfigV2",
      "description": "Create a Metadata Configuration for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [metadataConfigs]\", \"id\": \"string\", \"attributes\": {\"startPoint\": \"string\", \"endPoint\": \"string\", \"midPoints\": \"array\", \"geo\": {\"startPoint\": {\"latitude\": \"string\", \"longitude\": \"string\"}, \"endPoint\": {\"latitude\": \"string\", \"longitude\": \"string\"}}}}}",
          "required": true,
          "schema": {
            "title": "MetadataConfigCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data38",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "metadataConfigs"
                    ],
                    "type": "string",
                    "example": "metadataConfigs"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes56",
                    "required": [
                      "startPoint",
                      "endPoint",
                      "midPoints"
                    ],
                    "type": "object",
                    "properties": {
                      "startPoint": {
                        "type": "string",
                        "description": "The first point of a Logical Map"
                      },
                      "endPoint": {
                        "type": "string",
                        "description": "The last point of a Logical Map"
                      },
                      "midPoints": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "The points between the startPoint and endPoint of a logical map"
                      },
                      "geo": {
                        "title": "MetadataConfigGeo",
                        "type": "object",
                        "properties": {
                          "startPoint": {
                            "title": "GeoDetails",
                            "required": [
                              "latitude",
                              "longitude"
                            ],
                            "type": "object",
                            "properties": {
                              "latitude": {
                                "type": "string"
                              },
                              "longitude": {
                                "type": "string"
                              }
                            }
                          },
                          "endPoint": {
                            "title": "GeoDetails",
                            "required": [
                              "latitude",
                              "longitude"
                            ],
                            "type": "object",
                            "properties": {
                              "latitude": {
                                "type": "string"
                              },
                              "longitude": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "description": "The geographical location information for nodes on the logical map"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to create a Metadata Configuration in Datahub"
          }
        }
      ],
      "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": "/createMetadataConfigV2"
      },
      "task": true
    },
    {
      "name": "getAllMetadataConfigsV2",
      "summary": "GetAllMetadataConfigsV2",
      "description": "Get all Tenant Metadata Configurations",
      "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": "/getAllMetadataConfigsV2"
      },
      "task": true
    },
    {
      "name": "getMetadataConfigV2",
      "summary": "GetMetadataConfigV2",
      "description": "Retrieve a Tenant Metadata Configuration by id.",
      "input": [
        {
          "name": "metadataConfigId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "metadataConfigId",
            "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": "/getMetadataConfigV2"
      },
      "task": true
    },
    {
      "name": "updateMetadataConfigV2",
      "summary": "UpdateMetadataConfigV2",
      "description": "Update a Tenant Metadata Configuration",
      "input": [
        {
          "name": "metadataConfigId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "metadataConfigId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [metadataConfigs]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"startPoint\": \"string\", \"endPoint\": \"string\", \"midPoints\": \"array\", \"geo\": {\"startPoint\": {\"latitude\": \"string\", \"longitude\": \"string\"}, \"endPoint\": {\"latitude\": \"string\", \"longitude\": \"string\"}}}}}",
          "required": true,
          "schema": {
            "title": "MetadataConfigUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data39",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "metadataConfigs"
                    ],
                    "type": "string",
                    "example": "metadataConfigs"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes57",
                    "required": [
                      "_rev"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "startPoint": {
                        "type": "string",
                        "description": "The first point of a Logical Map"
                      },
                      "endPoint": {
                        "type": "string",
                        "description": "The last point of a Logical Map"
                      },
                      "midPoints": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "The points between the startPoint and endPoint of a logical map"
                      },
                      "geo": {
                        "title": "MetadataConfigGeo",
                        "type": "object",
                        "properties": {
                          "startPoint": {
                            "title": "GeoDetails",
                            "required": [
                              "latitude",
                              "longitude"
                            ],
                            "type": "object",
                            "properties": {
                              "latitude": {
                                "type": "string"
                              },
                              "longitude": {
                                "type": "string"
                              }
                            }
                          },
                          "endPoint": {
                            "title": "GeoDetails",
                            "required": [
                              "latitude",
                              "longitude"
                            ],
                            "type": "object",
                            "properties": {
                              "latitude": {
                                "type": "string"
                              },
                              "longitude": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "description": "The geographical location information for nodes on the logical map"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update a Metadata Configuration in Datahub"
          }
        }
      ],
      "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": "/updateMetadataConfigV2"
      },
      "task": true
    },
    {
      "name": "deleteMetadataConfigV2",
      "summary": "DeleteMetadataConfigV2",
      "description": "Delete a Tenant Metadata Configuration specified by the provided Metadata Configuration Id.",
      "input": [
        {
          "name": "metadataConfigId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "metadataConfigId",
            "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": "/deleteMetadataConfigV2"
      },
      "task": true
    },
    {
      "name": "getMetricBaselineByMonitoredObjectIdV2",
      "summary": "GetMetricBaselineByMonitoredObjectIdV2",
      "description": "Retrieve all Tenant Metric Baselines for a single Monitored Object.",
      "input": [
        {
          "name": "monitoredObjectId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "monitoredObjectId",
            "type": "string"
          }
        },
        {
          "name": "interval",
          "type": "string",
          "info": ": string",
          "required": false,
          "schema": {
            "title": "interval",
            "type": "string"
          }
        },
        {
          "name": "directions",
          "type": "array",
          "info": ": array",
          "required": false,
          "schema": {
            "title": "directions",
            "type": "array"
          }
        },
        {
          "name": "metrics",
          "type": "array",
          "info": ": array",
          "required": true,
          "schema": {
            "title": "metrics",
            "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": "/getMetricBaselineByMonitoredObjectIdV2"
      },
      "task": true
    },
    {
      "name": "getAllDuplicateMonitoredObjectReportsV2",
      "summary": "GetAllDuplicateMonitoredObjectReportsV2",
      "description": "Retrieve all Duplicate Monitored Object Reports for the specified Tenant.",
      "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": "/getAllDuplicateMonitoredObjectReportsV2"
      },
      "task": true
    },
    {
      "name": "generateDuplicateMonitoredObjectReportV2",
      "summary": "GenerateDuplicateMonitoredObjectReportV2",
      "description": "Updates the DuplicateMonitoredObjectReport for the specified Tenant.",
      "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": "/generateDuplicateMonitoredObjectReportV2"
      },
      "task": true
    },
    {
      "name": "getDuplicateMonitoredObjectReportV2",
      "summary": "GetDuplicateMonitoredObjectReportV2",
      "description": "Retrieve a Tenant Duplicate Monitored Object Report by Id.",
      "input": [
        {
          "name": "duplicateMonitoredObjectResportId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "duplicateMonitoredObjectResportId",
            "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": "/getDuplicateMonitoredObjectReportV2"
      },
      "task": true
    },
    {
      "name": "createMonitoredObjectTagMappingV2",
      "summary": "CreateMonitoredObjectTagMappingV2",
      "description": "Create a MonitoredObjectTagMapping for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [monitoredObjectTagMappings]\", \"id\": \"string\", \"attributes\": {\"tag\": \"string\", \"monitoredObjectIdList\": \"array\"}}}",
          "required": true,
          "schema": {
            "title": "MonitoredObjectTagMappingCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data40",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "monitoredObjectTagMappings"
                    ],
                    "type": "string",
                    "example": "monitoredObjectTagMappings"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes61",
                    "required": [
                      "tag",
                      "monitoredObjectIdList"
                    ],
                    "type": "object",
                    "properties": {
                      "tag": {
                        "type": "string",
                        "description": "User provided identifier for a MonitoredObjectTagMapping"
                      },
                      "monitoredObjectIdList": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of Monitored Object IDs that are grouped by the Tag"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to create a MonitoredObjectTagMapping in Datahub"
          }
        }
      ],
      "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": "/createMonitoredObjectTagMappingV2"
      },
      "task": true
    },
    {
      "name": "getAllMonitoredObjectTagMappingsV2",
      "summary": "GetAllMonitoredObjectTagMappingsV2",
      "description": "Retrieve all MonitoredObjectTagMappings for the specified Tenant.",
      "input": [
        {
          "name": "zone",
          "type": "string",
          "info": ": string",
          "required": false,
          "schema": {
            "title": "zone",
            "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": "/getAllMonitoredObjectTagMappingsV2"
      },
      "task": true
    },
    {
      "name": "getMonitoredObjectTagMappingV2",
      "summary": "GetMonitoredObjectTagMappingV2",
      "description": "Retrieve a Tenant MonitoredObjectTagMapping by Id.",
      "input": [
        {
          "name": "monitoredObjectTagMappingId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "monitoredObjectTagMappingId",
            "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": "/getMonitoredObjectTagMappingV2"
      },
      "task": true
    },
    {
      "name": "updateMonitoredObjectTagMappingV2",
      "summary": "UpdateMonitoredObjectTagMappingV2",
      "description": "Update a Tenant MonitoredObjectTagMapping specified by the provided MonitoredObjectTagMapping Id.",
      "input": [
        {
          "name": "monitoredObjectTagMappingId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "monitoredObjectTagMappingId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [monitoredObjectTagMappings]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"tag\": \"string\", \"monitoredObjectIdList\": \"array\"}}}",
          "required": true,
          "schema": {
            "title": "MonitoredObjectTagMappingUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data41",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "monitoredObjectTagMappings"
                    ],
                    "type": "string",
                    "example": "monitoredObjectTagMappings"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes62",
                    "required": [
                      "_rev",
                      "tag",
                      "monitoredObjectIdList"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "tag": {
                        "type": "string",
                        "description": "User provided identifier for a MonitoredObjectTagMapping"
                      },
                      "monitoredObjectIdList": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of Monitored Object IDs that are grouped by the Tag"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update a MonitoredObjectTagMapping in Datahub"
          }
        }
      ],
      "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": "/updateMonitoredObjectTagMappingV2"
      },
      "task": true
    },
    {
      "name": "deleteMonitoredObjectTagMappingV2",
      "summary": "DeleteMonitoredObjectTagMappingV2",
      "description": "Delete a Tenant MonitoredObjectTagMapping specified by the provided MonitoredObjectTagMapping Id.",
      "input": [
        {
          "name": "monitoredObjectTagMappingId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "monitoredObjectTagMappingId",
            "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": "/deleteMonitoredObjectTagMappingV2"
      },
      "task": true
    },
    {
      "name": "getAllMonitoredObjectsV2",
      "summary": "GetAllMonitoredObjectsV2",
      "description": "Retrieve all Monitored Objects for a Tenant.",
      "input": [
        {
          "name": "startKey",
          "type": "string",
          "info": "The name of the Monitored Object from which the result set will begin: string",
          "required": false,
          "schema": {
            "title": "startKey",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "The maximum number of records to return for a single page: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        }
      ],
      "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": "/getAllMonitoredObjectsV2"
      },
      "task": true
    },
    {
      "name": "createMonitoredObjectV2",
      "summary": "CreateMonitoredObjectV2",
      "description": "Create a Monitored Object for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [monitoredObjects]\", \"id\": \"string\", \"attributes\": {\"objectId\": \"string\", \"actuatorName\": \"string\", \"actuatorType\": \"Must be one of [unknown, accedian-nid, accedian-vnid]\", \"reflectorName\": \"string\", \"reflectorType\": \"Must be one of [unknown, accedian-nid, accedian-vnid]\", \"objectName\": \"string\", \"objectType\": \"string\", \"meta\": \"object\", \"sourceLocation\": {\"lat\": 123, \"lon\": 123}, \"destinationLocation\": {\"lat\": 123, \"lon\": 123}, \"topology\": \"array\"}}}",
          "required": true,
          "schema": {
            "title": "MonitoredObjectCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "MonitoredObjectCreate",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "monitoredObjects"
                    ],
                    "type": "string",
                    "example": "monitoredObjects"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes64",
                    "required": [
                      "objectId"
                    ],
                    "type": "object",
                    "properties": {
                      "objectId": {
                        "type": "string",
                        "description": "Unique identifier of the Monitored Object in Datahub"
                      },
                      "actuatorName": {
                        "type": "string",
                        "description": "Name of the origin of the Monitored Object"
                      },
                      "actuatorType": {
                        "title": "ActuatorType",
                        "enum": [
                          "unknown",
                          "accedian-nid",
                          "accedian-vnid"
                        ],
                        "type": "string",
                        "description": "Type of the origin of the Monitored Object",
                        "example": "unknown"
                      },
                      "reflectorName": {
                        "type": "string",
                        "description": "Name of the target of the Monitored Object"
                      },
                      "reflectorType": {
                        "title": "ReflectorType",
                        "enum": [
                          "unknown",
                          "accedian-nid",
                          "accedian-vnid"
                        ],
                        "type": "string",
                        "description": "Type of the target of the Monitored Object",
                        "example": "unknown"
                      },
                      "objectName": {
                        "type": "string",
                        "description": "Name of the Monitored Object"
                      },
                      "objectType": {
                        "type": "string",
                        "description": "Type of the Monitored Object. For instance, possible values are [unknown, flowmeter, twamp-pe, twamp-sf, twamp-sl, cisco-interface, cisco-node-summary, pvx, paa, \nregulator, rfc8321, dmm, slm, eth-dm, eth-vs, port, sa, sa-metrics, pl, iperf, echo-icmp, echo-udp]. If using dynamic types (i.e, for SNMP), you must enter the name of the dynamic type here"
                      },
                      "meta": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "Attributes added to a Monitored Object that help identify the Monitored Object as well as provide flitering/grouping properties",
                        "example": {
                          "region": "paris",
                          "wgs87_x": "-45.7123912",
                          "wgs87_y": "-74.2130912"
                        }
                      },
                      "sourceLocation": {
                        "title": "MonitoredObjectLocation",
                        "required": [
                          "lat",
                          "lon"
                        ],
                        "type": "object",
                        "properties": {
                          "lat": {
                            "type": "number",
                            "description": "Geographic latitude"
                          },
                          "lon": {
                            "type": "number",
                            "description": "Geographic longitude"
                          }
                        },
                        "description": "Defines the geographical location of the Monitored Object"
                      },
                      "destinationLocation": {
                        "title": "MonitoredObjectLocation",
                        "required": [
                          "lat",
                          "lon"
                        ],
                        "type": "object",
                        "properties": {
                          "lat": {
                            "type": "number",
                            "description": "Geographic latitude"
                          },
                          "lon": {
                            "type": "number",
                            "description": "Geographic longitude"
                          }
                        },
                        "description": "Defines the geographical location of the Monitored Object"
                      },
                      "topology": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "Tags used to describe the path segments associated with the Monitored Object"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to create a new Monitored Object in Datahub"
          }
        }
      ],
      "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": "/createMonitoredObjectV2"
      },
      "task": true
    },
    {
      "name": "getFilteredMonitoredObjectCountV2",
      "summary": "GetFilteredMonitoredObjectCountV2",
      "description": "Retrieve a count of monitored objects based on the provided filter criteria",
      "input": [
        {
          "name": "groupBy",
          "type": "string",
          "info": ": Must be one of [object-type]",
          "required": false,
          "schema": {
            "title": "groupBy",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"objectNamePrefix\": \"string\", \"objectType\": \"array\", \"meta\": \"object\", \"metaExclude\": \"array\", \"archiveTimestamp\": {\"before\": 123, \"after\": 123, \"absent\": \"boolean\"}, \"createdTimestamp\": {\"before\": 123, \"after\": 123, \"absent\": \"boolean\"}, \"sourceLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}, \"destinationLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}, \"topology\": \"array\"}",
          "required": true,
          "schema": {
            "title": "MonitoredObjectFilteredListRequest",
            "type": "object",
            "properties": {
              "objectNamePrefix": {
                "type": "string"
              },
              "objectType": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "meta": {
                "type": "object",
                "additionalProperties": {},
                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                "example": {
                  "region": [
                    "montreal",
                    "ottawa"
                  ],
                  "group": [
                    "radio"
                  ]
                }
              },
              "metaExclude": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                "example": [
                  "group"
                ]
              },
              "archiveTimestamp": {
                "title": "TimeRange",
                "type": "object",
                "properties": {
                  "before": {
                    "type": "integer"
                  },
                  "after": {
                    "type": "integer"
                  },
                  "absent": {
                    "type": "boolean"
                  }
                },
                "description": "A time range specified by before and after in epoch time. Both before and after are inclusive to the specified value."
              },
              "createdTimestamp": {
                "title": "TimeRange",
                "type": "object",
                "properties": {
                  "before": {
                    "type": "integer"
                  },
                  "after": {
                    "type": "integer"
                  },
                  "absent": {
                    "type": "boolean"
                  }
                },
                "description": "A time range specified by before and after in epoch time. Both before and after are inclusive to the specified value."
              },
              "sourceLocation": {
                "title": "GeoFence",
                "type": "object",
                "properties": {
                  "box": {
                    "title": "Box",
                    "type": "object",
                    "properties": {
                      "topLeft": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      },
                      "bottomRight": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "destinationLocation": {
                "title": "GeoFence",
                "type": "object",
                "properties": {
                  "box": {
                    "title": "Box",
                    "type": "object",
                    "properties": {
                      "topLeft": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      },
                      "bottomRight": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "topology": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              }
            }
          }
        }
      ],
      "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": "/getFilteredMonitoredObjectCountV2"
      },
      "task": true
    },
    {
      "name": "getFilteredMonitoredObjectListV2",
      "summary": "GetFilteredMonitoredObjectListV2",
      "description": "Retrieve a list of monitored objects based on the provided filter criteria",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"objectNamePrefix\": \"string\", \"objectType\": \"array\", \"meta\": \"object\", \"metaExclude\": \"array\", \"archiveTimestamp\": {\"before\": 123, \"after\": 123, \"absent\": \"boolean\"}, \"createdTimestamp\": {\"before\": 123, \"after\": 123, \"absent\": \"boolean\"}, \"sourceLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}, \"destinationLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}, \"topology\": \"array\"}",
          "required": true,
          "schema": {
            "title": "MonitoredObjectFilteredListRequest",
            "type": "object",
            "properties": {
              "objectNamePrefix": {
                "type": "string"
              },
              "objectType": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "meta": {
                "type": "object",
                "additionalProperties": {},
                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                "example": {
                  "region": [
                    "montreal",
                    "ottawa"
                  ],
                  "group": [
                    "radio"
                  ]
                }
              },
              "metaExclude": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                "example": [
                  "group"
                ]
              },
              "archiveTimestamp": {
                "title": "TimeRange",
                "type": "object",
                "properties": {
                  "before": {
                    "type": "integer"
                  },
                  "after": {
                    "type": "integer"
                  },
                  "absent": {
                    "type": "boolean"
                  }
                },
                "description": "A time range specified by before and after in epoch time. Both before and after are inclusive to the specified value."
              },
              "createdTimestamp": {
                "title": "TimeRange",
                "type": "object",
                "properties": {
                  "before": {
                    "type": "integer"
                  },
                  "after": {
                    "type": "integer"
                  },
                  "absent": {
                    "type": "boolean"
                  }
                },
                "description": "A time range specified by before and after in epoch time. Both before and after are inclusive to the specified value."
              },
              "sourceLocation": {
                "title": "GeoFence",
                "type": "object",
                "properties": {
                  "box": {
                    "title": "Box",
                    "type": "object",
                    "properties": {
                      "topLeft": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      },
                      "bottomRight": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "destinationLocation": {
                "title": "GeoFence",
                "type": "object",
                "properties": {
                  "box": {
                    "title": "Box",
                    "type": "object",
                    "properties": {
                      "topLeft": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      },
                      "bottomRight": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "topology": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              }
            }
          }
        }
      ],
      "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": "/getFilteredMonitoredObjectListV2"
      },
      "task": true
    },
    {
      "name": "getMonitoredObjectReportingListV2",
      "summary": "GetMonitoredObjectReportingListV2",
      "description": "Retrieve a list of monitored objects based on the provided reporting status criteria",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"reportingObjects\": \"boolean\", \"numberOfDays\": 123}",
          "required": true,
          "schema": {
            "title": "MonitoredObjectReportingListRequest",
            "type": "object",
            "properties": {
              "reportingObjects": {
                "type": "boolean",
                "description": "If true, the result will be a list of ids for monitored objects that are reporting. If false, the returned list will be monitored objects that are not reporting",
                "default": true
              },
              "numberOfDays": {
                "maximum": 31,
                "minimum": 1,
                "type": "number",
                "description": "Number of days, from current time, to look in the past to determine if the Monitored Objects are reporting",
                "default": 7
              }
            },
            "description": "Contains the parameters related to fetching a list of reporting Monitored Object IDs for a given timeframe"
          }
        }
      ],
      "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": "/getMonitoredObjectReportingListV2"
      },
      "task": true
    },
    {
      "name": "getMonitoredObjectGeoClustersV2",
      "summary": "GetMonitoredObjectGeoClustersV2",
      "description": "Retrieve set of counts clustered by GeoHash identifiers specified by the open source GeoHashing algorithm.",
      "input": [
        {
          "name": "precision",
          "type": "number",
          "info": "The level of precision required for the geohashing grid: 123",
          "required": true,
          "schema": {
            "title": "precision",
            "type": "number"
          }
        },
        {
          "name": "location",
          "type": "string",
          "info": "The location field that we want clustering based off of: Must be one of [source, destination]",
          "required": true,
          "schema": {
            "title": "location",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"objectNamePrefix\": \"string\", \"objectType\": \"array\", \"meta\": \"object\", \"metaExclude\": \"array\", \"archiveTimestamp\": {\"before\": 123, \"after\": 123, \"absent\": \"boolean\"}, \"createdTimestamp\": {\"before\": 123, \"after\": 123, \"absent\": \"boolean\"}, \"sourceLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}, \"destinationLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}, \"topology\": \"array\"}",
          "required": false,
          "schema": {
            "title": "MonitoredObjectFilteredListRequest",
            "type": "object",
            "properties": {
              "objectNamePrefix": {
                "type": "string"
              },
              "objectType": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "meta": {
                "type": "object",
                "additionalProperties": {},
                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                "example": {
                  "region": [
                    "montreal",
                    "ottawa"
                  ],
                  "group": [
                    "radio"
                  ]
                }
              },
              "metaExclude": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                "example": [
                  "group"
                ]
              },
              "archiveTimestamp": {
                "title": "TimeRange",
                "type": "object",
                "properties": {
                  "before": {
                    "type": "integer"
                  },
                  "after": {
                    "type": "integer"
                  },
                  "absent": {
                    "type": "boolean"
                  }
                },
                "description": "A time range specified by before and after in epoch time. Both before and after are inclusive to the specified value."
              },
              "createdTimestamp": {
                "title": "TimeRange",
                "type": "object",
                "properties": {
                  "before": {
                    "type": "integer"
                  },
                  "after": {
                    "type": "integer"
                  },
                  "absent": {
                    "type": "boolean"
                  }
                },
                "description": "A time range specified by before and after in epoch time. Both before and after are inclusive to the specified value."
              },
              "sourceLocation": {
                "title": "GeoFence",
                "type": "object",
                "properties": {
                  "box": {
                    "title": "Box",
                    "type": "object",
                    "properties": {
                      "topLeft": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      },
                      "bottomRight": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "destinationLocation": {
                "title": "GeoFence",
                "type": "object",
                "properties": {
                  "box": {
                    "title": "Box",
                    "type": "object",
                    "properties": {
                      "topLeft": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      },
                      "bottomRight": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "topology": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              }
            }
          }
        }
      ],
      "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": "/getMonitoredObjectGeoClustersV2"
      },
      "task": true
    },
    {
      "name": "getMonitoredObjectMetadataDetailsV2",
      "summary": "GetMonitoredObjectMetadataDetailsV2",
      "description": "Retrieve a record of the provisioned metadata including the counts of Monitored Objects that use each metadata value",
      "input": [
        {
          "name": "meta",
          "type": "array",
          "info": "List of metadata category names by which the request should be filtered: array",
          "required": false,
          "schema": {
            "title": "meta",
            "type": "array"
          }
        },
        {
          "name": "valuePrefix",
          "type": "string",
          "info": "Prefix by which all metadata values names by should start: string",
          "required": false,
          "schema": {
            "title": "valuePrefix",
            "type": "string"
          }
        },
        {
          "name": "categoriesOnly",
          "type": "boolean",
          "info": "Flag to indicate if the response should include only the metadata category names (when set to true) or also include meta values and counts (when set to false): boolean",
          "required": false,
          "schema": {
            "title": "categoriesOnly",
            "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": "/getMonitoredObjectMetadataDetailsV2"
      },
      "task": true
    },
    {
      "name": "getFilteredMonitoredObjectMetadataDetailsV2",
      "summary": "GetFilteredMonitoredObjectMetadataDetailsV2",
      "description": "Retrieve a record of the provisioned metadata including the counts of Monitored Objects that use each metadata value after being filtered by the passed in request body parameters",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"objectNamePrefix\": \"string\", \"objectType\": \"array\", \"meta\": \"object\", \"metaExclude\": \"array\", \"archiveTimestamp\": {\"before\": 123, \"after\": 123, \"absent\": \"boolean\"}, \"createdTimestamp\": {\"before\": 123, \"after\": 123, \"absent\": \"boolean\"}, \"sourceLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}, \"destinationLocation\": {\"box\": {\"topLeft\": {\"latitude\": 123, \"longitude\": 123}, \"bottomRight\": {\"latitude\": 123, \"longitude\": 123}}}, \"topology\": \"array\"}",
          "required": true,
          "schema": {
            "title": "MonitoredObjectFilteredListRequest",
            "type": "object",
            "properties": {
              "objectNamePrefix": {
                "type": "string"
              },
              "objectType": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              },
              "meta": {
                "type": "object",
                "additionalProperties": {},
                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                "example": {
                  "region": [
                    "montreal",
                    "ottawa"
                  ],
                  "group": [
                    "radio"
                  ]
                }
              },
              "metaExclude": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                "example": [
                  "group"
                ]
              },
              "archiveTimestamp": {
                "title": "TimeRange",
                "type": "object",
                "properties": {
                  "before": {
                    "type": "integer"
                  },
                  "after": {
                    "type": "integer"
                  },
                  "absent": {
                    "type": "boolean"
                  }
                },
                "description": "A time range specified by before and after in epoch time. Both before and after are inclusive to the specified value."
              },
              "createdTimestamp": {
                "title": "TimeRange",
                "type": "object",
                "properties": {
                  "before": {
                    "type": "integer"
                  },
                  "after": {
                    "type": "integer"
                  },
                  "absent": {
                    "type": "boolean"
                  }
                },
                "description": "A time range specified by before and after in epoch time. Both before and after are inclusive to the specified value."
              },
              "sourceLocation": {
                "title": "GeoFence",
                "type": "object",
                "properties": {
                  "box": {
                    "title": "Box",
                    "type": "object",
                    "properties": {
                      "topLeft": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      },
                      "bottomRight": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "destinationLocation": {
                "title": "GeoFence",
                "type": "object",
                "properties": {
                  "box": {
                    "title": "Box",
                    "type": "object",
                    "properties": {
                      "topLeft": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      },
                      "bottomRight": {
                        "title": "SpatialCoordinates",
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "topology": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": ""
              }
            }
          }
        }
      ],
      "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": "/getFilteredMonitoredObjectMetadataDetailsV2"
      },
      "task": true
    },
    {
      "name": "getMonitoredObjectV2",
      "summary": "GetMonitoredObjectV2",
      "description": "Retrieve a Tenant Monitored Object by id.",
      "input": [
        {
          "name": "monObjId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "monObjId",
            "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": "/getMonitoredObjectV2"
      },
      "task": true
    },
    {
      "name": "updateMonitoredObjectV2",
      "summary": "UpdateMonitoredObjectV2",
      "description": "Update a Tenant Monitored Object",
      "input": [
        {
          "name": "monObjId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "monObjId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [monitoredObjects]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"objectId\": \"string\", \"actuatorName\": \"string\", \"actuatorType\": \"Must be one of [unknown, accedian-nid, accedian-vnid]\", \"reflectorName\": \"string\", \"reflectorType\": \"Must be one of [unknown, accedian-nid, accedian-vnid]\", \"objectName\": \"string\", \"objectType\": \"string\", \"createdTimestamp\": 123, \"meta\": \"object\", \"sourceLocation\": {\"lat\": 123, \"lon\": 123}, \"destinationLocation\": {\"lat\": 123, \"lon\": 123}, \"topology\": \"array\", \"archiveTimestamp\": 123}}}",
          "required": true,
          "schema": {
            "title": "MonitoredObjectUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "MonitoredObjectUpdate",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "monitoredObjects"
                    ],
                    "type": "string",
                    "example": "monitoredObjects"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes65",
                    "required": [
                      "_rev",
                      "objectId",
                      "actuatorName",
                      "actuatorType",
                      "reflectorName",
                      "reflectorType",
                      "objectName",
                      "objectType",
                      "createdTimestamp",
                      "topology"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "objectId": {
                        "type": "string",
                        "description": "Unique identifier of the Monitored Object in Datahub"
                      },
                      "actuatorName": {
                        "type": "string",
                        "description": "Name of the origin of the Monitored Object",
                        "example": "unknown"
                      },
                      "actuatorType": {
                        "title": "ActuatorType",
                        "enum": [
                          "unknown",
                          "accedian-nid",
                          "accedian-vnid"
                        ],
                        "type": "string",
                        "description": "Type of the origin of the Monitored Object",
                        "example": "unknown"
                      },
                      "reflectorName": {
                        "type": "string",
                        "description": "Name of the target of the Monitored Object",
                        "example": "unknown"
                      },
                      "reflectorType": {
                        "title": "ReflectorType",
                        "enum": [
                          "unknown",
                          "accedian-nid",
                          "accedian-vnid"
                        ],
                        "type": "string",
                        "description": "Type of the target of the Monitored Object",
                        "example": "unknown"
                      },
                      "objectName": {
                        "type": "string",
                        "description": "Name of the Monitored Object"
                      },
                      "objectType": {
                        "type": "string",
                        "description": "Type of the Monitored Object. For instance, possible values are [unknown, flowmeter, twamp-pe, twamp-sf, twamp-sl, cisco-interface, cisco-node-summary, pvx, paa, \nregulator, rfc8321, dmm, slm, eth-dm, eth-vs, port, sa, sa-metrics, pl, iperf, echo-icmp, echo-udp]. If using dynamic types (i.e, for SNMP), you must enter the name of the dynamic type here"
                      },
                      "createdTimestamp": {
                        "type": "integer",
                        "description": "Time since epoch at which this object was instantiated."
                      },
                      "meta": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "Attributes added to a Monitored Object that help identify the Monitored Object as well as provide flitering/grouping properties",
                        "example": {
                          "region": "paris",
                          "wgs87_x": "-45.7123912",
                          "wgs87_y": "-74.2130912"
                        }
                      },
                      "sourceLocation": {
                        "title": "MonitoredObjectLocation",
                        "required": [
                          "lat",
                          "lon"
                        ],
                        "type": "object",
                        "properties": {
                          "lat": {
                            "type": "number",
                            "description": "Geographic latitude"
                          },
                          "lon": {
                            "type": "number",
                            "description": "Geographic longitude"
                          }
                        },
                        "description": "Defines the geographical location of the Monitored Object"
                      },
                      "destinationLocation": {
                        "title": "MonitoredObjectLocation",
                        "required": [
                          "lat",
                          "lon"
                        ],
                        "type": "object",
                        "properties": {
                          "lat": {
                            "type": "number",
                            "description": "Geographic latitude"
                          },
                          "lon": {
                            "type": "number",
                            "description": "Geographic longitude"
                          }
                        },
                        "description": "Defines the geographical location of the Monitored Object"
                      },
                      "topology": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "Tags used to describe the path segments associated with the Monitored Object"
                      },
                      "archiveTimestamp": {
                        "type": "integer",
                        "description": "Time since epoch at which this object was archived.",
                        "default": 0
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update an existing Monitored Object in Datahub"
          }
        }
      ],
      "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": "/updateMonitoredObjectV2"
      },
      "task": true
    },
    {
      "name": "deleteMonitoredObjectV2",
      "summary": "DeleteMonitoredObjectV2",
      "description": "Delete a Tenant Monitored Object specified by the provided id.",
      "input": [
        {
          "name": "monObjId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "monObjId",
            "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": "/deleteMonitoredObjectV2"
      },
      "task": true
    },
    {
      "name": "bulkPatchMonitoredObjectsV2",
      "summary": "BulkPatchMonitoredObjectsV2",
      "description": "Patches one or more Monitored Objects's based on the provided values",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": [{\"type\": \"Must be one of [monitoredObjects]\", \"id\": \"string\", \"attributes\": {\"actuatorName\": \"string\", \"actuatorType\": \"Must be one of [unknown, accedian-nid, accedian-vnid]\", \"reflectorName\": \"string\", \"reflectorType\": \"Must be one of [unknown, accedian-nid, accedian-vnid]\", \"objectType\": \"string\", \"meta\": \"object\", \"sourceLocation\": {\"lat\": 123, \"lon\": 123}, \"destinationLocation\": {\"lat\": 123, \"lon\": 123}, \"topology\": \"array\"}}]}",
          "required": true,
          "schema": {
            "title": "BulkMonitoredObjectPatchRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "title": "MonitoredObjectPatch",
                  "required": [
                    "type",
                    "id",
                    "attributes"
                  ],
                  "type": "object",
                  "properties": {
                    "type": {
                      "enum": [
                        "monitoredObjects"
                      ],
                      "type": "string",
                      "example": "monitoredObjects"
                    },
                    "id": {
                      "type": "string"
                    },
                    "attributes": {
                      "title": "Attributes69",
                      "type": "object",
                      "properties": {
                        "actuatorName": {
                          "type": "string",
                          "description": "Name of the origin of the Monitored Object",
                          "default": "unknown"
                        },
                        "actuatorType": {
                          "title": "ActuatorType",
                          "enum": [
                            "unknown",
                            "accedian-nid",
                            "accedian-vnid"
                          ],
                          "type": "string",
                          "description": "Type of the origin of the Monitored Object",
                          "example": "unknown"
                        },
                        "reflectorName": {
                          "type": "string",
                          "description": "Name of the target of the Monitored Object",
                          "default": "unknown"
                        },
                        "reflectorType": {
                          "title": "ReflectorType",
                          "enum": [
                            "unknown",
                            "accedian-nid",
                            "accedian-vnid"
                          ],
                          "type": "string",
                          "description": "Type of the target of the Monitored Object",
                          "example": "unknown"
                        },
                        "objectType": {
                          "type": "string",
                          "description": "Type of the Monitored Object. For instance, possible values are [unknown, flowmeter, twamp-pe, twamp-sf, twamp-sl, cisco-interface, cisco-node-summary, pvx, paa, \nregulator, rfc8321, dmm, slm, eth-dm, eth-vs, port, sa, sa-metrics, pl, iperf, echo-icmp, echo-udp]. If using dynamic types (i.e, for SNMP), you must enter the name of the dynamic type here"
                        },
                        "meta": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "string"
                          },
                          "description": "Attributes added to a Monitored Object that help identify the Monitored Object as well as provide flitering/grouping properties",
                          "example": {
                            "region": "paris",
                            "wgs87_x": "-45.7123912",
                            "wgs87_y": "-74.2130912"
                          }
                        },
                        "sourceLocation": {
                          "title": "MonitoredObjectLocation",
                          "required": [
                            "lat",
                            "lon"
                          ],
                          "type": "object",
                          "properties": {
                            "lat": {
                              "type": "number",
                              "description": "Geographic latitude"
                            },
                            "lon": {
                              "type": "number",
                              "description": "Geographic longitude"
                            }
                          },
                          "description": "Defines the geographical location of the Monitored Object"
                        },
                        "destinationLocation": {
                          "title": "MonitoredObjectLocation",
                          "required": [
                            "lat",
                            "lon"
                          ],
                          "type": "object",
                          "properties": {
                            "lat": {
                              "type": "number",
                              "description": "Geographic latitude"
                            },
                            "lon": {
                              "type": "number",
                              "description": "Geographic longitude"
                            }
                          },
                          "description": "Defines the geographical location of the Monitored Object"
                        },
                        "topology": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Tags used to describe the path segments associated with the Monitored Object"
                        }
                      }
                    }
                  }
                },
                "description": ""
              }
            },
            "description": "Patch the names for Monitored Objects in Datahub"
          }
        }
      ],
      "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": "/bulkPatchMonitoredObjectsV2"
      },
      "task": true
    },
    {
      "name": "bulkInsertMonitoredObjectsV2",
      "summary": "BulkInsertMonitoredObjectsV2",
      "description": "Create one or more Monitored Objects in a single API request.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": [{\"type\": \"Must be one of [monitoredObjects]\", \"id\": \"string\", \"attributes\": {\"objectId\": \"string\", \"actuatorName\": \"string\", \"actuatorType\": \"Must be one of [unknown, accedian-nid, accedian-vnid]\", \"reflectorName\": \"string\", \"reflectorType\": \"Must be one of [unknown, accedian-nid, accedian-vnid]\", \"objectName\": \"string\", \"objectType\": \"string\", \"meta\": \"object\", \"sourceLocation\": {\"lat\": 123, \"lon\": 123}, \"destinationLocation\": {\"lat\": 123, \"lon\": 123}, \"topology\": \"array\"}}]}",
          "required": true,
          "schema": {
            "title": "BulkMonitoredObjectCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "title": "MonitoredObjectCreate",
                  "required": [
                    "type",
                    "attributes"
                  ],
                  "type": "object",
                  "properties": {
                    "type": {
                      "enum": [
                        "monitoredObjects"
                      ],
                      "type": "string",
                      "example": "monitoredObjects"
                    },
                    "id": {
                      "type": "string"
                    },
                    "attributes": {
                      "title": "Attributes64",
                      "required": [
                        "objectId"
                      ],
                      "type": "object",
                      "properties": {
                        "objectId": {
                          "type": "string",
                          "description": "Unique identifier of the Monitored Object in Datahub"
                        },
                        "actuatorName": {
                          "type": "string",
                          "description": "Name of the origin of the Monitored Object"
                        },
                        "actuatorType": {
                          "title": "ActuatorType",
                          "enum": [
                            "unknown",
                            "accedian-nid",
                            "accedian-vnid"
                          ],
                          "type": "string",
                          "description": "Type of the origin of the Monitored Object",
                          "example": "unknown"
                        },
                        "reflectorName": {
                          "type": "string",
                          "description": "Name of the target of the Monitored Object"
                        },
                        "reflectorType": {
                          "title": "ReflectorType",
                          "enum": [
                            "unknown",
                            "accedian-nid",
                            "accedian-vnid"
                          ],
                          "type": "string",
                          "description": "Type of the target of the Monitored Object",
                          "example": "unknown"
                        },
                        "objectName": {
                          "type": "string",
                          "description": "Name of the Monitored Object"
                        },
                        "objectType": {
                          "type": "string",
                          "description": "Type of the Monitored Object. For instance, possible values are [unknown, flowmeter, twamp-pe, twamp-sf, twamp-sl, cisco-interface, cisco-node-summary, pvx, paa, \nregulator, rfc8321, dmm, slm, eth-dm, eth-vs, port, sa, sa-metrics, pl, iperf, echo-icmp, echo-udp]. If using dynamic types (i.e, for SNMP), you must enter the name of the dynamic type here"
                        },
                        "meta": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "string"
                          },
                          "description": "Attributes added to a Monitored Object that help identify the Monitored Object as well as provide flitering/grouping properties",
                          "example": {
                            "region": "paris",
                            "wgs87_x": "-45.7123912",
                            "wgs87_y": "-74.2130912"
                          }
                        },
                        "sourceLocation": {
                          "title": "MonitoredObjectLocation",
                          "required": [
                            "lat",
                            "lon"
                          ],
                          "type": "object",
                          "properties": {
                            "lat": {
                              "type": "number",
                              "description": "Geographic latitude"
                            },
                            "lon": {
                              "type": "number",
                              "description": "Geographic longitude"
                            }
                          },
                          "description": "Defines the geographical location of the Monitored Object"
                        },
                        "destinationLocation": {
                          "title": "MonitoredObjectLocation",
                          "required": [
                            "lat",
                            "lon"
                          ],
                          "type": "object",
                          "properties": {
                            "lat": {
                              "type": "number",
                              "description": "Geographic latitude"
                            },
                            "lon": {
                              "type": "number",
                              "description": "Geographic longitude"
                            }
                          },
                          "description": "Defines the geographical location of the Monitored Object"
                        },
                        "topology": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Tags used to describe the path segments associated with the Monitored Object"
                        }
                      }
                    }
                  }
                },
                "description": ""
              }
            },
            "description": "Object used to create one or more Monitored Object in Datahub"
          }
        }
      ],
      "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": "/bulkInsertMonitoredObjectsV2"
      },
      "task": true
    },
    {
      "name": "bulkUpdateMonitoredObjectsV2",
      "summary": "BulkUpdateMonitoredObjectsV2",
      "description": "Update one or more Monitored Objects in a single API request. Note that this is a PUT operation for each Monitored Object. This means that all properties must be explicitly provided",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": [{\"type\": \"Must be one of [monitoredObjects]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"objectId\": \"string\", \"actuatorName\": \"string\", \"actuatorType\": \"Must be one of [unknown, accedian-nid, accedian-vnid]\", \"reflectorName\": \"string\", \"reflectorType\": \"Must be one of [unknown, accedian-nid, accedian-vnid]\", \"objectName\": \"string\", \"objectType\": \"string\", \"createdTimestamp\": 123, \"meta\": \"object\", \"sourceLocation\": {\"lat\": 123, \"lon\": 123}, \"destinationLocation\": {\"lat\": 123, \"lon\": 123}, \"topology\": \"array\", \"archiveTimestamp\": 123}}]}",
          "required": true,
          "schema": {
            "title": "BulkMonitoredObjectUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "title": "MonitoredObjectUpdate",
                  "required": [
                    "type",
                    "id",
                    "attributes"
                  ],
                  "type": "object",
                  "properties": {
                    "type": {
                      "enum": [
                        "monitoredObjects"
                      ],
                      "type": "string",
                      "example": "monitoredObjects"
                    },
                    "id": {
                      "type": "string"
                    },
                    "attributes": {
                      "title": "Attributes65",
                      "required": [
                        "_rev",
                        "objectId",
                        "actuatorName",
                        "actuatorType",
                        "reflectorName",
                        "reflectorType",
                        "objectName",
                        "objectType",
                        "createdTimestamp",
                        "topology"
                      ],
                      "type": "object",
                      "properties": {
                        "_rev": {
                          "type": "string",
                          "description": "Value used to ensure updates to this object are handled in order."
                        },
                        "objectId": {
                          "type": "string",
                          "description": "Unique identifier of the Monitored Object in Datahub"
                        },
                        "actuatorName": {
                          "type": "string",
                          "description": "Name of the origin of the Monitored Object",
                          "example": "unknown"
                        },
                        "actuatorType": {
                          "title": "ActuatorType",
                          "enum": [
                            "unknown",
                            "accedian-nid",
                            "accedian-vnid"
                          ],
                          "type": "string",
                          "description": "Type of the origin of the Monitored Object",
                          "example": "unknown"
                        },
                        "reflectorName": {
                          "type": "string",
                          "description": "Name of the target of the Monitored Object",
                          "example": "unknown"
                        },
                        "reflectorType": {
                          "title": "ReflectorType",
                          "enum": [
                            "unknown",
                            "accedian-nid",
                            "accedian-vnid"
                          ],
                          "type": "string",
                          "description": "Type of the target of the Monitored Object",
                          "example": "unknown"
                        },
                        "objectName": {
                          "type": "string",
                          "description": "Name of the Monitored Object"
                        },
                        "objectType": {
                          "type": "string",
                          "description": "Type of the Monitored Object. For instance, possible values are [unknown, flowmeter, twamp-pe, twamp-sf, twamp-sl, cisco-interface, cisco-node-summary, pvx, paa, \nregulator, rfc8321, dmm, slm, eth-dm, eth-vs, port, sa, sa-metrics, pl, iperf, echo-icmp, echo-udp]. If using dynamic types (i.e, for SNMP), you must enter the name of the dynamic type here"
                        },
                        "createdTimestamp": {
                          "type": "integer",
                          "description": "Time since epoch at which this object was instantiated."
                        },
                        "meta": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "string"
                          },
                          "description": "Attributes added to a Monitored Object that help identify the Monitored Object as well as provide flitering/grouping properties",
                          "example": {
                            "region": "paris",
                            "wgs87_x": "-45.7123912",
                            "wgs87_y": "-74.2130912"
                          }
                        },
                        "sourceLocation": {
                          "title": "MonitoredObjectLocation",
                          "required": [
                            "lat",
                            "lon"
                          ],
                          "type": "object",
                          "properties": {
                            "lat": {
                              "type": "number",
                              "description": "Geographic latitude"
                            },
                            "lon": {
                              "type": "number",
                              "description": "Geographic longitude"
                            }
                          },
                          "description": "Defines the geographical location of the Monitored Object"
                        },
                        "destinationLocation": {
                          "title": "MonitoredObjectLocation",
                          "required": [
                            "lat",
                            "lon"
                          ],
                          "type": "object",
                          "properties": {
                            "lat": {
                              "type": "number",
                              "description": "Geographic latitude"
                            },
                            "lon": {
                              "type": "number",
                              "description": "Geographic longitude"
                            }
                          },
                          "description": "Defines the geographical location of the Monitored Object"
                        },
                        "topology": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Tags used to describe the path segments associated with the Monitored Object"
                        },
                        "archiveTimestamp": {
                          "type": "integer",
                          "description": "Time since epoch at which this object was archived.",
                          "default": 0
                        }
                      }
                    }
                  }
                },
                "description": ""
              }
            },
            "description": "Object used to update one or more Monitored Objects in Datahub"
          }
        }
      ],
      "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": "/bulkUpdateMonitoredObjectsV2"
      },
      "task": true
    },
    {
      "name": "bulkInsertMonitoredObjectsMetaV2",
      "summary": "BulkInsertMonitoredObjectsMetaV2",
      "description": "Update the metadata of one or more Monitored Objects in a single API request.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [monitoredObjectsMeta]\", \"attributes\": {\"metadata-entries\": [{\"objectName\": \"string\", \"metadata\": \"object\", \"sourceLocation\": {\"lat\": 123, \"lon\": 123}, \"destinationLocation\": {\"lat\": 123, \"lon\": 123}, \"topology\": \"array\"}]}}}",
          "required": true,
          "schema": {
            "title": "BulkMonitoredObjectMetaCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data43",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "monitoredObjectsMeta"
                    ],
                    "type": "string",
                    "example": "monitoredObjectsMeta"
                  },
                  "attributes": {
                    "title": "Attributes68",
                    "type": "object",
                    "properties": {
                      "metadata-entries": {
                        "type": "array",
                        "items": {
                          "title": "MetadataEntry",
                          "required": [
                            "objectName",
                            "metadata"
                          ],
                          "type": "object",
                          "properties": {
                            "objectName": {
                              "type": "string",
                              "description": "Name of the monitored object in the datastore"
                            },
                            "metadata": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "string"
                              },
                              "description": "Attributes added to a Monitored Object that help identify the Monitored Object as well as provide filtering/grouping properties",
                              "example": {
                                "region": "paris",
                                "wgs87_x": "-45.7123912",
                                "wgs87_y": "-74.2130912"
                              }
                            },
                            "sourceLocation": {
                              "title": "MonitoredObjectLocation",
                              "required": [
                                "lat",
                                "lon"
                              ],
                              "type": "object",
                              "properties": {
                                "lat": {
                                  "type": "number",
                                  "description": "Geographic latitude"
                                },
                                "lon": {
                                  "type": "number",
                                  "description": "Geographic longitude"
                                }
                              },
                              "description": "Defines the geographical location of the Monitored Object"
                            },
                            "destinationLocation": {
                              "title": "MonitoredObjectLocation",
                              "required": [
                                "lat",
                                "lon"
                              ],
                              "type": "object",
                              "properties": {
                                "lat": {
                                  "type": "number",
                                  "description": "Geographic latitude"
                                },
                                "lon": {
                                  "type": "number",
                                  "description": "Geographic longitude"
                                }
                              },
                              "description": "Defines the geographical location of the Monitored Object"
                            },
                            "topology": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Tags used to describe the path segments associated with the Monitored Object"
                            }
                          }
                        },
                        "description": ""
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update the meta information for one or more Monitored Objects in Datahub"
          }
        }
      ],
      "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": "/bulkInsertMonitoredObjectsMetaV2"
      },
      "task": true
    },
    {
      "name": "getAllMonitoredObjectSummariesV2",
      "summary": "GetAllMonitoredObjectSummariesV2",
      "description": "Retrieve all Monitored Object Summaries for a Tenant.",
      "input": [
        {
          "name": "startKey",
          "type": "string",
          "info": "The name of the Monitored Object from which the result set will begin: string",
          "required": false,
          "schema": {
            "title": "startKey",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "The maximum number of records to return for a single page: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        }
      ],
      "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": "/getAllMonitoredObjectSummariesV2"
      },
      "task": true
    },
    {
      "name": "getMonitoredObjectSummaryV2",
      "summary": "GetMonitoredObjectSummaryV2",
      "description": "Retrieve a Tenant Monitored Object Summary by the Monitored Object's id.",
      "input": [
        {
          "name": "monObjId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "monObjId",
            "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": "/getMonitoredObjectSummaryV2"
      },
      "task": true
    },
    {
      "name": "getAllMetadataCategoryMappingsV2",
      "summary": "GetAllMetadataCategoryMappingsV2",
      "description": "Retrieve all Monitored Object Metadata Mappings for a Tenant.",
      "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": "/getAllMetadataCategoryMappingsV2"
      },
      "task": true
    },
    {
      "name": "getMetadataCategoryMappingV2",
      "summary": "GetMetadataCategoryMappingV2",
      "description": "Retrieve a particular Tenant Monitored Object Metadata Mapping by the type of mapping.",
      "input": [
        {
          "name": "mappingType",
          "type": "string",
          "info": "The type of Metadata Category Mapping: Must be one of [unknown, activeMetrics]",
          "required": true,
          "schema": {
            "title": "mappingType",
            "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": "/getMetadataCategoryMappingV2"
      },
      "task": true
    },
    {
      "name": "updateMetadataCategoryMappingV2",
      "summary": "UpdateMetadataCategoryMappingV2",
      "description": "Update a particular Tenant Monitored Object Metadata Mapping by the type of mapping.",
      "input": [
        {
          "name": "mappingType",
          "type": "string",
          "info": "The type of Metadata Category Mapping to be updated: Must be one of [unknown, activeMetrics]",
          "required": true,
          "schema": {
            "title": "mappingType",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [metadataCategoryMappings]\", \"attributes\": {\"add\": \"array\", \"archive\": \"array\", \"rename\": [{\"existingName\": \"string\", \"newName\": \"string\"}]}}}",
          "required": true,
          "schema": {
            "title": "MetadataCategoryMappingUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data44",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "metadataCategoryMappings"
                    ],
                    "type": "string",
                    "example": "metadataCategoryMappings"
                  },
                  "attributes": {
                    "title": "Attributes76",
                    "type": "object",
                    "properties": {
                      "add": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of Metadata Category Names to be added to the Metadata Category Mapping"
                      },
                      "archive": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of Metadata Category Names that should no longer be tracked against the Monitored Objects"
                      },
                      "rename": {
                        "type": "array",
                        "items": {
                          "title": "MetadataRenameData",
                          "required": [
                            "existingName",
                            "newName"
                          ],
                          "type": "object",
                          "properties": {
                            "existingName": {
                              "type": "string",
                              "description": "The current alias name of a Metadata Category Mapping to be changed"
                            },
                            "newName": {
                              "type": "string",
                              "description": "The desired alias name of a Metadata Category Mapping to be changed"
                            }
                          },
                          "description": "Object providing Metadata Category Mapping alias name change information"
                        },
                        "description": "List of Metadata Category Names to be renamed in the Metadata Category Mapping"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update a Metadata Category Mapping for a Tenant in Datahub"
          }
        }
      ],
      "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": "/updateMetadataCategoryMappingV2"
      },
      "task": true
    },
    {
      "name": "createSessionFilterProfileV2",
      "summary": "CreateSessionFilterProfileV2",
      "description": "Create a SessionFilterProfile for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [sessionFilterProfiles]\", \"id\": \"string\", \"relationships\": {\"sessionFilters\": {\"data\": [{\"type\": \"string\", \"id\": \"string\"}]}}, \"attributes\": {\"name\": \"string\"}}}",
          "required": true,
          "schema": {
            "title": "SessionFilterProfileCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data52",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "sessionFilterProfiles"
                    ],
                    "type": "string",
                    "example": "sessionFilterProfiles"
                  },
                  "id": {
                    "type": "string"
                  },
                  "relationships": {
                    "title": "SessionFilterProfileRelationships",
                    "type": "object",
                    "properties": {
                      "sessionFilters": {
                        "title": "JsonApiRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "JsonApiRelationshipData",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string"
                                },
                                "id": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      }
                    }
                  },
                  "attributes": {
                    "title": "Attributes82",
                    "required": [
                      "name"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "User provided identifier for a SessionFilterProfile"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to create a SessionFilterProfile in Datahub"
          }
        }
      ],
      "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": "/createSessionFilterProfileV2"
      },
      "task": true
    },
    {
      "name": "getAllSessionFilterProfilesV2",
      "summary": "GetAllSessionFilterProfilesV2",
      "description": "Retrieve all SessionFilterProfiles for the specified Tenant.",
      "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": "/getAllSessionFilterProfilesV2"
      },
      "task": true
    },
    {
      "name": "getSessionFilterProfileV2",
      "summary": "GetSessionFilterProfileV2",
      "description": "Retrieve a Tenant Dashboard by Id.",
      "input": [
        {
          "name": "sessionFilterProfileId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "sessionFilterProfileId",
            "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": "/getSessionFilterProfileV2"
      },
      "task": true
    },
    {
      "name": "updateSessionFilterProfileV2",
      "summary": "UpdateSessionFilterProfileV2",
      "description": "Update a Tenant SessionFilterProfile specified by the provided SessionFilterProfile Id.",
      "input": [
        {
          "name": "sessionFilterProfileId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "sessionFilterProfileId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [sessionFilterProfiles]\", \"id\": \"string\", \"relationships\": {\"sessionFilters\": {\"data\": [{\"type\": \"string\", \"id\": \"string\"}]}}, \"attributes\": {\"name\": \"string\"}}}",
          "required": true,
          "schema": {
            "title": "SessionFilterProfileUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data53",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "sessionFilterProfiles"
                    ],
                    "type": "string",
                    "example": "sessionFilterProfiles"
                  },
                  "id": {
                    "type": "string"
                  },
                  "relationships": {
                    "title": "SessionFilterProfileRelationships",
                    "type": "object",
                    "properties": {
                      "sessionFilters": {
                        "title": "JsonApiRelationship",
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "title": "JsonApiRelationshipData",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string"
                                },
                                "id": {
                                  "type": "string"
                                }
                              }
                            },
                            "description": ""
                          }
                        }
                      }
                    }
                  },
                  "attributes": {
                    "title": "Attributes82",
                    "required": [
                      "name"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "User provided identifier for a SessionFilterProfile"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update a SessionFilterProfile in Datahub"
          }
        }
      ],
      "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": "/updateSessionFilterProfileV2"
      },
      "task": true
    },
    {
      "name": "patchSessionFilterProfileV2",
      "summary": "PatchSessionFilterProfileV2",
      "description": "Patch a Tenant SessionFilterProfile specified by the provided SessionFilterProfile Id, with partial modifications.",
      "input": [
        {
          "name": "sessionFilterProfileId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "sessionFilterProfileId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [sessionFilterProfiles]\", \"attributes\": {\"addSessionFilters\": \"array\", \"removeSessionFilters\": \"array\", \"updateProperties\": {\"name\": \"string\"}}}}",
          "required": true,
          "schema": {
            "title": "PatchSessionFilterProfileRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data56",
                "required": [
                  "id",
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "sessionFilterProfiles"
                    ],
                    "type": "string",
                    "example": "sessionFilterProfiles"
                  },
                  "attributes": {
                    "title": "Attributes87",
                    "type": "object",
                    "properties": {
                      "addSessionFilters": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of SessionFilter IDs to be added to this SessionFilterProfile"
                      },
                      "removeSessionFilters": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of SessionFilter IDs to be removed from this SessionFilterProfile"
                      },
                      "updateProperties": {
                        "title": "UpdateProperties",
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          }
                        },
                        "description": "Properties to be edited on the SessionFilterProfile"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to patch a SessionFilterProfile in Datahub"
          }
        }
      ],
      "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": "/patchSessionFilterProfileV2"
      },
      "task": true
    },
    {
      "name": "deleteSessionFilterProfileV2",
      "summary": "DeleteSessionFilterProfileV2",
      "description": "Delete a Tenant SessionFilterProfile specified by the provided SessionFilterProfile Id.",
      "input": [
        {
          "name": "sessionFilterProfileId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "sessionFilterProfileId",
            "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": "/deleteSessionFilterProfileV2"
      },
      "task": true
    },
    {
      "name": "createSessionFilterV2",
      "summary": "CreateSessionFilterV2",
      "description": "Create a SessionFilter for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [sessionFilters]\", \"id\": \"string\", \"attributes\": {\"name\": \"string\", \"reportingDuration\": 123, \"type\": \"Must be one of [whitelist, blacklist]\", \"filterItems\": [{\"field\": \"string\", \"value\": \"string\", \"isPartialMatch\": \"boolean\"}]}}}",
          "required": true,
          "schema": {
            "title": "SessionFilterCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data54",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "sessionFilters"
                    ],
                    "type": "string",
                    "example": "sessionFilters"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes85",
                    "required": [
                      "name"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "reportingDuration": {
                        "type": "integer",
                        "description": "The minimum allowed reporting duration, in seconds. ex: - per second data = 1 - per 5 minute data = 5*60 = 300 - per 15 miunte data = 5*15 = 900 The lower the duration, the higher the rate. i.e.: - per second data = 1 record every second = 3600 every hour"
                      },
                      "type": {
                        "title": "Type32",
                        "enum": [
                          "whitelist",
                          "blacklist"
                        ],
                        "type": "string",
                        "example": "whitelist"
                      },
                      "filterItems": {
                        "type": "array",
                        "items": {
                          "title": "FilterItem",
                          "required": [
                            "field",
                            "value",
                            "isPartialMatch"
                          ],
                          "type": "object",
                          "properties": {
                            "field": {
                              "type": "string",
                              "description": "The field the filtering will be filtering on."
                            },
                            "value": {
                              "type": "string",
                              "description": "The value the filtering will be filtering by. Can be a full value, or partial string match."
                            },
                            "isPartialMatch": {
                              "type": "boolean",
                              "description": "If true, 'value' will be used as a partial string match."
                            }
                          }
                        },
                        "description": "A list containing the attribute and value the filter will work on."
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to create a SessionFilter in Datahub"
          }
        }
      ],
      "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": "/createSessionFilterV2"
      },
      "task": true
    },
    {
      "name": "getAllSessionFiltersV2",
      "summary": "GetAllSessionFiltersV2",
      "description": "Retrieve all SessionFilters for the specified Tenant.",
      "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": "/getAllSessionFiltersV2"
      },
      "task": true
    },
    {
      "name": "getSessionFilterV2",
      "summary": "GetSessionFilterV2",
      "description": "Retrieve a Tenant SessionFilter by Id.",
      "input": [
        {
          "name": "sessionFilterId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "sessionFilterId",
            "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": "/getSessionFilterV2"
      },
      "task": true
    },
    {
      "name": "updateSessionFilterV2",
      "summary": "UpdateSessionFilterV2",
      "description": "Update a Tenant SessionFilter specified by the provided SessionFilter Id.",
      "input": [
        {
          "name": "sessionFilterId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "sessionFilterId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [sessionFilters]\", \"id\": \"string\", \"attributes\": {\"name\": \"string\", \"reportingDuration\": 123, \"type\": \"Must be one of [whitelist, blacklist]\", \"filterItems\": [{\"field\": \"string\", \"value\": \"string\", \"isPartialMatch\": \"boolean\"}]}}}",
          "required": true,
          "schema": {
            "title": "SessionFilterUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data55",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "sessionFilters"
                    ],
                    "type": "string",
                    "example": "sessionFilters"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes85",
                    "required": [
                      "name"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "reportingDuration": {
                        "type": "integer",
                        "description": "The minimum allowed reporting duration, in seconds. ex: - per second data = 1 - per 5 minute data = 5*60 = 300 - per 15 miunte data = 5*15 = 900 The lower the duration, the higher the rate. i.e.: - per second data = 1 record every second = 3600 every hour"
                      },
                      "type": {
                        "title": "Type32",
                        "enum": [
                          "whitelist",
                          "blacklist"
                        ],
                        "type": "string",
                        "example": "whitelist"
                      },
                      "filterItems": {
                        "type": "array",
                        "items": {
                          "title": "FilterItem",
                          "required": [
                            "field",
                            "value",
                            "isPartialMatch"
                          ],
                          "type": "object",
                          "properties": {
                            "field": {
                              "type": "string",
                              "description": "The field the filtering will be filtering on."
                            },
                            "value": {
                              "type": "string",
                              "description": "The value the filtering will be filtering by. Can be a full value, or partial string match."
                            },
                            "isPartialMatch": {
                              "type": "boolean",
                              "description": "If true, 'value' will be used as a partial string match."
                            }
                          }
                        },
                        "description": "A list containing the attribute and value the filter will work on."
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update a SessionFilter in Datahub"
          }
        }
      ],
      "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": "/updateSessionFilterV2"
      },
      "task": true
    },
    {
      "name": "patchSessionFilterV2",
      "summary": "PatchSessionFilterV2",
      "description": "Patch a Tenant SessionFilter specified by the provided SessionFilter Id, with partial modifications.",
      "input": [
        {
          "name": "sessionFilterId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "sessionFilterId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [sessionFilters]\", \"attributes\": {\"addSessionFilterItems\": [{\"field\": \"string\", \"value\": \"string\", \"isPartialMatch\": \"boolean\"}], \"removeSessionFilterItems\": [{\"field\": \"string\", \"value\": \"string\", \"isPartialMatch\": \"boolean\"}], \"updateProperties\": {\"name\": \"string\", \"type\": \"Must be one of [whitelist, blacklist]\"}}}}",
          "required": true,
          "schema": {
            "title": "PatchSessionFilterRequest",
            "type": "object",
            "properties": {
              "data": {
                "title": "Data57",
                "required": [
                  "id",
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "sessionFilters"
                    ],
                    "type": "string",
                    "example": "sessionFilters"
                  },
                  "attributes": {
                    "title": "Attributes88",
                    "type": "object",
                    "properties": {
                      "addSessionFilterItems": {
                        "type": "array",
                        "items": {
                          "title": "FilterItem",
                          "required": [
                            "field",
                            "value",
                            "isPartialMatch"
                          ],
                          "type": "object",
                          "properties": {
                            "field": {
                              "type": "string",
                              "description": "The field the filtering will be filtering on."
                            },
                            "value": {
                              "type": "string",
                              "description": "The value the filtering will be filtering by. Can be a full value, or partial string match."
                            },
                            "isPartialMatch": {
                              "type": "boolean",
                              "description": "If true, 'value' will be used as a partial string match."
                            }
                          }
                        },
                        "description": "List of SessionFilterItems to be added to this SessionFilter"
                      },
                      "removeSessionFilterItems": {
                        "type": "array",
                        "items": {
                          "title": "FilterItem",
                          "required": [
                            "field",
                            "value",
                            "isPartialMatch"
                          ],
                          "type": "object",
                          "properties": {
                            "field": {
                              "type": "string",
                              "description": "The field the filtering will be filtering on."
                            },
                            "value": {
                              "type": "string",
                              "description": "The value the filtering will be filtering by. Can be a full value, or partial string match."
                            },
                            "isPartialMatch": {
                              "type": "boolean",
                              "description": "If true, 'value' will be used as a partial string match."
                            }
                          }
                        },
                        "description": "List of SessionFilterItems to be removed from this SessionFilter"
                      },
                      "updateProperties": {
                        "title": "UpdateProperties1",
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "type": {
                            "title": "Type32",
                            "enum": [
                              "whitelist",
                              "blacklist"
                            ],
                            "type": "string",
                            "example": "whitelist"
                          }
                        },
                        "description": "Properties to be edited on the SessionFilter"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/patchSessionFilterV2"
      },
      "task": true
    },
    {
      "name": "deleteSessionFilterV2",
      "summary": "DeleteSessionFilterV2",
      "description": "Delete a Tenant SessionFilter specified by the provided SessionFilter Id.",
      "input": [
        {
          "name": "sessionFilterId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "sessionFilterId",
            "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": "/deleteSessionFilterV2"
      },
      "task": true
    },
    {
      "name": "createThresholdProfileV2",
      "summary": "CreateThresholdProfileV2",
      "description": "Create a Threshold Profile for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [thresholdProfiles]\", \"id\": \"string\", \"attributes\": {\"name\": \"string\", \"thresholds\": {\"vendorMap\": \"object\"}, \"thresholdList\": [{\"vendor\": \"string\", \"monitoredObjectType\": \"string\", \"metric\": \"string\", \"direction\": \"string\", \"enabled\": \"string\", \"dimensions\": \"object\", \"events\": \"array\"}]}}}",
          "required": true,
          "schema": {
            "title": "ThresholdProfileCreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data58",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "thresholdProfiles"
                    ],
                    "type": "string",
                    "example": "thresholdProfiles"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes89",
                    "required": [
                      "name"
                    ],
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "thresholds": {
                        "title": "ThresholdsObject",
                        "type": "object",
                        "properties": {
                          "vendorMap": {
                            "type": "object",
                            "additionalProperties": {
                              "title": "VendorMap1",
                              "type": "object",
                              "properties": {
                                "metricMap": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "title": "MetricMap1",
                                    "type": "object",
                                    "properties": {
                                      "eventAttrMap": {
                                        "type": "object",
                                        "additionalProperties": {
                                          "type": "string"
                                        }
                                      }
                                    }
                                  }
                                },
                                "monitoredObjectTypeMap": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "title": "MonitoredObjectTypeMap1",
                                    "type": "object",
                                    "properties": {
                                      "metricMap": {
                                        "type": "object",
                                        "additionalProperties": {
                                          "title": "MetricMap2",
                                          "type": "object",
                                          "properties": {
                                            "directionMap": {
                                              "type": "object",
                                              "additionalProperties": {
                                                "title": "DirectionMap",
                                                "type": "object",
                                                "properties": {
                                                  "eventMap": {
                                                    "type": "object",
                                                    "additionalProperties": {
                                                      "title": "EventMap",
                                                      "type": "object",
                                                      "properties": {
                                                        "eventAttrMap": {
                                                          "type": "object",
                                                          "additionalProperties": {
                                                            "type": "string"
                                                          }
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "thresholdList": {
                        "type": "array",
                        "items": {
                          "title": "ThresholdList",
                          "type": "object",
                          "properties": {
                            "vendor": {
                              "type": "string",
                              "description": "The name of the Vendor from which this Metric originates"
                            },
                            "monitoredObjectType": {
                              "type": "string",
                              "description": "The name of the type of Monitored Object for which this Metric is applicable"
                            },
                            "metric": {
                              "type": "string",
                              "description": "The name of the Metric"
                            },
                            "direction": {
                              "type": "string",
                              "description": "Describes the direction of the test in case a Threshold needs to be different for one direction (i.e. actuator to reflector) versus another (i.e. round trip)"
                            },
                            "enabled": {
                              "type": "string",
                              "description": "When true, Threshold Crossing for this Metric will be reported. When false, Threshold Crossings for this Metric are not reported."
                            },
                            "dimensions": {
                              "type": "object",
                              "description": "Provides data properties by which the Metric may be filtered and/or aggregated"
                            },
                            "events": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "A collection of objects that describe the properties of a Threshold for a Metric"
                            }
                          }
                        },
                        "description": "Contains an array of objects that outline thresholds per vendor/monitoredObjectType/direction which, when crossed, will generate events"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to create a new Threshold Profile in Datahub"
          }
        }
      ],
      "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": "/createThresholdProfileV2"
      },
      "task": true
    },
    {
      "name": "getAllThresholdProfilesV2",
      "summary": "GetAllThresholdProfilesV2",
      "description": "Retrieve all Threshold Profiles for the specified Tenant.",
      "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": "/getAllThresholdProfilesV2"
      },
      "task": true
    },
    {
      "name": "getThresholdProfileV2",
      "summary": "GetThresholdProfileV2",
      "description": "Retrieve a Tenant Threshold Profile by id.",
      "input": [
        {
          "name": "thrPrfId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "thrPrfId",
            "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": "/getThresholdProfileV2"
      },
      "task": true
    },
    {
      "name": "updateThresholdProfileV2",
      "summary": "UpdateThresholdProfileV2",
      "description": "Update a Tenant Threshold Profile",
      "input": [
        {
          "name": "thrPrfId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "thrPrfId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [thresholdProfiles]\", \"id\": \"string\", \"attributes\": {\"_rev\": \"string\", \"name\": \"string\", \"thresholds\": {\"vendorMap\": \"object\"}, \"thresholdList\": [{\"vendor\": \"string\", \"monitoredObjectType\": \"string\", \"metric\": \"string\", \"direction\": \"string\", \"enabled\": \"string\", \"dimensions\": \"object\", \"events\": \"array\"}]}}}",
          "required": true,
          "schema": {
            "title": "ThresholdProfileUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "Data59",
                "required": [
                  "type",
                  "id",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "thresholdProfiles"
                    ],
                    "type": "string",
                    "example": "thresholdProfiles"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes90",
                    "required": [
                      "_rev"
                    ],
                    "type": "object",
                    "properties": {
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "name": {
                        "type": "string"
                      },
                      "thresholds": {
                        "title": "ThresholdsObject",
                        "type": "object",
                        "properties": {
                          "vendorMap": {
                            "type": "object",
                            "additionalProperties": {
                              "title": "VendorMap1",
                              "type": "object",
                              "properties": {
                                "metricMap": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "title": "MetricMap1",
                                    "type": "object",
                                    "properties": {
                                      "eventAttrMap": {
                                        "type": "object",
                                        "additionalProperties": {
                                          "type": "string"
                                        }
                                      }
                                    }
                                  }
                                },
                                "monitoredObjectTypeMap": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "title": "MonitoredObjectTypeMap1",
                                    "type": "object",
                                    "properties": {
                                      "metricMap": {
                                        "type": "object",
                                        "additionalProperties": {
                                          "title": "MetricMap2",
                                          "type": "object",
                                          "properties": {
                                            "directionMap": {
                                              "type": "object",
                                              "additionalProperties": {
                                                "title": "DirectionMap",
                                                "type": "object",
                                                "properties": {
                                                  "eventMap": {
                                                    "type": "object",
                                                    "additionalProperties": {
                                                      "title": "EventMap",
                                                      "type": "object",
                                                      "properties": {
                                                        "eventAttrMap": {
                                                          "type": "object",
                                                          "additionalProperties": {
                                                            "type": "string"
                                                          }
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "thresholdList": {
                        "type": "array",
                        "items": {
                          "title": "ThresholdList",
                          "type": "object",
                          "properties": {
                            "vendor": {
                              "type": "string",
                              "description": "The name of the Vendor from which this Metric originates"
                            },
                            "monitoredObjectType": {
                              "type": "string",
                              "description": "The name of the type of Monitored Object for which this Metric is applicable"
                            },
                            "metric": {
                              "type": "string",
                              "description": "The name of the Metric"
                            },
                            "direction": {
                              "type": "string",
                              "description": "Describes the direction of the test in case a Threshold needs to be different for one direction (i.e. actuator to reflector) versus another (i.e. round trip)"
                            },
                            "enabled": {
                              "type": "string",
                              "description": "When true, Threshold Crossing for this Metric will be reported. When false, Threshold Crossings for this Metric are not reported."
                            },
                            "dimensions": {
                              "type": "object",
                              "description": "Provides data properties by which the Metric may be filtered and/or aggregated"
                            },
                            "events": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "A collection of objects that describe the properties of a Threshold for a Metric"
                            }
                          }
                        },
                        "description": "Contains an array of objects that outline thresholds per vendor/monitoredObjectType/direction which, when crossed, will generate events"
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update an existing Threshold Profile in Datahub"
          }
        }
      ],
      "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": "/updateThresholdProfileV2"
      },
      "task": true
    },
    {
      "name": "deleteThresholdProfileV2",
      "summary": "DeleteThresholdProfileV2",
      "description": "Delete a Tenant Threshold Profile specified by the provided id.",
      "input": [
        {
          "name": "thrPrfId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "thrPrfId",
            "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": "/deleteThresholdProfileV2"
      },
      "task": true
    },
    {
      "name": "createNetworkAssetV2",
      "summary": "CreateNetworkAssetV2",
      "description": "Create a Network Asset",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [networkAssets]\", \"id\": \"string\", \"attributes\": {\"ip\": \"string\", \"mac\": \"string\", \"roles\": [{\"role\": \"string\", \"info\": \"string\", \"firstSeen\": 123, \"lastSeen\": 123}], \"meta\": \"object\", \"firstSeen\": 123, \"lastSeen\": 123}}}",
          "required": true,
          "schema": {
            "title": "NetworkAssetResponse",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "NetworkAsset",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "networkAssets"
                    ],
                    "type": "string",
                    "example": "networkAssets"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes40",
                    "type": "object",
                    "properties": {
                      "ip": {
                        "type": "string"
                      },
                      "mac": {
                        "type": "string"
                      },
                      "roles": {
                        "type": "array",
                        "items": {
                          "title": "NetworkAssetRole",
                          "required": [
                            "role"
                          ],
                          "type": "object",
                          "properties": {
                            "role": {
                              "type": "string"
                            },
                            "info": {
                              "type": "string"
                            },
                            "firstSeen": {
                              "type": "integer"
                            },
                            "lastSeen": {
                              "type": "integer"
                            }
                          },
                          "description": "A role that a machine can take on based on heuristics"
                        },
                        "description": ""
                      },
                      "meta": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "Attributes added to a Network Asset that help identify the Network Asset as well as provide filtering/grouping properties"
                      },
                      "firstSeen": {
                        "type": "integer"
                      },
                      "lastSeen": {
                        "type": "integer"
                      }
                    }
                  }
                },
                "description": "A network device that is on a customer's network"
              }
            }
          }
        }
      ],
      "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": "/createNetworkAssetV2"
      },
      "task": true
    },
    {
      "name": "getAllNetworkAssetsV2",
      "summary": "GetAllNetworkAssetsV2",
      "description": "Retrieve all NetworkAssets for a Tenant.",
      "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": "/getAllNetworkAssetsV2"
      },
      "task": true
    },
    {
      "name": "getNetworkAssetV2",
      "summary": "GetNetworkAssetV2",
      "description": "Retrieve a Network Asset by its ID",
      "input": [
        {
          "name": "networkAssetId",
          "type": "string",
          "info": "The network asset id: string",
          "required": true,
          "schema": {
            "title": "networkAssetId",
            "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": "/getNetworkAssetV2"
      },
      "task": true
    },
    {
      "name": "updateNetworkAssetV2",
      "summary": "UpdateNetworkAssetV2",
      "description": "Update a Tenant Network Asset",
      "input": [
        {
          "name": "networkAssetId",
          "type": "string",
          "info": "The network asset id: string",
          "required": true,
          "schema": {
            "title": "networkAssetId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [networkAssets]\", \"id\": \"string\", \"attributes\": {\"ip\": \"string\", \"mac\": \"string\", \"roles\": [{\"role\": \"string\", \"info\": \"string\", \"firstSeen\": 123, \"lastSeen\": 123}], \"meta\": \"object\", \"firstSeen\": 123, \"lastSeen\": 123}}}",
          "required": true,
          "schema": {
            "title": "NetworkAssetUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "NetworkAsset",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "networkAssets"
                    ],
                    "type": "string",
                    "example": "networkAssets"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes40",
                    "type": "object",
                    "properties": {
                      "ip": {
                        "type": "string"
                      },
                      "mac": {
                        "type": "string"
                      },
                      "roles": {
                        "type": "array",
                        "items": {
                          "title": "NetworkAssetRole",
                          "required": [
                            "role"
                          ],
                          "type": "object",
                          "properties": {
                            "role": {
                              "type": "string"
                            },
                            "info": {
                              "type": "string"
                            },
                            "firstSeen": {
                              "type": "integer"
                            },
                            "lastSeen": {
                              "type": "integer"
                            }
                          },
                          "description": "A role that a machine can take on based on heuristics"
                        },
                        "description": ""
                      },
                      "meta": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "Attributes added to a Network Asset that help identify the Network Asset as well as provide filtering/grouping properties"
                      },
                      "firstSeen": {
                        "type": "integer"
                      },
                      "lastSeen": {
                        "type": "integer"
                      }
                    }
                  }
                },
                "description": "A network device that is on a customer's network"
              }
            },
            "description": "Object used to update an existing Network Asset"
          }
        }
      ],
      "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": "/updateNetworkAssetV2"
      },
      "task": true
    },
    {
      "name": "deleteNetworkAssetV2",
      "summary": "DeleteNetworkAssetV2",
      "description": "Delete a Tenant Network Asset specified by the provided id.",
      "input": [
        {
          "name": "networkAssetId",
          "type": "string",
          "info": "The network asset id: string",
          "required": true,
          "schema": {
            "title": "networkAssetId",
            "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": "/deleteNetworkAssetV2"
      },
      "task": true
    },
    {
      "name": "getFilteredNetworkAssetCountV2",
      "summary": "GetFilteredNetworkAssetCountV2",
      "description": "Retrieve a count of monitored objects based on the provided filter criteria",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"queryContext\": {\"timeout\": 123, \"sortOnGroupingKey\": \"string\", \"sorted\": \"Must be one of [asc, desc]\", \"numResults\": 123, \"pageNumber\": 123, \"sort\": [{\"field\": \"Must be one of [firstSeen, lastSeen]\", \"order\": \"Must be one of [asc, desc]\"}]}, \"meta\": \"object\", \"metaExclude\": \"array\", \"ip\": \"array\", \"mac\": \"array\", \"roles\": [{\"role\": \"string\", \"info\": \"string\", \"firstSeen\": 123, \"lastSeen\": 123}], \"firstSeen\": {\"from\": 123, \"to\": 123}, \"lastSeen\": {\"from\": 123, \"to\": 123}}",
          "required": true,
          "schema": {
            "title": "NetworkAssetFilteredListRequest",
            "type": "object",
            "properties": {
              "queryContext": {
                "title": "NetworkAssetQueryContext",
                "type": "object",
                "properties": {
                  "timeout": {
                    "type": "integer",
                    "description": "Query timeout in milliseconds",
                    "example": 30000
                  },
                  "sortOnGroupingKey": {
                    "type": "string",
                    "description": "Allows a client to sort on a grouping key instead of the network asset's id",
                    "default": "id",
                    "example": "id"
                  },
                  "sorted": {
                    "title": "Sorted",
                    "enum": [
                      "asc",
                      "desc"
                    ],
                    "type": "string",
                    "description": "Indicates whether the response should return grouped by queries in ascending or descending order. Only applicable to grouped queries.",
                    "example": "asc"
                  },
                  "numResults": {
                    "type": "integer",
                    "description": "Number of results to return in grouped queries. A non-positive integer for this value implies there is no result limit. Only applicable to grouped queries.",
                    "example": 10
                  },
                  "pageNumber": {
                    "type": "integer",
                    "description": "Retrieve certain page of search results."
                  },
                  "sort": {
                    "type": "array",
                    "items": {
                      "title": "NetworkAssetQueryContextSortEntry",
                      "required": [
                        "field"
                      ],
                      "type": "object",
                      "properties": {
                        "field": {
                          "title": "Field1",
                          "enum": [
                            "firstSeen",
                            "lastSeen"
                          ],
                          "type": "string",
                          "example": "firstSeen"
                        },
                        "order": {
                          "title": "Order",
                          "enum": [
                            "asc",
                            "desc"
                          ],
                          "type": "string",
                          "example": "asc"
                        }
                      }
                    },
                    "description": ""
                  }
                },
                "description": "Hints indicating how the query may be Returns"
              },
              "meta": {
                "type": "object",
                "additionalProperties": {},
                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                "example": {
                  "region": [
                    "montreal",
                    "ottawa"
                  ],
                  "group": [
                    "radio"
                  ]
                }
              },
              "metaExclude": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                "example": [
                  "group"
                ]
              },
              "ip": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array of IPs"
              },
              "mac": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array of MACs"
              },
              "roles": {
                "type": "array",
                "items": {
                  "title": "NetworkAssetRole",
                  "required": [
                    "role"
                  ],
                  "type": "object",
                  "properties": {
                    "role": {
                      "type": "string"
                    },
                    "info": {
                      "type": "string"
                    },
                    "firstSeen": {
                      "type": "integer"
                    },
                    "lastSeen": {
                      "type": "integer"
                    }
                  },
                  "description": "A role that a machine can take on based on heuristics"
                },
                "description": "An array of Roles"
              },
              "firstSeen": {
                "title": "FirstSeen",
                "type": "object",
                "properties": {
                  "from": {
                    "type": "integer"
                  },
                  "to": {
                    "type": "integer"
                  }
                }
              },
              "lastSeen": {
                "title": "LastSeen",
                "type": "object",
                "properties": {
                  "from": {
                    "type": "integer"
                  },
                  "to": {
                    "type": "integer"
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/getFilteredNetworkAssetCountV2"
      },
      "task": true
    },
    {
      "name": "getFilteredNetworkAssetListV2",
      "summary": "GetFilteredNetworkAssetListV2",
      "description": "Retrieve a list of monitored objects based on the provided filter criteria",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"queryContext\": {\"timeout\": 123, \"sortOnGroupingKey\": \"string\", \"sorted\": \"Must be one of [asc, desc]\", \"numResults\": 123, \"pageNumber\": 123, \"sort\": [{\"field\": \"Must be one of [firstSeen, lastSeen]\", \"order\": \"Must be one of [asc, desc]\"}]}, \"meta\": \"object\", \"metaExclude\": \"array\", \"ip\": \"array\", \"mac\": \"array\", \"roles\": [{\"role\": \"string\", \"info\": \"string\", \"firstSeen\": 123, \"lastSeen\": 123}], \"firstSeen\": {\"from\": 123, \"to\": 123}, \"lastSeen\": {\"from\": 123, \"to\": 123}}",
          "required": true,
          "schema": {
            "title": "NetworkAssetFilteredListRequest",
            "type": "object",
            "properties": {
              "queryContext": {
                "title": "NetworkAssetQueryContext",
                "type": "object",
                "properties": {
                  "timeout": {
                    "type": "integer",
                    "description": "Query timeout in milliseconds",
                    "example": 30000
                  },
                  "sortOnGroupingKey": {
                    "type": "string",
                    "description": "Allows a client to sort on a grouping key instead of the network asset's id",
                    "default": "id",
                    "example": "id"
                  },
                  "sorted": {
                    "title": "Sorted",
                    "enum": [
                      "asc",
                      "desc"
                    ],
                    "type": "string",
                    "description": "Indicates whether the response should return grouped by queries in ascending or descending order. Only applicable to grouped queries.",
                    "example": "asc"
                  },
                  "numResults": {
                    "type": "integer",
                    "description": "Number of results to return in grouped queries. A non-positive integer for this value implies there is no result limit. Only applicable to grouped queries.",
                    "example": 10
                  },
                  "pageNumber": {
                    "type": "integer",
                    "description": "Retrieve certain page of search results."
                  },
                  "sort": {
                    "type": "array",
                    "items": {
                      "title": "NetworkAssetQueryContextSortEntry",
                      "required": [
                        "field"
                      ],
                      "type": "object",
                      "properties": {
                        "field": {
                          "title": "Field1",
                          "enum": [
                            "firstSeen",
                            "lastSeen"
                          ],
                          "type": "string",
                          "example": "firstSeen"
                        },
                        "order": {
                          "title": "Order",
                          "enum": [
                            "asc",
                            "desc"
                          ],
                          "type": "string",
                          "example": "asc"
                        }
                      }
                    },
                    "description": ""
                  }
                },
                "description": "Hints indicating how the query may be Returns"
              },
              "meta": {
                "type": "object",
                "additionalProperties": {},
                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                "example": {
                  "region": [
                    "montreal",
                    "ottawa"
                  ],
                  "group": [
                    "radio"
                  ]
                }
              },
              "metaExclude": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                "example": [
                  "group"
                ]
              },
              "ip": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array of IPs"
              },
              "mac": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array of MACs"
              },
              "roles": {
                "type": "array",
                "items": {
                  "title": "NetworkAssetRole",
                  "required": [
                    "role"
                  ],
                  "type": "object",
                  "properties": {
                    "role": {
                      "type": "string"
                    },
                    "info": {
                      "type": "string"
                    },
                    "firstSeen": {
                      "type": "integer"
                    },
                    "lastSeen": {
                      "type": "integer"
                    }
                  },
                  "description": "A role that a machine can take on based on heuristics"
                },
                "description": "An array of Roles"
              },
              "firstSeen": {
                "title": "FirstSeen",
                "type": "object",
                "properties": {
                  "from": {
                    "type": "integer"
                  },
                  "to": {
                    "type": "integer"
                  }
                }
              },
              "lastSeen": {
                "title": "LastSeen",
                "type": "object",
                "properties": {
                  "from": {
                    "type": "integer"
                  },
                  "to": {
                    "type": "integer"
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/getFilteredNetworkAssetListV2"
      },
      "task": true
    },
    {
      "name": "getNetworkAssetGroupByV2",
      "summary": "GetNetworkAssetGroupByV2",
      "description": "Retrieves specified aggregation grouped by the provided fields and filtered by the metadata specification",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [groupByNetworkAssets]\", \"attributes\": {\"queryContext\": {\"timeout\": 123, \"sortOnGroupingKey\": \"string\", \"sorted\": \"Must be one of [asc, desc]\", \"numResults\": 123, \"pageNumber\": 123, \"sort\": [{\"field\": \"Must be one of [firstSeen, lastSeen]\", \"order\": \"Must be one of [asc, desc]\"}]}, \"metaContext\": {\"metadataFilters\": \"object\", \"metaExclude\": \"array\"}, \"groupingContext\": {\"strictGroupings\": \"boolean\", \"groupings\": [{\"groupName\": \"string\", \"groupType\": \"Must be one of [active, passive, meta]\"}]}, \"aggregation\": \"Must be one of [min, max, avg, count, sum]\", \"networkAssets\": [{\"id\": \"array\", \"ip\": \"array\", \"roles\": [{\"role\": \"string\", \"info\": \"string\", \"firstSeen\": 123, \"lastSeen\": 123}]}]}}}",
          "required": true,
          "schema": {
            "title": "NetworkAssetGroupByRequest",
            "type": "object",
            "properties": {
              "data": {
                "title": "Data28",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "groupByNetworkAssets"
                    ],
                    "type": "string",
                    "example": "groupByNetworkAssets"
                  },
                  "attributes": {
                    "title": "NetworkAssetGroupByConfig",
                    "required": [
                      "groupingContext",
                      "networkAssets"
                    ],
                    "type": "object",
                    "properties": {
                      "queryContext": {
                        "title": "NetworkAssetQueryContext",
                        "type": "object",
                        "properties": {
                          "timeout": {
                            "type": "integer",
                            "description": "Query timeout in milliseconds",
                            "example": 30000
                          },
                          "sortOnGroupingKey": {
                            "type": "string",
                            "description": "Allows a client to sort on a grouping key instead of the network asset's id",
                            "default": "id",
                            "example": "id"
                          },
                          "sorted": {
                            "title": "Sorted",
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "description": "Indicates whether the response should return grouped by queries in ascending or descending order. Only applicable to grouped queries.",
                            "example": "asc"
                          },
                          "numResults": {
                            "type": "integer",
                            "description": "Number of results to return in grouped queries. A non-positive integer for this value implies there is no result limit. Only applicable to grouped queries.",
                            "example": 10
                          },
                          "pageNumber": {
                            "type": "integer",
                            "description": "Retrieve certain page of search results."
                          },
                          "sort": {
                            "type": "array",
                            "items": {
                              "title": "NetworkAssetQueryContextSortEntry",
                              "required": [
                                "field"
                              ],
                              "type": "object",
                              "properties": {
                                "field": {
                                  "title": "Field1",
                                  "enum": [
                                    "firstSeen",
                                    "lastSeen"
                                  ],
                                  "type": "string",
                                  "example": "firstSeen"
                                },
                                "order": {
                                  "title": "Order",
                                  "enum": [
                                    "asc",
                                    "desc"
                                  ],
                                  "type": "string",
                                  "example": "asc"
                                }
                              }
                            },
                            "description": ""
                          }
                        },
                        "description": "Hints indicating how the query may be Returns"
                      },
                      "metaContext": {
                        "title": "MetaContext",
                        "required": [
                          "metadataFilters"
                        ],
                        "type": "object",
                        "properties": {
                          "metadataFilters": {
                            "type": "object",
                            "additionalProperties": {},
                            "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                            "example": {
                              "region": [
                                "montreal",
                                "ottawa"
                              ],
                              "group": [
                                "radio"
                              ]
                            }
                          },
                          "metaExclude": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                            "example": [
                              "group"
                            ]
                          }
                        },
                        "description": "Elements of the query that define metadata specific components"
                      },
                      "groupingContext": {
                        "title": "GroupingContext",
                        "required": [
                          "groupings"
                        ],
                        "type": "object",
                        "properties": {
                          "strictGroupings": {
                            "type": "boolean",
                            "description": "Value of true indicates that all requested groupings MUST exist within a data record in order to be considered for aggregation within that group"
                          },
                          "groupings": {
                            "type": "array",
                            "items": {
                              "title": "GroupingEntity",
                              "required": [
                                "groupName",
                                "groupType"
                              ],
                              "type": "object",
                              "properties": {
                                "groupName": {
                                  "type": "string"
                                },
                                "groupType": {
                                  "title": "GroupType",
                                  "enum": [
                                    "active",
                                    "passive",
                                    "meta"
                                  ],
                                  "type": "string",
                                  "example": "active"
                                }
                              },
                              "description": "Provides additional information about the entity to group by"
                            },
                            "description": ""
                          }
                        },
                        "description": "Defines how the results should be grouped"
                      },
                      "aggregation": {
                        "title": "SupportedAggregations",
                        "enum": [
                          "min",
                          "max",
                          "avg",
                          "count",
                          "sum"
                        ],
                        "type": "string",
                        "description": "The type of aggregation (avg/min/max/count/sum) avg - Returns the averaging the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. min - Returns the minimum value for the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. max - Returns the maximum value for the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. count - Returns the number of events within the specified bucket property. A single bucket is the preferred usage but multiple buckets can be used as a band pass filter.  sum - Returns the summed value of all records grouped by the provided groupings",
                        "example": "min"
                      },
                      "networkAssets": {
                        "type": "array",
                        "items": {
                          "title": "NetworkAssetSpec",
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "IDs to filter on"
                            },
                            "ip": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "IPs to filter on"
                            },
                            "roles": {
                              "type": "array",
                              "items": {
                                "title": "NetworkAssetRole",
                                "required": [
                                  "role"
                                ],
                                "type": "object",
                                "properties": {
                                  "role": {
                                    "type": "string"
                                  },
                                  "info": {
                                    "type": "string"
                                  },
                                  "firstSeen": {
                                    "type": "integer"
                                  },
                                  "lastSeen": {
                                    "type": "integer"
                                  }
                                },
                                "description": "A role that a machine can take on based on heuristics"
                              },
                              "description": "Network Asset Roles to filter on"
                            }
                          },
                          "description": "Filter object that identifies a specific metric within a monitored object by its key attributes"
                        },
                        "description": "A set of identifiers that considers specific network asset based on the provided information"
                      }
                    },
                    "description": "The necessary request parameters for the network asset api call"
                  }
                }
              }
            },
            "description": "JSON API compliant wrapper for the groupby query"
          }
        }
      ],
      "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": "/getNetworkAssetGroupByV2"
      },
      "task": true
    },
    {
      "name": "bootstrapsthemonitoredobjectcacheforalltenants",
      "summary": "Bootstraps the monitored object cache for all tenants",
      "description": "Bootstraps the monitored object cache for all tenants",
      "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": "/bootstrapsthemonitoredobjectcacheforalltenants"
      },
      "task": true
    },
    {
      "name": "invokesbaselinebulkupdate",
      "summary": "Invokes baseline bulk update",
      "description": "Invokes baseline bulk update",
      "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": "/invokesbaselinebulkupdate"
      },
      "task": true
    },
    {
      "name": "purgesanalyticsreports",
      "summary": "Purges analytics reports",
      "description": "Purges analytics reports",
      "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": "/purgesanalyticsreports"
      },
      "task": true
    },
    {
      "name": "bootstrapsthenetworkassetcacheforalltenants",
      "summary": "Bootstraps the network asset cache for all tenants",
      "description": "Bootstraps the network asset cache for all tenants",
      "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": "/bootstrapsthenetworkassetcacheforalltenants"
      },
      "task": true
    },
    {
      "name": "createIngestionDictionaryV3",
      "summary": "CreateIngestionDictionaryV3",
      "description": "Create an Ingestion Dictionary for a Tenant.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [ingestionDictionaries]\", \"id\": \"string\", \"attributes\": {\"tenantId\": \"string\", \"_id\": \"string\", \"_rev\": \"string\", \"dictionaryName\": \"string\", \"dictionaryType\": \"Must be one of [custom, extension, global]\", \"vendor\": \"string\", \"objectType\": \"string\", \"dimensions\": [{\"analyticsName\": \"string\", \"rawName\": \"string\", \"dataType\": \"Must be one of [integer, long, float, double, string]\", \"hasBaseline\": \"boolean\", \"sqlExpr\": \"string\", \"unit\": \"string\", \"directions\": \"array\"}], \"metrics\": [{\"analyticsName\": \"string\", \"rawName\": \"string\", \"dataType\": \"Must be one of [integer, long, float, double, string]\", \"hasBaseline\": \"boolean\", \"sqlExpr\": \"string\", \"unit\": \"string\", \"directions\": \"array\"}], \"customMetrics\": [{\"analyticsName\": \"string\", \"rawName\": \"string\", \"dataType\": \"Must be one of [integer, long, float, double, string]\", \"hasBaseline\": \"boolean\", \"sqlExpr\": \"string\", \"unit\": \"string\", \"directions\": \"array\"}], \"createdTimestamp\": 123, \"lastModifiedTimestamp\": 123}}}",
          "required": true,
          "schema": {
            "title": "IngestionDictionaryV3CreateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "IngestionDictionaryV3",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "ingestionDictionaries"
                    ],
                    "type": "string",
                    "example": "ingestionDictionaries"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes92",
                    "required": [
                      "tenantId",
                      "dictionaryName",
                      "objectType"
                    ],
                    "type": "object",
                    "properties": {
                      "tenantId": {
                        "type": "string",
                        "description": "Unique identifier of the Tenant in Datahub"
                      },
                      "_id": {
                        "type": "string"
                      },
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "dictionaryName": {
                        "type": "string"
                      },
                      "dictionaryType": {
                        "title": "DictionaryType",
                        "enum": [
                          "custom",
                          "extension",
                          "global"
                        ],
                        "type": "string",
                        "example": "custom"
                      },
                      "vendor": {
                        "type": "string"
                      },
                      "objectType": {
                        "type": "string"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "title": "IngestionDictionaryV3Item",
                          "required": [
                            "analyticsName"
                          ],
                          "type": "object",
                          "properties": {
                            "analyticsName": {
                              "type": "string"
                            },
                            "rawName": {
                              "type": "string"
                            },
                            "dataType": {
                              "title": "DataType",
                              "enum": [
                                "integer",
                                "long",
                                "float",
                                "double",
                                "string"
                              ],
                              "type": "string",
                              "example": "integer"
                            },
                            "hasBaseline": {
                              "type": "boolean"
                            },
                            "sqlExpr": {
                              "type": "string"
                            },
                            "unit": {
                              "type": "string"
                            },
                            "directions": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          }
                        },
                        "description": ""
                      },
                      "metrics": {
                        "type": "array",
                        "items": {
                          "title": "IngestionDictionaryV3Item",
                          "required": [
                            "analyticsName"
                          ],
                          "type": "object",
                          "properties": {
                            "analyticsName": {
                              "type": "string"
                            },
                            "rawName": {
                              "type": "string"
                            },
                            "dataType": {
                              "title": "DataType",
                              "enum": [
                                "integer",
                                "long",
                                "float",
                                "double",
                                "string"
                              ],
                              "type": "string",
                              "example": "integer"
                            },
                            "hasBaseline": {
                              "type": "boolean"
                            },
                            "sqlExpr": {
                              "type": "string"
                            },
                            "unit": {
                              "type": "string"
                            },
                            "directions": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          }
                        },
                        "description": ""
                      },
                      "customMetrics": {
                        "type": "array",
                        "items": {
                          "title": "IngestionDictionaryV3Item",
                          "required": [
                            "analyticsName"
                          ],
                          "type": "object",
                          "properties": {
                            "analyticsName": {
                              "type": "string"
                            },
                            "rawName": {
                              "type": "string"
                            },
                            "dataType": {
                              "title": "DataType",
                              "enum": [
                                "integer",
                                "long",
                                "float",
                                "double",
                                "string"
                              ],
                              "type": "string",
                              "example": "integer"
                            },
                            "hasBaseline": {
                              "type": "boolean"
                            },
                            "sqlExpr": {
                              "type": "string"
                            },
                            "unit": {
                              "type": "string"
                            },
                            "directions": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          }
                        },
                        "description": ""
                      },
                      "createdTimestamp": {
                        "type": "integer",
                        "description": "Time since epoch at which this object was instantiated."
                      },
                      "lastModifiedTimestamp": {
                        "type": "integer",
                        "description": "Time since epoch at which this object was last altered."
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to create an Ingestion Dictionary in Datahub"
          }
        }
      ],
      "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": "/createIngestionDictionaryV3"
      },
      "task": true
    },
    {
      "name": "getAllIngestionDictionariesV3",
      "summary": "GetAllIngestionDictionariesV3",
      "description": "Get all Tenant Ingestion Dictionaries",
      "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": "/getAllIngestionDictionariesV3"
      },
      "task": true
    },
    {
      "name": "getIngestionDictionaryV3",
      "summary": "GetIngestionDictionaryV3",
      "description": "Retrieve a Tenant Ingestion Dictionary by id.",
      "input": [
        {
          "name": "ingestionDictionaryId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "ingestionDictionaryId",
            "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": "/getIngestionDictionaryV3"
      },
      "task": true
    },
    {
      "name": "updateIngestionDictionaryV3",
      "summary": "UpdateIngestionDictionaryV3",
      "description": "Update a Tenant Ingestion Dictionary",
      "input": [
        {
          "name": "ingestionDictionaryId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "ingestionDictionaryId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"type\": \"Must be one of [ingestionDictionaries]\", \"id\": \"string\", \"attributes\": {\"tenantId\": \"string\", \"_id\": \"string\", \"_rev\": \"string\", \"dictionaryName\": \"string\", \"dictionaryType\": \"Must be one of [custom, extension, global]\", \"vendor\": \"string\", \"objectType\": \"string\", \"dimensions\": [{\"analyticsName\": \"string\", \"rawName\": \"string\", \"dataType\": \"Must be one of [integer, long, float, double, string]\", \"hasBaseline\": \"boolean\", \"sqlExpr\": \"string\", \"unit\": \"string\", \"directions\": \"array\"}], \"metrics\": [{\"analyticsName\": \"string\", \"rawName\": \"string\", \"dataType\": \"Must be one of [integer, long, float, double, string]\", \"hasBaseline\": \"boolean\", \"sqlExpr\": \"string\", \"unit\": \"string\", \"directions\": \"array\"}], \"customMetrics\": [{\"analyticsName\": \"string\", \"rawName\": \"string\", \"dataType\": \"Must be one of [integer, long, float, double, string]\", \"hasBaseline\": \"boolean\", \"sqlExpr\": \"string\", \"unit\": \"string\", \"directions\": \"array\"}], \"createdTimestamp\": 123, \"lastModifiedTimestamp\": 123}}}",
          "required": true,
          "schema": {
            "title": "IngestionDictionaryV3UpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "IngestionDictionaryV3",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "ingestionDictionaries"
                    ],
                    "type": "string",
                    "example": "ingestionDictionaries"
                  },
                  "id": {
                    "type": "string"
                  },
                  "attributes": {
                    "title": "Attributes92",
                    "required": [
                      "tenantId",
                      "dictionaryName",
                      "objectType"
                    ],
                    "type": "object",
                    "properties": {
                      "tenantId": {
                        "type": "string",
                        "description": "Unique identifier of the Tenant in Datahub"
                      },
                      "_id": {
                        "type": "string"
                      },
                      "_rev": {
                        "type": "string",
                        "description": "Value used to ensure updates to this object are handled in order."
                      },
                      "dictionaryName": {
                        "type": "string"
                      },
                      "dictionaryType": {
                        "title": "DictionaryType",
                        "enum": [
                          "custom",
                          "extension",
                          "global"
                        ],
                        "type": "string",
                        "example": "custom"
                      },
                      "vendor": {
                        "type": "string"
                      },
                      "objectType": {
                        "type": "string"
                      },
                      "dimensions": {
                        "type": "array",
                        "items": {
                          "title": "IngestionDictionaryV3Item",
                          "required": [
                            "analyticsName"
                          ],
                          "type": "object",
                          "properties": {
                            "analyticsName": {
                              "type": "string"
                            },
                            "rawName": {
                              "type": "string"
                            },
                            "dataType": {
                              "title": "DataType",
                              "enum": [
                                "integer",
                                "long",
                                "float",
                                "double",
                                "string"
                              ],
                              "type": "string",
                              "example": "integer"
                            },
                            "hasBaseline": {
                              "type": "boolean"
                            },
                            "sqlExpr": {
                              "type": "string"
                            },
                            "unit": {
                              "type": "string"
                            },
                            "directions": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          }
                        },
                        "description": ""
                      },
                      "metrics": {
                        "type": "array",
                        "items": {
                          "title": "IngestionDictionaryV3Item",
                          "required": [
                            "analyticsName"
                          ],
                          "type": "object",
                          "properties": {
                            "analyticsName": {
                              "type": "string"
                            },
                            "rawName": {
                              "type": "string"
                            },
                            "dataType": {
                              "title": "DataType",
                              "enum": [
                                "integer",
                                "long",
                                "float",
                                "double",
                                "string"
                              ],
                              "type": "string",
                              "example": "integer"
                            },
                            "hasBaseline": {
                              "type": "boolean"
                            },
                            "sqlExpr": {
                              "type": "string"
                            },
                            "unit": {
                              "type": "string"
                            },
                            "directions": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          }
                        },
                        "description": ""
                      },
                      "customMetrics": {
                        "type": "array",
                        "items": {
                          "title": "IngestionDictionaryV3Item",
                          "required": [
                            "analyticsName"
                          ],
                          "type": "object",
                          "properties": {
                            "analyticsName": {
                              "type": "string"
                            },
                            "rawName": {
                              "type": "string"
                            },
                            "dataType": {
                              "title": "DataType",
                              "enum": [
                                "integer",
                                "long",
                                "float",
                                "double",
                                "string"
                              ],
                              "type": "string",
                              "example": "integer"
                            },
                            "hasBaseline": {
                              "type": "boolean"
                            },
                            "sqlExpr": {
                              "type": "string"
                            },
                            "unit": {
                              "type": "string"
                            },
                            "directions": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          }
                        },
                        "description": ""
                      },
                      "createdTimestamp": {
                        "type": "integer",
                        "description": "Time since epoch at which this object was instantiated."
                      },
                      "lastModifiedTimestamp": {
                        "type": "integer",
                        "description": "Time since epoch at which this object was last altered."
                      }
                    }
                  }
                }
              }
            },
            "description": "Object used to update an Ingestion Dictionary in Datahub"
          }
        }
      ],
      "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": "/updateIngestionDictionaryV3"
      },
      "task": true
    },
    {
      "name": "deleteIngestionDictionaryV3",
      "summary": "DeleteIngestionDictionaryV3",
      "description": "Delete a Tenant Ingestion Dictionary specified by the provided Ingestion Dictionary Id.",
      "input": [
        {
          "name": "ingestionDictionaryId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "ingestionDictionaryId",
            "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": "/deleteIngestionDictionaryV3"
      },
      "task": true
    },
    {
      "name": "createDatasourceReconciliationTasksV3",
      "summary": "CreateDatasourceReconciliationTasksV3",
      "description": "Re-ingests data into the datasource given the input parameters",
      "input": [
        {
          "name": "datasource",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "datasource",
            "type": "string"
          }
        },
        {
          "name": "taskCount",
          "type": "number",
          "info": "Sets the concurrency level of the ingestion task: 123",
          "required": false,
          "schema": {
            "title": "taskCount",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [datasourceReconciliationTasks]\", \"attributes\": {\"interval\": \"string\", \"storage\": \"Must be one of [hdfs, s3]\"}}}",
          "required": true,
          "schema": {
            "title": "DatasourceReconciliationTasks",
            "type": "object",
            "properties": {
              "data": {
                "title": "Data60",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "title": "Type36",
                    "enum": [
                      "datasourceReconciliationTasks"
                    ],
                    "type": "string",
                    "example": "datasourceReconciliationTasks"
                  },
                  "attributes": {
                    "title": "DatasourceReconciliationTaskConfig",
                    "required": [
                      "interval"
                    ],
                    "type": "object",
                    "properties": {
                      "interval": {
                        "type": "string"
                      },
                      "storage": {
                        "title": "Storage",
                        "enum": [
                          "hdfs",
                          "s3"
                        ],
                        "type": "string",
                        "example": "hdfs"
                      }
                    }
                  }
                }
              }
            },
            "description": "JSON API compliant wrapper for the datasource reconciliation tasks request"
          }
        }
      ],
      "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": "/createDatasourceReconciliationTasksV3"
      },
      "task": true
    },
    {
      "name": "createDatasourceReindexTasksV3",
      "summary": "CreateDatasourceReindexTasksV3",
      "description": "Re-formats data in the datasource to optomize the datasource",
      "input": [
        {
          "name": "datasource",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "datasource",
            "type": "string"
          }
        },
        {
          "name": "taskCount",
          "type": "number",
          "info": "Sets the concurrency level of the granularity compaction task: 123",
          "required": false,
          "schema": {
            "title": "taskCount",
            "type": "number"
          }
        },
        {
          "name": "periodOffsetMultiplier",
          "type": "number",
          "info": "Used to generate reindexing tasks over a period from current time backwards based on the 'c' provided in the body. For example, 'targetSegmentTimebucket' of 'DAY' with 'p...(description truncated): 123",
          "required": false,
          "schema": {
            "title": "periodOffsetMultiplier",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [datasourceReindexTasks]\", \"attributes\": {\"intervalStart\": \"string\", \"intervalEnd\": \"string\", \"targetSegmentTimebucket\": \"Must be one of [DAY, MONTH]\"}}}",
          "required": true,
          "schema": {
            "title": "DatasourceReindexTasks",
            "type": "object",
            "properties": {
              "data": {
                "title": "Data61",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "title": "Type37",
                    "enum": [
                      "datasourceReindexTasks"
                    ],
                    "type": "string",
                    "example": "datasourceReindexTasks"
                  },
                  "attributes": {
                    "title": "DatasourceReindexConfig",
                    "required": [
                      "targetSegmentTimebucket"
                    ],
                    "type": "object",
                    "properties": {
                      "intervalStart": {
                        "type": "string",
                        "description": "Start of time interval over which to execute the granularity compaction. Is of format 'YYYY-MM-DD'",
                        "example": "2021-04-01"
                      },
                      "intervalEnd": {
                        "type": "string",
                        "description": "End of time interval over which to execute the granularity compaction. Is of format 'YYYY-MM-DD",
                        "example": "2021-04-08"
                      },
                      "targetSegmentTimebucket": {
                        "title": "TargetSegmentTimebucket",
                        "enum": [
                          "DAY",
                          "MONTH"
                        ],
                        "type": "string",
                        "description": "Target granularity at which the files holding the data in the datasource will be compacted",
                        "example": "DAY"
                      }
                    },
                    "description": "Payload for a reindexing task of a metrics datasource. 'intervalStart' and 'intervalEnd' are required unless query parameter 'periodOffsetMultiplier' is provided, in which case they are ignored"
                  }
                }
              }
            },
            "description": "JSON API compliant wrapper for the datasource reindex tasks request"
          }
        }
      ],
      "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": "/createDatasourceReindexTasksV3"
      },
      "task": true
    },
    {
      "name": "getGroupByV3",
      "summary": "GetGroupByV3",
      "description": "Retrieves specified aggregation grouped by the provided fields and filtered by the metadata specification",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [groupByMetrics]\", \"attributes\": {\"queryContext\": {\"ignoreCleaning\": \"boolean\", \"focusBusyHour\": \"boolean\", \"ignoreMaintenance\": \"boolean\", \"timeout\": 123, \"sorted\": \"Must be one of [asc, desc]\", \"numResults\": 123}, \"metaContext\": {\"metadataFilters\": \"object\", \"metaExclude\": \"array\"}, \"groupingContext\": {\"strictGroupings\": \"boolean\", \"groupings\": [{\"groupName\": \"string\", \"groupType\": \"Must be one of [active, passive, meta]\"}]}, \"interval\": \"string\", \"aggregation\": \"Must be one of [min, max, avg, count, sum]\", \"globalMetricFilterContext\": {\"vendor\": \"string\", \"objectType\": \"array\", \"direction\": \"array\", \"monitoredObjectId\": \"array\", \"sourceLocation\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"destinationLocation\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"topology\": \"string\", \"metadata\": {\"include\": \"object\", \"exclude\": \"object\"}}, \"metrics\": [{\"vendor\": \"string\", \"objectType\": \"array\", \"direction\": \"array\", \"monitoredObjectId\": \"array\", \"sourceLocation\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"destinationLocation\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"topology\": \"string\", \"metadata\": {\"include\": \"object\", \"exclude\": \"object\"}, \"valueBoundary\": {\"type\": \"Must be one of [fixed, baseline_percentage, baseline_static_below, baseline_static_above]\", \"filterMetric\": \"string\", \"lower\": {\"value\": 123, \"strict\": \"boolean\"}, \"upper\": {\"value\": 123, \"strict\": \"boolean\"}}, \"metric\": \"string\"}]}}}",
          "required": true,
          "schema": {
            "title": "JsonApiGroupByRequest",
            "type": "object",
            "properties": {
              "data": {
                "title": "Data62",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "groupByMetrics"
                    ],
                    "type": "string",
                    "example": "groupByMetrics"
                  },
                  "attributes": {
                    "title": "GroupByConfig",
                    "required": [
                      "groupingContext",
                      "interval",
                      "aggregation",
                      "metrics"
                    ],
                    "type": "object",
                    "properties": {
                      "queryContext": {
                        "title": "QueryContext",
                        "type": "object",
                        "properties": {
                          "ignoreCleaning": {
                            "type": "boolean",
                            "description": "A value of true will have the aggregation request execute on all data regardless of whether it has been cleaned or not"
                          },
                          "focusBusyHour": {
                            "type": "boolean",
                            "description": "A value of true will only consider data tagged as 'busyHour' for the aggregation request"
                          },
                          "ignoreMaintenance": {
                            "type": "boolean",
                            "description": "A value of true will ignore data tagged as 'maintenance' for the aggregation request"
                          },
                          "timeout": {
                            "type": "integer",
                            "description": "Query timeout in milliseconds",
                            "example": 30000
                          },
                          "sorted": {
                            "title": "Sorted",
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "description": "Indicates whether the response should return grouped by queries in ascending or descending order. Only applicable to grouped queries.",
                            "example": "asc"
                          },
                          "numResults": {
                            "type": "integer",
                            "description": "Number of results to return in grouped queries. A non-positive integer for this value implies there is no result limit. Only applicable to grouped queries.",
                            "example": 10
                          }
                        },
                        "description": "Hints indicating how the query may be Returns"
                      },
                      "metaContext": {
                        "title": "MetaContext",
                        "required": [
                          "metadataFilters"
                        ],
                        "type": "object",
                        "properties": {
                          "metadataFilters": {
                            "type": "object",
                            "additionalProperties": {},
                            "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                            "example": {
                              "region": [
                                "montreal",
                                "ottawa"
                              ],
                              "group": [
                                "radio"
                              ]
                            }
                          },
                          "metaExclude": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                            "example": [
                              "group"
                            ]
                          }
                        },
                        "description": "Elements of the query that define metadata specific components"
                      },
                      "groupingContext": {
                        "title": "GroupingContext",
                        "required": [
                          "groupings"
                        ],
                        "type": "object",
                        "properties": {
                          "strictGroupings": {
                            "type": "boolean",
                            "description": "Value of true indicates that all requested groupings MUST exist within a data record in order to be considered for aggregation within that group"
                          },
                          "groupings": {
                            "type": "array",
                            "items": {
                              "title": "GroupingEntity",
                              "required": [
                                "groupName",
                                "groupType"
                              ],
                              "type": "object",
                              "properties": {
                                "groupName": {
                                  "type": "string"
                                },
                                "groupType": {
                                  "title": "GroupType",
                                  "enum": [
                                    "active",
                                    "passive",
                                    "meta"
                                  ],
                                  "type": "string",
                                  "example": "active"
                                }
                              },
                              "description": "Provides additional information about the entity to group by"
                            },
                            "description": ""
                          }
                        },
                        "description": "Defines how the results should be grouped"
                      },
                      "interval": {
                        "type": "string",
                        "description": "Time boundary for the metrics under consideration using the ISO-8601 standard",
                        "example": "2018-04-08T14:00:00/2018-04-09T15:00:00"
                      },
                      "aggregation": {
                        "title": "SupportedAggregations",
                        "enum": [
                          "min",
                          "max",
                          "avg",
                          "count",
                          "sum"
                        ],
                        "type": "string",
                        "description": "The type of aggregation (avg/min/max/count/sum) avg - Returns the averaging the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. min - Returns the minimum value for the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. max - Returns the maximum value for the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. count - Returns the number of events within the specified bucket property. A single bucket is the preferred usage but multiple buckets can be used as a band pass filter.  sum - Returns the summed value of all records grouped by the provided groupings",
                        "example": "min"
                      },
                      "globalMetricFilterContext": {
                        "title": "SupportedMetricDimensionFilters",
                        "type": "object",
                        "properties": {
                          "vendor": {
                            "type": "string",
                            "description": "Vendor name associated with the monitored object",
                            "example": "accedian-twamp"
                          },
                          "objectType": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Object types to be considered as part of the filter",
                            "example": [
                              {
                                "0": "twamp-pe"
                              },
                              {
                                "0": "twamp-sl",
                                "1": "twamp-sf"
                              }
                            ]
                          },
                          "direction": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Set of one or more directions to be used by the filter to identify required metric records",
                            "example": [
                              {
                                "0": "0"
                              },
                              {
                                "0": "0",
                                "1": "1"
                              }
                            ]
                          },
                          "monitoredObjectId": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Set of one or more monitored object Ids to be used by the filter to identify required metric records",
                            "example": [
                              {
                                "0": "abc"
                              },
                              {
                                "0": "abc",
                                "1": "def"
                              }
                            ]
                          },
                          "sourceLocation": {
                            "title": "SpatialFilter",
                            "type": "object",
                            "properties": {
                              "rectangular": {
                                "title": "Rectangular",
                                "type": "object",
                                "properties": {
                                  "minCoordinates": {
                                    "title": "SpatialCoordinates",
                                    "required": [
                                      "latitude",
                                      "longitude"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "latitude": {
                                        "type": "number"
                                      },
                                      "longitude": {
                                        "type": "number"
                                      }
                                    }
                                  },
                                  "maxCoordinates": {
                                    "title": "SpatialCoordinates",
                                    "required": [
                                      "latitude",
                                      "longitude"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "latitude": {
                                        "type": "number"
                                      },
                                      "longitude": {
                                        "type": "number"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "destinationLocation": {
                            "title": "SpatialFilter",
                            "type": "object",
                            "properties": {
                              "rectangular": {
                                "title": "Rectangular",
                                "type": "object",
                                "properties": {
                                  "minCoordinates": {
                                    "title": "SpatialCoordinates",
                                    "required": [
                                      "latitude",
                                      "longitude"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "latitude": {
                                        "type": "number"
                                      },
                                      "longitude": {
                                        "type": "number"
                                      }
                                    }
                                  },
                                  "maxCoordinates": {
                                    "title": "SpatialCoordinates",
                                    "required": [
                                      "latitude",
                                      "longitude"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "latitude": {
                                        "type": "number"
                                      },
                                      "longitude": {
                                        "type": "number"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "topology": {
                            "type": "string",
                            "description": "Name of a node on the route of the Monitored Object"
                          },
                          "metadata": {
                            "title": "Metadata1",
                            "type": "object",
                            "properties": {
                              "include": {
                                "type": "object",
                                "additionalProperties": {},
                                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                                "example": {
                                  "region": [
                                    "montreal",
                                    "ottawa"
                                  ],
                                  "group": [
                                    "radio"
                                  ]
                                }
                              },
                              "exclude": {
                                "type": "object",
                                "additionalProperties": {},
                                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                                "example": {
                                  "region": [
                                    "montreal",
                                    "ottawa"
                                  ],
                                  "group": [
                                    "radio"
                                  ]
                                }
                              }
                            },
                            "description": "Inclusion and exclusion filters for metadata records"
                          }
                        }
                      },
                      "metrics": {
                        "type": "array",
                        "items": {
                          "title": "MetricSpec",
                          "required": [
                            "metric"
                          ],
                          "type": "object",
                          "properties": {
                            "vendor": {
                              "type": "string",
                              "description": "Vendor name associated with the monitored object",
                              "example": "accedian-twamp"
                            },
                            "objectType": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Object types to be considered as part of the filter",
                              "example": [
                                {
                                  "0": "twamp-pe"
                                },
                                {
                                  "0": "twamp-sl",
                                  "1": "twamp-sf"
                                }
                              ]
                            },
                            "direction": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Set of one or more directions to be used by the filter to identify required metric records",
                              "example": [
                                {
                                  "0": "0"
                                },
                                {
                                  "0": "0",
                                  "1": "1"
                                }
                              ]
                            },
                            "monitoredObjectId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Set of one or more monitored object Ids to be used by the filter to identify required metric records",
                              "example": [
                                {
                                  "0": "abc"
                                },
                                {
                                  "0": "abc",
                                  "1": "def"
                                }
                              ]
                            },
                            "sourceLocation": {
                              "title": "SpatialFilter",
                              "type": "object",
                              "properties": {
                                "rectangular": {
                                  "title": "Rectangular",
                                  "type": "object",
                                  "properties": {
                                    "minCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    },
                                    "maxCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "destinationLocation": {
                              "title": "SpatialFilter",
                              "type": "object",
                              "properties": {
                                "rectangular": {
                                  "title": "Rectangular",
                                  "type": "object",
                                  "properties": {
                                    "minCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    },
                                    "maxCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "topology": {
                              "type": "string",
                              "description": "Name of a node on the route of the Monitored Object"
                            },
                            "metadata": {
                              "title": "Metadata1",
                              "type": "object",
                              "properties": {
                                "include": {
                                  "type": "object",
                                  "additionalProperties": {},
                                  "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                                  "example": {
                                    "region": [
                                      "montreal",
                                      "ottawa"
                                    ],
                                    "group": [
                                      "radio"
                                    ]
                                  }
                                },
                                "exclude": {
                                  "type": "object",
                                  "additionalProperties": {},
                                  "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                                  "example": {
                                    "region": [
                                      "montreal",
                                      "ottawa"
                                    ],
                                    "group": [
                                      "radio"
                                    ]
                                  }
                                }
                              },
                              "description": "Inclusion and exclusion filters for metadata records"
                            },
                            "valueBoundary": {
                              "title": "MetricBucket",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Type25",
                                  "enum": [
                                    "fixed",
                                    "baseline_percentage",
                                    "baseline_static_below",
                                    "baseline_static_above"
                                  ],
                                  "type": "string",
                                  "example": "fixed"
                                },
                                "filterMetric": {
                                  "type": "string"
                                },
                                "lower": {
                                  "title": "Lower",
                                  "required": [
                                    "value"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "value": {
                                      "type": "number",
                                      "description": "The lower, positive number to be used to describe the lowest value of the bucket. Omitting this value assumes that this bucket includes anything lower than the defined \"upper\" value"
                                    },
                                    "strict": {
                                      "type": "boolean",
                                      "description": "If set to true, then the lower value is assumed to be exclusive. Otherwise a value of false or the absence of this value assumes that the lower value is to be taken inclusively"
                                    }
                                  },
                                  "description": "The specification for the lower boundary of the bucket"
                                },
                                "upper": {
                                  "title": "Upper",
                                  "required": [
                                    "value"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "value": {
                                      "type": "number",
                                      "description": "The upper, positive number to be used to describe the highest value of the bucket. Omitting this value assumes that this bucket includes anything higher than the defined \"lower\" value"
                                    },
                                    "strict": {
                                      "type": "boolean",
                                      "description": "If set to true, then the upper value is assumed to be exclusive. Otherwise a value of false or the absence of this value assumes that the upper value is to be taken inclusively"
                                    }
                                  },
                                  "description": "The specification for the upper boundary of the bucket"
                                }
                              }
                            },
                            "metric": {
                              "type": "string",
                              "description": "Name that identifies the specific metric within a monitored object",
                              "example": "delayP95"
                            }
                          },
                          "description": "Filter object that identifies a specific metric within a monitored object by its key attributes"
                        },
                        "description": "A set of identifiers that considers specific metrics based on the provided information"
                      }
                    },
                    "description": "The necessary request parameters for the metric api call"
                  }
                }
              }
            },
            "description": "JSON API compliant wrapper for the groupby query"
          }
        }
      ],
      "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": "/getGroupByV3"
      },
      "task": true
    },
    {
      "name": "getAggregateV3",
      "summary": "GetAggregateV3",
      "description": "Aggregates the provided metrics and filters them based on the provided criteria",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [aggregates]\", \"attributes\": {\"queryContext\": {\"ignoreCleaning\": \"boolean\", \"focusBusyHour\": \"boolean\", \"ignoreMaintenance\": \"boolean\", \"timeout\": 123, \"sorted\": \"Must be one of [asc, desc]\", \"numResults\": 123}, \"metaContext\": {\"metadataFilters\": \"object\", \"metaExclude\": \"array\"}, \"interval\": \"string\", \"granularity\": \"string\", \"aggregation\": \"Must be one of [min, max, avg, count, sum]\", \"globalMetricFilterContext\": {\"vendor\": \"string\", \"objectType\": \"array\", \"direction\": \"array\", \"monitoredObjectId\": \"array\", \"sourceLocation\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"destinationLocation\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"topology\": \"string\", \"metadata\": {\"include\": \"object\", \"exclude\": \"object\"}}, \"metrics\": [{\"vendor\": \"string\", \"objectType\": \"array\", \"direction\": \"array\", \"monitoredObjectId\": \"array\", \"sourceLocation\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"destinationLocation\": {\"rectangular\": {\"minCoordinates\": {\"latitude\": 123, \"longitude\": 123}, \"maxCoordinates\": {\"latitude\": 123, \"longitude\": 123}}}, \"topology\": \"string\", \"metadata\": {\"include\": \"object\", \"exclude\": \"object\"}, \"valueBoundary\": {\"type\": \"Must be one of [fixed, baseline_percentage, baseline_static_below, baseline_static_above]\", \"filterMetric\": \"string\", \"lower\": {\"value\": 123, \"strict\": \"boolean\"}, \"upper\": {\"value\": 123, \"strict\": \"boolean\"}}, \"metric\": \"string\"}]}}}",
          "required": true,
          "schema": {
            "title": "JsonApiAggregateV3Request",
            "type": "object",
            "properties": {
              "data": {
                "title": "Data64",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "aggregates"
                    ],
                    "type": "string",
                    "example": "aggregates"
                  },
                  "attributes": {
                    "title": "AggregateV3Config",
                    "required": [
                      "interval",
                      "granularity",
                      "aggregation",
                      "metrics"
                    ],
                    "type": "object",
                    "properties": {
                      "queryContext": {
                        "title": "QueryContext",
                        "type": "object",
                        "properties": {
                          "ignoreCleaning": {
                            "type": "boolean",
                            "description": "A value of true will have the aggregation request execute on all data regardless of whether it has been cleaned or not"
                          },
                          "focusBusyHour": {
                            "type": "boolean",
                            "description": "A value of true will only consider data tagged as 'busyHour' for the aggregation request"
                          },
                          "ignoreMaintenance": {
                            "type": "boolean",
                            "description": "A value of true will ignore data tagged as 'maintenance' for the aggregation request"
                          },
                          "timeout": {
                            "type": "integer",
                            "description": "Query timeout in milliseconds",
                            "example": 30000
                          },
                          "sorted": {
                            "title": "Sorted",
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "description": "Indicates whether the response should return grouped by queries in ascending or descending order. Only applicable to grouped queries.",
                            "example": "asc"
                          },
                          "numResults": {
                            "type": "integer",
                            "description": "Number of results to return in grouped queries. A non-positive integer for this value implies there is no result limit. Only applicable to grouped queries.",
                            "example": 10
                          }
                        },
                        "description": "Hints indicating how the query may be Returns"
                      },
                      "metaContext": {
                        "title": "MetaContext",
                        "required": [
                          "metadataFilters"
                        ],
                        "type": "object",
                        "properties": {
                          "metadataFilters": {
                            "type": "object",
                            "additionalProperties": {},
                            "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                            "example": {
                              "region": [
                                "montreal",
                                "ottawa"
                              ],
                              "group": [
                                "radio"
                              ]
                            }
                          },
                          "metaExclude": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                            "example": [
                              "group"
                            ]
                          }
                        },
                        "description": "Elements of the query that define metadata specific components"
                      },
                      "interval": {
                        "type": "string",
                        "description": "Time boundary for the metrics under consideration using the ISO-8601 standard",
                        "example": "2018-04-08T14:00:00/2018-04-09T15:00:00"
                      },
                      "granularity": {
                        "type": "string",
                        "description": "the granularity for timeseries in ISO-8601 duration format, or ALL",
                        "example": "PT1H"
                      },
                      "aggregation": {
                        "title": "SupportedAggregations",
                        "enum": [
                          "min",
                          "max",
                          "avg",
                          "count",
                          "sum"
                        ],
                        "type": "string",
                        "description": "The type of aggregation (avg/min/max/count/sum) avg - Returns the averaging the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. min - Returns the minimum value for the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. max - Returns the maximum value for the metric per monitored object for the time range, within the bounding filter as specified by the bucket property. count - Returns the number of events within the specified bucket property. A single bucket is the preferred usage but multiple buckets can be used as a band pass filter.  sum - Returns the summed value of all records grouped by the provided groupings",
                        "example": "min"
                      },
                      "globalMetricFilterContext": {
                        "title": "SupportedMetricDimensionFilters",
                        "type": "object",
                        "properties": {
                          "vendor": {
                            "type": "string",
                            "description": "Vendor name associated with the monitored object",
                            "example": "accedian-twamp"
                          },
                          "objectType": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Object types to be considered as part of the filter",
                            "example": [
                              {
                                "0": "twamp-pe"
                              },
                              {
                                "0": "twamp-sl",
                                "1": "twamp-sf"
                              }
                            ]
                          },
                          "direction": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Set of one or more directions to be used by the filter to identify required metric records",
                            "example": [
                              {
                                "0": "0"
                              },
                              {
                                "0": "0",
                                "1": "1"
                              }
                            ]
                          },
                          "monitoredObjectId": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Set of one or more monitored object Ids to be used by the filter to identify required metric records",
                            "example": [
                              {
                                "0": "abc"
                              },
                              {
                                "0": "abc",
                                "1": "def"
                              }
                            ]
                          },
                          "sourceLocation": {
                            "title": "SpatialFilter",
                            "type": "object",
                            "properties": {
                              "rectangular": {
                                "title": "Rectangular",
                                "type": "object",
                                "properties": {
                                  "minCoordinates": {
                                    "title": "SpatialCoordinates",
                                    "required": [
                                      "latitude",
                                      "longitude"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "latitude": {
                                        "type": "number"
                                      },
                                      "longitude": {
                                        "type": "number"
                                      }
                                    }
                                  },
                                  "maxCoordinates": {
                                    "title": "SpatialCoordinates",
                                    "required": [
                                      "latitude",
                                      "longitude"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "latitude": {
                                        "type": "number"
                                      },
                                      "longitude": {
                                        "type": "number"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "destinationLocation": {
                            "title": "SpatialFilter",
                            "type": "object",
                            "properties": {
                              "rectangular": {
                                "title": "Rectangular",
                                "type": "object",
                                "properties": {
                                  "minCoordinates": {
                                    "title": "SpatialCoordinates",
                                    "required": [
                                      "latitude",
                                      "longitude"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "latitude": {
                                        "type": "number"
                                      },
                                      "longitude": {
                                        "type": "number"
                                      }
                                    }
                                  },
                                  "maxCoordinates": {
                                    "title": "SpatialCoordinates",
                                    "required": [
                                      "latitude",
                                      "longitude"
                                    ],
                                    "type": "object",
                                    "properties": {
                                      "latitude": {
                                        "type": "number"
                                      },
                                      "longitude": {
                                        "type": "number"
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "topology": {
                            "type": "string",
                            "description": "Name of a node on the route of the Monitored Object"
                          },
                          "metadata": {
                            "title": "Metadata1",
                            "type": "object",
                            "properties": {
                              "include": {
                                "type": "object",
                                "additionalProperties": {},
                                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                                "example": {
                                  "region": [
                                    "montreal",
                                    "ottawa"
                                  ],
                                  "group": [
                                    "radio"
                                  ]
                                }
                              },
                              "exclude": {
                                "type": "object",
                                "additionalProperties": {},
                                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                                "example": {
                                  "region": [
                                    "montreal",
                                    "ottawa"
                                  ],
                                  "group": [
                                    "radio"
                                  ]
                                }
                              }
                            },
                            "description": "Inclusion and exclusion filters for metadata records"
                          }
                        }
                      },
                      "metrics": {
                        "type": "array",
                        "items": {
                          "title": "MetricSpec",
                          "required": [
                            "metric"
                          ],
                          "type": "object",
                          "properties": {
                            "vendor": {
                              "type": "string",
                              "description": "Vendor name associated with the monitored object",
                              "example": "accedian-twamp"
                            },
                            "objectType": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Object types to be considered as part of the filter",
                              "example": [
                                {
                                  "0": "twamp-pe"
                                },
                                {
                                  "0": "twamp-sl",
                                  "1": "twamp-sf"
                                }
                              ]
                            },
                            "direction": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Set of one or more directions to be used by the filter to identify required metric records",
                              "example": [
                                {
                                  "0": "0"
                                },
                                {
                                  "0": "0",
                                  "1": "1"
                                }
                              ]
                            },
                            "monitoredObjectId": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Set of one or more monitored object Ids to be used by the filter to identify required metric records",
                              "example": [
                                {
                                  "0": "abc"
                                },
                                {
                                  "0": "abc",
                                  "1": "def"
                                }
                              ]
                            },
                            "sourceLocation": {
                              "title": "SpatialFilter",
                              "type": "object",
                              "properties": {
                                "rectangular": {
                                  "title": "Rectangular",
                                  "type": "object",
                                  "properties": {
                                    "minCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    },
                                    "maxCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "destinationLocation": {
                              "title": "SpatialFilter",
                              "type": "object",
                              "properties": {
                                "rectangular": {
                                  "title": "Rectangular",
                                  "type": "object",
                                  "properties": {
                                    "minCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    },
                                    "maxCoordinates": {
                                      "title": "SpatialCoordinates",
                                      "required": [
                                        "latitude",
                                        "longitude"
                                      ],
                                      "type": "object",
                                      "properties": {
                                        "latitude": {
                                          "type": "number"
                                        },
                                        "longitude": {
                                          "type": "number"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "topology": {
                              "type": "string",
                              "description": "Name of a node on the route of the Monitored Object"
                            },
                            "metadata": {
                              "title": "Metadata1",
                              "type": "object",
                              "properties": {
                                "include": {
                                  "type": "object",
                                  "additionalProperties": {},
                                  "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                                  "example": {
                                    "region": [
                                      "montreal",
                                      "ottawa"
                                    ],
                                    "group": [
                                      "radio"
                                    ]
                                  }
                                },
                                "exclude": {
                                  "type": "object",
                                  "additionalProperties": {},
                                  "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                                  "example": {
                                    "region": [
                                      "montreal",
                                      "ottawa"
                                    ],
                                    "group": [
                                      "radio"
                                    ]
                                  }
                                }
                              },
                              "description": "Inclusion and exclusion filters for metadata records"
                            },
                            "valueBoundary": {
                              "title": "MetricBucket",
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Type25",
                                  "enum": [
                                    "fixed",
                                    "baseline_percentage",
                                    "baseline_static_below",
                                    "baseline_static_above"
                                  ],
                                  "type": "string",
                                  "example": "fixed"
                                },
                                "filterMetric": {
                                  "type": "string"
                                },
                                "lower": {
                                  "title": "Lower",
                                  "required": [
                                    "value"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "value": {
                                      "type": "number",
                                      "description": "The lower, positive number to be used to describe the lowest value of the bucket. Omitting this value assumes that this bucket includes anything lower than the defined \"upper\" value"
                                    },
                                    "strict": {
                                      "type": "boolean",
                                      "description": "If set to true, then the lower value is assumed to be exclusive. Otherwise a value of false or the absence of this value assumes that the lower value is to be taken inclusively"
                                    }
                                  },
                                  "description": "The specification for the lower boundary of the bucket"
                                },
                                "upper": {
                                  "title": "Upper",
                                  "required": [
                                    "value"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "value": {
                                      "type": "number",
                                      "description": "The upper, positive number to be used to describe the highest value of the bucket. Omitting this value assumes that this bucket includes anything higher than the defined \"lower\" value"
                                    },
                                    "strict": {
                                      "type": "boolean",
                                      "description": "If set to true, then the upper value is assumed to be exclusive. Otherwise a value of false or the absence of this value assumes that the upper value is to be taken inclusively"
                                    }
                                  },
                                  "description": "The specification for the upper boundary of the bucket"
                                }
                              }
                            },
                            "metric": {
                              "type": "string",
                              "description": "Name that identifies the specific metric within a monitored object",
                              "example": "delayP95"
                            }
                          },
                          "description": "Filter object that identifies a specific metric within a monitored object by its key attributes"
                        },
                        "description": "A set of identifiers that considers specific metrics based on the provided information"
                      }
                    },
                    "description": "The necessary request parameters for the metric api call"
                  }
                }
              }
            },
            "description": "JSON API compliant wrapper for the aggregate query"
          }
        }
      ],
      "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": "/getAggregateV3"
      },
      "task": true
    },
    {
      "name": "createTcpThroughputTestReportV3",
      "summary": "CreateTcpThroughputTestReportV3",
      "description": "Create a TCP Throughput test report",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [tcpThroughputReport]\", \"attributes\": {\"test-id\": \"string\", \"run-id\": \"string\", \"run-timestamp\": \"string\", \"user-meta\": \"object\", \"ingestion-meta\": \"object\", \"test-summary-metrics\": \"object\", \"test-interval-metrics\": \"object\"}}}",
          "required": true,
          "schema": {
            "title": "TcpThroughputResponse",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "TcpThroughputTestReport",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "tcpThroughputReport"
                    ],
                    "type": "string",
                    "example": "tcpThroughputReport"
                  },
                  "attributes": {
                    "title": "Attributes95",
                    "type": "object",
                    "properties": {
                      "test-id": {
                        "type": "string"
                      },
                      "run-id": {
                        "type": "string"
                      },
                      "run-timestamp": {
                        "type": "string"
                      },
                      "user-meta": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "User defined attributes added to a TCP Test that help identify the test as well as provide filtering/grouping properties"
                      },
                      "ingestion-meta": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "Attributes added to a TCP Test at ingestion time that help identify the test as well as provide filtering/grouping properties"
                      },
                      "test-summary-metrics": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "Free form map of KPIs"
                      },
                      "test-interval-metrics": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "description": "A single instance of a TCP Throughput test run."
              }
            }
          }
        }
      ],
      "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": "/createTcpThroughputTestReportV3"
      },
      "task": true
    },
    {
      "name": "getAllTcpThroughputTestReportsV3",
      "summary": "GetAllTcpThroughputTestReportsV3",
      "description": "Retrieve all TCP Throughput test run reports for a tenant.",
      "input": [
        {
          "name": "shallow",
          "type": "boolean",
          "info": "If set, retrieve only summary kpi's for the test records: boolean",
          "required": false,
          "schema": {
            "title": "shallow",
            "type": "boolean"
          }
        },
        {
          "name": "token",
          "type": "string",
          "info": "For paginated results, the token to receive the next batch of results: string",
          "required": false,
          "schema": {
            "title": "token",
            "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": "/getAllTcpThroughputTestReportsV3"
      },
      "task": true
    },
    {
      "name": "getAllTcpThroughputReportsForTestV3",
      "summary": "GetAllTcpThroughputReportsForTestV3",
      "description": "Retrieve all TCP Throughput test reports for a test instance.",
      "input": [
        {
          "name": "testId",
          "type": "string",
          "info": "The test identifier: string",
          "required": true,
          "schema": {
            "title": "testId",
            "type": "string"
          }
        },
        {
          "name": "shallow",
          "type": "boolean",
          "info": "If set, retrieve only summary kpi's for the test records: boolean",
          "required": false,
          "schema": {
            "title": "shallow",
            "type": "boolean"
          }
        },
        {
          "name": "token",
          "type": "string",
          "info": "For paginated results, the token to receive the next batch of results: string",
          "required": false,
          "schema": {
            "title": "token",
            "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": "/getAllTcpThroughputReportsForTestV3"
      },
      "task": true
    },
    {
      "name": "getTcpThroughputTestReportV3",
      "summary": "GetTcpThroughputTestReportV3",
      "description": "Retrieve a TCP Throughput test report by test id and run id",
      "input": [
        {
          "name": "testId",
          "type": "string",
          "info": "The test identifier: string",
          "required": true,
          "schema": {
            "title": "testId",
            "type": "string"
          }
        },
        {
          "name": "runId",
          "type": "string",
          "info": "The id associated with a particular test run: string",
          "required": true,
          "schema": {
            "title": "runId",
            "type": "string"
          }
        },
        {
          "name": "shallow",
          "type": "boolean",
          "info": "If set, retrieve only summary kpi's for the test record: boolean",
          "required": false,
          "schema": {
            "title": "shallow",
            "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": "/getTcpThroughputTestReportV3"
      },
      "task": true
    },
    {
      "name": "updateTcpThroughputTestReportV3",
      "summary": "UpdateTcpThroughputTestReportV3",
      "description": "Update a TCP Throughput test report",
      "input": [
        {
          "name": "testId",
          "type": "string",
          "info": "The test identifier: string",
          "required": true,
          "schema": {
            "title": "testId",
            "type": "string"
          }
        },
        {
          "name": "runId",
          "type": "string",
          "info": "The is associated with a particular test run: string",
          "required": true,
          "schema": {
            "title": "runId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"data\": {\"id\": \"string\", \"type\": \"Must be one of [tcpThroughputReport]\", \"attributes\": {\"user-meta\": \"object\"}}}",
          "required": true,
          "schema": {
            "title": "TcpThroughputUpdateRequest",
            "required": [
              "data"
            ],
            "type": "object",
            "properties": {
              "data": {
                "title": "TcpThroughputUpdateBody",
                "required": [
                  "type",
                  "attributes"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "tcpThroughputReport"
                    ],
                    "type": "string",
                    "example": "tcpThroughputReport"
                  },
                  "attributes": {
                    "title": "Attributes96",
                    "type": "object",
                    "properties": {
                      "user-meta": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "User defined attributes added to a TCP Test that help identify the test as well as provide filtering/grouping properties"
                      }
                    }
                  }
                },
                "description": "A single instance of a TCP Throughput test run."
              }
            },
            "description": "Object used to update an existing TCP Throughput test report"
          }
        }
      ],
      "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": "/updateTcpThroughputTestReportV3"
      },
      "task": true
    },
    {
      "name": "deleteTcpThroughputTestReportV3",
      "summary": "DeleteTcpThroughputTestReportV3",
      "description": "Delete a TCP Throughput Test report specified by the provided test id and run id.",
      "input": [
        {
          "name": "testId",
          "type": "string",
          "info": "The test identfifier: string",
          "required": true,
          "schema": {
            "title": "testId",
            "type": "string"
          }
        },
        {
          "name": "runId",
          "type": "string",
          "info": "The id associated with a particular test run: string",
          "required": true,
          "schema": {
            "title": "runId",
            "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": "/deleteTcpThroughputTestReportV3"
      },
      "task": true
    },
    {
      "name": "getFilteredTcpThroughputCountV3",
      "summary": "GetFilteredTcpThroughputCountV3",
      "description": "Retrieve a count of TCP Throughput test reports based on the provided filter criteria",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"expressions\": {\"operator\": \"Must be one of [and, or]\", \"expressions\": [{\"field\": \"string\", \"condition\": {\"equal\": \"string\", \"notequal\": \"string\", \"lt\": 123, \"gt\": 123, \"in\": \"array\", \"notin\": \"array\"}, \"expressions\": {\"operator\": \"Must be one of [and, or]\", \"expressions\": \"array\"}}]}, \"user-meta\": \"object\", \"ingestion-meta\": \"object\", \"metaExclude\": \"array\", \"test-id\": \"array\", \"run-id\": \"array\"}",
          "required": true,
          "schema": {
            "title": "TcpThroughputFilteredListRequest",
            "type": "object",
            "properties": {
              "expressions": {
                "title": "expressions",
                "type": "object",
                "properties": {
                  "operator": {
                    "title": "Operator",
                    "enum": [
                      "and",
                      "or"
                    ],
                    "type": "string",
                    "description": "Locical Operator for filter fields",
                    "example": "and"
                  },
                  "expressions": {
                    "type": "array",
                    "items": {
                      "title": "expressionItems",
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string"
                        },
                        "condition": {
                          "title": "expressionCondition",
                          "type": "object",
                          "properties": {
                            "equal": {
                              "type": "string"
                            },
                            "notequal": {
                              "type": "string"
                            },
                            "lt": {
                              "type": "integer"
                            },
                            "gt": {
                              "type": "integer"
                            },
                            "in": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "notin": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          }
                        },
                        "expressions": {
                          "title": "expressions",
                          "type": "object",
                          "properties": {
                            "operator": {
                              "title": "Operator",
                              "enum": [
                                "and",
                                "or"
                              ],
                              "type": "string",
                              "description": "Locical Operator for filter fields",
                              "example": "and"
                            },
                            "expressions": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              },
                              "description": ""
                            }
                          }
                        }
                      }
                    },
                    "description": ""
                  }
                }
              },
              "user-meta": {
                "type": "object",
                "additionalProperties": {},
                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                "example": {
                  "region": [
                    "montreal",
                    "ottawa"
                  ],
                  "group": [
                    "radio"
                  ]
                }
              },
              "ingestion-meta": {
                "type": "object",
                "additionalProperties": {},
                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                "example": {
                  "region": [
                    "montreal",
                    "ottawa"
                  ],
                  "group": [
                    "radio"
                  ]
                }
              },
              "metaExclude": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                "example": [
                  "group"
                ]
              },
              "test-id": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array of test identifiers"
              },
              "run-id": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array of run identifiers"
              }
            }
          }
        }
      ],
      "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": "/getFilteredTcpThroughputCountV3"
      },
      "task": true
    },
    {
      "name": "getFilteredTcpThroughputListV3",
      "summary": "GetFilteredTcpThroughputListV3",
      "description": "Retrieve a list of TCP Throughput test reports based on the provided filter criteria",
      "input": [
        {
          "name": "shallow",
          "type": "boolean",
          "info": "If set, retrieve only summary kpi's for the test record: boolean",
          "required": false,
          "schema": {
            "title": "shallow",
            "type": "boolean"
          }
        },
        {
          "name": "token",
          "type": "string",
          "info": ": string",
          "required": false,
          "schema": {
            "title": "token",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"expressions\": {\"operator\": \"Must be one of [and, or]\", \"expressions\": [{\"field\": \"string\", \"condition\": {\"equal\": \"string\", \"notequal\": \"string\", \"lt\": 123, \"gt\": 123, \"in\": \"array\", \"notin\": \"array\"}, \"expressions\": {\"operator\": \"Must be one of [and, or]\", \"expressions\": \"array\"}}]}, \"user-meta\": \"object\", \"ingestion-meta\": \"object\", \"metaExclude\": \"array\", \"test-id\": \"array\", \"run-id\": \"array\"}",
          "required": false,
          "schema": {
            "title": "TcpThroughputFilteredListRequest",
            "type": "object",
            "properties": {
              "expressions": {
                "title": "expressions",
                "type": "object",
                "properties": {
                  "operator": {
                    "title": "Operator",
                    "enum": [
                      "and",
                      "or"
                    ],
                    "type": "string",
                    "description": "Locical Operator for filter fields",
                    "example": "and"
                  },
                  "expressions": {
                    "type": "array",
                    "items": {
                      "title": "expressionItems",
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string"
                        },
                        "condition": {
                          "title": "expressionCondition",
                          "type": "object",
                          "properties": {
                            "equal": {
                              "type": "string"
                            },
                            "notequal": {
                              "type": "string"
                            },
                            "lt": {
                              "type": "integer"
                            },
                            "gt": {
                              "type": "integer"
                            },
                            "in": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            },
                            "notin": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": ""
                            }
                          }
                        },
                        "expressions": {
                          "title": "expressions",
                          "type": "object",
                          "properties": {
                            "operator": {
                              "title": "Operator",
                              "enum": [
                                "and",
                                "or"
                              ],
                              "type": "string",
                              "description": "Locical Operator for filter fields",
                              "example": "and"
                            },
                            "expressions": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              },
                              "description": ""
                            }
                          }
                        }
                      }
                    },
                    "description": ""
                  }
                }
              },
              "user-meta": {
                "type": "object",
                "additionalProperties": {},
                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                "example": {
                  "region": [
                    "montreal",
                    "ottawa"
                  ],
                  "group": [
                    "radio"
                  ]
                }
              },
              "ingestion-meta": {
                "type": "object",
                "additionalProperties": {},
                "description": "An object that allows filtering on arbitrary metadata criteria and their values.  The keys in the map are associated with metadata categories and the value array  corresponds to a set of whitelist filter-in values for that category. The logical  semantics associated with this structure are conditional-AND across metadata criteria (keys) and conditional-OR across the values contained within the value array. For example, {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]} will match all records that are of group \"radio\" AND from the region \"montreal\" OR \"ottawa\"",
                "example": {
                  "region": [
                    "montreal",
                    "ottawa"
                  ],
                  "group": [
                    "radio"
                  ]
                }
              },
              "metaExclude": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array that allows blacklisting one or more metadata criteria. Each key in the array must correspond to a given key in the MetaFilter portion of the request. This exclusion is a logical NOT for any values belonging to the metadata criteria listed in this request. For example, if the MetaFilter is: {\"region\":[\"montreal\",\"ottawa\"], \"group\":[\"radio\"]}, we can have a MetaExclude of the form [\"region\"]. This would result in a request that includes any records that are of group \"radio\" AND NOT in regions Ottawa or Montreal.",
                "example": [
                  "group"
                ]
              },
              "test-id": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array of test identifiers"
              },
              "run-id": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "An array of run identifiers"
              }
            }
          }
        }
      ],
      "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": "/getFilteredTcpThroughputListV3"
      },
      "task": true
    }
  ],
  "views": []
}