{
  "swagger": "2.0",
  "info": {
    "contact": {
      "email": "apiteam@wordnik.com"
    },
    "description": "This is a sample server Petstore server.  You can find out more about Swagger \n    at <a href=\"http://swagger.wordnik.com\">http://swagger.wordnik.com</a> or on irc.freenode.net, #swagger.  For this sample,\n    you can use the api key \"special-key\" to test the authorization filters",
    "license": {
      "name": "Apache 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "termsOfService": "http://swagger.io/terms/",
    "title": "Swagger Sample App",
    "version": "1.0.0"
  },
  "paths": {
    "/action": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of milliseconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of milliseconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Number of rows to fetch",
            "in": "query",
            "name": "limit",
            "required": true,
            "type": "number"
          },
          {
            "default": 1,
            "description": "0=Debug, 1=Info, 2=Error",
            "enum": [
              0,
              1,
              2
            ],
            "in": "query",
            "name": "logLevel",
            "required": true,
            "type": "number"
          },
          {
            "description": "Appliance ID",
            "in": "query",
            "name": "appliance",
            "required": false,
            "type": "string"
          },
          {
            "description": "Username",
            "in": "query",
            "name": "username",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/ActionLog"
              },
              "type": "array"
            }
          }
        },
        "description": "Any operation performed by Orchestrator in the background or performed by a user is logged. This API is used to retrieve that information.",
        "operationId": "action and audit log entries",
        "summary": "Get action/audit log entries."
      }
    },
    "/action/cancel": {
      "post": {
        "parameters": [
          {
            "description": "action key (guid)",
            "in": "query",
            "name": "key",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Certain actions like appliance upgrade, appliance restore etc., return a key as in response. You can cancel such operations using the key",
        "operationId": "action cancel",
        "summary": "Cancel action guid key"
      }
    },
    "/action/status": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "action key (guid)",
            "in": "query",
            "name": "key",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ActionLog"
            }
          }
        },
        "description": "Certain actions like appliance upgrade, appliance restore etc., return a key as in response. Check for status of such operations using the key",
        "operationId": "action status",
        "summary": "Get status of a particular action using guid key"
      }
    },
    "/alarm/acknowledgement/appliance/{neId}": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance ID",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "AlarmAcknowledgementBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AlarmAcknowledgementBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "alarmAcknowledgement",
        "summary": "Acknowledges alarms on appliance whose sequence IDs are provided in the request body"
      }
    },
    "/alarm/acknowledgement/gms": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "GmsAlarmAcknowledgementBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GmsAlarmAcknowledgementBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "gmsAlarmAcknowledgement",
        "summary": "Acknowledges alarms whose IDs are provided in the request body"
      }
    },
    "/alarm/appliance": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "ApplianceAlarmGetPostBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceAlarmGetPostBody"
            }
          },
          {
            "default": "all",
            "description": "active=current alarms, closed=historical alarms, all=both active and historical alarms",
            "enum": [
              "active",
              "closed",
              "all"
            ],
            "in": "query",
            "name": "view",
            "required": false,
            "type": "string"
          },
          {
            "description": "Filters by alarm severity",
            "enum": [
              "warning",
              "minor",
              "major",
              "critical"
            ],
            "in": "query",
            "name": "severity",
            "required": false,
            "type": "string"
          },
          {
            "default": false,
            "description": "order by alarm severity",
            "in": "query",
            "name": "orderBySeverity",
            "required": false,
            "type": "boolean"
          },
          {
            "default": 5,
            "description": "max Alarms",
            "in": "query",
            "name": "maxAlarms",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of milliseconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "from",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of milliseconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "to",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/ApplianceAlarmItem"
              },
              "type": "array"
            }
          }
        },
        "operationId": "AlarmApplianceGetPost",
        "summary": "Returns active, historical, or all alarms for appliances whose ids provided in the request body"
      }
    },
    "/alarm/clearance/appliance/{neId}": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance ID",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "AlarmClearanceBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AlarmClearanceBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "alarmClearance",
        "summary": "Clears alarms whose sequence IDs are provided in the request body"
      }
    },
    "/alarm/clearance/gms": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "GmsAlarmClearanceBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GmsAlarmClearanceBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "gmsAlarmClearance",
        "summary": "Clears alarms whose IDs are provided in the request body"
      }
    },
    "/alarm/count/appliance": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/ActiveApplianceAlarmCounts"
              },
              "type": "array"
            }
          }
        },
        "operationId": "allApplianceAlarmSummary",
        "summary": "Returns summary of active alarms for each appliance"
      }
    },
    "/alarm/count/appliance/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Appliance ID",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AlarmSummary"
            }
          }
        },
        "operationId": "applianceAlarmSummary",
        "summary": "Returns summary of active alarms for the appliance"
      }
    },
    "/alarm/customization/severity": {
      "delete": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Delete all customized alarm severity",
        "operationId": "customSeverityDelete",
        "summary": "Delete all customized alarm severity"
      },
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SeverityConfig"
            }
          }
        },
        "description": "API returns an object in which keys are alarmTypeIds and values are Severities",
        "operationId": "customSeverityGet",
        "summary": "Get all customized alarm severity"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Request body is an object in which keys are alarmTypeIds and values are Severities",
            "in": "body",
            "name": "Request Body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SeverityConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "API consumes an object in which keys are alarmTypeIds and values are Severities",
        "operationId": "customSeverityPOST",
        "summary": "Create customized alarm severities"
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Request body is an object in which keys are alarmTypeIds and values are Severities",
            "in": "body",
            "name": "Request Body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SeverityConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "API consumes an object in which keys are alarmTypeIds and values are Severities",
        "operationId": "customSeverityPut",
        "summary": "Update customized alarm severities"
      }
    },
    "/alarm/customization/severity/{alarmTypeId}": {
      "delete": {
        "parameters": [
          {
            "description": "Alarm type id",
            "in": "path",
            "name": "alarmTypeId",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "singleCustomSeverityDelete",
        "summary": "Delete alarm severity config by alarmTypeId"
      },
      "get": {
        "parameters": [
          {
            "description": "Alarm type id",
            "in": "path",
            "name": "alarmTypeId",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SeverityConfig"
            }
          }
        },
        "description": "API returns an object in which keys are alarmTypeIds and values are Severities",
        "operationId": "singleCustomSeverityGet",
        "summary": "Get alarm severity config by alarmTypeId"
      }
    },
    "/alarm/delayEmail": {
      "delete": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "alarmEmailDelayDelete",
        "summary": "Delete alarm email delay configuration"
      },
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/alarmDebounceConfig"
            }
          }
        },
        "operationId": "alarmEmailDelayGet",
        "summary": "Get alarm email delay configuration"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "Request Body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/alarmDebounceConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "alarmEmailDelayPost",
        "summary": "Create alarm email delay configuration"
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "Request Body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/alarmDebounceConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "alarmEmailDelayPut",
        "summary": "Update alarm email delay configuration"
      }
    },
    "/alarm/description2": {
      "get": {
        "parameters": [
          {
            "description": "format=csv, ask browser to download a file of Orchestrator alarm descriptions in .csv format.",
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "default=true, export alarm descriptions with default values, default=false, export alarm descriptions with customized values",
            "in": "query",
            "name": "default",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AlarmDesc"
            }
          }
        },
        "operationId": "alarmDescGet",
        "summary": "Get Orchestrator and appliance alarm descriptions"
      }
    },
    "/alarm/gms": {
      "get": {
        "parameters": [
          {
            "default": "all",
            "description": "active=current alarms, closed=historical alarms, all=both active and historical alarms",
            "enum": [
              "active",
              "closed",
              "all"
            ],
            "in": "query",
            "name": "view",
            "required": false,
            "type": "string"
          },
          {
            "description": "Filters by alarm severity",
            "enum": [
              "warning",
              "minor",
              "major",
              "critical"
            ],
            "in": "query",
            "name": "severity",
            "required": false,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of milliseconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "from",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of milliseconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "to",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/GmsAlarm"
              },
              "type": "array"
            }
          }
        },
        "operationId": "alarmGms",
        "summary": "Returns active, closed/historical, or all Orchestrator alarms"
      }
    },
    "/alarm/notification": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AlarmNotification"
            }
          }
        },
        "operationId": "alarm notification",
        "summary": "Returns alarm notification"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "Alarm Notification",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AlarmNotification"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "alarm notification",
        "summary": "Set alarm notification"
      }
    },
    "/alarm/summary": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AlarmSummary"
            }
          }
        },
        "operationId": "alarmSummary",
        "summary": "Returns summary of active Orchestrator alarms as well as summary of active alarms across all appliances"
      }
    },
    "/alarm/summary/{type}": {
      "get": {
        "parameters": [
          {
            "description": "Alarm Type",
            "enum": [
              "gms",
              "appliance"
            ],
            "in": "path",
            "name": "type",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AlarmSummary"
            }
          }
        },
        "operationId": "alarmSummaryType",
        "summary": "Returns summary of active Orchestrator alarms or summary of active alarms across all appliances"
      }
    },
    "/alarm/suppress": {
      "delete": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "deleteDisabledAlarmsConfig",
        "summary": "Delete disabled alarms configuration"
      },
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/disabledAlarmsConfig"
            }
          }
        },
        "operationId": "getAllDisabledAlarmsConfig",
        "summary": "Get all disabled alarms configuration"
      },
      "post": {
        "parameters": [
          {
            "description": "'action' can be 'ENABLE' or 'DISABLE'. All the fields are required.",
            "in": "body",
            "name": "Request Body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/disabledAlarmsConfigRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "updateDisabledAlarmsConfig",
        "summary": "Update disabled alarms configuration"
      }
    },
    "/appliance": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/ApplianceItem"
              },
              "type": "array"
            }
          }
        },
        "operationId": "ApplianceGET",
        "summary": "Returns information about appliance(s) managed by Orchestrator"
      }
    },
    "/appliance/adminDistance/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Internal Id of the appliance from which you want to retrieve config information, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AdminDistanceConfig"
            }
          }
        },
        "operationId": "adminDistanceConfig",
        "summary": "Gets Admin Distance configurations"
      }
    },
    "/appliance/approved": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/AllDiscoveredAppliance"
              },
              "type": "array"
            }
          }
        },
        "operationId": "approvedAppliance",
        "summary": "Get the all approved appliances"
      }
    },
    "/appliance/backup": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "List of appliance primary keys and comments.",
            "in": "body",
            "name": "operation",
            "schema": {
              "$ref": "#/definitions/BackupPostBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/BackupAndRestoreResponse"
            }
          }
        },
        "description": "The response of this operation is a client key which can be polled to get progress of the requested operation. To poll for status, perform GET /action/status?key=<client key>",
        "operationId": "backupPost",
        "summary": "Backup appliance configuration to Orchestrator database"
      }
    },
    "/appliance/backup/{backupFilePk}": {
      "delete": {
        "parameters": [
          {
            "description": "Primary key of the backup record.",
            "in": "path",
            "name": "backupFilePk",
            "required": true,
            "type": "number"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "The backup record must exist in Orchestrator.",
        "operationId": "backupDelete",
        "summary": "Delete one specified backup record from the database table."
      }
    },
    "/appliance/backup/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Primary key of the appliance",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/BackupGetResponse"
              },
              "type": "array"
            }
          }
        },
        "operationId": "backupGet",
        "summary": "Get backup history."
      }
    },
    "/appliance/changeGroup/{groupPk}": {
      "post": {
        "parameters": [
          {
            "description": "group primary key",
            "in": "path",
            "name": "groupPk",
            "required": true,
            "type": "string"
          },
          {
            "description": "An array of appliance primary keys",
            "in": "body",
            "name": "appliance primary keys",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIds"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "To get primary key of Orchestrator groups, perform GET /gms/group",
        "operationId": "ApplianceChgGr",
        "summary": "Change one or more appliances' group"
      }
    },
    "/appliance/changePassword/{nePk}/{username}": {
      "post": {
        "parameters": [
          {
            "description": "The nepk of the appliance.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "The username you want to change the password for",
            "in": "path",
            "name": "username",
            "required": true,
            "type": "string"
          },
          {
            "description": "An object with the password you want to apply",
            "in": "body",
            "name": "password",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceChangePasswordPost"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Change a user's password on appliance",
        "operationId": "changeAppliancePassword",
        "summary": "Change a user's password on appliance."
      }
    },
    "/appliance/deleteForDiscovery/{nePk}": {
      "delete": {
        "parameters": [
          {
            "description": "nePk.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "The primary key must exist in Orchestrator.",
        "operationId": "DeleteForRediscovery",
        "summary": "Delete for rediscovery."
      }
    },
    "/appliance/denied": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/AllDiscoveredAppliance"
              },
              "type": "array"
            }
          }
        },
        "operationId": "deniedAppliance",
        "summary": "Get the all denied appliances"
      }
    },
    "/appliance/discovered": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/AllDiscoveredAppliance"
              },
              "type": "array"
            }
          }
        },
        "operationId": "getAllDiscoveredAppliances",
        "summary": "Returns the all discovered appliances"
      }
    },
    "/appliance/discovered/add/{key}": {
      "post": {
        "parameters": [
          {
            "description": "Primary key of discovered appliance.",
            "in": "path",
            "name": "key",
            "required": true,
            "type": "string"
          },
          {
            "description": "group ID",
            "in": "body",
            "name": "id",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GroupIdObject"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "This API is to add the discovered appliance to Orchestrator. To find the ID of the orchestrator groups, see the documentation for the 'group' api. To find the ID of a particular discovered appliance, use the /appliance/discovered api. <br /> To have the appliance licensed/approved. You should use the /license/portal/appliance/grant API (after using this api to add the discovered appliance)",
        "operationId": "addDiscoveredApplianceToOrchestrator",
        "summary": "Add discovered appliances to Orchestrator"
      }
    },
    "/appliance/discovered/approve/{key}": {
      "post": {
        "parameters": [
          {
            "description": "Primary key of discovered appliance.",
            "in": "path",
            "name": "key",
            "required": true,
            "type": "string"
          },
          {
            "description": "group ID",
            "in": "body",
            "name": "id",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GroupIdObject"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "This API is to approve a discovered appliance and add it to Orchestrator. To find the ID of the orchestrator groups, see the documentation for the 'group' api. To find the ID of a particular discovered appliance, use the /appliance/discovered api.",
        "operationId": "approveDiscoveredAppliances",
        "summary": "Add and approve discovered appliances"
      }
    },
    "/appliance/discovered/deny/{id}": {
      "post": {
        "parameters": [
          {
            "description": "Primary key of the discovered appliance.",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "denyDiscoveredAppliances",
        "summary": "Deny discovered appliances."
      }
    },
    "/appliance/discovered/update": {
      "put": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "A request to this API will trigger the background job that updates discovered appliances to start immediately.",
        "operationId": "updateDiscoveredAppliances",
        "summary": "Trigger discovered appliances update"
      }
    },
    "/appliance/dnsCache/config/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DnsCacheConfig"
            }
          }
        },
        "operationId": "dnsCacheConfig",
        "summary": "Gets DNS Cache configurations"
      }
    },
    "/appliance/extraInfo/{nePk}": {
      "delete": {
        "parameters": [
          {
            "description": "The nePk of the appliance",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "This will delete the extra info of the appliance from Orchestrator.",
        "operationId": "deleteApplianceExtraInfo",
        "summary": "Delete the extra information of an appliance"
      },
      "get": {
        "parameters": [
          {
            "description": "The nePk of the appliance",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplianceExtraInfo"
            }
          }
        },
        "description": "This resource returns the extra info of an appliance. Even if the info has not been saved yet, it will return the extra info with blank fields",
        "operationId": "getApplianceExtraInfo",
        "summary": "Get the extra information of an appliance"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "ApplianceExtraInfo",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceExtraInfo"
            }
          },
          {
            "description": "The nePk of the appliance",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Saves or updates the extra information of the appliance. See the Model (Click Model) for more information. For custom IPSEC UDP Port, set isUserDefinedIPSecUDPPort flag to true.",
        "operationId": "saveApplianceExtraInfo",
        "summary": "Saves the extra information for the appliance"
      }
    },
    "/appliance/interface/bridge/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/BridgeInterfaceState"
            }
          }
        },
        "operationId": "bridgeInterfaceState",
        "summary": "Lists the Bridge Interfaces State and pass through Tx Interface"
      }
    },
    "/appliance/networkRoleAndSite/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/NetworkRoleAndSiteGet"
            }
          }
        },
        "operationId": "networkRoleAndSiteGet",
        "summary": "To verify or change a Network Role (mesh / hub / spoke) for appliances"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The data to post to this API",
            "in": "body",
            "name": "postNetworkRulesAndSites",
            "required": true,
            "schema": {
              "$ref": "#/definitions/networkRulesPostBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "networkRoleAndSitePost",
        "summary": "To verify or change a Network Role (mesh / hub / spoke) for appliances and to assign them to a site"
      }
    },
    "/appliance/peerPriorityList/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Internal Id of the appliance from which you want to retrieve status information",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/PeerPriorityGet"
            }
          }
        },
        "operationId": "PeerPriorityGet",
        "summary": "Get all peer priority data on the appliance"
      }
    },
    "/appliance/queuedForDeletion": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "When you delete an appliance on Orchestrator, it is not immediately deleted. It gets queued for deletion. Use this api to get appliances that are in queue for deletion",
        "operationId": "CheckAppliancesQueuedForDeletion",
        "summary": "Lists appliances ( appliance primary keys) that are queued on the Orchestrator for deletion."
      }
    },
    "/appliance/rest/{nePk}/{url : (.*)}": {
      "get": {
        "parameters": [
          {
            "description": "The nepk of the appliance.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "The API url part behind 'rest/json/' of the appliance.",
            "in": "path",
            "name": "url",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Just need to input /shaper in {url} to communicate with /rest/json/shaper.",
        "operationId": "applianceGetAPI",
        "summary": "To communicate with appliance GET APIs directly."
      },
      "post": {
        "parameters": [
          {
            "description": "The nepk of the appliance.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "The API url part behind 'rest/json/' of the appliance.",
            "in": "path",
            "name": "url",
            "required": true,
            "type": "string"
          },
          {
            "description": "The data to post to the API of the appliance.",
            "in": "body",
            "name": "data",
            "required": true,
            "schema": {}
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Just need to input /shaper in {url} to communicate with /rest/json/shaper.",
        "operationId": "appliancePostAPI",
        "summary": "To communicate with appliance POST APIs directly."
      }
    },
    "/appliance/restore/{nePk}": {
      "post": {
        "parameters": [
          {
            "description": "Backup file",
            "in": "body",
            "name": "operation",
            "required": true,
            "schema": {
              "$ref": "#/definitions/BackupFile"
            }
          },
          {
            "description": "Appliance primary key",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/BackupAndRestoreResponse"
            }
          }
        },
        "description": "Backup file primary key can be obtained using GET /appliance/backup/<appliance primary key>. The response of this operation is a client key which can be polled to get progress of the requested operation. To poll for status, perform GET /backgroundTask/status/<task key>",
        "operationId": "applianceRestore",
        "summary": "Restore the appliance from the specified back."
      }
    },
    "/appliance/saveChanges": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON object containing an array of neIds",
            "in": "body",
            "name": "SaveChangesPostBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SaveChangesPostBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "the data to post contains ids, ids is an array of neIds.",
        "operationId": "saveChanges",
        "summary": "Save the configuration changes in memory to a file for an array of appliances in Orchestrator"
      }
    },
    "/appliance/saveChanges/{nePk}": {
      "post": {
        "parameters": [
          {
            "description": "The neId.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "This JSON object should contain nothing.",
            "in": "body",
            "name": "SaveChangesPostBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/emptySaveChangesPostBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "The nePk is the id of the appliance in Orchestrator.",
        "operationId": "saveChanges",
        "summary": "Save the configuration changes in memory to a file for an appliances in Orchestrator"
      }
    },
    "/appliance/statsConfig": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/StatsConfig"
            }
          }
        },
        "description": "To get stats config which will be synchronized to appliances.",
        "operationId": "statsConfigGet",
        "summary": "To get stats config which will be synchronized to appliances."
      },
      "post": {
        "parameters": [
          {
            "description": "The config data to set for this API.",
            "in": "body",
            "name": "statsConfigPostData",
            "required": true,
            "schema": {
              "$ref": "#/definitions/StatsConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "To modify stats config which will be synchronized to appliances.",
        "operationId": "statsConfigPost",
        "summary": "To modify stats config which will be synchronized to appliances."
      }
    },
    "/appliance/statsConfig/default": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/StatsConfig"
            }
          }
        },
        "description": "To get default stats config which will be synchronized to appliances.",
        "operationId": "statsConfigDefaultGet",
        "summary": "To get default stats config which will be synchronized to appliances."
      }
    },
    "/appliance/wanNextHopHealth/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Internal Id of the appliance from which you want to retrieve config information",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/WanNextHopHealthGet"
            }
          }
        },
        "operationId": "WanNextHopHealthGet",
        "summary": "Get wan next hop health config on the appliance"
      }
    },
    "/appliance/{nePk}": {
      "delete": {
        "parameters": [
          {
            "description": "nePk.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Only use this if you truly want to delete the appliance from the network. This will remove the portal account name/key from the Orchestrator. The primary key must exist in Orchestrator.",
        "operationId": "ApplianceDel",
        "summary": "Delete an appliance from network."
      },
      "get": {
        "parameters": [
          {
            "description": "the primary key of appliance",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplianceItem"
            }
          }
        },
        "operationId": "ApplianceGetOne",
        "summary": "Get appliance information"
      },
      "post": {
        "parameters": [
          {
            "description": "Appliance primary key",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Appliance information",
            "in": "body",
            "name": "applianceInfo",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AppliancePostData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "ApplianceChg",
        "summary": "Modify an appliance's IP address, username, password, networkRole, and webProtocol."
      }
    },
    "/applianceResync": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "description": "JSON object containing list of appliance keys",
            "in": "body",
            "name": "ApplianceKeys",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ResyncAppliancePost"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "description": "Synchronize operation will return a string key. Use /action/status?key=key to get the status of the operation.",
        "operationId": "ResyncAppliance",
        "summary": "Synchronize a list of appliances."
      }
    },
    "/appliancesSoftwareVersions/{nePK}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "nePK is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "nePK",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/PartitionSoftwareVersionInfo"
              },
              "type": "array"
            }
          }
        },
        "operationId": "AppliancesSoftwareVersions",
        "summary": "Returns VXOA software versions information"
      }
    },
    "/application": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/applicationGet"
              },
              "type": "array"
            }
          }
        },
        "description": "The schema shows a single application group object",
        "operationId": "applicationGet",
        "summary": "Get all built-in and user-defined applications"
      }
    },
    "/application/builtin": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/applicationGet"
              },
              "type": "array"
            }
          }
        },
        "operationId": "builtin",
        "summary": "Get all built-in applications from all appliance"
      }
    },
    "/application/userDefined": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/applicationGet"
              },
              "type": "array"
            }
          }
        },
        "operationId": "userDefined",
        "summary": "Get all userDefined applications from all appliance"
      }
    },
    "/application/userDefinedConfig/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Internal Id of the appliance from which you want to retrieve status information",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/userDefinedConfig"
            }
          }
        },
        "operationId": "userDefinedConfig",
        "summary": "Get all user-defined application group on appliance"
      }
    },
    "/applicationDefinition/applicationTags": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "default": "userDefined",
            "in": "query",
            "name": "resourceKey",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to find user defined application groups",
        "operationId": "appTagsGet",
        "summary": "return user defined application groups"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "appTagsBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/appTagsBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Warning: this api is not used for editing a single application group. Please use the same GET api to find all user defined application groups information first. Use this api to create application groups.",
        "operationId": "appTagsPost",
        "summary": "Create user defined application groups"
      }
    },
    "/applicationDefinition/applicationTags/wildcard": {
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "searchWildcard",
            "required": true,
            "schema": {
              "$ref": "#/definitions/searchWildcard"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to search application groups",
        "operationId": "appGroupSearchPost",
        "summary": "Search application groups based on wildcard and limit"
      }
    },
    "/applicationDefinition/applicationTags/{mode}": {
      "post": {
        "parameters": [
          {
            "description": "either 'old' or 'new'",
            "name": "mode",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "You are not allowed to change back to legacy mode if you are currently using our cloud based application definition",
        "operationId": "appTagsModePost",
        "summary": "Change mode to application groups and user defined applications"
      }
    },
    "/applicationDefinition/applications/wildcard": {
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "searchWildcard",
            "required": true,
            "schema": {
              "$ref": "#/definitions/searchWildcard"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to search application",
        "operationId": "appSearchPost",
        "summary": "Search applications based on wildcard and limit"
      }
    },
    "/applicationDefinition/compoundClassification": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "default": "userDefined",
            "in": "query",
            "name": "resourceKey",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to view user defined application for Compound classification. Records with id greater 50000 are records from portal modified by user.",
        "operationId": "compoundGet",
        "summary": "return user defined data for Compound classification"
      }
    },
    "/applicationDefinition/compoundClassification/reorder": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "an array of comma separated ids. Please excludes ids greater than 50000. Please check the get api to find those ids.",
            "in": "body",
            "name": "compoundIdsConfig",
            "required": true,
            "schema": {
              "items": {
                "type": "number"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to change the order for all user defined application for Compound data. Please use the GET api to find all the ids. You need to include all the ids which are less or equal to 50000. You are not allowed to change the order for rules from portal.",
        "operationId": "compoundReorderPost",
        "summary": "Change the order of user defined application related to Compound data"
      }
    },
    "/applicationDefinition/compoundClassification/{id}": {
      "delete": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "id",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to delete a user defined application for Compound data",
        "operationId": "compoundDelete",
        "summary": "Delete user defined application related to Compound data"
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "id",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "compoundConfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/compound"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to create or modify a user defined application for Compound data",
        "operationId": "compoundPost",
        "summary": "Create/modify user defined application related to Compound data"
      }
    },
    "/applicationDefinition/dnsClassification": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "default": "userDefined",
            "in": "query",
            "name": "resourceKey",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to view user defined application for Domain Name classification",
        "operationId": "dnsGet",
        "summary": "return user defined data for Domain Name classification"
      }
    },
    "/applicationDefinition/dnsClassification/{domain}": {
      "delete": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "domain",
            "format": "string",
            "name": "domain",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to delete a user defined application for Domain Name",
        "operationId": "dnsDelete",
        "summary": "Delete user defined application related to Domain Name"
      },
      "post": {
        "parameters": [
          {
            "description": "domain",
            "format": "string",
            "name": "domain",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "dnsConfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/dnsConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to create or modify a user defined application for domain name",
        "operationId": "dnsPost",
        "summary": "Create/modify user defined application related to Domain Name"
      }
    },
    "/applicationDefinition/ipIntelligenceClassification": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "default": "userDefined",
            "in": "query",
            "name": "resourceKey",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to view user defined application for Address Map classification",
        "operationId": "ipIntelligenceGet",
        "summary": "return user defined data for Address Map classification"
      }
    },
    "/applicationDefinition/ipIntelligenceClassification/{ipStart}/{ipEnd}": {
      "delete": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "starting ip, IPv4 address in 32-bit integer format",
            "format": "int64",
            "name": "ipStart",
            "required": true,
            "type": "integer"
          },
          {
            "description": "ending ip, IPv4 address in 32-bit integer format",
            "format": "int64",
            "name": "ipEnd",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to delete a user defined application for Address Map",
        "operationId": "ipIntelligenceDelete",
        "summary": "Delete user defined application related to Address Map"
      },
      "post": {
        "parameters": [
          {
            "description": "starting ip, IPv4 address in 32-bit integer format",
            "format": "int64",
            "name": "ipStart",
            "required": true,
            "type": "integer"
          },
          {
            "description": "ending ip, IPv4 address in 32-bit integer format",
            "format": "int64",
            "name": "ipEnd",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "ipIntelligenceConfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ipIntelligence"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to create or modify a user defined application for Address Map",
        "operationId": "ipIntelligencePost",
        "summary": "Create/modify user defined application related to Address Map"
      }
    },
    "/applicationDefinition/legacyAppliancesUdas": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to view the legacy UDAs on each appliance. If you do not see anything, this means you do not have any UDAs available on appliance at migration time.",
        "operationId": "legacyUdaGet",
        "summary": "return legacy UDA configuration on each appliance"
      }
    },
    "/applicationDefinition/meterFlowClassification": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "default": "userDefined",
            "in": "query",
            "name": "resourceKey",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to view user defined application for Meter Flow classification",
        "operationId": "meterFlowGet",
        "summary": "return user defined data for Meter Flow classification"
      }
    },
    "/applicationDefinition/meterFlowClassification/{flowType}/{mid}": {
      "delete": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "flow type, e.g. MF",
            "name": "flowType",
            "required": true,
            "type": "string"
          },
          {
            "description": "id",
            "name": "mid",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to delete a user defined application for Meter Flow",
        "operationId": "meterFlowDelete",
        "summary": "Delete user defined application related to Meter Flow"
      },
      "post": {
        "parameters": [
          {
            "description": "flow type, e.g. MF",
            "name": "flowType",
            "required": true,
            "type": "string"
          },
          {
            "description": "id",
            "name": "mid",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "meterFlowConfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/meterFlow"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to create or modify a user defined application for Meter Flow",
        "operationId": "meterFlowPost",
        "summary": "Create/modify user defined application related to Meter Flow"
      }
    },
    "/applicationDefinition/portProtocolClassification": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "default": "userDefined",
            "in": "query",
            "name": "resourceKey",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to view user defined application for IP/TCP/UDP classification",
        "operationId": "portProtocolGet",
        "summary": "return user defined data for IP/TCP/UDP classification"
      }
    },
    "/applicationDefinition/portProtocolClassification/{port}/{protocol}": {
      "delete": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "port number",
            "format": "int32",
            "name": "port",
            "required": true,
            "type": "integer"
          },
          {
            "description": "protocol number",
            "format": "int32",
            "name": "protocol",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to delete a user defined application for IP Protocol(port=0), TCP Protocol(protocol=6), UDP Protocol(protocol=17)",
        "operationId": "portProtocolDelete",
        "summary": "Delete user defined application related to IP Protocol, TCP Port, UDP Port"
      },
      "post": {
        "parameters": [
          {
            "description": "port number",
            "format": "int32",
            "name": "port",
            "required": true,
            "type": "integer"
          },
          {
            "description": "protocol number",
            "format": "int32",
            "name": "protocol",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "portProtocolConfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/portProtocol"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to create or modify a user defined application for IP Protocol(port=0), TCP Protocol(protocol=6), UDP Protocol(protocol=17)",
        "operationId": "portProtocolPost",
        "summary": "Create/modify user defined application related to IP Protocol, TCP Port, UDP Port"
      }
    },
    "/applicationDefinition/saasClassification": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "default": "userDefined",
            "in": "query",
            "name": "resourceKey",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to view user defined application for SaaS classification.",
        "operationId": "saasGet",
        "summary": "return user defined data for SaaS classification"
      }
    },
    "/applicationDefinition/saasClassification/{id}": {
      "delete": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "id",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to delete a user defined application for SaaS data",
        "operationId": "saasDelete",
        "summary": "Delete user defined application related to SaaS data"
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "id",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "saasConfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/saas"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this api to create or modify a user defined application for SaaS data. Set the saasId to -1 if you need to create a new SaaS application.",
        "operationId": "compoundPost",
        "summary": "Create/modify user defined application related to SaaS data"
      }
    },
    "/applicationGroups/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Internal Id of the appliance from which you want to retrieve status information",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/applicationGroups"
            }
          }
        },
        "operationId": "applicationGroups",
        "summary": "Get all applicationGroups on a appliance"
      }
    },
    "/applicationTrends": {
      "get": {
        "parameters": [
          {
            "description": "Beginning date for stats in milliseconds",
            "format": "int32",
            "in": "query",
            "name": "startDate",
            "required": true,
            "type": "integer"
          },
          {
            "description": "End date for stats in milliseconds",
            "format": "int32",
            "in": "query",
            "name": "endDate",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "traffic",
            "required": true,
            "type": "string"
          },
          {
            "description": "Traffic direction",
            "enum": [
              "inbound",
              "outbound"
            ],
            "in": "query",
            "name": "bound",
            "required": true,
            "type": "string"
          },
          {
            "description": "List of appliances IDs like so: 0.NE,1.NE",
            "in": "query",
            "name": "nePKList",
            "required": true,
            "type": "string"
          },
          {
            "default": false,
            "description": "Indicates if custom date rage is used",
            "in": "query",
            "name": "customRangeUsed",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplicationTrendsGet"
            }
          }
        },
        "description": "\"appliance-name\" key corresponds to a specific appliance name and \"appName\" corresponds to a specific application name",
        "operationId": "applicationTrends",
        "summary": "Returns bandwidth stats about applications"
      }
    },
    "/authRadiusTacacs/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "query",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Auth"
            }
          }
        },
        "description": "the returned data contains aaa, radius and tacacs objects. aaa object includes auth_method and author objects. auth_method represents Authentication Order for the appliance, You can have upto 3 levels of Authentication Order (local, radius and tacacs).<br> author represents Authorization Information for the appliance and it consists of default user and map order. <br> radius and tacacs contains server object, The return value is a hash map of RADIUS/TACACS settings keyed by their Order.",
        "operationId": "auth",
        "summary": "Get the authentication order and authorization information"
      }
    },
    "/authentication/login": {
      "post": {
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "text/html"
        ],
        "parameters": [
          {
            "description": "User id. Sent as a query param when login form is submitted",
            "in": "formData",
            "name": "user",
            "required": true,
            "type": "string"
          },
          {
            "description": "Password. Sent as a query param when login form is submitted",
            "in": "formData",
            "name": "password",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "authentication",
        "summary": "Use this api to login to Orchestrator using FORM post. Commonly used to embed orchestrator UI or proxy orchestrator login via a web proxy."
      }
    },
    "/authentication/loginStatus": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/LoginStatus"
            }
          }
        },
        "operationId": "authentication",
        "summary": "Get the current authentication status of the HTTP session"
      }
    },
    "/authentication/loginToken": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Json object containing user id and password, sent as user authentication information when user want to receive 2-factor code",
            "in": "body",
            "name": "RequestLoginToken",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RequestLoginToken"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "authentication",
        "summary": "Send a 2-factor code to user's mailbox for 2-factor authentication"
      }
    },
    "/authentication/logout": {
      "get": {
        "produces": [
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "authentication",
        "summary": "Logout of current HTTP session"
      }
    },
    "/authentication/password/validation": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Json object containing user id and password, sent as query param when user want to validate user's password",
            "in": "body",
            "name": "LoginToken",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LoginToken"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "authentication",
        "summary": "Authenticate user's password only, but doesn't mark user's status as login "
      }
    },
    "/authentication/userAuthType": {
      "post": {
        "parameters": [
          {
            "description": "Json object containing user id and password",
            "in": "body",
            "name": "LoginToken",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LoginToken"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/userAuthType"
            }
          }
        },
        "description": "Possible authentication types include PASSWORDONLY, MAIL, APP, MAIL_AND_APP",
        "operationId": "userAuthType",
        "summary": "Check the two factor authentication methods the user requires to login"
      }
    },
    "/authentication/userAuthTypeToken": {
      "post": {
        "parameters": [
          {
            "description": "Json object containing the reset password token",
            "in": "body",
            "name": "ResetPasswordToken",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ResetPasswordToken"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/userAuthTypeToken"
            }
          }
        },
        "description": "Possible authentication types include PASSWORDONLY, MAIL, APP, MAIL_AND_APP",
        "operationId": "userAuthTypeToken",
        "summary": "Check the two factor authentication methods the user has active using a reset password token"
      }
    },
    "/avcMode": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/avcMode"
            }
          }
        },
        "operationId": "avcMode",
        "summary": "Returns Orchestrator avc Mode"
      }
    },
    "/banners/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/BannerInfo"
            }
          }
        },
        "operationId": "bannerInfo",
        "summary": " Lists the banner messages on each appliance"
      }
    },
    "/bgp/config/neighbor/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId of the appliance",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Neighbors"
            }
          }
        },
        "operationId": "GetNeighbor",
        "summary": "Get specific neighbor configuration data."
      }
    },
    "/bgp/config/system/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId of the appliance",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/BgpSystemConfig"
            }
          }
        },
        "operationId": "GetBGPSystemConfig",
        "summary": "Get BGP system configuration data."
      }
    },
    "/bgp/state/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId of the appliance",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/StateObj"
            }
          }
        },
        "operationId": "BGPState",
        "summary": "Get specific appliance bgp state details."
      }
    },
    "/brandCustomization": {
      "delete": {
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          }
        },
        "operationId": "TextCustomizationConfigDelete",
        "summary": "Delete all text brand customization configurations"
      },
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/textCustomizationItems"
            }
          }
        },
        "operationId": "TextCustomizationConfigGet",
        "summary": "Get text brand customization configurations"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "POST body is an object of text customization configuration object",
            "in": "body",
            "name": "RequestBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/textCustomizationItems"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "operationId": "TextCustomizationConfigPost",
        "summary": "Create new text brand customization configurations"
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "PUT body is an object of text customization configuration object",
            "in": "body",
            "name": "RequestBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/textCustomizationItems"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          }
        },
        "operationId": "TextCustomizationConfigPut",
        "summary": "Update text brand customization configurations"
      }
    },
    "/brandCustomization/image/": {
      "get": {
        "parameters": [
          {
            "description": "Sub-resource type",
            "in": "query",
            "name": "metaData",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/fileNames"
            }
          }
        },
        "operationId": "fileNameGet",
        "summary": "Return file names for all the uploaded images"
      }
    },
    "/brandCustomization/image/{type}": {
      "delete": {
        "parameters": [
          {
            "description": "The type of customization. e.g. 'backgroundImage'.",
            "in": "path",
            "name": "type",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          }
        },
        "operationId": "imageDelete",
        "summary": "Delete image for given type of brand customization and restore default"
      },
      "post": {
        "parameters": [
          {
            "description": "The type of customization. e.g. 'backgroundImage'.",
            "in": "path",
            "name": "type",
            "required": true,
            "type": "string"
          },
          {
            "description": "File name",
            "in": "query",
            "name": "qqfile",
            "required": true,
            "type": "string"
          },
          {
            "description": "Image file",
            "in": "formData",
            "name": "qqfile",
            "required": true,
            "type": "file"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "operationId": "imagePost",
        "summary": "Upload image for given type of brand customization"
      },
      "put": {
        "parameters": [
          {
            "description": "The type of customization. e.g. 'backgroundImage'.",
            "in": "path",
            "name": "type",
            "required": true,
            "type": "string"
          },
          {
            "description": "File name",
            "in": "query",
            "name": "qqfile",
            "required": true,
            "type": "string"
          },
          {
            "description": "Image file",
            "in": "formData",
            "name": "qqfile",
            "required": true,
            "type": "file"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          }
        },
        "operationId": "imagePost",
        "summary": "Update image for given type of brand customization"
      }
    },
    "/broadcastCli": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "description": "The data to post to this API",
            "in": "body",
            "name": "operation",
            "required": true,
            "schema": {
              "$ref": "#/definitions/broadcastCliBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "broadcastCliPost",
        "summary": "Broadcasts CLI commands to all the selected appliances"
      }
    },
    "/bypass": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "The data to post to this API",
            "in": "body",
            "name": "operation",
            "required": true,
            "schema": {
              "$ref": "#/definitions/bypassBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "bypassPost",
        "summary": "Toggles bypass mode - only effective on NX appliances"
      }
    },
    "/bypass/{nePk}": {
      "get": {
        "parameters": [
          {
            "description": "The neId of the appliance in Orchestrator.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Whether to get the info from Orchestrator database.",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/bypassGetBody"
            }
          }
        },
        "description": "Get bypass mode settings of one appliance in Orchestrator.",
        "operationId": "bypassGet",
        "summary": "Get bypass mode settings of one appliance in Orchestrator."
      }
    },
    "/cache/builtinApps": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/BuiltinApps"
            }
          }
        },
        "operationId": "builtinAppGet",
        "summary": "Get all built in applications"
      }
    },
    "/cache/interfaceEndpoints": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Interfaces"
            }
          }
        },
        "operationId": "interfaceGet",
        "summary": "Get all appliances' interface endpoints' information including IP addresses."
      }
    },
    "/cache/userApps": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/UserApps"
            }
          }
        },
        "operationId": "userAppGet",
        "summary": "Gets the user applications"
      }
    },
    "/cloudApplications/config/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/cloudAppsConfig"
            }
          }
        },
        "description": "This api provides the following information: SaaS Optimization flag (enabled/disabled), RTT Calculation Interval, RTT Ping Interface, and a list of Cloud Applications downloaded from portal",
        "operationId": "cloudAppsConfig",
        "summary": "Get SaaS Optimization configuration information for appliance"
      }
    },
    "/cloudApplications/monitor/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/cloudAppsMonitor"
            }
          }
        },
        "operationId": "cloudAppsMonitor",
        "summary": "Get reachability/RTT values for SaaS App subnets enabled for advertisement"
      }
    },
    "/configReportDisk/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DisksGet"
            }
          }
        },
        "description": "the return data contains disks, controller objects and diskImage. disks object is a map of disk partitions keyed by their disk ids. controller object is a map of hard disk drive keyed by their disk ids.",
        "operationId": "disks",
        "summary": "Get disks information."
      }
    },
    "/dbPartition/info": {
      "get": {
        "parameters": [
          {
            "description": "Name of the table",
            "in": "query",
            "name": "table",
            "type": "string"
          },
          {
            "description": "Name of the partition",
            "in": "query",
            "name": "partition",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/DbPartitionInfo"
              },
              "type": "array"
            }
          }
        },
        "operationId": "dbPartition",
        "summary": "Gets Orchestrator database partition details"
      }
    },
    "/dbPartition/{table}/{partition}": {
      "delete": {
        "parameters": [
          {
            "description": "Name of the table",
            "in": "path",
            "name": "table",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of the partition",
            "in": "path",
            "name": "partition",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Delete default & current partition cannot be deleted",
        "operationId": "deletePartition",
        "summary": "Deletes the table's partition"
      }
    },
    "/debugFiles/cancel": {
      "post": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Cancel download the file",
        "operationId": "cancel",
        "summary": "Cancel download the file"
      }
    },
    "/debugFiles/delete": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "text/html"
        ],
        "parameters": [
          {
            "description": "The name of the orchestrator debug file",
            "in": "body",
            "name": "deleteGMSDebugFile",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteGMSDebugFile"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Delete the Orchestrator debug file",
        "operationId": "deleteGMSDebugFile",
        "summary": "Delete the Orchestrator debug file"
      }
    },
    "/debugFiles/delete/{nePk}": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "text/html"
        ],
        "parameters": [
          {
            "description": "nePk is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "The info of the deleted file",
            "in": "body",
            "name": "deleteInfoClass",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteInfoClass"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Delete the debug file on the appliance",
        "operationId": "deleteNeFile",
        "summary": "Delete the debug file on the appliance"
      }
    },
    "/debugFiles/proxyConfig ": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ProxyConfig"
            }
          }
        },
        "description": "Return data is an object, the keys contains 'proxyHost', 'proxyPassword', 'proxyPort', 'proxyUser' and 'useProxy'",
        "operationId": "getProxyConfig",
        "summary": "Get the proxy config settings"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "text/html"
        ],
        "parameters": [
          {
            "description": "The proxy config settings",
            "in": "body",
            "name": "proxyConfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ProxyConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Set the proxy config settings",
        "operationId": "setProxyConfig",
        "summary": "Set the proxy config settings"
      }
    },
    "/debugFiles/{nePk} ": {
      "get": {
        "parameters": [
          {
            "description": "nePk is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DebugFiles"
            }
          }
        },
        "description": "Returned data is an object, The key is 'debugDump', 'techDump', 'snapshots', 'tcpDump', 'debugFile' and 'log', each value is an object of the debug file info. Each the debug file info contains 'name' and 'stats'. The value of the stats is an object of the stats.",
        "operationId": "debugFiles",
        "summary": "Get the debug files"
      }
    },
    "/deployment/validate/{nePk}": {
      "post": {
        "parameters": [
          {
            "description": "The appliance ne pk.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "The deployment configuration to validate on the appliance",
            "in": "body",
            "name": "deployment",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeploymentPost"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DeploymentValidateResult"
            }
          }
        },
        "description": "Validate a deployment configuration, and see whether or not the deployment will require a reboot after apply.",
        "operationId": "validateDeployment",
        "summary": "Validate deployment configuration"
      }
    },
    "/deployment/validateDiscovered/{discoveredApplianceId}": {
      "post": {
        "parameters": [
          {
            "description": "The ID of the discovered appliance",
            "in": "path",
            "name": "discoveredApplianceId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The deployment configuration to validate on the appliance",
            "in": "body",
            "name": "deployment",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeploymentPost"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DeploymentValidateResult"
            }
          }
        },
        "description": "Validate the deployment of an appliance that is discovered but not yet managed.",
        "operationId": "validateDiscoveredDeployment",
        "summary": "Validate deployment configuration for a discovered appliance."
      }
    },
    "/deployment/{nePk}": {
      "get": {
        "parameters": [
          {
            "description": "The appliance ne pk.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DeploymentGet"
            }
          }
        },
        "operationId": "getApplianceDeployment",
        "summary": "Get the deployment configuration of the appliance, does a direct call to the appliance."
      }
    },
    "/dhcpConfig": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/dhcpConfig"
            }
          }
        },
        "description": "These setting are used to manage a global DHCP pool on the orchestrator. Also they serve as defaults for the DHCP settings in the Deployment Profiles",
        "operationId": "dhcpConfigGet",
        "summary": "Get orchestrator DHCP settings"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON object containing DHCP settings",
            "in": "body",
            "name": "dhcpConfigPost",
            "required": true,
            "schema": {
              "$ref": "#/definitions/dhcpConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "dhcpConfigPost",
        "summary": "Save orchestrator DHCP settings"
      }
    },
    "/dhcpConfig/leases/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/dhcpdLeases"
            }
          }
        },
        "description": "There may be dynamic fields in the actual data. For details regarding schema for leases file checkout: http://linux.die.net/man/5/dhcpd.leases",
        "operationId": "dhcpdLeases",
        "summary": "Get DHCP leases information."
      }
    },
    "/dhcpConfig/reservations": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/dhcpReservation"
              },
              "type": "array"
            }
          }
        },
        "operationId": "dhcpReservationsGet",
        "summary": "Get list of reserved subnets from the DHCP pool"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON object containing DHCP pool reservation data",
            "in": "body",
            "name": "dhcpConfigPost",
            "required": true,
            "schema": {
              "$ref": "#/definitions/dhcpReservation"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "dhcpReservationsPost",
        "summary": "Reserve a subnet in the DHCP pool"
      }
    },
    "/dhcpConfig/reservations/gms": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON object containing DHCP pool reservation data",
            "in": "body",
            "name": "dhcpConfigGmsPost",
            "required": true,
            "schema": {
              "items": {
                "$ref": "#/definitions/dhcpReservationGms"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "dhcpReservationsGmsPost",
        "summary": "Update DHCP pool reservations list. This api can be used to clear up local reservations (that have not been configured on appliance yet)"
      }
    },
    "/dhcpConfig/reset": {
      "post": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "dhcpConfigResetPost",
        "summary": "Remove all DHCP pool reservations"
      }
    },
    "/dhcpConfig/state/failover/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/dhcpdFailoverStates"
            }
          }
        },
        "description": "There may be dynamic fields in the actual data. For details regarding schema for leases file checkout: http://linux.die.net/man/5/dhcpd.leases",
        "operationId": "dhcpdFailoverStates",
        "summary": "Get dhcpd leases report of failover state"
      }
    },
    "/dnsProxy/config/{neId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DnsProxyConfig"
            }
          }
        },
        "description": "The returned data is an object. It includes all of the DNS proxy configurations; notably the profiles, domain groups and maps.",
        "operationId": "dnsProxyConfigGet",
        "summary": "Get the DNS proxy config"
      }
    },
    "/exception/tunnel": {
      "delete": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this API to delete all current tunnel exceptions",
        "operationId": "tunnelExceptionDelete",
        "summary": "Delete all tunnel exceptions"
      },
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelExceptionEntry"
            }
          }
        },
        "operationId": "tunnelExceptionGet",
        "summary": "Get all tunnel exceptions"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Array of tunnel Exception entry, 'id' of the exception must be 0 or not present",
            "in": "body",
            "name": "Request Body",
            "required": true,
            "schema": {
              "items": {
                "$ref": "#/definitions/TunnelExceptionEntry"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelExceptionEntry"
            }
          }
        },
        "description": "POST body is an array of tunnel exception entries.",
        "operationId": "tunnelExceptionPost",
        "summary": "Create tunnel exceptions"
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Array of tunnel exception entries, 'id's of entries must be valid existing",
            "in": "body",
            "name": "Request Body",
            "required": true,
            "schema": {
              "items": {
                "$ref": "#/definitions/TunnelExceptionEntry"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this API to update multiple tunnel exceptions in one REST call.",
        "operationId": "tunnelExceptionPut",
        "summary": "Update tunnel exceptions"
      }
    },
    "/exception/tunnel/{id}": {
      "delete": {
        "parameters": [
          {
            "description": "The valid id of the an existing tunnel exception.",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this API to delete a specific tunnel exception.",
        "operationId": "tunnelExceptionSingleDelete",
        "summary": "Delete single tunnel exceptions"
      },
      "put": {
        "parameters": [
          {
            "description": "The valid id of the an existing tunnel exception.",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Tunnel exception entry",
            "in": "body",
            "name": "Request Body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TunnelExceptionEntry"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this API to update a specific tunnel exception.",
        "operationId": "tunnelExceptionSingleUpdate",
        "summary": "Update a single tunnel exceptions"
      }
    },
    "/fileCreation/fineUploader": {
      "post": {
        "consumes": "multipart/form-data",
        "parameters": [
          {
            "description": "Type of upload",
            "enum": [
              "upgradeGms",
              "upgradeAppliance",
              "maps"
            ],
            "in": "query",
            "name": "type",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of the file",
            "in": "query",
            "name": "qqfile",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of the file",
            "in": "formData",
            "name": "qqfile",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "fileCreation",
        "summary": "This API is to be used with fineuploader.js plugin. See fineuploader.com"
      }
    },
    "/flow/flowBandwidthStats/{neId}/q": {
      "get": {
        "parameters": [
          {
            "description": "Appliance ID",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Flow ID",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Flow sequence number",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "seq",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "type": "object"
              },
              "type": "array"
            }
          }
        },
        "operationId": "flowBandwidthStats",
        "summary": "Returns the so far accumulated bandwidth stats about the flow"
      }
    },
    "/flow/flowDetails/{neId}/q": {
      "get": {
        "parameters": [
          {
            "description": "Appliance ID",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Flow ID",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Flow sequence number",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "seq",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/FlowDetails"
              },
              "type": "array"
            }
          }
        },
        "operationId": "flowDetails",
        "summary": "Returns flow details"
      }
    },
    "/flow/flowDetails2/{neId}/q": {
      "get": {
        "parameters": [
          {
            "description": "Appliance ID",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Flow ID",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "id",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Flow sequence number",
            "format": "int64",
            "in": "query",
            "minimum": 1,
            "name": "seq",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/FlowDetails2"
              },
              "type": "array"
            }
          }
        },
        "operationId": "flowDetails2",
        "summary": "Returns more detailed info about the flow"
      }
    },
    "/flow/flowReClassification/{neId}": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance ID",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "FlowsReClassificationBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FlowsResetBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/FlowsResetResponse"
            }
          }
        },
        "operationId": "flowsReclassification",
        "summary": "Reclassifies the flow(s)"
      }
    },
    "/flow/flowReset/{neId}": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance ID",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "FlowsResetBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FlowsResetBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/FlowsResetResponse"
            }
          }
        },
        "operationId": "flowsReset",
        "summary": "Resets the flow(s)"
      }
    },
    "/flow/{neId}/q": {
      "get": {
        "parameters": [
          {
            "description": "Appliance ID",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "First IP endpoint",
            "in": "query",
            "name": "ip1",
            "required": false,
            "type": "string"
          },
          {
            "description": "Mask for ip1",
            "format": "int32",
            "in": "query",
            "name": "mask1",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Port of first IP endpoint",
            "format": "int32",
            "in": "query",
            "minimum": 0,
            "name": "port1",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Second IP endpoint",
            "in": "query",
            "name": "ip2",
            "required": false,
            "type": "string"
          },
          {
            "description": "Mask for ip2",
            "format": "int32",
            "in": "query",
            "name": "mask2",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Port of second IP endpoint",
            "format": "int32",
            "in": "query",
            "minimum": 0,
            "name": "port2",
            "required": false,
            "type": "integer"
          },
          {
            "default": true,
            "description": "Enable directionality for IP. If true, ip1 will be treated as the source IP, and ip2 will be treated as the destination IP",
            "in": "query",
            "name": "ipEitherFlag",
            "required": false,
            "type": "boolean"
          },
          {
            "default": true,
            "description": "Enable directionality for port. If true, port1 will be treated as the source port, and port2 will be treated as the destination port",
            "in": "query",
            "name": "portEitherFlag",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Application specific flows. Drop-down only shows built-in apps and not user-defined apps",
            "enum": [
              "3par",
              "aol",
              "aol_im",
              "app_assure_replication",
              "app_assure_svr_backup",
              "aspera",
              "avamar",
              "backweb",
              "bit_torrent",
              "bluearc",
              "celerra",
              "centera",
              "cifs_smb",
              "cisco_skinny",
              "citrix-bcast",
              "citrix-cgp",
              "citrix-ica",
              "citrix-ima",
              "commvault",
              "cuseeme",
              "cvs",
              "datadomain",
              "ddm",
              "ddm_ssl",
              "dns",
              "doom",
              "doubletake",
              "echo",
              "edonkey",
              "fcip",
              "filenet",
              "ftp",
              "ftps",
              "gnutella",
              "h_323",
              "hadoop",
              "hostname",
              "http",
              "https",
              "ibm_db2",
              "icmp",
              "ifcp",
              "imap",
              "imap4s",
              "ipsec",
              "irc",
              "irc_ssl",
              "isakmp",
              "iscsi",
              "isns",
              "ivisit",
              "kazaa",
              "kerberos",
              "l2tp",
              "ldap",
              "ldaps",
              "lotus_cc_mail",
              "lotus_notes",
              "matip",
              "ms_exchange",
              "ms_media",
              "ms_messenger",
              "ms_odbc",
              "ms_ole",
              "ms_rpc",
              "ms_sql",
              "ms_terminal_services",
              "ms_zone",
              "nameserver",
              "ndmp",
              "netbios",
              "netvault_replication",
              "nfs",
              "nntp",
              "nntps",
              "novell",
              "ntp",
              "openwindows",
              "oracle",
              "pcanywhere",
              "pcmail",
              "pcoip",
              "peoplesoft",
              "pop",
              "pop3s",
              "pptp",
              "printer",
              "printer_pdl",
              "quake",
              "recoverpoint",
              "rlogin",
              "routing",
              "rtcp",
              "rtsp",
              "sap",
              "sgcp",
              "sgmp",
              "shell",
              "silverpeak_comm",
              "silverpeak_gms",
              "silverpeak_internal",
              "silverpeak_iperf",
              "silverpeak_peer",
              "silverpeak_tcpperf",
              "sip",
              "sip_tls",
              "smtp",
              "smtps",
              "snapmirror",
              "snmp",
              "sql",
              "srdf",
              "ssh",
              "sshell",
              "sun_rpc",
              "sybase",
              "syslog",
              "t_120",
              "tacacs",
              "telnet",
              "telnets",
              "tftp",
              "timbuktu",
              "time",
              "unassigned",
              "uucp",
              "vnc",
              "vplex",
              "vsphere_replication_ini",
              "vsphere_replication_ong",
              "vvr",
              "xwindows",
              "yahoo_games",
              "yahoo_im",
              "zerto_mgmt",
              "zerto_replication"
            ],
            "in": "query",
            "name": "application",
            "required": false,
            "type": "string"
          },
          {
            "description": "Application groups. Drop-down only shows a small subset of application groups",
            "enum": [
              "Accommodation_and_Hotels",
              "Accounting",
              "Ad_Network",
              "Addictions",
              "Adult",
              "Aerospace_and_Defence",
              "Agriculture",
              "Agriculture_and_Forestry",
              "Airlines_and_Airports",
              "Alternative_and_Natural_Medicine",
              "Amazon",
              "Animal_Products_and_Service",
              "Animation_and_Comics",
              "Antiques_and_Collectibles",
              "Apple",
              "Architecture",
              "Archives",
              "Arts_and_Entertainment",
              "Ask_an_Expert",
              "Associations",
              "Astronomy",
              "Auctions",
              "Automotive_Industry",
              "Automotive_News",
              "Autos_and_Vehicles",
              "Aviation",
              "Awards",
              "Banking",
              "Baseball",
              "Basketball"
            ],
            "in": "query",
            "name": "applicationGroup",
            "required": false,
            "type": "string"
          },
          {
            "description": "Application protocol",
            "enum": [
              "ip",
              "tcp",
              "udp",
              "ah",
              "egp",
              "eigrp",
              "encap",
              "esp",
              "etherip",
              "fc",
              "gre",
              "icmp",
              "idpr",
              "idpr-cmtp",
              "idrp",
              "igmp",
              "igp",
              "ip-comp",
              "ip-mobility",
              "ipip",
              "ipip4",
              "ipx-in-ip",
              "irtp",
              "iso-ip",
              "iso-tp4",
              "l2tp",
              "mhrp",
              "ospf",
              "pim",
              "rdp",
              "rsvp",
              "sctp",
              "tlsp",
              "vrrp"
            ],
            "in": "query",
            "name": "protocol",
            "required": false,
            "type": "string"
          },
          {
            "description": "Virtual LAN ID",
            "format": "int32",
            "in": "query",
            "minimum": 0,
            "name": "vlan",
            "required": false,
            "type": "integer"
          },
          {
            "default": "any",
            "description": "DSCP marking",
            "in": "query",
            "name": "dscp",
            "required": false,
            "type": "string"
          },
          {
            "description": "Overlay ID. Multiple values must be separated with \"|\". E.g. \"1|2\"",
            "in": "query",
            "name": "overlays",
            "required": false,
            "type": "string"
          },
          {
            "description": "Transport type. Accepted values: \"fabric\", \"underlay\", \"breakout\". Multiple values must be separated with \"|\". E.g. \"fabric|underlay\". Note: Fabric refers to SD-WAN.",
            "in": "query",
            "name": "transport",
            "required": false,
            "type": "string"
          },
          {
            "description": "Service name. Third party services should be formatted with an asterisk symbol at the end in order to filter by prefix instead of finding a complete match. Multiple services must be separated with \"|\". E.g. \"Zscaler_*|PaloAlto\"",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "services",
            "required": false,
            "type": "array"
          },
          {
            "description": "Flows to zone1. Values: \"any\", \"0\" (default), \"zone_id\"",
            "in": "query",
            "name": "zone1",
            "required": false,
            "type": "string"
          },
          {
            "description": "Flows from zone2. Values: \"any\", \"0\" (default), \"zone_id\"",
            "in": "query",
            "name": "zone2",
            "required": false,
            "type": "string"
          },
          {
            "description": "Flows either to zoneEither or from zoneEither. Values: \"any\", \"0\" (default), \"zone_id\"",
            "in": "query",
            "name": "zoneEither",
            "required": false,
            "type": "string"
          },
          {
            "default": "all",
            "description": "Flow categories",
            "enum": [
              "all",
              "asymmetric",
              "stale",
              "passThrough",
              "boosted",
              "routeDropped",
              "firewallDropped",
              "directlyAttached"
            ],
            "in": "query",
            "name": "filter",
            "required": false,
            "type": "string"
          },
          {
            "default": false,
            "description": "Edge HA flows. \"True\" to include, \"False\" to exclude",
            "enum": [
              "false",
              "true"
            ],
            "in": "query",
            "name": "edgeHA",
            "required": false,
            "type": "boolean"
          },
          {
            "default": false,
            "description": "Built-in policy flows. \"True\" to include, \"False\" to exclude",
            "enum": [
              "false",
              "true"
            ],
            "in": "query",
            "name": "builtIn",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Active and ended flow timing. If not specified, it defaults to \"anytime\" plus \"term\"",
            "enum": [
              "anytime",
              "last5m",
              "term5m",
              "term",
              "last1hr",
              "term1hr",
              "last4hr",
              "term4hr",
              "last24hr",
              "term24hr"
            ],
            "in": "query",
            "name": "uptime",
            "required": false,
            "type": "string"
          },
          {
            "default": "total",
            "description": "Bytes transferred",
            "enum": [
              "total",
              "last5m"
            ],
            "in": "query",
            "name": "bytes",
            "required": false,
            "type": "string"
          },
          {
            "default": "any",
            "description": "Flows that have lasted less than (\"<\") or greater than (\">\") the specified duration (in minutes). Value should be \"any\" or a number formatted with a \"<\" or \">\" in front of a value between 0 and 18446744073709551615. E.g. \">5000\"",
            "in": "query",
            "name": "duration",
            "required": false,
            "type": "string"
          },
          {
            "description": "Slow Flows flag. If this flag is present, it will show slow flows only",
            "in": "query",
            "name": "anytimeSlowFlows",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/FlowsGet"
            }
          }
        },
        "description": "Flows can be more specifically filtered by the available query parameters.",
        "operationId": "flows",
        "summary": "Returns active, inactive, or both types of flows on the appliance based on the query parameters supplied"
      }
    },
    "/gms/advancedProperties": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AdvancedProperties"
            }
          }
        },
        "operationId": "GetAdvProp",
        "summary": "Get Orchestrator advanced properties"
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON object for Orchestrator Advanced Properties.",
            "in": "body",
            "name": "Advanced Properties",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AdvancedProperties"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "PostAdvProp",
        "summary": "Update Orchestrator advanced properties"
      }
    },
    "/gms/advancedProperties/metadata": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AdvancedPropertiesMetaData"
            }
          }
        },
        "operationId": "GetAdvProp",
        "summary": "Get Orchestrator metadata of the advanced properties"
      }
    },
    "/gms/appliance/preconfiguration": {
      "get": {
        "parameters": [
          {
            "description": "Any additional filters to be applied",
            "enum": [
              "names",
              "metadata"
            ],
            "in": "query",
            "name": "filter",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/onePreconfig"
              },
              "type": "array"
            }
          }
        },
        "operationId": "getPreconfigurations",
        "summary": "Get all preconfigurations"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "createPreconfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/createPreconfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/createPreconfigResponse"
            }
          }
        },
        "operationId": "createPreconfiguration",
        "summary": "Create a preconfiguration"
      }
    },
    "/gms/appliance/preconfiguration/default": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/onePreconfig"
              },
              "type": "array"
            }
          }
        },
        "operationId": "getDefaultPreconfigurations",
        "summary": "Get the default preconfiguration, this contains the template YAML which has all possible configuration items. You will have to base64 decode configData to see the YAML in plain text"
      }
    },
    "/gms/appliance/preconfiguration/findMatch": {
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "matchPreconfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/matchPreconfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/onePreconfig"
            }
          }
        },
        "operationId": "getMatchingPreconfiguration",
        "summary": "Get the first matching preconfiguration, matching by serial then tag"
      }
    },
    "/gms/appliance/preconfiguration/validate": {
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "createPreconfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/createPreconfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          },
          "400": {
            "description": "Preconfiguration isn't valid, response body will give the reason"
          }
        },
        "operationId": "getMatchingPreconfiguration",
        "summary": "Get the first matching preconfiguration, matching by serial then tag"
      }
    },
    "/gms/appliance/preconfiguration/{preconfigId}": {
      "delete": {
        "parameters": [
          {
            "description": "The ID of the preconfiguration",
            "in": "path",
            "name": "preconfigId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "deletePreconfiguration",
        "summary": "Delete one preconfiguration"
      },
      "get": {
        "parameters": [
          {
            "description": "The ID of the preconfiguration",
            "in": "path",
            "name": "preconfigId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/onePreconfig"
            }
          }
        },
        "operationId": "getPreconfiguration",
        "summary": "Get one preconfiguration"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "createPreconfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/createPreconfig"
            }
          },
          {
            "description": "The ID of the preconfiguration",
            "in": "path",
            "name": "preconfigId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "modifyPreconfiguration",
        "summary": "Modify one preconfiguration"
      }
    },
    "/gms/appliance/preconfiguration/{preconfigId}/apply": {
      "get": {
        "parameters": [
          {
            "description": "The ID of the preconfiguration",
            "in": "path",
            "name": "preconfigId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/preconfigApplyStatus"
            }
          }
        },
        "description": "Get the apply status of a preconfiguration",
        "operationId": "getPreconfigurationApplyStatus",
        "summary": "Get the apply status of a preconfiguration"
      }
    },
    "/gms/appliance/preconfiguration/{preconfigId}/apply/discovered/{discoveredId}": {
      "post": {
        "parameters": [
          {
            "description": "The ID of the preconfiguration",
            "in": "path",
            "name": "preconfigId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the target discovered appliance",
            "in": "path",
            "name": "discoveredId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this API when you want to apply preconfiguration to a discovered appliance (this is an appliance that is in the discovered tab in the UI). Applying will happen in the asynchronously, so poll using GET /gms/appliance/preconfiguration/{preconfigId}/apply.",
        "operationId": "applyDiscoveredPreconfiguration",
        "summary": "Apply preconfiguration to discovered appliance"
      }
    },
    "/gms/appliance/preconfiguration/{preconfigId}/apply/{nePk}": {
      "post": {
        "parameters": [
          {
            "description": "The ID of the preconfiguration",
            "in": "path",
            "name": "preconfigId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the target managed appliance",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this API when you want to apply preconfiguration to a managed appliance (this is an appliance that is in the tree in the UI). Applying will happen in the asynchronously, so poll using GET /gms/appliance/preconfiguration/{preconfigId}/apply.",
        "operationId": "applyManagedPreconfiguration",
        "summary": "Apply preconfiguration to an already managed appliance"
      }
    },
    "/gms/applianceCrashHistory": {
      "get": {
        "parameters": [
          {
            "description": "if the value is empty it returns all the appliance history otherwise it will send all the crash reports to portal ",
            "in": "query",
            "name": "action",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/CrashHistory"
              },
              "type": "array"
            }
          }
        },
        "description": "Depending on action parameter if the value is empty it returns all the appliance history otherwise it will send all the crash reports to portal",
        "operationId": "CrashHistory",
        "summary": "Return or sends crash history of all the appliances"
      }
    },
    "/gms/applianceRebootHistory": {
      "get": {
        "parameters": [
          {
            "description": "if the value is empty it returns all the appliance history otherwise it will send all the reboot reports to portal ",
            "in": "query",
            "name": "action",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/RebootHistory"
              },
              "type": "array"
            }
          }
        },
        "description": "Depending on action parameter if the value is empty it returns all the appliance history otherwise it will send all the reboot reports to portal",
        "operationId": "RebootHistory",
        "summary": "Return or sends reboot history of all the appliances"
      }
    },
    "/gms/applianceWizard/apply/{nePk}": {
      "get": {
        "parameters": [
          {
            "description": "The nePk of the appliance",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplyWizardGet"
            }
          }
        },
        "description": "Returns a handle to poll. Poll handle with /action/status?key={actionGroupId}",
        "operationId": "getApplyApplianceWizard",
        "summary": "Get the handle for the currently applying wizard."
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "ApplyWizardPost",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplyWizardPost"
            }
          },
          {
            "description": "The nePk of the appliance",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplyWizardGet"
            }
          }
        },
        "description": "Applies the wizard to an appliance in the background. The wizard is broken into steps and each step is represented by an object in 'wizardData'. Every step is optional, if you don't want a step to be applied then delete it from the JSON when you POST. Subnets is special in that it will post to /subnets for <8.1.7 appliances and /subnets2 for >=8.1.7 appliances. If you are using an older appliance you will need to adjust the subnets.data section to match the appliance API format.\n The actionGroupId is used to poll the status of applying the wizard with POST /action/status.",
        "operationId": "applyApplianceWizard",
        "summary": "Applies the wizard to an appliance in the background"
      }
    },
    "/gms/backup": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/GmsBackupConfigObject"
            }
          }
        },
        "description": "There is only one orchestrator backup schedule job. Include the orchestrator configuration and orchestrator schedule information. Both the configuration and schedule information can be empty.",
        "operationId": "gmsBackupGet",
        "summary": "Returns orchestrator backup information"
      }
    },
    "/gms/backup/config": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "gmsBackConfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GmsBackupConfigObject"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/GmsBackupConfigResponseObject"
            }
          }
        },
        "operationId": "gmsBackupConfig",
        "summary": "add or update orchestrator backup config data"
      }
    },
    "/gms/backup/exportTemplate": {
      "get": {
        "parameters": [
          {
            "description": "'template' or 'migration'",
            "in": "path",
            "name": "mode",
            "required": true,
            "type": "string"
          },
          {
            "description": "any value would be considered true",
            "in": "path",
            "name": "download",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "goldenOrchestratorExport",
        "summary": "Create blueprint template"
      }
    },
    "/gms/backup/testConnection": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "gmsBackConfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GmsBackupConfigObject"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/GmsBackupResponseObject"
            }
          }
        },
        "operationId": "gmsBackupTestConnection",
        "summary": "Test the orchestrator backup remote server whether can connect."
      }
    },
    "/gms/discovery": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DiscoveryConfiguration"
            }
          }
        },
        "operationId": "getDiscoveryConfig",
        "summary": "Returns the configuration for Discovery"
      },
      "post": {
        "parameters": [
          {
            "description": "An array of email addresses to send the discovery (discovered, approved and denied EdgeConnects) email to.",
            "in": "body",
            "name": "emails",
            "required": true,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "updateDiscoveryConfig",
        "summary": "Updates the discovery configuration with the object passed. Note: Replaces the whole configuration with the configuration passed"
      }
    },
    "/gms/dynamicTopologyConfig": {
      "get": {
        "parameters": [
          {
            "description": "The username you want to retrieve the topology config for",
            "in": "query",
            "name": "userName",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DynamicTopologyConfiguration"
            }
          }
        },
        "operationId": "getDynamicTopologyConfig",
        "summary": "Returns the configuration for the dynamic topology tab."
      },
      "post": {
        "parameters": [
          {
            "description": "The username you want to update the topology config for",
            "in": "query",
            "name": "userName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The topology configuration to save, where the user's username is the key.",
            "in": "body",
            "name": "request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DynamicPreferencesSaveForUser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "updateDynamicTopologyConfig",
        "summary": "Updates the dynamic topology configuration for the given user"
      }
    },
    "/gms/dynamicTopologyConfig/{username}": {
      "get": {
        "parameters": [
          {
            "description": "The username of the user to retrieve the dynamic topology configuration of.",
            "in": "path",
            "name": "username",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DynamicTopologyConfiguration"
            }
          }
        },
        "deprecated": true,
        "operationId": "getUserDynamicTopologyConfig",
        "summary": "Deprecated. Use the GET /gms/dynamicTopologyConfig with the userName query parameter"
      },
      "post": {
        "parameters": [
          {
            "description": "The username to save the configuration under.",
            "in": "path",
            "name": "username",
            "required": true,
            "type": "string"
          },
          {
            "description": "The dynamic topology configuration to save, where the user's username is the key.",
            "in": "body",
            "name": "request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DynamicPreferencesSaveForUser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "deprecated": true,
        "operationId": "saveDynamicTopologyConfig",
        "summary": "Deprecated. Use POST /gms/dynamicTopologyConfig with the username query parameter"
      }
    },
    "/gms/gmsRegistration": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/MgmInterfaceInfoDefault"
            }
          }
        },
        "deprecated": true,
        "description": "Please use /gms/gmsRegistration2",
        "operationId": "mgmInterfaceByGet",
        "summary": "Gets setting for GMS registration on appliance"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "description": "Json object containing primary dns,secondary dns and domain name",
            "in": "body",
            "name": "dnsDetails",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MgmInterfaceInfoDefault"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "deprecated": true,
        "description": "Please use /gms/gmsRegistration2",
        "operationId": "mgmInterfaceByPost",
        "summary": "update setting for GMS registration on appliance"
      }
    },
    "/gms/gmsRegistration2": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/MgmInterfaceInfoDefault2"
            }
          }
        },
        "description": "This configuration determines what appliances will use to connect to Orchestrator. If the customDefaultIP is a blank string, Orchestrator will send it's internal management IP (returned as internalManagementIP) as the default.<br /> <br /> If any labels are configured, it will push that IP/domain instead.",
        "operationId": "mgmInterfaceByGet",
        "summary": "Gets setting for GMS registration on appliance"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "description": "Json object containing the custom default IP (if you don't want to use the Orchestrator's internal IP), and the specific label configuration (not required)",
            "in": "body",
            "name": "dnsDetails",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MgmInterfaceInfoDefault2Post"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "description": "Configure what IP or domain is sent to appliances (to connect to Orchestrator). If the customDefaultIP is set to blank, Orchestrator will send it's internal management IP to the appliances. Otherwise, the default will be the customDefaultIP. <br /><br /> Under 'label' you can also specify which IP or domain to send if the appliance is using the label in it's deployment configuration. <br /><br /> If Orchestrator is managed by Orchestrator SP, the customDefaultIP cannot be empty",
        "operationId": "mgmInterfaceByPost",
        "summary": "update setting for GMS registration on appliance"
      }
    },
    "/gms/grNode": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/GRNode"
              },
              "type": "array"
            }
          }
        },
        "operationId": "allGRNodeGet",
        "summary": "Get appliance positions on a map for topology"
      }
    },
    "/gms/grNode/forNePk/{nePk}": {
      "post": {
        "parameters": [
          {
            "description": "The appliance's nePk",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Position object",
            "in": "body",
            "name": "GRNodeUpdatePostBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GRNodeUpdatePostBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Updates an appliance position by nePk. Will only update the values (wx, wy, latitude, longitude) if the value is not 0.",
        "operationId": "grNodeUpdateByNePk",
        "summary": "Update appliance position by nePk"
      }
    },
    "/gms/grNode/{grNodePk}": {
      "get": {
        "parameters": [
          {
            "description": "Graphical node primary key",
            "in": "path",
            "name": "grNodePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/GRNode"
            }
          }
        },
        "operationId": "grNodeGet",
        "summary": "Get appliance position by graphical node primary key"
      },
      "post": {
        "parameters": [
          {
            "description": "Graphical node primary key",
            "in": "path",
            "name": "grNodePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Position object",
            "in": "body",
            "name": "GRNodeUpdatePostBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GRNodeUpdatePostBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/GRNode"
            }
          }
        },
        "operationId": "grNodeUpdate",
        "summary": "Update appliance position"
      }
    },
    "/gms/group": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/Group"
              },
              "type": "array"
            }
          }
        },
        "description": "There are system groups and there are user defined groups. System groups are groups with id: 0.Network(Root group), 1.Network(Internal purposes) and 2.Network(Auto discovered group). User defined groups start with id: 3.Network onwards",
        "operationId": "allGroupsGet",
        "summary": "Get all orchestrator groups. A group is a logical collection of appliances managed by orchestrator"
      }
    },
    "/gms/group/new": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Group information",
            "in": "body",
            "name": "GroupNewPostBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GroupNewPostBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Only name and parentId are required. Background image URL is optional.",
        "operationId": "groupAdd",
        "summary": "Add new group"
      }
    },
    "/gms/group/root": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Group"
            }
          }
        },
        "operationId": "rootGroupGet",
        "summary": "Get root group"
      }
    },
    "/gms/group/{id}": {
      "delete": {
        "parameters": [
          {
            "description": "group primary key",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "groupDelete",
        "summary": "Delete a group"
      },
      "get": {
        "parameters": [
          {
            "description": "group primary key. Looks like \"10.Network\"",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Group"
            }
          }
        },
        "description": "There are system groups and there are user defined groups. System groups are groups with id: 0.Network(Root group), 1.Network(Internal purposes) and 2.Network(Auto discovered group). User defined groups start with id: 3.Network onwards",
        "operationId": "groupGet",
        "summary": "Get a single group"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "group primary key. Looks like \"10.Network\"",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "description": "group information",
            "in": "body",
            "name": "GroupUpdatePostBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GroupUpdatePostBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "There are system groups and there are user defined groups. System groups are groups with id: 0.Network(Root group), 1.Network(Internal purposes) and 2.Network(Auto discovered group). User defined groups start with id: 3.Network onwards",
        "operationId": "groupUpdate",
        "summary": "Update a group"
      }
    },
    "/gms/httpsCertificate": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A JSON object representing intermediate certs, certificate and key files",
            "in": "body",
            "name": "certificateKeyData",
            "required": true,
            "schema": {
              "$ref": "#/definitions/certKeyValidation"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "httpsCertificateValidation",
        "summary": "upload the intermediate certs, certificate and key files"
      }
    },
    "/gms/httpsCertificate/validation": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A JSON object representing certificate and key files",
            "in": "body",
            "name": "certificateKeyData",
            "required": true,
            "schema": {
              "$ref": "#/definitions/certKeyValidation"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "httpsCertificateValidation",
        "summary": "Validate the certificate and key"
      }
    },
    "/gms/interfaceLabels": {
      "get": {
        "parameters": [
          {
            "description": "Boolean flag to return only the active (active = true) or only inactive (acive = false)",
            "in": "query",
            "name": "active",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/InterfaceLabels"
            }
          }
        },
        "operationId": "getInterfaceLabels",
        "summary": "Returns all the interface labels saved"
      },
      "post": {
        "parameters": [
          {
            "description": "Object of labels you wish to save (will overwrite the current lan labels list). To remove a label, set the 'active' to false. ",
            "in": "body",
            "name": "New labels",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InterfaceLabels"
            }
          },
          {
            "description": "Whether or not you want to delete the labels from port profiles and templates using it",
            "in": "query",
            "name": "deleteDependencies",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Save interface labels, will completely replace the current implementation. You cannot remove labels that are in use in an overlay",
        "operationId": "postInterfaceLabels",
        "summary": "Save interface labels, will completely replace the current implementation. "
      }
    },
    "/gms/interfaceLabels/{type}": {
      "get": {
        "parameters": [
          {
            "description": "The type of interface that you want to retrieve the list of labels of [wan, lan].",
            "enum": [
              "wan",
              "lan"
            ],
            "in": "path",
            "name": "type",
            "required": true,
            "type": "string"
          },
          {
            "description": "Boolean flag to return only the active (active = true) or only inactive (acive = false)",
            "in": "query",
            "name": "active",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SampleLabelSet"
            }
          }
        },
        "operationId": "getLabelsForType",
        "summary": "Returns all the labels for the given type"
      }
    },
    "/gms/internalSubnets2": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/InternalSubnetsApiObject"
            }
          }
        },
        "description": "This is the list of internal subnets used to classify internet traffic. Any traffic not matching these internal subnets will be classified as internet traffic. This list will be pushed to appliances.",
        "operationId": "getInternalSubnets",
        "summary": "Get the internal subnets"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/InternalSubnetsConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Save the list of internal subnets to use to classify internet traffic. Any traffic not matching the internal subnets will be classified as internet traffic. This list will be pushed to all appliances. User can configure up to 512 subnets in each ipv4 and ipv6 entry.",
        "operationId": "saveInternalSubnets",
        "summary": "Save internal subnets"
      }
    },
    "/gms/ipwhitelist/drops": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/IpWhitelistDrop"
              },
              "type": "array"
            }
          }
        },
        "description": "The IP addresses of the dropped requests on this server",
        "operationId": "getIPWhitelistDrops",
        "summary": "Get the IP addresses of the dropped requests to this server"
      }
    },
    "/gms/ipwhitelist/external": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        },
        "description": "This is the list of external subnet addresses allowed to access this server.",
        "operationId": "getExternalIPWhitelist",
        "summary": "Get the external IP/mask white list"
      },
      "post": {
        "parameters": [
          {
            "description": "This is the list of external subnet addresses allowed to access this server.",
            "in": "body",
            "name": "subnets",
            "required": true,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "This is the list of external subnet addresses allowed to access this server.",
        "operationId": "setExternalIPWhitelist",
        "summary": "Set the external IP/mask white list"
      }
    },
    "/gms/job": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/ScheduledJob2Get"
              },
              "type": "array"
            }
          }
        },
        "description": "Return all the scheduled jobs. <p><b>&quot;Minute schedule - Every minute starting at effectiveTime(in epoch sec )&quot;</b><br />&quot;schedule&quot;: {<br /> &quot;effectiveTime&quot;: 1431323520,<br /> &quot;recurrence&quot;: {<br /> &quot;minutes&quot;: 1<br /> }<br /> },</p> <br /> <p><b>&quot;Hourly Schedule - every seven hours starting from effectiveTime&quot;</b><br />&quot;schedule&quot;: {<br /> &quot;effectiveTime&quot;: 1431323520,<br /> &quot;recurrence&quot;: {<br /> &quot;hourly&quot;: 7<br /> }<br /> },</p><br /><p><b>&quot;Daily Schedule - every weekday at 2:03 am&quot;<br />&quot;</b>schedule&quot;: {<br /> &quot;effectiveTime&quot;: 1431968786,<br /> &quot;endTime&quot;: 1494435986,<br /> &quot;recurrence&quot;: {<br /> &quot;daily&quot; : {<br /> &quot;everyWeekDay&quot; : true,<br /> &quot;occursAt&quot; : {<br /> &quot;hour&quot;: 2,<br /> &quot;minute&quot;: 3<br /> }<br /> }<br /> },<br /> &quot;timezoneOffset&quot;: &quot;-08:00&quot;<br /> },</p><br /><p><b>&quot;Daily Schedule - every day at 2:03 am&quot;</b><br />&quot;schedule&quot;: {<br /> &quot;effectiveTime&quot;: 1431323520,<br /> &quot;recurrence&quot;: {<br /> &quot;daily&quot; : {<br /> &quot;everyDay&quot; : true,<br /> &quot;occursAt&quot; : {<br /> &quot;hour&quot;: 2,<br /> &quot;minute&quot;: 3<br /> }<br /> }<br /> },<br /> &quot;timezoneOffset&quot;: &quot;-08:00&quot;<br /> },</p><br /><p><b>&quot;Weekly Schedule - every sun, mon, tue and sat at 1:03 am. Timezone offset if the client offset&quot;</b><br />&quot;schedule&quot;: {<br /> &quot;effectiveTime&quot;: 1431323520,<br /> &quot;recurrence&quot;: {<br /> &quot;weekly&quot;: {<br /> &quot;daysOfTheWeek&quot;: [1,2,3,7],<br /> &quot;occursAt&quot; : {<br /> &quot;hour&quot;: 1,<br /> &quot;minute&quot;: 3<br /> }<br /> }<br /> },<br /> &quot;timezoneOffset&quot;: &quot;-08:00&quot;<br /> },</p><br /><p><b>&quot;Monthly Schedule - every 2nd day of every 3 months at 12:06 pm. Timezone offset if the client offset&quot;</b><br />&quot;schedule&quot;: {<br /> &quot;effectiveTime&quot;: 1431323520,<br /> &quot;recurrence&quot;: {<br /> &quot;monthly&quot;: {<br /> &quot;type3&quot;: {<br /> &quot;day&quot;: 2,<br /> &quot;everyXMonths&quot;: 3<br /> },<br /> &quot;occursAt&quot; : {<br /> &quot;hour&quot;: 12,<br /> &quot;minute&quot;: 6<br /> }<br /> }<br /> },<br /> &quot;timezoneOffset&quot;: &quot;-08:00&quot;<br /> },</p><br /><p><b>&quot;Monthly Schedule - First Tue of every 4 months at 12:06 pm. Rank - 1,2,3,4 dayOfTheWeek - 1 (Sun), 2(Mon)...7(Sat)&quot;</b><br />&quot;schedule&quot;: {<br /> &quot;effectiveTime&quot;: 1431323520,<br /> &quot;recurrence&quot;: {<br /> &quot;monthly&quot;: {<br /> &quot;type4&quot; : {<br /> &quot;rank&quot;: 1,<br /> &quot;dayOfTheWeek&quot;: 3,<br /> &quot;everyXMonths&quot;: 4<br /> },<br /> &quot;occursAt&quot; : {<br /> &quot;hour&quot;: 12,<br /> &quot;minute&quot;: 6<br /> }<br /> }<br /> },<br /> &quot;timezoneOffset&quot;: &quot;-08:00&quot;<br /> },</p><br /><p><b>&quot;Monthly Schedule - First day of every month at 12:00 pm&quot;</b><br />&quot;schedule&quot;: {<br /> &quot;effectiveTime&quot;: 1431323520,<br /> &quot;recurrence&quot;: {<br /> &quot;monthly&quot;: {<br /> &quot;type1&quot; : {<br /> &quot;firstDayOfEveryMonth&quot;: true<br /> },<br /> &quot;occursAt&quot; : {<br /> &quot;hour&quot;: 12,<br /> &quot;minute&quot;: 0<br /> }<br /> }<br /> },<br /> &quot;timezoneOffset&quot;: &quot;-7:00&quot;<br /> },</p><br /><p><b>&quot;Monthly Schedule - Last day of every month at 12:00 pm&quot;</b><br />&quot;schedule&quot;: {<br /> &quot;effectiveTime&quot;: 1431323520,<br /> &quot;recurrence&quot;: {<br /> &quot;monthly&quot;: {<br /> &quot;type2&quot; : {<br /> &quot;lastDayOfEveryMonth&quot;: true<br /> },<br /> &quot;occursAt&quot; : {<br /> &quot;hour&quot;: 12,<br /> &quot;minute&quot;: 0<br /> }<br /> }<br /> },<br /> &quot;timezoneOffset&quot;: &quot;-7:00&quot;<br /> },</p><br /><p><b>&quot;Yearly Schedule - Jan 2nd every year at 12:02 pm. month - 1(Jan), 2(Feb)...&quot;</b><br />&quot;schedule&quot;: {<br />{<br /> &quot;effectiveTime&quot;: 12234343,<br /> &quot;recurrence&quot; : { <br /> &quot;yearly&quot;: {<br /> &quot;type1&quot;: {<br /> &quot;month&quot;: 1,<br /> &quot;day&quot;: 2 <br /> }<br /> &quot;occursAt&quot; : {<br /> &quot;hour&quot;: 12,<br /> &quot;minute&quot;: 2<br /> }<br /> }<br /> }<br />},<br /> &quot;timezoneOffset&quot;: &quot;-7:00&quot;<br /> },</p><br /><p><b>&quot;Yearly Schedule - 1st Monday of Jan every year at 12:02 pm. rank - 1,2,3,4 dayOfTheWeek - 1(Sun), 2(Mon)... 7(Sat) month - 1(Jan), 2(Feb)...&quot;</b><br />&quot;schedule&quot;: {<br />{<br />{<br /> &quot;effectiveTime&quot;: 12234343,<br /> &quot;recurrence&quot; : { <br /> &quot;yearly&quot;: {<br /> &quot;type2: {<br /> &quot;rank&quot;: 1,<br /> &quot;dayOfTheWeek&quot;: 2<br /> &quot;month&quot;: 1<br /> }<br /> &quot;occursAt&quot; : {<br /> &quot;hour&quot;: 12,<br /> &quot;minute&quot;: 2<br /> }<br /> }<br /> }<br />},<br /> &quot;timezoneOffset&quot;: &quot;-7:00&quot;<br /> },</p><br /><p><b>&quot;Run now job schedule&quot;</b><br />&quot;schedule&quot;: {<br /> &quot;runNow&quot;: true<br /> }</p>",
        "operationId": "scheduledJobsGet",
        "summary": "Get all the scheduled jobs in Orchestrator"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "text/html"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "scheduledJobs2Post",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ScheduledJob2Post"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "description": "<p><b>&quot;Job category for Orchestrator jobs. &quot;</b><br />2 - Orchestrator Report,<br />3 - Orchestrator Backup,<br />4 - Appliance Reboot or Shutdown,<br />5 - Appliance QOS Scheduling,<br />6 - IPsec Pre-shared Key Rotation;</p><br /><p><b>&quot;Sample POST&quot;</b><br />{<br /> &quot;jobCategory&quot;: 2, <br /> &quot;schedule&quot;: {<br /> &quot;effectiveTime&quot;: 1431323520,<br /> &quot;recurrence&quot;: {<br /> &quot;minutes&quot;: 1<br /> }<br /> }, <br /> &quot;config&quot;: {&quot;a&quot;: 1}, <br /> &quot;description&quot;: &quot;minute schedule&quot;, <br /> &quot;targetAppliance&quot;: {<br /> &quot;groupPks&quot; : [&quot;1.Network&quot;, &quot;2.Network&quot;],<br /> &quot;nePks&quot;: [&quot;1.NE&quot;, &quot;2.NE&quot;]<br /> }<br />}</p>",
        "operationId": "ScheduledJob2Post",
        "summary": "Schedule a new job in Orchestrator"
      }
    },
    "/gms/job/historical": {
      "get": {
        "parameters": [
          {
            "description": "Jobs ended in last x days, Can combine use with scheduleId",
            "in": "query",
            "name": "lastXDays",
            "type": "integer"
          },
          {
            "description": "get historical Jobs by scheduleId",
            "in": "query",
            "name": "scheduleId",
            "type": "integer"
          },
          {
            "description": "get latest historical Job, Can combine use with scheduleId",
            "in": "query",
            "name": "latest",
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/HistoricalJobItem"
              },
              "type": "array"
            }
          }
        },
        "description": "Every job on its completion, will make an entry to historical jobs table. This api will return all the historical jobs",
        "operationId": "HistoricalJobsGet",
        "summary": "Get the historical jobs by parameter. If all parameter is empty. Get 1000 latest historical jobs entities."
      }
    },
    "/gms/job/historical/{jobId}": {
      "get": {
        "parameters": [
          {
            "description": "Get historical Job by Id.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/HistoricalJobItem"
            }
          }
        },
        "description": "Every job on its completion, will make an entry to historical jobs table.",
        "operationId": "HistoricalJobsGetById",
        "summary": "Get the historical job by Id."
      }
    },
    "/gms/job/{jobId}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "scheduledJobDelete",
        "summary": "Deletes a schedule job"
      },
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "ScheduledJob2Get",
        "summary": "Get scheduled jobs list for one specified appliance based on the nePk Id"
      },
      "put": {
        "parameters": [
          {
            "description": "The id of the job.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "scheduledJob2Post",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ScheduledJob2Post"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "<p><b>&quot;Job category for Orchestrator jobs. &quot;</b><br />2 - Orchestrator Report,<br />3 - Orchestrator Backup,<br />4 - Appliance Reboot or Shutdown,<br />5 - Appliance QOS Scheduling,<br />6 - IPsec Pre-shared Key Rotation;</p><br /><p><b>&quot;Sample POST&quot;</b><br />{<br /> &quot;jobCategory&quot;: 2, <br /> &quot;schedule&quot;: {<br /> &quot;effectiveTime&quot;: 1431323520,<br /> &quot;recurrence&quot;: {<br /> &quot;minutes&quot;: 1<br /> }<br /> }, <br /> &quot;config&quot;: {&quot;a&quot;: 1}, <br /> &quot;description&quot;: &quot;minute schedule&quot;, <br /> &quot;targetAppliance&quot;: {<br /> &quot;groupPks&quot; : [&quot;1.Network&quot;, &quot;2.Network&quot;],<br /> &quot;nePks&quot;: [&quot;1.NE&quot;, &quot;2.NE&quot;]<br /> }<br />}</p>",
        "operationId": "scheduledJobModify",
        "summary": "Modify a scheduled job."
      }
    },
    "/gms/job/{jobId}/stop": {
      "post": {
        "parameters": [
          {
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "stopJob",
        "summary": "Stop a scheduled job"
      }
    },
    "/gms/menuCustomization": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/menuType"
            }
          }
        },
        "operationId": "getAllMenuItems",
        "summary": "All the checked menu items with different menu type names"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "New menuType",
            "required": true,
            "schema": {
              "$ref": "#/definitions/menuType"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "addMenuType",
        "summary": "Store or update the checked menu items for a special menu type name"
      },
      "put": {
        "parameters": [
          {
            "in": "body",
            "name": "Users update",
            "required": true,
            "schema": {
              "$ref": "#/definitions/updateMenuType"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "updateMenuTypeItems",
        "summary": "Configure users for menu types and set default menu type for monitoring users"
      }
    },
    "/gms/menuCustomization/{menuTypeName}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "menuTypeName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "deleteExistingMenuType",
        "summary": "Delete the a special menu type, including its checked menu items and configured users"
      }
    },
    "/gms/overlays/association": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/OverlayApplianceAssociations"
            }
          }
        },
        "description": "This resource returns an object, where the keys are overlay IDs, and the value is an array of appliances belonging to that overlay.",
        "operationId": "getAllOverlayApplianceAssociations",
        "summary": "Get the list of appliances associated with all overlays"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "Associations",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OverlayApplianceAssociations"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "The request body is an object, where the keys are overlay IDs and the values are appliances to add to the respective overlays",
        "operationId": "addOverlayApplianceAssociations",
        "summary": "Add appliances to overlays"
      }
    },
    "/gms/overlays/association/remove": {
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "Appliances to remove",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OverlayApplianceAssociations"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "The request body is an object, where the keys are overlay IDs and the values are appliances to remove from the respective overlays",
        "operationId": "removeAppliancesFromOverlays",
        "summary": "Remove appliances from overlays"
      }
    },
    "/gms/overlays/association/{overlayId}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "overlayId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/OverlayApplianceAssociation"
            }
          }
        },
        "operationId": "getAppliancesForOverlay",
        "summary": "Get appliances in an overlay"
      }
    },
    "/gms/overlays/association/{overlayId}/{nePk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "overlayId",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Removes the appliance from the overlay, given the appliance ID (nePk) and overlay ID (overlayId).",
        "operationId": "deleteOverlayApplianceAssociation",
        "summary": "Remove an appliance from an overlay"
      }
    },
    "/gms/overlays/config": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/OverlayConfig"
              },
              "type": "array"
            }
          }
        },
        "operationId": "getAllOverlays",
        "summary": "All the overlays stored in the Orchestrator"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "New overlay",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NewOverlayConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this API to add a new overlay configuration. If successful, the API will return the ID of the overlay added.<br /><br /> Please see the model for more information (click 'Model' under Data Type) <br /> Valid values: <br /> Topology type: <ul> <li>1 - Mesh</li> <li>2 - Hub and Spoke</li> </ul> <br /> Bonding Policy: <br /> <ul> <li>1 - High availability</li> <li>2 - High quality</li> <li>3 - High throughput</li> <li>4 - High efficiency</li> </ul> <br /> Overlay Fallback Option <br /> <ul> <li>1 - pass-through</li> <li>3 - drop</li> <li>label_{labelId} - pass-through an interface with a specific label</li> </ul> <br /> Internet Policy <ul> <li><b>policyList</b> - The policy list is what policies to take, in order, for internet traffic. If the first policy fails, it will try the next one. The items in the list can be one of the options below, or a service name. The service name needs to match the peer name of a passthrough tunnel on the appliance. <ul> <li>backhaul_via_overlay - Send the internet traffic back through overlay</li> <li>local_breakout - Break out locally through specific interfaces (must configure interface label IDs in localBreakout)</li> </ul> <li><b>localBreakout</b> - Two lists (primary/backup) of the interface labels to break out of (see model for more details)</li> </ul>",
        "operationId": "addNewOverlay",
        "summary": "Saves a new overlay to the Orchestrator"
      }
    },
    "/gms/overlays/config/maxNumOfOverlays": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/MaxOverlaysResponse"
            }
          }
        },
        "description": "Get the max number of overlays you are allowed to have on this Orchestrator",
        "operationId": "getMaxNumberOfOverlays",
        "summary": "Get the max number of overlays"
      }
    },
    "/gms/overlays/config/regions": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/OverlayIdToRegionalOverlay"
            }
          }
        },
        "operationId": "getAllRegionalOverlays",
        "summary": "All the overlays stored in the Orchestrator keyed by overlayId and regionId"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "All Overlays",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OverlayIdToRegionalOverlay"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this API to post an exhaustive representation of regionalized overlays. The body of this request should be a map keyed by overlayId whose value is a map of regionId to regional overlay configuration. Please see the model for more information (click 'Model' under Data Type) <br /> Valid values: <br /> Topology type: <ul> <li>1 - Mesh</li> <li>2 - Hub and Spoke</li> </ul> <br /> Bonding Policy: <br /> <ul> <li>1 - High availability</li> <li>2 - High quality</li> <li>3 - High throughput</li> <li>4 - High efficiency</li> </ul> <br /> Overlay Fallback Option <br /> <ul> <li>1 - pass-through</li> <li>3 - drop</li> <li>label_{labelId} - pass-through an interface with a specific label</li> </ul> <br /> Internet Policy <ul> <li><b>policyList</b> - The policy list is what policies to take, in order, for internet traffic. If the first policy fails, it will try the next one. The items in the list can be one of the options below, or a service name. The service name needs to match the peer name of a passthrough tunnel on the appliance. <ul> <li>backhaul_via_overlay - Send the internet traffic back through overlay</li> <li>local_breakout - Break out locally through specific interfaces (must configure interface label IDs in localBreakout)</li> </ul> <li><b>localBreakout</b> - Two lists (primary/backup) of the interface labels to break out of (see model for more details)</li> </ul>",
        "operationId": "PostAllRegionalOverlays",
        "summary": "Post regional overlay configurations"
      }
    },
    "/gms/overlays/config/regions/{overlayId}/{regionId}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "overlayId",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "regionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/OverlayConfig"
            }
          }
        },
        "operationId": "GetRegionalOverlay",
        "summary": "Get regional overlay by overlayId and regionId"
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "overlayId",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "regionId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "overlay config",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OverlayConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "ModifyRegionalOverlay",
        "summary": "Modify regional overlay"
      }
    },
    "/gms/overlays/config/{overlayId}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "overlayId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "deleteExistingOverlay",
        "summary": "Deletes the overlay from the Orchestrator. Removes any appliances from the overlay and deletes any reports specifically for this overlay."
      },
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "overlayId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/OverlayConfig"
            }
          }
        },
        "operationId": "getOverlay",
        "summary": "Returns one overlay that has the id of the passed overlayId parameter"
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "overlayId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "Updated overlay",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OverlayConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this API to update an existing overlay configuration. If you are using regions and have customized regional BIO per region, it will be overridden. To avoid this use the other PUT api which takes regionID as an input. Any changes made to the overlay configuration will be pushed to the appliances automatically.<br /><br /> Please see the model for more information (click 'Model' under Data Type) <br /> Valid values: <br /> Topology type: <ul> <li>1 - Mesh</li> <li>2 - Hub and Spoke</li> </ul> <br /> Bonding Policy: <br /> <ul> <li>1 - High availability</li> <li>2 - High quality</li> <li>3 - High throughput</li> <li>4 - High efficiency</li> </ul> <br /> Overlay Fallback Option <br /> <ul> <li>1 - pass-through</li> <li>3 - drop</li> <li>label_{labelId} - pass-through an interface with a specific label</li> </ul> <br /> Internet Policy <ul> <li><b>policyList</b> - The policy list is what policies to take, in order, for internet traffic. If the first policy fails, it will try the next one. The items in the list can be one of the options below, or a service name. The service name needs to match the peer name of a passthrough tunnel on the appliance. <ul> <li>backhaul_via_overlay - Send the internet traffic back through overlay</li> <li>local_breakout - Break out locally through specific interfaces (must configure interface label IDs in localBreakout)</li> </ul> <li><b>localBreakout</b> - Two lists (primary/backup) of the interface labels to break out of (see model for more details)</li> </ul>",
        "operationId": "updateExistingOverlay",
        "summary": "Update the properties of an existing overlay"
      }
    },
    "/gms/overlays/priority": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/OverlayPriorityMap"
            }
          }
        },
        "description": "This API returns a JSON object where the key is the priority, and the value of the key is the overlay ID with that priority. <br /><br /> Example: <br /> { 1 : 2, 2 : 3, 3 : 1 } <br /> This would order the overlays with the overlay with ID 2 first, overlay with ID 3 second, etc.",
        "operationId": "getOverlayPriorityMap",
        "summary": "Get the overlay priority order"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "Overlay priority",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OverlayPriorityMap"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "This API sets the overlay priorities, specifically the order of the different overlays' route maps. The priority is a JSON object where the key is the priority, and the value of the key is the overlay ID with that priority.<br /><br /> Example: <br /> { 1 : 2, 2 : 3, 3 : 1 } <br /> This would order the overlays with the overlay with ID 2 first, overlay with ID 3 second, etc.",
        "operationId": "saveOverlayPriority",
        "summary": "Change the overlay priorities "
      }
    },
    "/gms/scheduleTimezone": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ScheduleTimezoneConfiguration"
            }
          }
        },
        "operationId": "getScheduleTimezone",
        "summary": "Returns the configured timezone for scheduled jobs and reports"
      },
      "post": {
        "parameters": [
          {
            "description": "The timezone to set for the scheduled jobs and reports.",
            "in": "body",
            "name": "defaultTimezone",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "updateScheduleTimezone",
        "summary": "Updates the schedule timezone used with for the scheduled jobs and reports."
      }
    },
    "/gms/services": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SampleServiceSet"
            }
          }
        },
        "description": "The list of services is used to provide options in the Overlay editor's Internet Policy section. For every service, a 'Send to <service name>' option will be shown in the available options list. The service name will correspond to the peer name of the pass through tunnel the internet traffic will go on. It is the user's responsibility to create these pass through tunnels on appliances.",
        "operationId": "getServices",
        "summary": "Returns all the services"
      },
      "post": {
        "parameters": [
          {
            "description": "Object of services you wish to save. ",
            "in": "body",
            "name": "New services",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SampleServiceSet"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Saving a new service list will completely replace the current implementation. Any service IDs that were saved previously, but not included in the POST body will be removed. These services will also be removed from the overlay's policy list.",
        "operationId": "saveServices",
        "summary": "Save the service list"
      }
    },
    "/gms/sessionTimeout": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/UserSessionInfo"
            }
          }
        },
        "operationId": "sessionTimeout",
        "summary": "Returns information of auto logout and max login session"
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "sessionDetail",
            "required": true,
            "schema": {
              "$ref": "#/definitions/sessionDetail"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "sessionTimeout",
        "summary": "Update auto logout and max login session"
      }
    },
    "/gms/statsCollection": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/statsCollection"
            }
          }
        },
        "operationId": "statsCollection",
        "summary": "Gets stats collection enable/disable details"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Json object for enable/disable stats collection by orchestrator",
            "in": "body",
            "name": "statsCollection",
            "required": true,
            "schema": {
              "$ref": "#/definitions/statsCollection"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "statsCollection",
        "summary": "Used to enable/disable stats collection by orchestrator"
      }
    },
    "/gms/statsCollection/default": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/statsCollection"
            }
          }
        },
        "operationId": "StatsCollectionDefault",
        "summary": "To get default values for stats collection"
      }
    },
    "/gms/thirdPartyServices": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SampleThirdPartyServiceSet"
            }
          }
        },
        "description": "The list of services is used to provide options in the Overlay editor's Internet Policy section. For every service, a dynamically generated options list will be shown in the available options list. The service name will correspond to the peer name of the pass through tunnel the internet traffic will go on. Pass through tunnels will be generated automatically.",
        "operationId": "getThirdPartyServices",
        "summary": "Returns all the Third Party Services"
      }
    },
    "/gms/topologyConfig": {
      "get": {
        "parameters": [
          {
            "description": "The username you want to retrieve the topology config for",
            "in": "query",
            "name": "userName",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TopologyConfiguration"
            }
          }
        },
        "operationId": "getDefaultTopologyConfig",
        "summary": "Returns the configuration for the topology tab. The key in the configuration will be the username."
      },
      "post": {
        "parameters": [
          {
            "description": "The username you want to update the topology config for",
            "in": "query",
            "name": "userName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The topology configuration to save, where the user's username is the key.",
            "in": "body",
            "name": "request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PreferencesSaveForUser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "updateTopologyConfig",
        "summary": "Updates the topology configuration for the given user"
      }
    },
    "/gms/topologyConfig/map": {
      "post": {
        "parameters": [
          {
            "description": "The map image to save.",
            "in": "body",
            "name": "default",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MapSave"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "saveMapImage",
        "summary": "Update the map image"
      }
    },
    "/gms/topologyConfig/{username}": {
      "get": {
        "parameters": [
          {
            "description": "The username of the user to retrieve the topology configuration of.",
            "in": "path",
            "name": "username",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TopologyConfiguration"
            }
          }
        },
        "deprecated": true,
        "operationId": "getUserTopologyConfig",
        "summary": "Deprecated. Use GET /gms/topologyConfig with the username query parameter"
      },
      "post": {
        "parameters": [
          {
            "description": "The username to save the configuration under.",
            "in": "path",
            "name": "username",
            "required": true,
            "type": "string"
          },
          {
            "description": "The topology configuration to save, where the user's username is the key.",
            "in": "body",
            "name": "request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PreferencesSaveForUser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "deprecated": true,
        "operationId": "saveTopologyConfig",
        "summary": "Deprecated. Use POST /gms/topologyConfig with the username query parameter "
      }
    },
    "/gms/tunnelGroups/association": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelGroupApplianceAssociations"
            }
          }
        },
        "description": "This resource returns an object, where the keys are tunnel group IDs, and the value is an array of appliances belonging to that tunnel group.",
        "operationId": "getAllTunnelGroupApplianceAssociations",
        "summary": "Get the list of all tunnel group appliance lists"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "Associations",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TunnelGroupApplianceAssociations"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "The request body is an object, where the keys are tunnel group IDs and the values are appliances to add to the respective tunnel groups",
        "operationId": "addTunnelGroupApplianceAssociations",
        "summary": "Add appliances to tunnel groups"
      }
    },
    "/gms/tunnelGroups/association/{tunnelGroupId}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "tunnelGroupId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelGroupApplianceAssociation"
            }
          }
        },
        "operationId": "getAppliancesForTunnelGroup",
        "summary": "Get appliances in a tunnel group"
      }
    },
    "/gms/tunnelGroups/association/{tunnelGroupId}/{nePk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "tunnelGroupId",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Removes the appliance from the tunnel group, given the appliance ID (nePk) and tunnel group ID (tunnelGroupId).",
        "operationId": "deleteTunnelGroupApplianceAssociation",
        "summary": "Remove an appliance from a tunnel group"
      }
    },
    "/gms/tunnelGroups/config": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelGroupArrayResponse"
            }
          }
        },
        "operationId": "getAllTunnelGroups",
        "summary": "Returns all the tunnel group configurations stored in the Orchestrator"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "New tunnel group",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NewTunnelGroupConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "addNewTunnelGroup",
        "summary": "Saves a new tunnel group configuration to the Orchestrator"
      }
    },
    "/gms/tunnelGroups/config/{id}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "deleteExistingTunnelGroup",
        "summary": "Deletes the tunnel group from the Orchestrator. Removes any appliances from the tunnel group."
      },
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelGroupConfig"
            }
          }
        },
        "operationId": "getTunnelGroup",
        "summary": "Returns one tunnel group that matches the ID given"
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "Updated tunnel group",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TunnelGroupConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "updateExistingTunnelGroup",
        "summary": "Update the properties of an existing tunnel group"
      }
    },
    "/gms/tunnelGroups/properties": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelGroupPropertiesGet"
            }
          }
        },
        "operationId": "getTunnelGroupProperties",
        "summary": "Get the tunnel group management properties"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "Tunnel Group Properties",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TunnelGroupPropertiesSet"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "setTunnelGroupProperties",
        "summary": "Set the tunnel group management properties"
      }
    },
    "/gms/versions": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/VersionInfo"
            }
          }
        },
        "operationId": "versionInfo",
        "summary": "Returns available orchestrator versions"
      }
    },
    "/gmsConfig": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/GmsConfigItem"
              },
              "type": "array"
            }
          }
        },
        "operationId": "gmsConfig",
        "summary": "Returns all Orchestrator configs"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "GmsConfigCreation",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GmsConfigCreation"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "gmsConfig",
        "summary": "Creates an Orchestrator config"
      }
    },
    "/gmsConfig/{base}": {
      "delete": {
        "parameters": [
          {
            "description": "resource name",
            "in": "path",
            "name": "base",
            "required": true,
            "type": "string"
          },
          {
            "description": "if provided, it will only delete the sub-resource",
            "in": "query",
            "name": "resourceKey",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "gmsConfig",
        "summary": "Deletes an Orchestrator config"
      },
      "get": {
        "parameters": [
          {
            "description": "name resource",
            "in": "path",
            "name": "base",
            "required": true,
            "type": "string"
          },
          {
            "description": "if provided, response will be an object instead of an array",
            "in": "query",
            "name": "resourceKey",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/GmsConfigItem"
              },
              "type": "array"
            }
          }
        },
        "operationId": "gmsConfig",
        "summary": "Returns specific Orchestrator config. But a specific Orchestrator config could have multiple sub-resources, that's why it returns an array. However, If \"resourceKey\" is  provided, response will be an object(sub-resource) instead of an array"
      },
      "put": {
        "parameters": [
          {
            "description": "resource name",
            "in": "path",
            "name": "base",
            "required": true,
            "type": "string"
          },
          {
            "description": "if provided, it will update the sub-resource",
            "in": "query",
            "name": "resourceKey",
            "required": false,
            "type": "string"
          },
          {
            "in": "body",
            "name": "GmsConfigUpdate",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GmsConfigUpdate"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "gmsConfig",
        "summary": "Updates a versioned Orchestrator config. Current resource version number needs to be provided when updating"
      }
    },
    "/gmsHostname": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/HostName"
            }
          }
        },
        "operationId": "hostnameByGet",
        "summary": "Get the host name of orchestrator."
      }
    },
    "/gmsLicense": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/LicenseInfoByGet"
            }
          }
        },
        "operationId": "licenseByGet",
        "summary": "Get current license key and information"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Orchestrator license key",
            "in": "body",
            "name": "licenseKey",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LicenseKey"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/LicenseInfoByPost"
            }
          }
        },
        "operationId": "licenseByPut",
        "summary": "Set Orchestrator license key"
      }
    },
    "/gmsLicense/validation": {
      "get": {
        "parameters": [
          {
            "description": "License key to validate",
            "in": "query",
            "name": "licenseKey",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/LicenseInfoByValidate"
            }
          }
        },
        "operationId": "validateKey",
        "summary": "Validate a new license key"
      }
    },
    "/gmsOperatingSystem": {
      "get": {
        "produces": [
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "OsInfo",
        "summary": "Returns Orchestrator Operating system type "
      }
    },
    "/gmsRemoteAuth": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/GmsRemoteAuthGet"
            }
          }
        },
        "operationId": "gmsRemoteAuthGet",
        "summary": "Get current Radius or TACACS+ configuration"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "remoteAuthData",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GmsRemoteAuthPost"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "GmsRemoteAuthPost",
        "summary": "Modify Radius or TACACS+ configuration"
      }
    },
    "/gmsSMTP": {
      "delete": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "SMTP",
        "summary": "Delete custom SMTP"
      },
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SMTPInfo"
            }
          }
        },
        "operationId": "SMTP",
        "summary": "Gets SMTP details"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Json object for setting values of SMPT user name, password, email server address etc...",
            "in": "body",
            "name": "SMTPDetails",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SMTP"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "SMTPPost",
        "summary": "used to set SMTP settings"
      }
    },
    "/gmsSMTP/delUnverifiedEmails": {
      "post": {
        "produces": [
          "text/html"
        ],
        "parameters": [
          {
            "description": "a list of unverified email addresses to delete",
            "in": "body",
            "name": "emails",
            "required": true,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "description": "Delete unverified email addresses",
        "operationId": "delUnverifiedEmails",
        "summary": "Delete unverified emails"
      }
    },
    "/gmsSMTP/sendVerificationEmail": {
      "post": {
        "produces": [
          "text/html"
        ],
        "parameters": [
          {
            "description": "the address to whom will the email be sent",
            "in": "query",
            "name": "address",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "description": "Send a verification email with a unique verification link including a secure random string to an address",
        "operationId": "sendVerificationEmail",
        "summary": "Send a verification email to an email address"
      }
    },
    "/gmsSMTP/testEmail": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Json object for setting values of SMPT user name, password, email server address etc...",
            "in": "body",
            "name": "SMTPDetails",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SMTPTest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "SMTPTestMail",
        "summary": "used to send test mail"
      }
    },
    "/gmsSMTP/unverifiedEmails": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        },
        "description": "Get all unverified email addresses from gms db",
        "operationId": "listUnverifiedEmails",
        "summary": "Get unverified email addresses"
      }
    },
    "/gmsSMTP/verifyAddress": {
      "get": {
        "produces": [
          "text/html"
        ],
        "parameters": [
          {
            "description": "The secure random string in the verification email to identify an email address",
            "in": "query",
            "name": "id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "description": "Use a secure random string in the verification email to verify an email address",
        "operationId": "verifyEmailAddress",
        "summary": "verify an email address"
      }
    },
    "/gmsserver/briefInfo": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/GmsBriefInfo"
            }
          }
        },
        "operationId": "gmsBriefInfo",
        "summary": "Returns orchestrator server information such as used disk hostname, up time, version etc..."
      }
    },
    "/gmsserver/hello": {
      "get": {
        "produces": [
          "text/plain"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "hello",
        "summary": "Returns hello message."
      }
    },
    "/gmsserver/info": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/GmsServerInfo"
            }
          }
        },
        "operationId": "gmsServerInfo",
        "summary": "Returns orchestrator server information such as used disk space, hostname,release etc..."
      }
    },
    "/gmsserver/ping": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/GmsPingInfo"
            }
          }
        },
        "operationId": "gmsPingInfo",
        "summary": "Returns orchestrator server information such as used disk hostname, up time, version etc..."
      }
    },
    "/haGroups": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/HaGroups"
            }
          }
        },
        "operationId": "haGroupsGet",
        "summary": "Returns a collection of appliances paired in a HA configuration"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON object containing collection of appliances paired in a HA configuration",
            "in": "body",
            "name": "haGroups",
            "required": true,
            "schema": {
              "$ref": "#/definitions/HaGroups"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "haGroupsPost",
        "summary": "Modify appliances paired in a HA configuration"
      }
    },
    "/health": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "HealthSummaryGetPostBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/HealthSummaryGetPostBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/HealthSummaryResp"
            }
          }
        },
        "description": "\"appliance-id\" key corresponds to a specific appliance id",
        "operationId": "HealthSummary",
        "summary": "Returns health summary of all appliances"
      }
    },
    "/health/alarmPeriodSummary": {
      "get": {
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of milliseconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "from",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of milliseconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "to",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Appliance ID",
            "in": "query",
            "name": "applianceId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AlarmPeriodSummary"
            }
          }
        },
        "operationId": "applianceAlarmSummary",
        "summary": "Returns summary of alarms for a given appliance for that time period"
      }
    },
    "/health/jitterPeriodSummary": {
      "get": {
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "time",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Overlay id. -1 == all overlays",
            "in": "query",
            "name": "overlayId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Appliance ID",
            "in": "query",
            "name": "applianceId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/JitterPeriodSummary"
            }
          }
        },
        "operationId": "JitterPeriodSummary",
        "summary": "Returns summary of jitter for a given appliance for that time period"
      }
    },
    "/health/latencyPeriodSummary": {
      "get": {
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "time",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Overlay id. -1 == all overlays",
            "in": "query",
            "name": "overlayId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Appliance ID",
            "in": "query",
            "name": "applianceId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/LatencyPeriodSummary"
            }
          }
        },
        "operationId": "LatencyPeriodSummary",
        "summary": "Returns summary of latency for a given appliance for that time period"
      }
    },
    "/health/lossPeriodSummary": {
      "get": {
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "time",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Overlay id. -1 == all overlays",
            "in": "query",
            "name": "overlayId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Appliance ID",
            "in": "query",
            "name": "applianceId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/LossPeriodSummary"
            }
          }
        },
        "operationId": "LossPeriodSummary",
        "summary": "Returns summary of loss for a given appliance for that time period"
      }
    },
    "/health/mosPeriodSummary": {
      "get": {
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "time",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Overlay id. -1 == all overlays",
            "in": "query",
            "name": "overlayId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Appliance ID",
            "in": "query",
            "name": "applianceId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/MosPeriodSummary"
            }
          }
        },
        "operationId": "MosPeriodSummary",
        "summary": "Returns summary of mos for a given appliance for that time period"
      }
    },
    "/hostname/{nePk}": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "The appliance's ne pk",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Json object containing the appliance host name",
            "in": "body",
            "name": "hostName",
            "required": true,
            "schema": {
              "$ref": "#/definitions/VxoaHostname"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Change the hostname of a managed appliance",
        "operationId": "applyHostname",
        "summary": "add/updates the gms hostname"
      }
    },
    "/idle/clear": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "IdleTime",
        "summary": "Clear idle time"
      }
    },
    "/idle/increment": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AutoLog"
            }
          }
        },
        "operationId": "IdleTime",
        "summary": "Increment idle time"
      }
    },
    "/ikelessSeedStatus": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/IkelessSeedStatusGetAll"
            }
          }
        },
        "description": "Returns a representation of key status with whether or not the current key is present, its activation status, and an arbitrary seed number. If an appliance has an arbitrary id of 0, it has the same key as orchestrator. If two appliances have 1 and 2 as their arbitrary ids, it means that their keys do not match orchestrator, nor do they match one another's ",
        "operationId": "ikeless",
        "summary": "Get UDP IPSec key status for all appliances"
      }
    },
    "/interfaceLabels/{nePk}": {
      "post": {
        "parameters": [
          {
            "description": "The nePk of the appliance you wish to apply the labels to",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "applyLabelsToAppliance",
        "summary": "Pushes the active interface labels on Orchestrator to appliance"
      }
    },
    "/interfaceState/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "True means to get data from Orchestrator database, and false means to get data from appliance.",
            "in": "query",
            "name": "cached",
            "required": true,
            "type": "boolean"
          },
          {
            "description": "The node Id of the appliance.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ConfigData"
            }
          }
        },
        "operationId": "interfaceState",
        "summary": "Get node configuration data from Orchestrator database or from the specified appliance."
      }
    },
    "/license/nx": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/NXLicenseItem"
              },
              "type": "array"
            }
          }
        },
        "operationId": "licensing",
        "summary": "Retrieves NX licensed appliances"
      }
    },
    "/license/portal/appliance": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/PortalLicenseItem"
              },
              "type": "array"
            }
          }
        },
        "operationId": "licensing",
        "summary": "Retrieves portal licensed appliances"
      }
    },
    "/license/portal/appliance/grant/{nePk}": {
      "post": {
        "parameters": [
          {
            "description": "Appliance primary key",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "grant",
        "summary": "Grant an appliance a base license via Cloud Portal"
      }
    },
    "/license/portal/appliance/license/token/{nePk}": {
      "delete": {
        "parameters": [
          {
            "description": "Appliance primary key",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Used after revoking an appliance. \n Warning: This will stop the appliance from passing traffic immediately.",
        "operationId": "deleteLicenseToken",
        "summary": "Delete an appliance's license token via the appliance"
      }
    },
    "/license/portal/appliance/revoke/{nePk}": {
      "post": {
        "parameters": [
          {
            "description": "Appliance primary key",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "grant",
        "summary": "Revoke an appliance a base license via Cloud Portal"
      }
    },
    "/license/portal/ec/{nePk}": {
      "post": {
        "parameters": [
          {
            "description": "Appliance primary key",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Appliance boost and plus information",
            "in": "body",
            "name": "applianceInfo",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ECPostData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ECPostData"
            }
          }
        },
        "operationId": "licensing",
        "summary": "Changes appliance boost and plus settings"
      }
    },
    "/license/portal/summary": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/PortalLicenseSummary"
            }
          }
        },
        "operationId": "licensing",
        "summary": "Retrieves summary of portal licensed appliances"
      }
    },
    "/license/vx": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/VXLicenseItem"
              },
              "type": "array"
            }
          }
        },
        "operationId": "licensing",
        "summary": "Retrieves VX licensed appliances"
      }
    },
    "/linkIntegrityTest/run": {
      "post": {
        "parameters": [
          {
            "description": "JSON object that contains the setups for link integrity test.",
            "in": "body",
            "name": "LinkIntegrityTestRun",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LinkIntegrityTestRun"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Internal background task key of the link integrity test that has been started."
          }
        },
        "description": "This API allows you to start link integrity test between two appliances using desired test program.",
        "operationId": "link integrity test run",
        "summary": "POST operation to start link integrity test between two appliances."
      }
    },
    "/linkIntegrityTest/status/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Internal ID of the appliance from which you want to retrieve status information.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/LinkIntegrityStatus"
            }
          }
        },
        "operationId": "linkIntegrityStatus",
        "summary": "Operation to retrieve current link integrity test status for desired appliance."
      }
    },
    "/location/addressToLocation": {
      "get": {
        "parameters": [
          {
            "description": "A string that represents the address to query",
            "in": "path",
            "name": "address",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/LocationObject"
              },
              "type": "array"
            }
          }
        },
        "description": "Lookup the latitude and longitude of an address. It will return an array of locations that match the object, in the order of the locations that match the address the best. So if you're looking for the best match, you should use the first element in the array.",
        "operationId": "addressLookup",
        "summary": "Lookup the latitude,longitude of an address"
      }
    },
    "/logging/{neId}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "If true, get settings from gmsdb, otherwise get from appliance.",
            "in": "query",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/LoggingSettings"
            }
          }
        },
        "description": "Returned data is an object, contains logging remote and config settings.",
        "operationId": "getLoggingSettings",
        "summary": "Get logging settings form appliance or gmsdb"
      }
    },
    "/loginSessions": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/SessionGetItem"
              },
              "type": "array"
            }
          }
        },
        "operationId": "sessions",
        "summary": "Returns all the current sessions"
      }
    },
    "/maintenanceMode": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/MaintenanceModeData"
            }
          }
        },
        "description": "Includes pause orchestration list and suppress alarm list.",
        "operationId": "GetMaintenanceMode",
        "summary": "Get maintenance mode appliances"
      },
      "post": {
        "produces": [
          "text/html"
        ],
        "parameters": [
          {
            "description": "Maintenance Mode Configuration",
            "in": "body",
            "name": "MaintenanceModePostBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MaintenanceModePostBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "description": "Includes pause orchestration list and suppress alarm list.",
        "operationId": "SetMaintenanceMode",
        "summary": "Set maintenance mode for appliances"
      }
    },
    "/maps/deleteUploadedMap": {
      "post": {
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "description": "name of file to be deleted",
            "in": "body",
            "name": "imageName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "deleteUploadedMap",
        "summary": "Delete certain uploaded map"
      }
    },
    "/maps/getUploadedMaps": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "getUploadedMaps",
        "summary": "Get list of uploaded maps"
      }
    },
    "/multicast/config/{neId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/multicastConfigModel"
            }
          }
        },
        "operationId": "multicastConfigGet",
        "summary": "Get multicast config info on the appliance"
      }
    },
    "/multicast/enable/{neId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/multicastEnableModel"
            }
          }
        },
        "operationId": "multicastEnableGet",
        "summary": "Get multicast enabled info on the appliance"
      }
    },
    "/multicast/state/interfaces/{neId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/multicastInterfaceState"
            }
          }
        },
        "operationId": "multicastInterfaceStateGet",
        "summary": "Get multicast interface state info on the appliance"
      }
    },
    "/multicast/state/neighbors/{neId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/multicastNeighborState"
            }
          }
        },
        "operationId": "multicastNeighborStateGet",
        "summary": "Get multicast neighbor state  info on the appliance"
      }
    },
    "/multicast/state/routes/{neId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/multicastRouteState"
            }
          }
        },
        "operationId": "multicastRouteStateGet",
        "summary": "Get multicast route state  info on the appliance"
      }
    },
    "/nat/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/BranchNat"
            }
          }
        },
        "operationId": "getAllNat",
        "summary": "Returns all NAT Config"
      }
    },
    "/nat/{neId}/maps": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/BranchNatMaps"
            }
          }
        },
        "description": "Sample response: \n {\"map1\":{\"prio\":{\"10\":{\"dir\":\"outbound\",\"enable\":true,\"comment\":\"\",\"gms_marked\":false,\"match\":{\"intf\":\"lan0\",\"src_subnet\":\"10.16.112.0/24\",\"dst_subnet\":\"10.16.55.0/24\"},\"set\":{\"trans_src\":\"1.1.1.0/24\",\"trans_dst\":\"10.16.112.0/24\"}},\"20\":{\"dir\":\"inbound\",\"enable\":true,\"comment\":\"\",\"gms_marked\":false,\"match\":{\"intf\":\"lan1\",\"dst_subnet\":\"100.100.0.0/24\"},\"set\":{\"trans_dst\":\"100.100.100.0/24\"}}}}}",
        "operationId": "branchNatMapsGet",
        "summary": "Get NAT Maps"
      }
    },
    "/nat/{neId}/natPools": {
      "get": {
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/NATPools"
            }
          }
        },
        "operationId": "getAllNatPools",
        "summary": "Returns all NAT Pools"
      }
    },
    "/netFlow/{neId}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "If true, get data from gmsdb, otherwise get from appliance.",
            "in": "query",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/NetFlowData"
            }
          }
        },
        "description": "Returned data is an object and contains the following data: active_timeout (NetFlow), ipfix_tmplt_rfrsh_t (IPFIX), port1, if_wan_tx, enable, ipaddr1, if_lan_rx, if_lan_tx, ipaddr2, if_wan_rx and port2, collector_type1, collector_type2",
        "operationId": "getNetFlowData",
        "summary": "Get flow export data from appliance or gmsdb"
      }
    },
    "/networkMemory": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON object containing list of appliance keys",
            "in": "body",
            "name": "ApplianceKeys",
            "required": true,
            "schema": {
              "$ref": "#/definitions/EraseNmPost"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "EraseNmPost",
        "summary": "Erase Network Memory on one or more appliances."
      }
    },
    "/notification": {
      "delete": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Remove the message of notification banner.",
        "operationId": "delNotification",
        "summary": "Remove the message of notification banner."
      },
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/NotificationGet"
              },
              "type": "array"
            }
          }
        },
        "description": "Get the message of notification banner.",
        "operationId": "getNotification",
        "summary": "Get the message of notification banner."
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "NotificationConfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NotificationConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Set the message of notification banner.",
        "operationId": "postNotification",
        "summary": "Add or update the message of notification banner."
      }
    },
    "/ospf/config/interfaces/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Interfaces"
            }
          }
        },
        "operationId": "GetInterfaceConfigDta",
        "summary": "Get OSPF interfaces configuration data."
      }
    },
    "/ospf/config/system/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/OSPFSystemConfig"
            }
          }
        },
        "operationId": "GetOSPFSystemConfig",
        "summary": "Get appliance's OSPF system level configuration data."
      }
    },
    "/ospf/state/interfaces/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/OSPFInterfaceStateResp"
            }
          }
        },
        "operationId": "OSPFInterfaceStateObj",
        "summary": "Gets the state of the OSPF interfaces."
      }
    },
    "/ospf/state/neighbors/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/OSPFNeighborsStateResp"
            }
          }
        },
        "operationId": "OSPFNeighborsStateObj",
        "summary": "Gets the state of the OSPF neighbors."
      }
    },
    "/ospf/state/system/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/OSPFStateObj"
            }
          }
        },
        "operationId": "OSPFStateObj",
        "summary": "Gets the state of the OSPF."
      }
    },
    "/overlayManagerProperties": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/OverlayManagerProperties"
            }
          }
        },
        "operationId": "getOverlayMngProps",
        "summary": "Get the overlay manager properties in the Orchestrator."
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "description": "Json object containing overlay manager properties.",
            "in": "body",
            "name": "OverlayManagerProperties",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OverlayManagerPropertiesPost"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "setOverlayMngProps",
        "summary": "Set the overlay manager properties in the Orchestrator."
      }
    },
    "/portForwarding/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Ne Id of the VXOA to get",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/PortForwardingEntry"
              },
              "type": "array"
            }
          }
        },
        "description": "Get port forwarding rules on a VXOA.",
        "operationId": "portForwardingGet",
        "summary": "Get port forwarding rules on a VXOA."
      }
    },
    "/portProfiles/config": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/portProfilesGet"
              },
              "type": "array"
            }
          }
        },
        "operationId": "portProfilesGet",
        "summary": "Get a list of all Deployment Profile templates"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "description": "JSON object containing Deployment Profile template configuration data",
            "in": "body",
            "name": "portProfilesPost",
            "required": true,
            "schema": {
              "$ref": "#/definitions/portProfilesPost"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "portProfilesPost",
        "summary": "Create a new Deployment Profile template"
      }
    },
    "/portProfiles/config/{portProfileId}": {
      "delete": {
        "parameters": [
          {
            "description": "System generated unique identifier for the Deployment Profile",
            "in": "path",
            "name": "portProfileId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "portProfilesDelete",
        "summary": "Delete a Deployment Profile template matching the id"
      },
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "System generated unique identifier for the Deployment Profile",
            "in": "path",
            "name": "portProfileId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/portProfilesConfig"
            }
          }
        },
        "operationId": "portProfilesGet",
        "summary": "Get a Deployment Profile template matching the id"
      },
      "put": {
        "parameters": [
          {
            "description": "System generated unique identifier for the Deployment Profile",
            "in": "path",
            "name": "portProfileId",
            "required": true,
            "type": "string"
          },
          {
            "description": "JSON object containing Deployment Profile template configuration data",
            "in": "body",
            "name": "portProfilesPost",
            "required": true,
            "schema": {
              "$ref": "#/definitions/portProfilesPost"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "portProfilesPut",
        "summary": "Update a Deployment Profile template matching the id"
      }
    },
    "/portProfiles/isLabelInUse": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Unique id for interface label",
            "in": "path",
            "name": "labelId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Enum to donate LAN/WAN side label. Valid values (lan or wan)",
            "enum": [
              "lan",
              "wan"
            ],
            "in": "path",
            "name": "labelSide",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/portProfilesLabelInUseGetResp"
            }
          }
        },
        "operationId": "portProfilesLabelInUseGet",
        "summary": "Check if an interface label is in use by any of the existing deployment profiles"
      }
    },
    "/rbac/asset": {
      "get": {
        "parameters": [
          {
            "description": "To get assigned appliance access group / asset provide assigned = true; Otherwise it will return list of all appliance access groups / assets",
            "in": "query",
            "name": "assigned",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/allApplianceAccessConfigs"
            }
          }
        },
        "operationId": "getAllApplianceAccessGroups",
        "summary": "Get all appliance access groups / assets"
      },
      "post": {
        "parameters": [
          {
            "description": "Either applianceGroups or applianceRegions should be empty (not null).",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/accessConfigMap"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "createOrUpdateApplianceAccessGroup",
        "summary": "Create or update appliance access group / asset."
      }
    },
    "/rbac/asset/{applianceAccessGroupName}": {
      "delete": {
        "parameters": [
          {
            "description": "appliance access group/asset name",
            "in": "path",
            "name": "applianceAccessGroupName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "deleteApplianceAccessGroupByName",
        "summary": "Delete appliance access group / asset by name"
      },
      "get": {
        "parameters": [
          {
            "description": "appliance access group/asset name",
            "in": "path",
            "name": "applianceAccessGroupName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/applianceAccess"
            }
          }
        },
        "operationId": "getApplianceAccessGroupByName",
        "summary": "Get appliance access group / asset by name"
      }
    },
    "/rbac/assignment": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/userAccessCustomization"
              },
              "type": "array"
            }
          }
        },
        "operationId": "getAllRbacAssignments",
        "summary": "Get all rbac assignments"
      },
      "post": {
        "parameters": [
          {
            "description": "If you do not want to assign asset or roles to a user, then send 'null' value for the respective property.",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/userAccessCustomization"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "createOrUpdateRbacAssignment",
        "summary": "Create or update rbacAssignment."
      }
    },
    "/rbac/assignment/{username}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "username",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "deleteRbacAssignment",
        "summary": "Delete rbacAssignment by username"
      },
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "username",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/userAccessCustomization"
            }
          }
        },
        "operationId": "getRbacAssignmentByUsername",
        "summary": "Get rbacAssignment by username"
      }
    },
    "/rbac/role": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/RoleMap"
            }
          }
        },
        "operationId": "getAllRoles",
        "summary": "Get all roles."
      },
      "post": {
        "parameters": [
          {
            "description": "menuTypeItems can not be null or empty",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RoleMap"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "saveRole",
        "summary": "Create role or Update existing role."
      }
    },
    "/rbac/role/menuAssigned": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/MenuMap"
            }
          }
        },
        "description": "It will return no data if user is not customized",
        "operationId": "getAssignedMenus",
        "summary": "Get list of accessible menus"
      }
    },
    "/rbac/role/{roleName}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "roleName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "deleteRoleByRoleName",
        "summary": "Delete role By name. If role is assigned to one or more users then API will return HTTP 423"
      },
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "roleName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Role"
            }
          }
        },
        "operationId": "getRoleByRoleName",
        "summary": "Get role by name if exists"
      }
    },
    "/reachability/appliance/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ReachabiltyAppliance"
            }
          }
        },
        "description": "Returned data is an object, each key is IP of the appliance, each value is an object of the reachability status. Each the reachability status contains 'rest', 'ssh', 'https' and 'webSocket'. ",
        "operationId": "reachabilityFromAppliance",
        "summary": "Get the reachability status from the appliance"
      }
    },
    "/reachability/gms/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ReachabilityGMS"
            }
          }
        },
        "description": "Returned data is an object. Each the reachability status contains 'id', 'userName', 'state', 'neId', 'hostName', 'actualWebProtocolType' and 'unsavedChanges'. ",
        "operationId": "reachabilityFromGMS",
        "summary": "Get the reachability status from the Orchestrator"
      }
    },
    "/realtimeStats/{nePk}": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance primary key",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RealTimeStats"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Tunnel stats: Set 'type' to 'tunnel'. Set 'name' to one of the tunnel names or 'pass-through' or 'pass-through-unshaped'. 'filter' is not used for tunnel statistics. <br/> TrafficType stats: Set the 'type' to 'trafficType' to retrieve two aggregate real-time stats: optimized, all-traffic. For optimized, set 'name' to '0' and for all-traffic, set 'name' to '3'. 'filter' is not used.<br/>Application stats: Set 'type' to 'app'. Set 'name' to application name. 'filter' is required.<br/>DSCP stats: Set 'type' to 'dscp', set name to one of DSCP values from '0' to '63'. 'filter' is required.(Possible 'filter' values are '0' for optimized_traffic,'1' for pass_through_shaped,'2' for pass_through_unshaped,'3' for all_traffic)<br/>MOS stats: Set 'name' to tunnel id, set 'type' to tunnel.<br/>Traffic Class Stats: set 'type' to 'trafficClass', set 'name' to one of traffic classes from '0' to '9'. 'filter' is required.<br/>Flow stats: set type to 'flow', name to '0' for TCP accelerated, '1' for TCP unaccelerated and '2' for non-TCP flows. 'filter' is required.(Possible 'filter' values are '0' for optimized_traffic,'1' for pass_through_shaped,'2' for pass_through_unshaped,'3' for all_traffic)<br/>Shaper stats: Set 'type' to 'shaper'. Set 'name' to one of traffic classes from '0' to '9'.'filter' to traffic direction('0' for Outbound and '1' for Inbound). <br/>Drops stats: Set 'type' to 'drops'. Set 'name' to empty string.<br/>Interface stats: Set 'type' to 'interface'. Set 'name' to interface name.Set 'filter' to traffic type.(Possible 'filter' values are '0' for optimized_traffic,'1' for pass_through_shaped,'2' for pass_through_unshaped,'3' for all_traffic)<br/><b>Important: Appliances store per second statistics for 3 seconds. You must poll at a frequency faster than 3 seconds to make sure to not have gaps in the results. The result format for all statistics looks like: '{'nameofstat': [time, value], [time, value], [time, value]}' where you get statistics for last three seconds.",
        "operationId": "realtime stats",
        "summary": "Get per second statistics from a VXOA appliance"
      }
    },
    "/regions": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/RegionModel"
            }
          }
        },
        "operationId": "regionGet",
        "summary": "Get all regions"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "Request Body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RegionPostModel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "regionPost",
        "summary": "Create region"
      }
    },
    "/regions/appliances": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Get all region association",
        "operationId": "regionAssociationGET",
        "summary": "Get all region association"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Map of appliance nePK and regionId, example: {'0.NE':'1', '1.NE':'3'}",
            "in": "body",
            "name": "Request Body",
            "required": true,
            "schema": {}
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "regionAssociationPost",
        "summary": "Create region association"
      }
    },
    "/regions/appliances/nePk/{nePK}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "NePK",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/RegionAssociationGETModel"
            }
          }
        },
        "operationId": "regionAssociationGET",
        "summary": "Get region association by nePK"
      }
    },
    "/regions/appliances/regionId/{regionId}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "regionId",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/RegionAssociationGETModel"
            }
          }
        },
        "operationId": "regionAssociationGET",
        "summary": "Get region association by region ID"
      }
    },
    "/regions/appliances/{nePK}": {
      "put": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "NePK",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "Request Body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RegionAssociationPutModel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this API to update region association",
        "operationId": "regionAssociationPut",
        "summary": "Update region association"
      }
    },
    "/regions/{regionId}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "regionId",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this API to delete region",
        "operationId": "regionDelete",
        "summary": "Delete region by regionId"
      },
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "regionId",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/RegionModel"
            }
          }
        },
        "operationId": "regionSingleGet",
        "summary": "Get region by regionId"
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "regionId",
            "required": true,
            "type": "integer"
          },
          {
            "in": "body",
            "name": "Request Body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RegionPostModel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Use this API to change region name",
        "operationId": "regionPut",
        "summary": "Update regions"
      }
    },
    "/release": {
      "get": {
        "parameters": [
          {
            "description": "If filter is true it returns only new releases of orchestrator and vxoa",
            "in": "query",
            "name": "filter",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ReleaseInfo"
            }
          }
        },
        "operationId": "releases",
        "summary": "Gets all the Releases for orchestrator and vxoa"
      }
    },
    "/release/notifications": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/ReleaseNotification"
              },
              "type": "array"
            }
          }
        },
        "description": "This API will return all the notifications that are meant to be shown in Orchestrator. This means the notification is new, it's 'remind me' date is past, and it has not been dismissed.",
        "operationId": "releaseNotifications",
        "summary": "Get release notifications"
      }
    },
    "/release/notifications/delay/{version}": {
      "post": {
        "parameters": [
          {
            "description": "The version of the release the notification is for",
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string"
          },
          {
            "description": "The number of hours to delay the notification by",
            "in": "body",
            "name": "Delay request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DelayNotificationRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Delay the notificaiton by a number of hours.",
        "operationId": "delayReleaseNotification",
        "summary": "Delay a release notification"
      }
    },
    "/release/notifications/dismiss/{version}": {
      "post": {
        "parameters": [
          {
            "description": "The version of the release the notification is for",
            "in": "path",
            "name": "version",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Dismiss a release, so it's no longer shown to the user.",
        "operationId": "dismissReleaseNotification",
        "summary": "Dismiss a release notification"
      }
    },
    "/remoteLogReceiver": {
      "get": {
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          }
        },
        "description": "Remote log receiver configurations are returned in an array of objects.\n \n Response body: Array of Config Objects.\n \nHTTP(S)ReceiverConfig:\n {\n\"id\": integer,\n\"receiverType\": integer,\n\"enabled\": boolean,\n\"name\": string,\n\"logType\": integer,\n\"url\": string\n}\n \nKAFKAProducerConfig:\n {\n\"id\": integer,\n\"receiverType\": integer,\n\"enabled\": boolean,\n\"name\": string,\n\"logType\": integer,\n\"topic\": string,\n\"brokers\": string,\n\"acks\": string,\n\"retries\": integer,\n\"batchSize\": integer,\n\"bufferSize\": integer,\n\"lingerTime\": integer\n}\n \nSYSLOGReceiverConfig:\n {\n\"id\": integer,\n\"receiverType\": integer,\n\"enabled\": boolean,\n\"name\": string,\n\"logType\": integer,\n\"hostname\": string,\n\"port\": integer,\n\"protocol\": integer,\n\"customData\": string,\n\"auditFacility\": integer,\n\"alarmFacility\": integer,\n\"auditErrorSeverity\": integer\n \"auditDebugSeverity\": integer,\n\"auditInfoSeverity\": integer,\n\"alarmCriticalSeverity\": integer,\n\"alarmMajorSeverity\": integer,\n\"alarmMinorSeverity\": integer,\n\"alarmWarningSeverity\": integer\n}\n",
        "operationId": "RemoteLogReceiverGet",
        "summary": "To get all remote log receiver configurations"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Post body is an array of objects WITHOUT id field",
            "in": "body",
            "name": "RequestBody",
            "required": true,
            "type": "object"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Invalid data"
          }
        },
        "description": "Post body is an array of objects WITHOUT id field.\n [\n{\n\"receiverType\": 0,\n\"enabled\": true,\n\"name\": \"HTTP_SERVER01\",\n\"logType\": 0,\n\"url\": \"www.example.com\"\n}\n]",
        "operationId": "RemoteLogReceiverAdd",
        "summary": "Add remote log receiver(s) with configuration provided in the request body"
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "PUT request body is an array of objects with valid receiver ids",
            "in": "body",
            "name": "RequestBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Array of objects"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Invalid data"
          }
        },
        "description": "PUT request body is an array of objects with valid receiver ids.\n [\n{\n \"id\": 0,\n \"receiverType\": 0,\n\"enabled\": true,\n\"name\": \"HTTP_SERVER01\",\n\"logType\": 0,\n\"url\": \"www.example.com\"\n}\n]",
        "operationId": "RemoteLogReceiverPut",
        "summary": "Update remote log receiver(s) with data provided in the request body"
      }
    },
    "/remoteLogReceiver/{receiverId}": {
      "delete": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "The valid id of the receiver to be deleted.",
            "in": "path",
            "name": "receiverId",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          }
        },
        "operationId": "RemoteLogReceiverDelete",
        "summary": "Delete a remote log receiver"
      }
    },
    "/remoteLogReceiver/{receiverId}/subscribe": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "The valid id of the receiver.",
            "in": "path",
            "name": "receiverId",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Parameter for fetch specific log message. The id field is an array of strings, item in the array can be a single number or a range, for example: id: [\"1\", \"3\", \"4-6\"], messages with id 1, 3, 4, 5, 6 will be sent.",
            "in": "body",
            "name": "fetchingParam",
            "required": true,
            "schema": {
              "$ref": "#/definitions/fetchingParam"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          }
        },
        "operationId": "RemoteLogReceiverSubscribe",
        "summary": "To query specific log(s) with log type and sequence id(s) provided in the request body"
      }
    },
    "/resolver/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DNS"
            }
          }
        },
        "operationId": "dns",
        "summary": "Get the current DNS IP address and domain names configured for an appliance."
      }
    },
    "/restApiConfig": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/restApiConfig"
            }
          }
        },
        "description": "Get the REST API config",
        "operationId": "restApiConfigGet",
        "summary": "Get the REST API config"
      },
      "post": {
        "parameters": [
          {
            "description": "Set the REST API config",
            "in": "body",
            "name": "restApiConfigPost",
            "required": true,
            "schema": {
              "$ref": "#/definitions/restApiConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Set the REST API config",
        "operationId": "restApiConfigPost",
        "summary": "Set the REST API config"
      }
    },
    "/restRequestTimeStats/summary": {
      "get": {
        "parameters": [
          {
            "description": "nePk of the appliance, 'all' means all appliances",
            "in": "query",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Base resource of the appliance to sent to, 'all' means all resources",
            "in": "query",
            "name": "resource",
            "required": true,
            "type": "string"
          },
          {
            "description": "Through what web socket the requests were sent, true -- portal web socket, false -- direct web socket",
            "in": "query",
            "name": "portalWS",
            "required": true,
            "type": "boolean"
          },
          {
            "description": "Whether the requests timedout",
            "in": "query",
            "name": "timedout",
            "required": true,
            "type": "boolean"
          },
          {
            "description": "The minimum epoch time when the requests were sent",
            "in": "query",
            "name": "from",
            "required": true,
            "type": "integer"
          },
          {
            "description": "The maximum epoch time when the requests were sent, 0 stands for till now",
            "in": "query",
            "name": "to",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/RestRequestTimeStatsSummary"
              },
              "type": "array"
            }
          }
        },
        "description": "The summary is grouped by nepk, resource and portalWS",
        "operationId": "getRestRequestTimeStatsSummary",
        "summary": "Returns summary of time used info of rest requests sent to appliances"
      }
    },
    "/restRequestTimeStats/{nePk}/%2F{resource}/{portalWS}/{method}": {
      "get": {
        "parameters": [
          {
            "description": "nePk of the appliance",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Base resource of the appliance to sent to, for example /webconfig should just be typed webconfig here",
            "in": "path",
            "name": "resource",
            "required": true,
            "type": "string"
          },
          {
            "description": "Through what web socket this request was sent, true -- portal web socket, false -- direct web socket",
            "in": "path",
            "name": "portalWS",
            "required": true,
            "type": "boolean"
          },
          {
            "default": "GET",
            "description": "The request method",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "DELETE"
            ],
            "in": "path",
            "name": "method",
            "required": true,
            "type": "string"
          },
          {
            "description": "The minimum epoch time when the requests were sent",
            "in": "query",
            "name": "from",
            "required": true,
            "type": "integer"
          },
          {
            "description": "The maximum epoch time when the requests were sent, 0 stands for till now",
            "in": "query",
            "name": "to",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/RestRequestTimeStatsDetails"
              },
              "type": "array"
            }
          }
        },
        "operationId": "getRestRequestTimeStatsDetails",
        "summary": "The time used details of all rest requests sent to an appliance's specific resource through portal web socket or web socket"
      }
    },
    "/rmaWizard/apply/{nePk}": {
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "ApplyRmaWizard",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplyRmaWizard"
            }
          },
          {
            "description": "The nePk of the appliance to be replaced",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplyRmaWizard"
            }
          }
        },
        "description": "notes",
        "operationId": "applyRmaWizard",
        "summary": "Applies the RMA wizard"
      }
    },
    "/saMap/{nePk}": {
      "get": {
        "parameters": [
          {
            "description": "Appliance nePk",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/saMapObject"
            }
          }
        },
        "description": "Get built-in policies from appliance by given appliance key(nePk)",
        "operationId": "Samap",
        "summary": "Get built-in policy information"
      }
    },
    "/securityMaps/{neId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SecurityMaps"
            }
          }
        },
        "description": "Sample response: \n { \"map1\": { \"self\": \"map1\", \"20_21\": { \"self\": \"20_21\", \"prio\": { \"1000\": { \"match\": { \"acl\": \"\", \"either_dns\": \"*google.com\" }, \"self\": 1000, \"misc\": { \"rule\": \"enable\", \"logging\": \"disable\", \"logging_priority\": \"0\" }, \"comment\": \"\", \"gms_marked\": false, \"set\": { \"action\": \"allow\" } }, \"65535\": { \"match\": { \"acl\": \"\" }, \"self\": 65535, \"misc\": { \"rule\": \"enable\", \"logging\": \"disable\", \"logging_priority\": \"0\" }, \"comment\": \"\", \"gms_marked\": false, \"set\": { \"action\": \"deny\" } } } } }}",
        "operationId": "securityMaps",
        "summary": "Get Security Policies configured on the appliance"
      }
    },
    "/session/activeSessions": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/activeSessionsItems"
              },
              "type": "array"
            }
          }
        },
        "operationId": "sessions",
        "summary": "Returns all the current active sessions"
      }
    },
    "/snmp/{nePk}": {
      "get": {
        "parameters": [
          {
            "description": "the primary key of appliance",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SnmpItem"
            }
          }
        },
        "operationId": "snmpGet",
        "summary": "Get SNMP information."
      }
    },
    "/spPortal/account/key/changeCount": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/spPortalAccountKeyChangeCountResp"
            }
          }
        },
        "description": "This API contacts Portal to get the number of times this account key has been changed. Requires Portal connectivity.",
        "operationId": "spPortalAccountKeyChangeCount",
        "summary": "Number of times account key has been changed"
      }
    },
    "/spPortal/account/key/changeStatus": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/spPortalAccountKeyChangeStatusResp"
            }
          }
        },
        "operationId": "spPortalAccountKeyChangeStatus",
        "summary": "Current account key change status"
      }
    },
    "/spPortal/account/key/generate": {
      "put": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/spPortalAccountKeyGeneratePutResp"
            }
          }
        },
        "description": "Requires Portal connectivity.",
        "operationId": "spPortalAccountKeyGeneratePut",
        "summary": "Request Portal to generate a new account key"
      }
    },
    "/spPortal/account/license/appliance/ecsp/assign": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON object containing appliance to license id mappings",
            "in": "body",
            "name": "spPortalECSPLicenseAssign",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SpPortalECSPLicenseAssign"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "spPortalECSPLicenseAssign",
        "summary": "Assign EC-SP licenses on Portal"
      }
    },
    "/spPortal/account/license/appliance/ecsp/status": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/SpPortalECSPLicense"
              },
              "type": "array"
            }
          }
        },
        "operationId": "spPortalECSPLicensesGet",
        "summary": "Get EC-SP licenses from Portal"
      }
    },
    "/spPortal/account/license/appliance/ecsp/unassign": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON object containing license ids to be unassigned",
            "in": "body",
            "name": "spPortalECSPLicenseUnassign",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SpPortalECSPLicenseUnassign"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "spPortalECSPLicenseUnassign",
        "summary": "Unassign EC-SP licenses on Portal"
      }
    },
    "/spPortal/account/license/feature": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/SpPortalAccountLicenseFeature"
              },
              "type": "array"
            }
          }
        },
        "operationId": "spPortalAccountLicenseFeatureGet",
        "summary": "Get account license feature from Portal"
      }
    },
    "/spPortal/account/license/type": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SpPortalAccountLicenseType"
            }
          }
        },
        "operationId": "spPortalAccountLicenseTypeGet",
        "summary": "Get account license type from Portal"
      }
    },
    "/spPortal/account/oldKey": {
      "delete": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Acts as \"commit\" for a previous account key change. Make sure all managed appliances have the new account key before calling this.\n Successful response code is 204: no content. Requires Portal connectivity.",
        "operationId": "spPortalDeleteOldKey",
        "summary": "Delete old account key from Portal"
      }
    },
    "/spPortal/applianceWSStatus/{neId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "format": "int64",
            "name": "neId",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/checkApplianceReachabilityUsingWSResponse"
            }
          }
        },
        "description": "Returns status of orchestrator > portal > appliance websocket and orchestrator > appliance websocket connections. Must provide valid neId.",
        "operationId": "checkApplianceReachabilityUsingWSGet",
        "summary": "Test if appliance is reachable via websocket from orchestrator"
      }
    },
    "/spPortal/applicationTags": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/appGroupTmp"
            }
          }
        },
        "description": "Returns a collection of application groups",
        "operationId": "appGroupTmpGet",
        "summary": "Get application groups from portal"
      }
    },
    "/spPortal/applicationTags/info": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/tmpHashCode"
            }
          }
        },
        "description": "Returns a hash code for application groups data. It is used as version number.",
        "operationId": "appGroupTmpHashCodeGet",
        "summary": "Get the hash code for application groups data from portal"
      }
    },
    "/spPortal/compoundClassification": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/compoundTmp"
            }
          }
        },
        "description": "Returns a collection of application definition",
        "operationId": "compoundTmpGet",
        "summary": "Get application definition for Compound data from portal"
      }
    },
    "/spPortal/compoundClassification/info": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/tmpHashCode"
            }
          }
        },
        "description": "Returns a hash code for application definition data. It is used as version number.",
        "operationId": "compoundTmpHashCodeGet",
        "summary": "Get the hash code for application definition data for Compound data from portal"
      }
    },
    "/spPortal/config": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SpPortalConfig"
            }
          }
        },
        "operationId": "spPortalConfigGet",
        "summary": "Get Silver Peak Cloud Portal registration information"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "SpPortalConfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SpPortalConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "spPortalConfigPost",
        "summary": "Post Silver Peak Cloud Portal registration information"
      }
    },
    "/spPortal/connectivity": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SpPortalConnectivityGet"
            }
          }
        },
        "description": "This API returns enums for portal connectivity status. 0: Unable to connect 1: Connected 2: Connecting",
        "operationId": "connectivityGet",
        "summary": "Get Orchestrator to Silver Peak Portal connectivity status"
      }
    },
    "/spPortal/createCaseWithPortal": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON object containing case information that will be used to create a case.",
            "in": "body",
            "name": "spPortalCreateCaseWithPortal",
            "required": true,
            "schema": {
              "$ref": "#/definitions/spPortalCreateCaseWithPortal"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Create a case for the Orchestrator or an appliance.\n\n caseEmail: If Orchestrator is not registered to Portal, a valid Silver Peak support account email address is required in order to create a case.\n orchSerialNum: For Orchestrators, leave this field empty (\"\"). For appliances, enter the nePk (E.g. \"0.NE\"). The corresponding serial number will then be retrieved based on these inputs.",
        "operationId": "spPortalCreateCasePost",
        "summary": "Create a case"
      }
    },
    "/spPortal/dnsClassification": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/DnsObj"
              },
              "type": "array"
            }
          }
        },
        "description": "Returns an array of application definition",
        "operationId": "dnsTmpGet",
        "summary": "Get application definition for Domain Name from portal"
      }
    },
    "/spPortal/dnsClassification/info": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/tmpHashCode"
            }
          }
        },
        "description": "Returns a hash code for application definition data. It is used as version number.",
        "operationId": "dnsTmpHashCodeGet",
        "summary": "Get the hash code for application definition data for Domain Name from portal"
      }
    },
    "/spPortal/internetDb/geoLocateIp": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON object containing array of ip's to be geo located",
            "in": "body",
            "name": "GeoLocationPostBody",
            "required": true,
            "schema": {
              "items": {
                "type": "integer"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/GeoLocationResponse"
            }
          }
        },
        "description": "Returns a collection of GeoLocationObjects indexed by ip address value. IP addresses should be provided as array of 32-bit integers",
        "operationId": "geoLocationPost",
        "summary": "Get geolocation information for multiple ip's from portal"
      }
    },
    "/spPortal/internetDb/geoLocateIp/{ip}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "IP Address to be geo located in 32-bit integer format",
            "format": "int64",
            "name": "ip",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/GeoLocationResponse"
            }
          }
        },
        "description": "IP address should be provided in 32-bit integer format",
        "operationId": "geoLocationGet",
        "summary": "Get geolocation information for a single ip from portal"
      }
    },
    "/spPortal/internetDb/ipIntelligence": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "start id, start from 0",
            "in": "query",
            "name": "start",
            "required": true,
            "type": "integer"
          },
          {
            "description": "limit number, maximum is 10000",
            "in": "query",
            "name": "limit",
            "required": true,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/IpIntelTmpObj"
              },
              "type": "array"
            }
          }
        },
        "description": "Returns an array of IP intelligence data which starts at start id with a total limit. Start id starts from 0. Maximum limit is 10000.",
        "operationId": "ipIntelligenceTmpGet",
        "summary": "Get application definition data for Address Map from portal"
      }
    },
    "/spPortal/internetDb/ipIntelligence/info": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/tmpTimeStamp"
            }
          }
        },
        "description": "Returns a timestamp for application definition data. It is used as version number.",
        "operationId": "ipIntelligenceTmpTimeGet",
        "summary": "Get the last update time for application definition data for Address Map from portal"
      }
    },
    "/spPortal/internetDb/ipIntelligence/search": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "IPv4 address in 32-bit integer format",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "String filter",
            "in": "query",
            "name": "filter",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/IpIntelTmpObj"
              },
              "type": "array"
            }
          }
        },
        "description": "If provides a valid IPv4 address in 32-bit integer format, it will search through ip. Otherwise it will search by match filter[app name, description, country, organization]. Returns an array of IP intelligence data with top 5000 results only, coz the data may be too large.",
        "operationId": "ipIntelligenceTmpGet",
        "summary": "Search application definition data for Address Map from portal"
      }
    },
    "/spPortal/internetDb/ipIntelligence/total": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "integer"
            }
          }
        },
        "operationId": "ipIntelligenceTmpTotal",
        "summary": "Get count for application definition data for Address Map from portal"
      }
    },
    "/spPortal/internetDb/serviceIdToSaasId": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Wildcard match on country, org, saasAppName",
            "in": "query",
            "name": "matchAny",
            "required": false,
            "type": "string"
          },
          {
            "description": "Wildcard match on org",
            "in": "query",
            "name": "org",
            "required": false,
            "type": "string"
          },
          {
            "description": "Only return these serviceIds. Separate multiple serviceIds with a comma ',' ",
            "in": "query",
            "name": "serviceIds",
            "required": false,
            "type": "string"
          },
          {
            "description": "Return top x matches",
            "in": "query",
            "name": "top",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ServiceIdToSaasIdGet"
            }
          }
        },
        "description": "This API returns collection of service id to service details [serviceId, saasId, country, countryCode, org, saasAppName, displayName, priority] mapping. If no filters are specified this returns top 100 results only coz the data may be too large. You can specify filters to query the dataset.",
        "operationId": "serviceIdToSaasIdGet",
        "summary": "Get service id to service details mapping"
      }
    },
    "/spPortal/internetDb/serviceIdToSaasId/count": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ServiceIdToSaasIdCountGet"
            }
          }
        },
        "operationId": "serviceIdToSaasIdCountGet",
        "summary": "Get count of internet services on this appliance"
      }
    },
    "/spPortal/internetDb/serviceIdToSaasId/countries": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ServiceIdToSaasIdCountriesGet"
            }
          }
        },
        "description": "This API returns collection of service id to country details [serviceId, saasId, country, countryCode, org, saasAppName, displayName, priority] mapping.",
        "operationId": "serviceIdToSaasIdCountriesGet",
        "summary": "Get a list of unique countries in the internet services database"
      }
    },
    "/spPortal/internetDb/serviceIdToSaasId/saasApps": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        },
        "description": "This API returns a list of saas applications",
        "operationId": "serviceIdToSaasIdSaasAppGet",
        "summary": "Get a list of unique saas applications in the internet services database"
      }
    },
    "/spPortal/ipProtocolNumbers": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "type": "object"
              },
              "type": "array"
            }
          }
        },
        "description": "This API returns list of IP Protocol Numbers",
        "operationId": "ipProtocolNumbersGet",
        "summary": "Get IP Protocol Numbers data"
      }
    },
    "/spPortal/meterFlowClassification": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/meterFlowTmp"
            }
          }
        },
        "description": "Returns a collection of application definition",
        "operationId": "meterFlowTmpGet",
        "summary": "Get application definition for Meter Flow from portal"
      }
    },
    "/spPortal/meterFlowClassification/info": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/tmpHashCode"
            }
          }
        },
        "description": "Returns a hash code for application definition data. It is used as version number.",
        "operationId": "meterFlowTmpHashCodeGet",
        "summary": "Get the hash code for application definition data for Meter Flow from portal"
      }
    },
    "/spPortal/portProtocolClassification": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/PortProtocolTmp"
            }
          }
        },
        "description": "Returns a collection of application definition",
        "operationId": "portProtocolTmpGet",
        "summary": "Get application definition for IP Protocol, TCP Port, UDP Port from portal"
      }
    },
    "/spPortal/portProtocolClassification/info": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/tmpHashCode"
            }
          }
        },
        "description": "Returns a hash code for application definition data. It is used as version number.",
        "operationId": "portProtocolTmpHashCodeGet",
        "summary": "Get the hash code for application definition data for IP Protocol, TCP Port, UDP Port from portal"
      }
    },
    "/spPortal/registration": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/PortalRegistrationResponse"
            }
          }
        },
        "operationId": "gmsPortalRegistrationGet",
        "summary": "Get current GMS-Portal registration status"
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/PortalRegistrationResponse"
            }
          }
        },
        "description": "Use this API to reset the GMS-Portal registration state and initiate new Registration cycle. There is no post data required for this API, to edit portal credentials (Account Key, Account Name, Group, Site) use /gmsConfig/spPortal. Registration cycle may take up to two minutes to get an update from Portal, use GET /spPortal/registration to poll.",
        "operationId": "gmsPortalRegistrationPost",
        "summary": "Initiate GMS-Portal Registration"
      }
    },
    "/spPortal/saasClassification": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/saasTmp"
            }
          }
        },
        "description": "Returns a collection of application definition",
        "operationId": "saasTmpGet",
        "summary": "Get application definition for SaaS data from portal"
      }
    },
    "/spPortal/saasClassification/info": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/tmpHashCode"
            }
          }
        },
        "description": "Returns a hash code for application definition data. It is used as version number.",
        "operationId": "saasTmpHashCodeGet",
        "summary": "Get the hash code for application definition data for SaaS data from portal"
      }
    },
    "/spPortal/status": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SpPortalStatusGetResponse"
            }
          }
        },
        "operationId": "spPortalStatusGet",
        "summary": "Debug API to view current status of all Portal related services"
      }
    },
    "/spPortal/tcpUdpPorts": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "object"
            }
          }
        },
        "description": "This API returns list of TCP, UDP ports and their applications",
        "operationId": "tcpUdpPortsGet",
        "summary": "Get TCP/UDP ports data"
      }
    },
    "/spPortal/topSites": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        },
        "description": "This API returns array of top internet sites fetched from Silver Peak Cloud Portal",
        "operationId": "topSitesGet",
        "summary": "Get list of top internet sites"
      }
    },
    "/spPortal/trafficBehavior": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/trafficBehaviorTmp"
            }
          }
        },
        "description": "Returns a collection of traffic behavior configuration and names",
        "operationId": "tbTmpGet",
        "summary": "Get traffic behavior categories from portal"
      }
    },
    "/spPortal/trafficBehavior/info": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/tmpHashCode"
            }
          }
        },
        "description": "Returns a hash code for traffic behavior data. It is used as version number.",
        "operationId": "tbTmpHashCodeGet",
        "summary": "Get the hash code for traffic behavior categories data from portal"
      }
    },
    "/ssl/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Internal Id of the appliance from which you want to retrieve status information",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/sslCertsGet"
            }
          }
        },
        "description": "The schema shows a single SSL certificate object. The return value is a list of SSL certificates keyed by unique hash code value",
        "operationId": "sslCertsGet",
        "summary": "Get all SSL certificates on the appliance"
      }
    },
    "/sslCACertificate/getText": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A JSON object representing CA SSL certificate data",
            "in": "body",
            "name": "sslCACertsFile",
            "required": true,
            "schema": {
              "$ref": "#/definitions/sslCertGetTextPost"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "sslCACertGetTextPost",
        "summary": "This API will take certificate date and return certificate information in text"
      }
    },
    "/sslCACertificate/validation": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A JSON object representing SSL certificate",
            "in": "body",
            "name": "sslCACertValidation",
            "required": true,
            "schema": {
              "$ref": "#/definitions/sslCACertValidation"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "sslCACertValidation",
        "summary": "Validate the SSL CA certificate file."
      }
    },
    "/sslCACertificate/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Internal Id of the appliance from which you want to retrieve status information",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/sslCACertsGet"
            }
          }
        },
        "operationId": "sslCACerts",
        "summary": "Get all CA SSL certificates on the appliance."
      }
    },
    "/sslCertificate/getInfo": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A JSON object representing SSL certificate",
            "in": "body",
            "name": "sslCertGetInfoPost",
            "required": true,
            "schema": {
              "$ref": "#/definitions/sslCertGetInfoPost"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "sslCertGetInfoPost",
        "summary": "This API will take certificate date and return certificate information"
      }
    },
    "/sslCertificate/getText": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A JSON object representing SSL certificate",
            "in": "body",
            "name": "sslCertGetTextPost",
            "required": true,
            "schema": {
              "$ref": "#/definitions/sslCertGetTextPost"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "sslCertGetTextPost",
        "summary": "This API will take certificate date and return certificate information in text"
      }
    },
    "/sslSubstituteCertificate/validation": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A JSON object representing SSL Substitute certificate file",
            "in": "body",
            "name": "sslSubstituteCertValidation",
            "required": true,
            "schema": {
              "$ref": "#/definitions/sslSubstituteCertValidation"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "sslSubstituteCertValidation",
        "summary": "Validate the SSL Substitute certificate"
      }
    },
    "/sslSubstituteCertificate/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "Internal Id of the appliance from which you want to retrieve status information",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/sslSubstituteCertGet"
            }
          }
        },
        "operationId": "sslSubstituteCertGet",
        "summary": "Get all SSL Substitute certificates on the appliance."
      }
    },
    "/stats/aggregate/appliance": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter data for a specific group",
            "in": "query",
            "name": "groupPk",
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplianceAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve appliance aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate tunnel",
        "summary": "Get aggregate appliance stats data filter by query parameters."
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplianceAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve appliance aggregate stats and it's identical to the GET operation on this URL except that you need to pass a request body containing appliance ids that you want to filter on to it. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate tunnel",
        "summary": "Get aggregate appliance stats data filter by query parameters."
      }
    },
    "/stats/aggregate/appliance/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplianceAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve appliance aggregate stats for a single appliance. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate tunnel",
        "summary": "Get aggregate appliance stats data for a single appliance filter by query parameters."
      }
    },
    "/stats/aggregate/application": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter data for a specific group",
            "in": "query",
            "name": "groupPk",
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplicationAggregateStats"
            }
          }
        },
        "deprecated": true,
        "description": "This operation is used to retrieve application aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate application",
        "summary": "Get aggregate application stats data filter by query parameters"
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplicationAggregateStats"
            }
          }
        },
        "deprecated": true,
        "description": "This operation is used to retrieve application aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate application",
        "summary": "Get aggregate application stats data filter by query parameters"
      }
    },
    "/stats/aggregate/application/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplicationAggregateStats"
            }
          }
        },
        "deprecated": true,
        "description": "This operation is used to retrieve application aggregate stats for a single appliance. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate application",
        "summary": "Get aggregate application stats data for a single appliance filter by query parameters"
      }
    },
    "/stats/aggregate/application2": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Filter data for a specific group",
            "in": "query",
            "name": "groupPk",
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "type": "string"
          },
          {
            "description": "Retrieve top 10 applications by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/Application2AggregateStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve application aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate application",
        "summary": "Get aggregate application stats data filter by query parameters"
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "type": "string"
          },
          {
            "description": "Retrieve top 10 applications by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/Application2AggregateStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve application aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate application",
        "summary": "Get aggregate application stats data filter by query parameters"
      }
    },
    "/stats/aggregate/application2/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "type": "string"
          },
          {
            "description": "Retrieve top 10 applications by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/Application2AggregateStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve application aggregate stats for a single appliance. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate application",
        "summary": "Get aggregate application stats data for a single appliance filter by query parameters"
      }
    },
    "/stats/aggregate/boost": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Indicate top x items",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/BoostAggregateStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve boost aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "boost aggregate stats",
        "summary": "Get aggregate boost stats data"
      }
    },
    "/stats/aggregate/boost/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to tunnel with name {tunnelName}",
            "in": "query",
            "name": "tunnelName",
            "type": "string"
          },
          {
            "description": "Indicate top x items",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "When it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/BoostAggregateStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve boost aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "boost aggregate stats",
        "summary": "Get aggregate boost stats data"
      }
    },
    "/stats/aggregate/dns": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Integer value representing whether dns is from source or destination",
            "enum": [
              "0",
              "1"
            ],
            "in": "query",
            "name": "isSource",
            "type": "integer"
          },
          {
            "description": "Filter data for a specific type, where 0 is for 'http', 1 is for 'https', 2 is for 'unassigned' and 3 is for 'others'",
            "in": "query",
            "name": "splitType",
            "type": "integer"
          },
          {
            "description": "No. of rows to return",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "Boolean value indicating whether you want to split aggregate stats by appliance, if true is provided, there will be an extra level of key inside each stats object indicating what appliance the inner stats object belongs to. Default value is null.",
            "in": "query",
            "name": "splitByNe",
            "type": "boolean"
          },
          {
            "description": "Group the data based on this value. Default value is dns.",
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "Group the data based on this value.Integer value represents number of sub-domains. Default value is 2.",
            "in": "query",
            "name": "groupBySubDomains",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/DNSAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve DNS aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "DNS stats aggregate",
        "summary": "Get aggregate dns stats data filter by query parameters."
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Integer value representing whether dns is from source or destination",
            "enum": [
              "0",
              "1"
            ],
            "in": "query",
            "name": "isSource",
            "type": "integer"
          },
          {
            "description": "Filter data for a specific type, where 0 is for 'http', 1 is for 'https', 2 is for 'unassigned' and 3 is for 'others'",
            "in": "query",
            "name": "splitType",
            "type": "integer"
          },
          {
            "description": "No. of rows to return",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "Boolean value indicating whether you want to split aggregate stats by appliance, if true is provided, there will be an extra level of key inside each stats object indicating what appliance the inner stats object belongs to. Default value is null.",
            "in": "query",
            "name": "splitByNe",
            "type": "boolean"
          },
          {
            "description": "Group the data based on this value. Default value is dns.",
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "Group the data based on this value.Integer value represents number of sub-domains. Default value is 2.",
            "in": "query",
            "name": "groupBySubDomains",
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/DNSAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve dns aggregate stats and it's identical to the GET operation on this URL except that you need to pass a request body containing appliance ids that you want to filter on to it. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate dns",
        "summary": "Get aggregate dns stats data filter by query parameters."
      }
    },
    "/stats/aggregate/dns/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Integer value representing whether dns is from source or destination",
            "enum": [
              "0",
              "1"
            ],
            "in": "query",
            "name": "isSource",
            "type": "integer"
          },
          {
            "description": "Filter data for a specific type, where 0 is for 'http', 1 is for 'https', 2 is for 'unassigned' and 3 is for 'others'",
            "in": "query",
            "name": "splitType",
            "type": "integer"
          },
          {
            "description": "No. of rows to return",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "Boolean value indicating whether you want to split aggregate stats by appliance, if true is provided, there will be an extra level of key inside each stats object indicating what appliance the inner stats object belongs to. Default value is null.",
            "in": "query",
            "name": "splitByNe",
            "type": "boolean"
          },
          {
            "description": "Group the data based on this value. Default value is dns.",
            "in": "query",
            "name": "groupBy",
            "type": "string"
          },
          {
            "description": "Group the data based on this value.Integer value represents number of sub-domains. Default value is 2.",
            "in": "query",
            "name": "groupBySubDomains",
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/DNSAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve dns aggregate stats for a single appliance. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate tunnel",
        "summary": "Get aggregate dns stats data for a single appliance filter by query parameters."
      }
    },
    "/stats/aggregate/drc": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter data for a specific group",
            "in": "query",
            "name": "groupPk",
            "type": "string"
          },
          {
            "description": "Indicate top x items",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "when it is 'all',return all bonded tunnels;when it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra column inside each tunnel stats record in CSV format indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/TunnelAggregateDrcStatsBase"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve tunnel aggregate drc stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate drc tunnel",
        "summary": "Get aggregate tunnel drc stats data filter by query parameters."
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Indicate top x items",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "when it is 'all',return all bonded tunnels;when it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra column inside each tunnel stats record in CSV format indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/TunnelAggregateDrcStatsBase"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve tunnel aggregate stats and it's identical to the GET operation on this URL except that you need to pass a request body containing appliance ids that you want to filter on to it. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats drc aggregate tunnel",
        "summary": "Get aggregate tunnel drc stats data filter by query parameters."
      }
    },
    "/stats/aggregate/drc/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to tunnel with name {tunnelName}",
            "in": "query",
            "name": "tunnelName",
            "type": "string"
          },
          {
            "description": "Indicate top x items",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "when it is 'all',return all bonded tunnels;when it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra column inside each tunnel stats record in CSV format indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/TunnelAggregateDrcStatsBase"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve tunnel aggregate drc stats for a single appliance. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate drc tunnel",
        "summary": "Get aggregate tunnel drc stats data for a single appliance filter by query parameters."
      }
    },
    "/stats/aggregate/dscp": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter data for a specific group",
            "in": "query",
            "name": "groupPk",
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to a certain flow type. Valid DSCP: 0 - 63",
            "in": "query",
            "name": "dscp",
            "type": "integer"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DscpAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve dscp aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate dscp",
        "summary": "Get aggregate dscp stats data filter by query parameters"
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to a certain flow type. Valid DSCP: 0 - 63",
            "in": "query",
            "name": "dscp",
            "type": "integer"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DscpAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve dscp aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate dscp",
        "summary": "Get aggregate dscp stats data filter by query parameters"
      }
    },
    "/stats/aggregate/dscp/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to trafficClass by integer value {trafficClass} 1 - 10",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10
            ],
            "in": "query",
            "name": "trafficClass",
            "type": "integer"
          },
          {
            "description": "Filter for data which belongs to a certain flow type. Valid DSCP: 0 - 63",
            "in": "query",
            "name": "dscp",
            "type": "integer"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DscpAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve dscp aggregate stats for a single appliance. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate dscp",
        "summary": "Get aggregate dscp stats data for a single appliance filter by query parameters"
      }
    },
    "/stats/aggregate/flow": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter data for a specific group",
            "in": "query",
            "name": "groupPk",
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to a certain flow type.",
            "enum": [
              "TCP_ACCELERATED",
              "TCP_NOT_ACCELERATED",
              "NON_TCP"
            ],
            "in": "query",
            "name": "flow",
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/FlowAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve flow aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate flow",
        "summary": "Get aggregate flow stats data filter by query parameters"
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to a certain flow type.",
            "enum": [
              "TCP_ACCELERATED",
              "TCP_NOT_ACCELERATED",
              "NON_TCP"
            ],
            "in": "query",
            "name": "flow",
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/FlowAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve flow aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate flow",
        "summary": "Get aggregate flow stats data filter by query parameters"
      }
    },
    "/stats/aggregate/flow/active": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "No. of rows to return",
            "in": "query",
            "name": "top",
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ActiveFlowCounts"
            }
          }
        },
        "operationId": "Get active flow counts",
        "summary": "Get active flow counts by NE id"
      }
    },
    "/stats/aggregate/flow/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to trafficClass by integer value {trafficClass} 1 - 10",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10
            ],
            "in": "query",
            "name": "trafficClass",
            "type": "integer"
          },
          {
            "description": "Filter for data which belongs to a certain flow type.",
            "enum": [
              "TCP_ACCELERATED",
              "TCP_NOT_ACCELERATED",
              "NON_TCP"
            ],
            "in": "query",
            "name": "flow",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/FlowAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve flow aggregate stats for a single appliance. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate flow",
        "summary": "Get aggregate flow stats data for a single appliance filter by query parameters"
      }
    },
    "/stats/aggregate/interface": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/InterfaceAggregateStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve interface aggregate stats for a single appliance. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "interface aggregate stats",
        "summary": "Get aggregate interface stats data for a all appliance filter by query parameters"
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/InterfaceAggregateStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve interface aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "interface aggregate stats",
        "summary": "Get aggregate interface stats data"
      }
    },
    "/stats/aggregate/interfaceOverlay": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Interface name you want to filter on.",
            "in": "query",
            "name": "interfaceName",
            "type": "string"
          },
          {
            "description": "When it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/InterfaceOverlayAggregateStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve interface overlay transport aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "interface overlay transport aggregate stats",
        "summary": "Get aggregate interface overlay transport stats data"
      }
    },
    "/stats/aggregate/jitter": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "when it is 'all',return all bonded tunnels;when it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/JitterAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve jitter aggregate stats. Depend on what query parameters are provided.",
        "operationId": "Jitter stats aggregate",
        "summary": "Get aggregate jitter stats data filter by query parameters."
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "No. of rows to return",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "when it is 'all',return all bonded tunnels;when it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/JitterAggregateStatsBase"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is identical to the GET operation on this URL except that you need to pass a request body containing appliance ids that you want to filter on to it.",
        "operationId": "stats aggregate jitter",
        "summary": "Get aggregate jitter stats data filter by query parameters."
      }
    },
    "/stats/aggregate/jitter/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "when it is 'all',return all bonded tunnels;when it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          },
          {
            "description": "Filter for data which belongs to tunnel with name {tunnelName}",
            "in": "query",
            "name": "tunnelName",
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/JitterAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve jitter aggregate stats. Depend on what query parameters are provided.",
        "operationId": "Jitter stats aggregate",
        "summary": "Get aggregate jitter stats data filter by query parameters."
      }
    },
    "/stats/aggregate/mos": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Indicate top x items",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "When it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/MosAggregateStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve mos aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "mos aggregate stats",
        "summary": "Get aggregate Mean Opinion Score stats data"
      }
    },
    "/stats/aggregate/mos/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to tunnel with name {tunnelName}",
            "in": "query",
            "name": "tunnelName",
            "type": "string"
          },
          {
            "description": "Indicate top x items",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "When it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/MosAggregateStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve mos aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "mos aggregate stats",
        "summary": "Get aggregate Mean Opinion Score stats data"
      }
    },
    "/stats/aggregate/ports": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Integer value representing whether port is from source or destination",
            "enum": [
              "0",
              "1"
            ],
            "in": "query",
            "name": "isSource",
            "type": "integer"
          },
          {
            "description": "Integer value representing whether port is assigned to a application(1) or not(0)",
            "enum": [
              "0",
              "1"
            ],
            "in": "query",
            "name": "isKnown",
            "type": "integer"
          },
          {
            "description": "Integer value representing whether protocol used by port",
            "in": "query",
            "name": "protocol",
            "type": "integer"
          },
          {
            "description": "Integer value representing whether port number",
            "in": "query",
            "name": "port",
            "type": "integer"
          },
          {
            "description": "No. of rows to return",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "Boolean value indicating whether you want to split aggregate stats by appliance, if true is provided, there will be an extra level of key inside each stats object indicating what appliance the inner stats object belongs to. Default value is null.",
            "in": "query",
            "name": "splitByNe",
            "type": "boolean"
          },
          {
            "description": "Boolean value representing whether to fetch data one hour behind from last hour if data is not found in last hour time range",
            "in": "query",
            "name": "lastHour",
            "type": "boolean"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/PortsAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve ports aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "Port stats aggregate",
        "summary": "Get aggregate ports stats data filter by query parameters."
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Integer value representing whether dns is from source or destination",
            "enum": [
              "0",
              "1"
            ],
            "in": "query",
            "name": "isSource",
            "type": "integer"
          },
          {
            "description": "Integer value representing whether port is assigned to a application(1) or not(0)",
            "enum": [
              "0",
              "1"
            ],
            "in": "query",
            "name": "isKnown",
            "type": "integer"
          },
          {
            "description": "Integer value representing whether protocol used by port",
            "in": "query",
            "name": "protocol",
            "type": "integer"
          },
          {
            "description": "Integer value representing whether port number",
            "in": "query",
            "name": "port",
            "type": "integer"
          },
          {
            "description": "No. of rows to return",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "Boolean value indicating whether you want to split aggregate stats by appliance, if true is provided, there will be an extra level of key inside each stats object indicating what appliance the inner stats object belongs to. Default value is null.",
            "in": "query",
            "name": "splitByNe",
            "type": "boolean"
          },
          {
            "description": "Boolean value representing whether to fetch data one hour behind from last hour if data is not found in last hour time range",
            "in": "query",
            "name": "lastHour",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/PortsAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve ports aggregate stats and it's identical to the GET operation on this URL except that you need to pass a request body containing appliance ids that you want to filter on to it. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate ports",
        "summary": "Get aggregate ports stats data filter by query parameters."
      }
    },
    "/stats/aggregate/ports/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Integer value representing whether port is from source or destination",
            "enum": [
              "0",
              "1"
            ],
            "in": "query",
            "name": "isSource",
            "type": "integer"
          },
          {
            "description": "Integer value representing whether port is assigned to a application(1) or not(0)",
            "enum": [
              "0",
              "1"
            ],
            "in": "query",
            "name": "isKnown",
            "type": "integer"
          },
          {
            "description": "Integer value representing whether protocol used by port",
            "in": "query",
            "name": "protocol",
            "type": "integer"
          },
          {
            "description": "Integer value representing whether port number",
            "in": "query",
            "name": "port",
            "type": "integer"
          },
          {
            "description": "No. of rows to return",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "Boolean value indicating whether you want to split aggregate stats by appliance, if true is provided, there will be an extra level of key inside each stats object indicating what appliance the inner stats object belongs to. Default value is null.",
            "in": "query",
            "name": "splitByNe",
            "type": "boolean"
          },
          {
            "description": "Boolean value representing whether to fetch data one hour behind from last hour if data is not found in last hour time range",
            "in": "query",
            "name": "lastHour",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/PortsAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve ports aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "Port stats aggregate",
        "summary": "Get aggregate ports stats data filter by query parameters."
      }
    },
    "/stats/aggregate/securityPolicy": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Indicate top x items",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv, and the response data format would be different if this field is provided",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/SecurityPolicyAggregateStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve security policy aggregate stats.",
        "operationId": "security policy aggregate stats",
        "summary": "Get aggregate security policy stats data"
      }
    },
    "/stats/aggregate/securityPolicy/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which come from the zone indicated by this zone internal ID",
            "in": "query",
            "name": "fromZone",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which go to the zone indicated by this zone internal ID",
            "in": "query",
            "name": "toZone",
            "required": true,
            "type": "string"
          },
          {
            "description": "Indicate top x items",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv, and the response data format would be different if this field is provided",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/SecurityPolicyAggregateStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve security policy aggregate stats.",
        "operationId": "security policy aggregate stats",
        "summary": "Get aggregate security policy stats data"
      }
    },
    "/stats/aggregate/topTalkers": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "No. of rows to return",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "Boolean value indicating whether you want to split aggregate stats by appliance, if true is provided, there will be an extra level of key inside each stats object indicating what appliance the inner stats object belongs to. Default value is null.",
            "in": "query",
            "name": "splitByNe",
            "type": "boolean"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/topTalkersAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve topTalkers aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "topTalkers stats aggregate",
        "summary": "Get aggregate topTalkers stats data filter by query parameters."
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "No. of rows to return",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "Boolean value indicating whether you want to split aggregate stats by appliance, if true is provided, there will be an extra level of key inside each stats object indicating what appliance the inner stats object belongs to. Default value is null.",
            "in": "query",
            "name": "splitByNe",
            "type": "boolean"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/topTalkersAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve topTalkers aggregate stats and it's identical to the GET operation on this URL except that you need to pass a request body containing appliance ids that you want to filter on to it. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate topTalkers",
        "summary": "Get aggregate topTalkers stats data filter by query parameters."
      }
    },
    "/stats/aggregate/topTalkers/split/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Source IP address",
            "in": "query",
            "name": "sourceIp",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/topTalkersAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve topTalkers aggregate stats for a single appliance. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate topTalkers",
        "summary": "Get aggregate topTalkers stats data for a single appliance filter by query parameters."
      }
    },
    "/stats/aggregate/topTalkers/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "No. of rows to return",
            "in": "query",
            "name": "top",
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/topTalkersAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve topTalkers aggregate stats for a single appliance. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate topTalkers",
        "summary": "Get aggregate topTalkers stats data for a single appliance filter by query parameters."
      }
    },
    "/stats/aggregate/trafficBehavior": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Start time ( epoch time in seconds ) of time range that stats are requested for",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "End time ( epoch time in seconds ) of time range that stats are requested for",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Filter data for a specific group",
            "in": "query",
            "name": "groupPk",
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to behavioral Category with name { behavioral_category }",
            "in": "query",
            "name": "behavioralCate",
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/trafficBehaviorAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve Traffic Behavioral aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "Traffic Behavior",
        "summary": "Get aggregate Traffic Behavioral stats data filter by query parameters"
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Start time ( epoch time in seconds ) of time range that stats are requested for",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "End time ( epoch time in seconds ) of time range that stats are requested for",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Filter for data which belongs to behavioral Category with name { behavioral_category }",
            "in": "query",
            "name": "behavioralCate",
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Restrict Applications for each behavior category to Top N",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "Boolean value representing whether to fetch data one hour behind from last hour if data is not found in last hour time range",
            "in": "query",
            "name": "lastHour",
            "type": "boolean"
          },
          {
            "description": "Get (aggregate) Traffic Behavioral stats data",
            "in": "query",
            "name": "isAggregated",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/trafficBehaviorStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve Traffic Behavioral stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "Traffic Behavior",
        "summary": "Get aggregate Traffic Behavioral stats data for a single appliance filter by query parameters"
      }
    },
    "/stats/aggregate/trafficBehavior/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Start time ( epoch time in seconds ) of time range that stats are requested for",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "End time ( epoch time in seconds ) of time range that stats are requested for",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Filter for data which belongs to behavioral Category with name { behavioral_category }",
            "in": "query",
            "name": "behavioralCate",
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "type": "string"
          },
          {
            "description": "Restrict Applications for each behavior category to Top N",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "Boolean value representing whether to fetch data one hour behind from last hour if data is not found in last hour time range",
            "in": "query",
            "name": "lastHour",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/trafficBehaviorAggregateStatsFields"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve Traffic Behavioral stats for a single appliance. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "Traffic Behavior",
        "summary": "Get aggregate Traffic Behavioral stats data filter by query parameters"
      }
    },
    "/stats/aggregate/trafficClass": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter data for a specific group",
            "in": "query",
            "name": "groupPk",
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to trafficClass by integer value {trafficClass} 1 - 10",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10
            ],
            "in": "query",
            "name": "trafficClass",
            "type": "integer"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TrafficClassAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve traffic class aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate traffic class",
        "summary": "Get aggregate traffic class stats data filter by query parameters"
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to trafficClass by integer value {trafficClass} 1 - 10",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10
            ],
            "in": "query",
            "name": "trafficClass",
            "type": "integer"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TrafficClassAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve traffic class aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate traffic class",
        "summary": "Get aggregate traffic class stats data filter by query parameters"
      }
    },
    "/stats/aggregate/trafficClass/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to trafficClass by integer value {trafficClass} 1 - 10",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10
            ],
            "in": "query",
            "name": "trafficClass",
            "type": "integer"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TrafficClassAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve trafficClass aggregate stats for a single appliance. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate traffic class",
        "summary": "Get aggregate trafficClass stats data for a single appliance filter by query parameters"
      }
    },
    "/stats/aggregate/tunnel": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter data for a specific group",
            "in": "query",
            "name": "groupPk",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "when it is 'all',return all bonded tunnels;when it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve tunnel aggregate stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate tunnel",
        "summary": "Get aggregate tunnel stats data filter by query parameters."
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "when it is 'all',return all bonded tunnels;when it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve tunnel aggregate stats and it's identical to the GET operation on this URL except that you need to pass a request body containing appliance ids that you want to filter on to it. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate tunnel",
        "summary": "Get aggregate tunnel stats data filter by query parameters."
      }
    },
    "/stats/aggregate/tunnel/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Appliance internal id to filter from.",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to tunnel with name {tunnelName}",
            "in": "query",
            "name": "tunnelName",
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key.",
            "in": "query",
            "name": "ip",
            "type": "boolean"
          },
          {
            "description": "If this query parameter is given, we aggregate stats in a way that we sort stats by this {metric}. This query parameter could also be used with {top} query parameters to limit how many items we want to retrieve.",
            "enum": [
              "throughput",
              "peakThroughput",
              "loss",
              "latency",
              "compression",
              "packets",
              "outOfOrder",
              "flows",
              "bandwidthUtilization"
            ],
            "in": "query",
            "name": "metric",
            "type": "string"
          },
          {
            "description": "This parameter should be provided together with {metric} as this query parameter is used to indicate top x items of a metric. Example, if metric=throughput&top=10 is provided, you're saying you want to retrieve top 10 tunnels by throughput.",
            "in": "query",
            "name": "top",
            "type": "integer"
          },
          {
            "description": "when it is 'all',return all bonded tunnels;when it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "csv"
            ],
            "in": "query",
            "name": "format",
            "type": "string"
          },
          {
            "description": "Boolean value indicating whether you want to group aggregate stats by appliance, if true is provided, there will be an extra level of key inside each tunnel stats object indicating what appliance the inner stats object belongs to. Default value is true.",
            "in": "query",
            "name": "groupByNE",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelAggregateStats"
            }
          }
        },
        "description": "This operation is used to retrieve tunnel aggregate stats for a single appliance. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "stats aggregate tunnel",
        "summary": "Get aggregate tunnel stats data for a single appliance filter by query parameters."
      }
    },
    "/stats/dnsInfo/{ip}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "IP address to get dns name.",
            "in": "path",
            "name": "ip",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/dnsInfo"
            }
          }
        },
        "description": "Get domain name by IP address from dns stats table",
        "operationId": "stats dnsInfo",
        "summary": "Get domain name by IP address from dns stats table"
      }
    },
    "/stats/timeseries/appliance": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Internal group ID of a group for which you want to retrieve stats",
            "in": "query",
            "name": "groupPk",
            "required": false,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStatsAppliance"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries appliance",
        "summary": "Get appliance time series stats data filter by certain query parameters."
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStatsAppliance"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries appliance",
        "summary": "Get appliance time series stats data filter by certain query parameters and certain appliance IDs."
      }
    },
    "/stats/timeseries/appliance/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStatsOneAppliance"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries appliance",
        "summary": "Get appliance time series stats data of a single appliance filter by certain query parameters."
      }
    },
    "/stats/timeseries/applianceProcessState/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "nepk id",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/ApplianceProcessState"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation returns a JSON object containing Appliance Process State.",
        "operationId": "stats of appliance Process State",
        "summary": "Stats of appliance Process State."
      }
    },
    "/stats/timeseries/application": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Internal group ID of a group for which you want to retrieve stats",
            "in": "query",
            "name": "groupPk",
            "required": false,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStatsMultiAppliances"
            }
          }
        },
        "deprecated": true,
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries application",
        "summary": "Get application time series stats data filter by certain query parameters."
      },
      "post": {
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStatsMultiAppliances"
            }
          }
        },
        "deprecated": true,
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries application",
        "summary": "Get application time series stats data filter by certain query parameters and certain appliance IDs."
      }
    },
    "/stats/timeseries/application/{nePk}": {
      "get": {
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStats"
            }
          }
        },
        "deprecated": true,
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries application",
        "summary": "Get application time series stats data of a single appliance filter by certain query parameters."
      }
    },
    "/stats/timeseries/application2": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "required": true,
            "type": "string"
          },
          {
            "description": "Internal group ID of a group for which you want to retrieve stats",
            "in": "query",
            "name": "groupPk",
            "required": false,
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "get all app's total value",
            "in": "query",
            "name": "total",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStatsMultiAppliances2"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries application",
        "summary": "Get new application time series stats data filter by certain query parameters."
      },
      "post": {
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "required": true,
            "type": "string"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "get all app's total value",
            "in": "query",
            "name": "total",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStatsMultiAppliances2"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries application",
        "summary": "Get new application time series stats data filter by certain query parameters and certain appliance IDs."
      }
    },
    "/stats/timeseries/application2/{nePk}": {
      "get": {
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Filter for data which belongs to application with name {application}",
            "in": "query",
            "name": "application",
            "required": true,
            "type": "string"
          },
          {
            "description": "get all app's total value",
            "in": "query",
            "name": "total",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStatsMultiAppliances2"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries application",
        "summary": "Get new application time series stats data of a single appliance filter by certain query parameters."
      }
    },
    "/stats/timeseries/boost/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/TimeSeriesBoostStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve boost time series stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "Boost time series stats",
        "summary": "Get boost time series stats data of a single appliance filter by certain query parameters."
      }
    },
    "/stats/timeseries/drc": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Internal group ID of a group for which you want to retrieve stats",
            "in": "query",
            "name": "groupPk",
            "required": false,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesDrcStatsMultiAppliances"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries drc tunnel",
        "summary": "Get tunnel drc time series stats data filter by certain query parameters."
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesDrcStatsMultiAppliances"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries drc tunnel",
        "summary": "Get tunnel time series drc stats data filter by certain query parameters and certain appliance IDs."
      }
    },
    "/stats/timeseries/drc/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to tunnel with name {tunnelName}",
            "in": "query",
            "name": "tunnelName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesDrcStats"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries drc tunnel",
        "summary": "Get tunnel time series drc stats data of a single appliance filter by certain query parameters."
      }
    },
    "/stats/timeseries/dscp": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Internal group ID of a group for which you want to retrieve stats",
            "in": "query",
            "name": "groupPk",
            "required": false,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to a certain flow type. Valid DSCP: 0 - 63",
            "in": "query",
            "name": "dscp",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DSCPTimeSeriesStatsMultiAppliances"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries dscp",
        "summary": "Get dscp time series stats data filter by certain query parameters."
      },
      "post": {
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to a certain flow type. Valid DSCP: 0 - 63",
            "in": "query",
            "name": "dscp",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DSCPTimeSeriesStatsMultiAppliances"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries dscp",
        "summary": "Get dscp time series stats data filter by certain query parameters and certain appliance IDs."
      }
    },
    "/stats/timeseries/dscp/{nePk}": {
      "get": {
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to a certain flow type. Valid DSCP: 0 - 63",
            "in": "query",
            "name": "dscp",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/DSCPTimeSeriesStatsSingleAppliances"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries dscp",
        "summary": "Get dscp time series stats data of a single appliance filter by certain query parameters."
      }
    },
    "/stats/timeseries/flow": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Internal group ID of a group for which you want to retrieve stats",
            "in": "query",
            "name": "groupPk",
            "required": false,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to a certain flow type.",
            "enum": [
              "TCP_ACCELERATED",
              "TCP_NOT_ACCELERATED",
              "NON_TCP"
            ],
            "in": "query",
            "name": "flowType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/FlowTimeSeriesStatsMultiAppliances"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries flow",
        "summary": "Get flow time series stats data filter by certain query parameters."
      },
      "post": {
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to a certain flow type.",
            "enum": [
              "TCP_ACCELERATED",
              "TCP_NOT_ACCELERATED",
              "NON_TCP"
            ],
            "in": "query",
            "name": "flowType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/FlowTimeSeriesStatsMultiAppliances"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries flow",
        "summary": "Get flow time series stats data filter by certain query parameters and certain appliance IDs."
      }
    },
    "/stats/timeseries/flow/{nePk}": {
      "get": {
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to a certain flow type.",
            "enum": [
              "TCP_ACCELERATED",
              "TCP_NOT_ACCELERATED",
              "NON_TCP"
            ],
            "in": "query",
            "name": "flowType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/FlowTimeSeriesStatsItems"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries flow",
        "summary": "Get flow time series stats data of a single appliance filter by certain query parameters."
      }
    },
    "/stats/timeseries/interface/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to interface with name {interface}",
            "in": "query",
            "name": "interfaceName",
            "required": false,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/InterfaceTimeSeriesStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation returns a JSON object containing data objects of each interface is an array, each data object contains the stats for a particular timestamp.",
        "operationId": "interface timeseries stats",
        "summary": "Get interface time series stats data of a single appliance filter by certain query parameters."
      }
    },
    "/stats/timeseries/interfaceOverlay/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "When it is '0',return all physical tunnels;when it is not given,return all bonded and physical tunnels;otherwise,return bonded tunnels associated with the overlay id.",
            "in": "query",
            "name": "overlay",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/InterfaceOverlayTimeSeriesStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation returns a JSON object containing data objects of each interface overlay transport is an array, each data object contains the stats for a particular timestamp.",
        "operationId": "interface overlay transport timeseries stats",
        "summary": "Get interface overlay transport time series stats data of a single appliance filter by certain query parameters."
      }
    },
    "/stats/timeseries/internalDrops/{nePk}": {
      "get": {
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/InternalDropsTimeSeriesStats"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries internalDrops",
        "summary": "Get internalDrops time series stats data of a single appliance filter by certain query parameters."
      }
    },
    "/stats/timeseries/metrics": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "for filter resource by key.",
            "in": "query",
            "name": "key",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStatsMultiAppliances"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries tunnel",
        "summary": "Get tunnel time series stats data filter by certain query parameters."
      }
    },
    "/stats/timeseries/mos/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to tunnel with name",
            "in": "query",
            "name": "tunnel",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/TimeSeriesMOSStats"
              },
              "type": "array"
            }
          }
        },
        "description": "This operation is used to retrieve mos time series stats. Depend on what query parameters are provided. The response format may look different.",
        "operationId": "MOS time series stats",
        "summary": "Get Mean Opinion Score time series stats data of a single appliance filter by certain query parameters."
      }
    },
    "/stats/timeseries/securityPolicy/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the id of source zone from which the traffic passes through.",
            "in": "query",
            "name": "fromZone",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the id of destination zone to which the traffic goes.",
            "in": "query",
            "name": "toZone",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/SecurityPolicyTimeSeries"
            }
          }
        },
        "description": "This operation is used to retrieve security policy time series stats.",
        "operationId": "Security policy time series stats",
        "summary": "Get security policy time series stats data of a single appliance filter by certain query parameters."
      }
    },
    "/stats/timeseries/shaper": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Internal group ID of a group for which you want to retrieve stats",
            "in": "query",
            "name": "groupPk",
            "required": false,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to trafficClass by integer value {trafficClass} 1 - 10",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10
            ],
            "in": "query",
            "name": "trafficClass",
            "required": true,
            "type": "integer"
          },
          {
            "description": "0 - Outbound/1 - Inbound",
            "enum": [
              0,
              1
            ],
            "in": "query",
            "name": "direction",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ShaperTimeSeriesStatsMultiAppliances"
            }
          }
        },
        "operationId": "Shaper timeseries stats",
        "summary": "Get Shaper time series stats data filter by certain query parameters and certain appliance IDs."
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to trafficClass by integer value {trafficClass} 1 - 10",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10
            ],
            "in": "query",
            "name": "trafficClass",
            "required": true,
            "type": "integer"
          },
          {
            "description": "0 - Outbound/1 - Inbound",
            "enum": [
              0,
              1
            ],
            "in": "query",
            "name": "direction",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ShaperTimeSeriesStatsMultiAppliances"
            }
          }
        },
        "operationId": "Shaper timeseries stats",
        "summary": "Get Shaper time series stats data filter by certain query parameters and certain appliance IDs."
      }
    },
    "/stats/timeseries/trafficClass": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Internal group ID of a group for which you want to retrieve stats",
            "in": "query",
            "name": "groupPk",
            "required": false,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to trafficClass by integer value {trafficClass} 1 - 10",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10
            ],
            "in": "query",
            "name": "trafficClass",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStatsMultiAppliances"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries traffic class",
        "summary": "Get traffic class time series stats data filter by certain query parameters."
      },
      "post": {
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to trafficClass by integer value {trafficClass} 1 - 10",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10
            ],
            "in": "query",
            "name": "trafficClass",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStatsMultiAppliances"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries traffic class",
        "summary": "Get traffic class time series stats data filter by certain query parameters and certain appliance IDs."
      }
    },
    "/stats/timeseries/trafficClass/{nePk}": {
      "get": {
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data for given traffic type",
            "enum": [
              "optimized_traffic",
              "pass_through_shaped",
              "pass_through_unshaped",
              "all_traffic"
            ],
            "in": "query",
            "name": "trafficType",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to trafficClass by integer value {trafficClass} 1 - 10",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10
            ],
            "in": "query",
            "name": "trafficClass",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStats"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries traffic class",
        "summary": "Get traffic class time series stats data of a single appliance filter by certain query parameters."
      }
    },
    "/stats/timeseries/tunnel": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Internal group ID of a group for which you want to retrieve stats",
            "in": "query",
            "name": "groupPk",
            "required": false,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStatsMultiAppliances"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries tunnel",
        "summary": "Get tunnel time series stats data filter by certain query parameters."
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "JSON array containing appliance IDs you want to filter on.",
            "in": "body",
            "name": "ApplianceIDs",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStatsMultiAppliances"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries tunnel",
        "summary": "Get tunnel time series stats data filter by certain query parameters and certain appliance IDs."
      }
    },
    "/stats/timeseries/tunnel/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Internal ID of the appliance to filter from",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
            "in": "query",
            "name": "startTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
            "in": "query",
            "name": "endTime",
            "required": true,
            "type": "integer"
          },
          {
            "description": "Data granularity filtering whether data is minutely data, hourly data or daily data.",
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "in": "query",
            "name": "granularity",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter for data which belongs to tunnel with name {tunnelName}",
            "in": "query",
            "name": "tunnelName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Limit the number of stats entity retrieved. Default and maximum limits are both 10000.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The only format other than JSON we support currently is CSV, so format=csv.",
            "enum": [
              "CSV"
            ],
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          },
          {
            "description": "Using IP as key for grouping stats instead of using internal appliance id as key. Default value if false",
            "in": "query",
            "name": "ip",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Instead of providing {startTime} and {endTime}, using {latest} query parameter could provide you stats for, say latest 10 minutes. Unit is minute. Example: latest=10. Default is to use {startTime} and {endTime} but if {latest} is presented then {latest} takes priority.",
            "in": "query",
            "name": "latest",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TimeSeriesStats"
            }
          }
        },
        "description": "This operation returns a JSON object containing COLUMN_DEF and DATA. COLUMN_DEF is an array containing the names indicating what corresponding number in data array means. Data objects of each appliance is an array of data arrays, each data array contains the stats for a particular timestamp. Each number is data array corresponds to a name in COLUMN_DEF.<br> <b> DATA object contains only values not keys.</b>",
        "operationId": "stats timeseries tunnel",
        "summary": "Get tunnel time series stats data of a single appliance filter by certain query parameters."
      }
    },
    "/subnets/configured/{neId}": {
      "post": {
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "description": "The node Id of the appliance.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "operation",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ConfigurePostData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "description": "This api is used only for the older appliance whose version is less than 8.1.7.0.<br/><br/> The subnets list in the request body will be compared to the list of current subnets configured on the appliance. Any subnets which are in posted list but not on the appliance are added. Similarly, missing subnets are removed. Matching subnets are updated.",
        "operationId": "ConfSubnets",
        "summary": "Configure an appliance's subnets."
      }
    },
    "/subnets/forDiscovered/{discoveredId}": {
      "get": {
        "parameters": [
          {
            "description": "The appliance's discovered ID",
            "in": "path",
            "name": "discoveredId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/GetResponse"
            }
          }
        },
        "operationId": "GetSubnetsForDiscoveredAppliance",
        "summary": "Get a discovered appliance's subnets information."
      }
    },
    "/subnets/setSubnetSharingOptions/{neId}": {
      "post": {
        "parameters": [
          {
            "description": "The node Id of the appliance.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "SubnetsSystemJson",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SubnetsSystemJson"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Configure an appliance's subnet sharing options (enable/disable use shared subnet information and automatically include local subnets.",
        "operationId": "setSubnetSharingOptions",
        "summary": "Configure appliance's subnet sharing options"
      }
    },
    "/subnets/{getCachedData}/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "True means to get the information from Orchestrator database, while false means to get from the appliance .",
            "in": "path",
            "name": "getCachedData",
            "required": true,
            "type": "boolean"
          },
          {
            "description": "The node id of the appliance.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The subnet to filter the routes received from the appliance(s). Supports IPv4 and IPv6 address types.",
            "in": "query",
            "name": "subnet",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/GetResponse"
            }
          }
        },
        "operationId": "GetSubnets",
        "summary": "Get an appliance's subnets information."
      }
    },
    "/systemInfo/system/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AppSystemDeployInfo"
            }
          }
        },
        "operationId": "appSystemDeployInfo",
        "summary": "Get Appliance System  Deployment Information"
      }
    },
    "/systemInfo/systemForDiscovered/{discoveredId}": {
      "get": {
        "parameters": [
          {
            "description": "The discovered appliance ID",
            "in": "path",
            "name": "discoveredId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AppSystemDeployInfo"
            }
          }
        },
        "description": "Use this API to get the system information for a discovered appliance.",
        "operationId": "discoveredAppSystemDeployInfo",
        "summary": "Discovered  Appliance System  Deployment Information"
      }
    },
    "/systemInfo/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AppSystemStateInfo"
            }
          }
        },
        "operationId": "appSystemStateInfo",
        "summary": "Get Appliance System State Information"
      }
    },
    "/tca/tunnel/{neId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "If true, get data from gmsdb, otherwise get from appliance.",
            "in": "query",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelTcaInfo"
            }
          }
        },
        "description": "Currently the tunnel tca contains: reduction, oop-post-poc, loss-pre-fec, loss-post-fec, latency, utilization and oop-pre-poc.",
        "operationId": "getTunnelTca",
        "summary": "Get tunnel threshold crossing alerts"
      }
    },
    "/tca/{neId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "If true, get data from gmsdb, otherwise get from appliance.",
            "in": "query",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TcaInfo"
            }
          }
        },
        "description": "Currently the system tca contains: oop-pre-poc, file-system-utilization, utilization, lan-side-rx-throughput, optimized-flows, latency, loss-post-fec, loss-pre-fec, oop-post-poc, wan-side-tx-throughput, reduction and total-flows.",
        "operationId": "getSystemTca",
        "summary": "Get system threshold crossing alerts"
      }
    },
    "/tcpdump/run/": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "text/html"
        ],
        "parameters": [
          {
            "description": "The run data",
            "in": "body",
            "name": "PostRunConfig",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PostRunConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "This API allows you to start the packet capture process.",
        "operationId": "tcpdump run",
        "summary": "POST operation to start the packet capture process."
      }
    },
    "/tcpdump/status/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TcpdumpStatus"
            }
          }
        },
        "description": "This API allows you to retrieve status information of current packet capture process.",
        "operationId": "tcpdump status",
        "summary": "GET operation to show current packet capture process status."
      }
    },
    "/tcpdump/tcpdumpStatus": {
      "get": {
        "produces": [
          "text/html"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "description": "Get the primary keys of all running tcp dumps.",
        "operationId": "tcpdumpStatus",
        "summary": "Get the primary keys of all running tcp dumps."
      }
    },
    "/template/applianceAssociation/": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplianceAssociationGet"
            }
          }
        },
        "operationId": "associationAll",
        "summary": "Returns the complete association map of appliances to template groups"
      }
    },
    "/template/applianceAssociation/{nePk}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ApplianceAssociationGetNepk"
            }
          }
        },
        "operationId": "associationOne",
        "summary": "Returns the association map of template groups for a single appliance"
      },
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Template names",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceAssociationGetNepk"
            }
          },
          {
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "associationOnePost",
        "summary": "Associates the templates with a specific appliance. The array posted is the complete association for that appliance."
      }
    },
    "/template/history/groupList/{nePk}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        },
        "operationId": "template",
        "summary": "Returns the list of template groups applied to the appliance"
      }
    },
    "/template/history/{nePk}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "latestOnly",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/TemplateHistoryItem"
              },
              "type": "array"
            }
          }
        },
        "operationId": "template",
        "summary": "Returns history of applied templates by nePk"
      }
    },
    "/template/templateCreate": {
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TemplateCreateBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "In the request body, you will pass in the templates you want to create/modify with the template group. For details on the structure of the template configuration, please see the default template group. One way to get the exact JSON object to use for your configuration is to view the rest API call the Orchestrator Templates tab makes when you save a template. ",
        "operationId": "template",
        "summary": "Creates a new template group"
      }
    },
    "/template/templateGroups": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/TemplateGroupsItem"
              },
              "type": "array"
            }
          }
        },
        "description": "The returned objects inside the array are template-specific. ",
        "operationId": "template",
        "summary": "Returns template configurations for all template groups"
      }
    },
    "/template/templateGroups/{templateGroup}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "templateGroup",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "object"
            }
          }
        },
        "operationId": "template",
        "summary": "Deletes a template group"
      },
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "templateGroup",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TemplateGroupsItem"
            }
          }
        },
        "description": "The returned objects inside the array are template-specific. ",
        "operationId": "template",
        "summary": "Returns template configurations for the specified template group only"
      },
      "post": {
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "templateGroup",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TemplateCreateBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "description": "In the request body, you will pass in the templates you want to create/modify with the template group. For details on the structure of the template configuration, please see the default template group. One way to get the exact JSON object to use for your configuration is to view the rest API call the Orchestrator Templates tab makes when you save a template.",
        "operationId": "template",
        "summary": "Creates a new template group from an existing one or updates the configuration of the requested template group "
      }
    },
    "/template/templateGroupsPriorities": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TemplateGroupPriorities"
            }
          }
        },
        "operationId": "groupPrioGet",
        "summary": "Returns the order that template groups will be applied in"
      },
      "post": {
        "parameters": [
          {
            "description": "Template names",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TemplateGroupPriorities"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "groupPrioPost",
        "summary": "Post the order that template groups should be applied in, groups not listed are not in a deterministic order"
      }
    },
    "/template/templateSelection/{templateGroup}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "templateGroup",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        },
        "operationId": "template",
        "summary": "Returns the selected templates in the template group"
      },
      "post": {
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "templateGroup",
            "required": true,
            "type": "string"
          },
          {
            "description": "Template names",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "template",
        "summary": "Selects the provided templates in the request body"
      }
    },
    "/thirdPartyLicenses": {
      "get": {
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "description": "Type of the response format(currently it supports 'txt' only).",
            "in": "query",
            "name": "format",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ThirdPartyLicenses"
            }
          }
        },
        "operationId": "3rdPartyLicenses",
        "summary": "Gets all third party licenses information"
      }
    },
    "/thirdPartyServices/zscaler/configuration": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Configuration"
            }
          }
        },
        "operationId": "zscalerConfigurationGet",
        "summary": "Returns Zscaler configuration, including tunnel setting, selected interface label order"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "configuration",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Configuration"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "zscalerConfigurationPost",
        "summary": "Update Returns Zscaler configuration, including tunnel setting, selected interface label order"
      }
    },
    "/thirdPartyServices/zscaler/connectivity": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Connectivity"
            }
          }
        },
        "operationId": "zscalerConnectivityGet",
        "summary": "Returns Zscaler connectivity status"
      }
    },
    "/thirdPartyServices/zscaler/defaultTunnelSetting": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelSetting"
            }
          }
        },
        "operationId": "zscalerDefaultTunnelSettingGet",
        "summary": "Returns recommend tunnel setting for Zscaler"
      }
    },
    "/thirdPartyServices/zscaler/pauseOrchestration": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/zscalerPauseOrchestration"
            }
          }
        },
        "operationId": "zscalerPauseOrchestrationGet",
        "summary": "Returns Pause Zscaler Orchestration configuration"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "zscalerPauseObj",
            "required": true,
            "schema": {
              "$ref": "#/definitions/zscalerPauseOrchestration"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "zscalerPauseOrchestrationPost",
        "summary": "update pause Zscaler Orchestration configuration"
      }
    },
    "/thirdPartyServices/zscaler/remoteEndpointException": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/EndpointExceptionMap"
            }
          }
        },
        "operationId": "zscalerRemoteEndpointExceptionGet",
        "summary": "Returns all user configured ZEN Override data"
      }
    },
    "/thirdPartyServices/zscaler/subscription": {
      "delete": {
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "description": "Make sure to deselect Zscaler Policies in Business Intent Overlay first and wait until all Zscaler config has been deleted",
        "operationId": "zscalerSubscriptionDelete",
        "summary": "Delete Subscription"
      },
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Subscription"
            }
          }
        },
        "operationId": "zscalerSubscriptionGet",
        "summary": "Returns Zscaler subscription"
      },
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "subscription",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Subscription"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "zscalerSubscriptionPost",
        "summary": "Add/Update Subscription"
      }
    },
    "/thirdPartyServices/zscaler/vpnLocationEndpointExceptionSetting": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "an array of comma separated nepks.",
            "in": "body",
            "name": "applianceList",
            "required": true,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/ZscalerVpnLocationExceptionConfig"
              },
              "type": "array"
            }
          }
        },
        "operationId": "zscalerVpnLocationExceptionPost",
        "summary": "Get all VPN, Location, discovered and configured ZEN override data for one or more appliances"
      }
    },
    "/tunnels/bonded": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "neIds is an array of device keys. The device keys is assigned by Orchestrator, usually look like '0.NE'.",
            "in": "body",
            "name": "neIds",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "ID of the overlay to filter on",
            "in": "query",
            "name": "overlayId",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/BondedTunnelsConfigAndStates"
            }
          }
        },
        "deprecated": true,
        "description": "The returned data is a tunnels configuration object, it contains tunnel names like: default, passthrough and passthrough-unshaped.",
        "operationId": "getBondedTunnelsConfigurationAndStates",
        "summary": "Deprecated"
      }
    },
    "/tunnels/bonded/state": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "neIds is an array of device keys. The device keys is assigned by Orchestrator, usually look like '0.NE'.",
            "in": "body",
            "name": "neIds",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AllStates"
            }
          }
        },
        "description": "The returned data is a tunnels configuration object, it contains tunnel names like: default, passthrough and passthrough-unshaped.",
        "operationId": "getBondedTunnelsStates",
        "summary": "Get the current list of tunnels state"
      }
    },
    "/tunnels/physical": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "ids is an array of device keys. The device key is assigned by Orchestrator, usually look like '0.NE'.",
            "in": "body",
            "name": "ids",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "The state regular expression which is used to match a tunnel state",
            "in": "query",
            "name": "state",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelsConfigAndStates"
            }
          }
        },
        "deprecated": true,
        "description": "The returned data is a tunnels configuration object, it contains tunnel names like: default, passthrough and passthrough-unshaped.",
        "operationId": "getTunnelsConfigurationAndStates",
        "summary": "Deprecated. Get the current list of tunnels configuration and their state information"
      }
    },
    "/tunnels/physical/state": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "neIds is an array of device keys. The device keys is assigned by Orchestrator, usually look like '0.NE'.",
            "in": "body",
            "name": "neIds",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "The state regular expression which is used to match a tunnel state",
            "in": "query",
            "name": "state",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AllStates"
            }
          }
        },
        "description": "The returned data is a tunnels configuration object, it contains tunnel names like: default, passthrough and passthrough-unshaped.",
        "operationId": "getTunnelsStates",
        "summary": "Get the current list of tunnels state"
      }
    },
    "/tunnels/physical/traceroute/{id}": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "tunnel id",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "description": "The nepk of the appliance",
            "in": "body",
            "name": "nePk",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "initiateTraceroute",
        "summary": "Initiate a traceroute on a tunnel"
      }
    },
    "/tunnels/physical/tracerouteState/{id}": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "tunnel id",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "description": "The nepk of the appliance",
            "in": "body",
            "name": "nePk",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TracertState"
            }
          }
        },
        "operationId": "tracerouteState",
        "summary": "Get traceroute state for a tunnel"
      }
    },
    "/tunnels/thirdParty": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "neIds is an array of device keys. The device keys is assigned by Orchestrator, usually look like '0.NE'.",
            "in": "body",
            "name": "neIds",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "The state regular expression which is used to match a tunnel state",
            "in": "query",
            "name": "state",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/ThirdPartyTunnelsConfigAndStates"
            }
          }
        },
        "deprecated": true,
        "description": "The returned data is a tunnels configuration object, it contains tunnel names like: tunnel1, tunnel2, etc.",
        "operationId": "getThirdPartyTunnelsConfigurationAndStates",
        "summary": "Deprecated. Get the current list of tunnels configuration and their state information"
      }
    },
    "/tunnels/thirdParty/state": {
      "post": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "neIds is an array of device keys. The device keys is assigned by Orchestrator, usually look like '0.NE'.",
            "in": "body",
            "name": "neIds",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "The state regular expression which is used to match a tunnel state",
            "in": "query",
            "name": "state",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/AllStates"
            }
          }
        },
        "description": "The returned data is a tunnels state object, it contains tunnel names like: tunnel1, tunnel2, etc.",
        "operationId": "getThirdPartyTunnelsStates",
        "summary": "Get the current list of tunnels state"
      }
    },
    "/tunnels2": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Sub-resource type",
            "in": "query",
            "name": "metaData",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelCountMap"
            }
          }
        },
        "description": "The returned data is a map of tunnel count.",
        "operationId": "tunnelsCount",
        "summary": "Search total tunnel count, all appliances"
      }
    },
    "/tunnels2/bonded": {
      "get": {
        "parameters": [
          {
            "description": "The max number of tunnels to return",
            "in": "query",
            "name": "limit",
            "required": true,
            "type": "number"
          },
          {
            "description": "Search for all tunnels that have this string in it's alias",
            "in": "query",
            "name": "matchingAlias",
            "required": false,
            "type": "string"
          },
          {
            "description": "Only return bonded tunnels that belong to this overlayId.",
            "in": "query",
            "name": "overlayId",
            "required": false,
            "type": "number"
          },
          {
            "description": "The regular expression to match a tunnel state",
            "in": "query",
            "name": "state",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/NePkToBondedTunnelsMap"
            }
          }
        },
        "description": "NOTE: You should use the limit query parameter to limit the bonded tunnels returned. There could be a lot of bonded tunnels in the network. <br /><br /> The results are returned in an object/map of nePk -> <tunnelId, tunnel>",
        "operationId": "searchAllBondedTunnels",
        "summary": "Get bonded tunnels for all appliances"
      }
    },
    "/tunnels2/bonded/{nePk}": {
      "get": {
        "parameters": [
          {
            "description": "The appliance's id/nePk",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "The max number of tunnels to return",
            "in": "query",
            "name": "limit",
            "required": true,
            "type": "number"
          },
          {
            "description": "Search for all tunnels that have this string in it's alias",
            "in": "query",
            "name": "matchingAlias",
            "required": false,
            "type": "string"
          },
          {
            "description": "Only return bonded tunnels that belong to this overlayId.",
            "in": "query",
            "name": "overlayId",
            "required": false,
            "type": "number"
          },
          {
            "description": "The regular expression to match a tunnel state",
            "in": "query",
            "name": "state",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/BondedTunnelsIdToTunnelMap"
            }
          }
        },
        "description": "NOTE: You should use the limit query parameter to limit the bonded tunnels returned. There could be a lot of bonded tunnels in the network. <br /><br /> The results are returned in an object/map of <tunnelId, tunnel>",
        "operationId": "searchBondedTunnelsForAppliance",
        "summary": "Get bonded tunnels for one appliance"
      }
    },
    "/tunnels2/bonded/{nePk}/{bondedTunnelId}": {
      "get": {
        "parameters": [
          {
            "description": "The bonded tunnel id",
            "in": "path",
            "name": "bondedTunnelId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The appliance's id/nePk",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/BondedTunnelConfig2"
            }
          }
        },
        "operationId": "getOneBondedTunnel",
        "summary": "Get a specific bonded tunnel for one appliance"
      }
    },
    "/tunnels2/bondedTunnelsWithPhysicalTunnel/{nePk}/{physicalTunnelId}": {
      "get": {
        "parameters": [
          {
            "description": "The appliance's id/nePk",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "A physical tunnel ID, all bonded tunnels that have this tunnel as a child tunnel will be returned",
            "in": "path",
            "name": "physicalTunnelId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The regular expression to match a tunnel state",
            "in": "query",
            "name": "state",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/BondedTunnelsIdToTunnelMap"
            }
          }
        },
        "description": "You can use this API to get all the bonded tunnels that have this physical tunnel bonded.",
        "operationId": "getBondedTunnelsWithPhysicalTunnels",
        "summary": "Get bonded tunnels a physical tunnel belongs to"
      }
    },
    "/tunnels2/getTunnelsBetweenAppliances": {
      "post": {
        "parameters": [
          {
            "description": "List of appliance IDs to retrieve the tunnels between all of them",
            "in": "body",
            "name": "ids",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceIDs"
            }
          },
          {
            "description": "The max number of tunnels to return",
            "in": "query",
            "name": "limit",
            "required": true,
            "type": "number"
          },
          {
            "description": "Match the tunnel's alias on a text string",
            "in": "query",
            "name": "matchingAlias",
            "required": false,
            "type": "string"
          },
          {
            "description": "The overlay ID to match tunnels on. 0 would be all physical tunnels, all - would be all bonded tunnels",
            "in": "query",
            "name": "overlayId",
            "type": "string"
          },
          {
            "description": "The regular expression to match a tunnel state",
            "in": "query",
            "name": "state",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/TunnelsBetweenResultTunnel"
              },
              "type": "array"
            }
          }
        },
        "description": "Use this API to get all the tunnels between a list of appliances. For all physical tunnels, set overlayId to 0. For all bonded tunnels, set overlayId to 'all'. For a specific overlay, you can set overlayId to the overlay ID",
        "operationId": "GetTunnelsBetweenAppliances",
        "summary": "Get all tunnels between appliances"
      }
    },
    "/tunnels2/passThrough": {
      "get": {
        "parameters": [
          {
            "description": "The max number of tunnels to return",
            "in": "query",
            "name": "limit",
            "required": true,
            "type": "number"
          },
          {
            "description": "Search for all tunnels that have this string in it's alias",
            "in": "query",
            "name": "matchingAlias",
            "required": false,
            "type": "string"
          },
          {
            "description": "Search for all tunnels that have this string in it's Peer/service",
            "in": "query",
            "name": "matchingService",
            "required": false,
            "type": "string"
          },
          {
            "description": "The regular expression to match a tunnel state",
            "in": "query",
            "name": "state",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/NePKToPassThroughTunnelsMap"
            }
          }
        },
        "description": "This API will return all the matching tunnels given the query parameters. Please use the 'limit' parameter to ensure the response is not too big.",
        "operationId": "searchAllPassThroughTunnels",
        "summary": "Search pass through tunnels"
      }
    },
    "/tunnels2/passThrough/{nePk}": {
      "get": {
        "parameters": [
          {
            "description": "The appliance's id/nePk",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "The max number of tunnels to return",
            "in": "query",
            "name": "limit",
            "required": true,
            "type": "number"
          },
          {
            "description": "Search for all tunnels that have this string in it's alias",
            "in": "query",
            "name": "matchingAlias",
            "required": false,
            "type": "string"
          },
          {
            "description": "Search for all tunnels that have this string in it's Peer/service",
            "in": "query",
            "name": "matchingService",
            "required": false,
            "type": "string"
          },
          {
            "description": "The regular expression to match a tunnel state",
            "in": "query",
            "name": "state",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/PassThroughTunnelIdToTunnelMap"
            }
          }
        },
        "description": "This API will return all the matching tunnels given the query parameters. Please use the 'limit' parameter to ensure the response is not too big.",
        "operationId": "searchAppliancePassthroughTunnels",
        "summary": "Search pass through tunnels for one appliance"
      }
    },
    "/tunnels2/passThrough/{nePk}/{passThroughTunnelId}": {
      "get": {
        "parameters": [
          {
            "description": "The appliance's id/nePk",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the pass through tunnel",
            "in": "path",
            "name": "passThroughTunnelId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/PassThroughTunnel"
            }
          }
        },
        "operationId": "getPassThroughTunnel",
        "summary": "Get pass through tunnel"
      }
    },
    "/tunnels2/physical": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "The max number of tunnels to return",
            "in": "query",
            "name": "limit",
            "required": true,
            "type": "number"
          },
          {
            "description": "Match the tunnel's alias on a text string",
            "in": "query",
            "name": "matchingAlias",
            "required": false,
            "type": "string"
          },
          {
            "description": "The regular expression to match a tunnel state",
            "in": "query",
            "name": "state",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/NePkToPhysicalTunnelsMap"
            }
          }
        },
        "description": "The returned data is a map of nePk -> <tunnelId, tunnel>.",
        "operationId": "searchAllPhysicalTunnels",
        "summary": "Search physical tunnels, all appliances"
      }
    },
    "/tunnels2/physical/{nePk}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "The nePk of the appliance",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "The max number of tunnels to return",
            "in": "query",
            "name": "limit",
            "required": true,
            "type": "number"
          },
          {
            "description": "Match the tunnel's alias on a text string",
            "in": "query",
            "name": "matchingAlias",
            "required": false,
            "type": "string"
          },
          {
            "description": "The regular expression to match a tunnel state",
            "in": "query",
            "name": "state",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/PhysicalTunnelsIdToTunnelMap"
            }
          }
        },
        "description": "The returned data is a map of <tunnelId, tunnel>.",
        "operationId": "searchAllPhysicalTunnels",
        "summary": "Search physical tunnels for one appliance"
      }
    },
    "/tunnels2/physical/{nePk}/{tunnelId}": {
      "get": {
        "parameters": [
          {
            "description": "The nePk of the appliance",
            "in": "path",
            "name": "nePk",
            "required": true,
            "type": "string"
          },
          {
            "description": "The tunnel's ID",
            "in": "path",
            "name": "tunnelId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/PhysicalTunnelConfig2"
            }
          }
        },
        "description": "Get the details of one physical tunnel with the tunnel id",
        "operationId": "GetOnePhysicalTunnel",
        "summary": "Get physical tunnel"
      }
    },
    "/tunnelsConfiguration/deployment": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelsDeploymentInfo"
            }
          }
        },
        "description": "This API returns the current deployment mode and list of lan/wan interface details for each appliance managed by this Orchestrator",
        "operationId": "tunnelsDeploymentInfo",
        "summary": "Get deployment information for appliances managed by the Orchestrator."
      }
    },
    "/tunnelsConfiguration/overlayInfo": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/TunnelsOverlayInfo"
            }
          }
        },
        "description": "This API returns all the tunnels in Orchestrator, in groups of; all physical tunnels, tunnels in each overlay, and all tunnels. The different groups can be found using the root object's keys:<br /><ul><li>0 - all physical tunnels</li><li>1 - 7 - All bonded tunnels in that overlay (denoted by the underlay id, 1-7)</li><li>all - all physical and bonded tunnels</li></ul><br /> The tunnels are under two keys, the first is the source appliance (nePk), and the second is the destination appliance (nePk)",
        "operationId": "tunnelsOverlayInfo",
        "summary": "Get the tunnels in each overlay"
      }
    },
    "/tunnelsConfiguration/passThroughTunnelsInfo": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/passThroughTunnelsInfo"
            }
          }
        },
        "description": "This API returns all the Pass Through tunnels in Orchestrator",
        "operationId": "passThroughTunnelsInfo",
        "summary": "Get all pass through tunnels from all appliances"
      }
    },
    "/uiUsageStats/{uiName}": {
      "post": {
        "parameters": [
          {
            "description": "The title of the dialogue or the name of the tab used",
            "in": "path",
            "name": "uiName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "description": "Add usage count for one UI feature.",
        "operationId": "uiUsageStats",
        "summary": "Add usage count for one UI feature"
      }
    },
    "/upgradeAppliances": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Upgrade appliances post data in JSON",
            "in": "body",
            "name": "ApplianceUpgradeEntry",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApplianceUpgradeEntry"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/UpgradeAppliancesResponse"
            }
          }
        },
        "description": "The data to post need to contain image filename, install option and nePk id list .",
        "operationId": "upgradeAppliances",
        "summary": "Upgrade appliances with option"
      }
    },
    "/userAccount/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "'cached = true' will retrieve the user account details from cache .",
            "in": "query",
            "name": "cached",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/UserAccount"
            }
          }
        },
        "description": "the return data contains users and sessions object. users object is a map of user details keyed by username. sessions object is a map of sessions keyed by session number",
        "operationId": "getUserAccount",
        "summary": "Gets all user details and sessions of appliance"
      }
    },
    "/users": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/UsersGetItem"
              },
              "type": "array"
            }
          }
        },
        "operationId": "users",
        "summary": "Returns all the users in the system"
      }
    },
    "/users/forgotPassword": {
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "ForgotPasswordBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ForgotPasswordBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "forgotPassword",
        "summary": "Forgot password"
      }
    },
    "/users/newTfaKey": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/NewTfaKeyResponse"
            }
          }
        },
        "operationId": "newTfaKey",
        "summary": "Returns a barcode to scan with an authentication application to set up app based two factor authentication for your account"
      }
    },
    "/users/resetPassword": {
      "post": {
        "parameters": [
          {
            "in": "body",
            "name": "ResetPasswordBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ResetPasswordBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/NewTfaKeyResponse"
            }
          }
        },
        "operationId": "resetPassword",
        "summary": "Resets user password"
      }
    },
    "/users/{newUser}": {
      "post": {
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "description": "Flag to indicate new user(=true) or update user details(=false)",
            "in": "path",
            "name": "newUser",
            "required": true,
            "type": "boolean"
          },
          {
            "in": "body",
            "name": "SaveUpdateUserBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SaveUpdateUserBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "users",
        "summary": "Creates a new user or updates it. 'Status: Active/Inactive. Role: Admin Manager/Network Monitor'"
      }
    },
    "/users/{userId}/{userName}": {
      "delete": {
        "parameters": [
          {
            "description": "Appliance ID",
            "in": "path",
            "name": "userId",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "userName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "users",
        "summary": "Deletes the specified user"
      }
    },
    "/users/{userName}": {
      "get": {
        "parameters": [
          {
            "description": "User name",
            "in": "path",
            "name": "userName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/UsersGetItem"
            }
          }
        },
        "operationId": "users",
        "summary": "Gets user by username"
      }
    },
    "/users/{username}/password": {
      "post": {
        "produces": [
          "text/plain"
        ],
        "parameters": [
          {
            "description": "user name",
            "in": "path",
            "name": "username",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "ChangePasswordBody",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ChangePasswordBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "operationId": "users",
        "summary": "Changes user password"
      }
    },
    "/virtualif/loopback/{neId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/loopbackConfig"
            }
          }
        },
        "operationId": "loopbackGet",
        "summary": "Get loopback interface configuration on the appliance"
      }
    },
    "/virtualif/vti/{neId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/vtiConfig"
            }
          }
        },
        "operationId": "vtiGet",
        "summary": "Get VTI interface configuration on the appliance"
      }
    },
    "/vrrp/{neId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false)",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/VRRP_GET"
              },
              "type": "array"
            }
          }
        },
        "operationId": "vrrpGet",
        "summary": "Get a list of VRRP instances configured on the appliance"
      }
    },
    "/vxoaImages": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "items": {
                "$ref": "#/definitions/ImageItem"
              },
              "type": "array"
            }
          }
        },
        "description": "the return data contains a list of VXOA image object, an image object contains file name, version and build date time.",
        "operationId": "VXOAImagesGet",
        "summary": "Get VXOA images"
      }
    },
    "/vxoaImages/{imageFile}": {
      "delete": {
        "produces": [
          "text/html"
        ],
        "parameters": [
          {
            "description": "the file name of VXOA image to delete",
            "in": "path",
            "name": "imageFile",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "type": "string"
            }
          }
        },
        "description": "the last url part is the file name of image to delete",
        "operationId": "VXOAImagesDelete",
        "summary": "Delete VXOA image"
      }
    },
    "/wccp/config/group/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/WccpConfigServiceGroups"
            }
          }
        },
        "description": "the returned data is an object in which each key is the group Id, each value is an object for the service group settings.",
        "operationId": "WccpConfigGroup",
        "summary": "Get WCCP service groups settings for the appliance."
      }
    },
    "/wccp/config/system/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/WccpConfigSystem"
            }
          }
        },
        "operationId": "WccpConfigSystem",
        "summary": "Get WCCP system settings for the appliance"
      }
    },
    "/wccp/state/{neId}": {
      "get": {
        "parameters": [
          {
            "description": "neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
            "in": "path",
            "name": "neId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Get data from cache (true) or from appliance (false).",
            "in": "path",
            "name": "cached",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/WccpState"
            }
          }
        },
        "operationId": "WccpState",
        "summary": "Get WCCP state"
      }
    },
    "/zones": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Zones"
            }
          }
        },
        "operationId": "zonesGet",
        "summary": "Returns all Zones defined in Orchestrator"
      },
      "post": {
        "parameters": [
          {
            "description": "JSON object containing all Zones",
            "in": "body",
            "name": "zones",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Zones"
            }
          },
          {
            "description": "If true, Zones deleted here will be removed from overlays, policies, interfaces and deployment profiles currently using those zones",
            "in": "query",
            "name": "deleteDependencies",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "zonesPost",
        "summary": "Add/Edit Zones"
      }
    },
    "/zones/nextId": {
      "get": {
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/NextId"
            }
          }
        },
        "operationId": "nextIdGet",
        "summary": "Returns Next Id that should be assigned to a new Zone"
      },
      "post": {
        "parameters": [
          {
            "description": "JSON object containing Next Id",
            "in": "body",
            "name": "nextIdPost",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NextId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified"
          }
        },
        "operationId": "nextIdPost",
        "summary": "Update Next Id"
      }
    }
  },
  "tags": [],
  "definitions": {
    "InternalSubnetsConfig": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "Scalars": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "NePKToPassThroughTunnelsMap": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "JitterAggregateStatsFields": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "SampleTunnelUsagePolicy": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "Array of objects": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "PortsAggregateStatsFields": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "GmsBackupConfigResponseObject": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "ScheduledJobItem": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "BoostAggregateStats": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "timestamp": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "decimal": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "fwZone": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "NetworkRoleAndSiteGet": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "userAuthTypeToken": {
      "description": "The port to use when building IPSec UDP tunnels on this appliance",
      "type": "string"
    },
    "AEIOverlaySettings": {
      "properties": {
        "ipsecUdpPort": {
          "description": "The port to use when building IPSec UDP tunnels on this appliance",
          "type": "string"
        },
        "isUserDefinedIPSecUDPPort": {
          "description": "Is the port defined by the user or assigned by Orchestrator",
          "type": "boolean"
        }
      }
    },
    "AccountKeySummary": {
      "properties": {
        "key": {
          "type": "string"
        }
      },
      "required": [
        "key"
      ],
      "type": "object"
    },
    "ActionLog": {
      "properties": {
        "completionStatus": {
          "description": "Show if action succeeded or failed",
          "type": "boolean"
        },
        "description": {
          "description": "Description of the action",
          "type": "string"
        },
        "endTime": {
          "description": "End time of the action in milliseconds since epoch",
          "type": "number"
        },
        "guid": {
          "description": "GUID of a group of related actions",
          "type": "string"
        },
        "id": {
          "description": "Id of the log entry",
          "type": "number"
        },
        "intTaskStatus": {
          "description": "Status of the action in integer enum format",
          "type": "number"
        },
        "ipAddress": {
          "description": "IP Address who performed this action",
          "type": "string"
        },
        "name": {
          "description": "Name of the action",
          "type": "string"
        },
        "nepk": {
          "description": "Primary key of the appliance on which this action was performed",
          "type": "string"
        },
        "percentComplete": {
          "description": "Percentage completion of the action",
          "type": "number"
        },
        "queuedTime": {
          "description": "Original queued time of the action in milliseconds since epoch",
          "type": "number"
        },
        "result": {
          "description": "Opaque blob of data related to action. Typically, this is the result of the action.",
          "type": "string"
        },
        "startTime": {
          "description": "Start time of the action in milliseconds since epoch",
          "type": "number"
        },
        "taskStatus": {
          "description": "Status of the action",
          "type": "string"
        },
        "user": {
          "description": "User who performed this action",
          "type": "string"
        }
      },
      "required": [
        "completionStatus",
        "description",
        "endTime",
        "guid",
        "id",
        "intTaskStatus",
        "ipAddress",
        "name",
        "nepk",
        "percentComplete",
        "queuedTime",
        "result",
        "startTime",
        "taskStatus",
        "user"
      ]
    },
    "ActionObject": {
      "properties": {
        "bind_to_device": {
          "description": "sub action is bind to device (true or false)",
          "type": "string"
        },
        "bypass": {
          "description": "action is force bypass (true or false)",
          "type": "string"
        },
        "drop": {
          "description": "action is drop(true or false)",
          "type": "string"
        },
        "passthrough": {
          "description": "action is passthrough unshaped (true or false)",
          "type": "string"
        },
        "src_ip_based_routing": {
          "description": "sub action is source ip based routing (true or false)",
          "type": "string"
        }
      }
    },
    "ActiveApplianceAlarmCounts": {
      "properties": {
        "applianceId": {
          "type": "string"
        },
        "numOfAlarms": {
          "type": "integer"
        },
        "numOfCriticalAlarms": {
          "type": "integer"
        },
        "numOfMajorAlarms": {
          "type": "integer"
        },
        "numOfMinorAlarms": {
          "type": "integer"
        },
        "numOfWarningAlarms": {
          "type": "integer"
        }
      },
      "required": [
        "applianceId",
        "numOfAlarms",
        "numOfCriticalAlarms",
        "numOfMajorAlarms",
        "numOfMinorAlarms",
        "numOfWarningAlarms"
      ],
      "type": "object"
    },
    "ActiveFlowCounts": {
      "properties": {
        "<nePk>": {
          "$ref": "#/definitions/ActiveFlowCountsObject"
        }
      },
      "required": [
        "<nePk>"
      ]
    },
    "ActiveFlowCountsObject": {
      "properties": {
        "NON_TCP_COUNT": {
          "type": "integer"
        },
        "TCP_ACCELERATED_COUNT": {
          "type": "integer"
        },
        "TCP_NOT_ACCELERATED_COUNT": {
          "type": "integer"
        },
        "TIMESTAMP": {
          "type": "integer"
        }
      }
    },
    "AddressComponent": {
      "properties": {
        "long_name": {
          "type": "string"
        },
        "short_name": {
          "type": "string"
        },
        "types": {
          "description": "Different names for the type of the address component (ex: country, postal_town)",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AdminDistanceConfig": {
      "properties": {
        "bgp_br": {
          "description": "Distance of BGP Branch",
          "type": "integer"
        },
        "bgp_pe": {
          "description": "Distance of BGP PE",
          "type": "integer"
        },
        "bgp_tr": {
          "description": "Distance of BGP Transit",
          "type": "integer"
        },
        "local": {
          "description": "Distance of Local",
          "type": "integer"
        },
        "ospf": {
          "description": "Distance of OSPF",
          "type": "integer"
        },
        "sub_shared": {
          "description": "Distance of Subnet Shared - Static Routes",
          "type": "integer"
        },
        "sub_shared_bgp": {
          "description": "Distance of Subnet Shared - BGP Remote",
          "type": "integer"
        },
        "sub_shared_ospf": {
          "description": "Distance of Subnet Shared - OSPF Remote",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "AdvancedProperties": {
      "properties": {
        "ContentSecurityPolicyHeaderEnabled": {
          "description": "Default value is true ",
          "type": "boolean"
        },
        "MultipleOrchestratorsForOneZscalerAccount": {
          "description": "Default value is false ",
          "type": "boolean"
        },
        "ParallelActionTasks": {
          "description": "Default value is 50 ",
          "type": "integer"
        },
        "ParallelOrchestrationTasks": {
          "description": "Default value is 50 ",
          "type": "integer"
        },
        "ParallelReachabilityTasks": {
          "description": "Default value is 20 ",
          "type": "integer"
        },
        "ParallelStatsTasks": {
          "description": "Default value is 20 ",
          "type": "integer"
        },
        "bondedTunnelReorderWaitTime": {
          "description": "Default value is 100 ",
          "type": "integer"
        },
        "bridgeCacheExpireTime": {
          "description": "Default value is 120 ",
          "type": "integer"
        },
        "dbPoolConnectionTimeout": {
          "description": "Default value is 30000 ",
          "type": "integer"
        },
        "dbPoolIdleTimeout": {
          "description": "Default value is 120000 ",
          "type": "integer"
        },
        "dbPoolLeakDetectionThreshold": {
          "description": "Default value is 300000 ",
          "type": "integer"
        },
        "dbPoolMaxConnectionLifeTime": {
          "description": "Default value is 300000",
          "type": "integer"
        },
        "dbPoolMaxConnections": {
          "description": "Default value is 1000 ",
          "type": "integer"
        },
        "dbPoolMinimumIdleConnections": {
          "description": "Default value is 10 ",
          "type": "integer"
        },
        "dbPoolValidationTimeout": {
          "description": "Default value is 3000 ",
          "type": "integer"
        },
        "denyApplianceOnDelete": {
          "description": "Default value is true ",
          "type": "boolean"
        },
        "emailImagesMaxSize": {
          "description": "Default value is 10 ",
          "type": "integer"
        },
        "excludeTables": {
          "description": "Default value is false ",
          "type": "boolean"
        },
        "excludedTableNames": {
          "description": "Default value is 'dailyapp,dailydrc,dailydrops,dailydscp,dailyflow,dailyinterface,dailyjitter,dailymemory,dailynxtraffic,dailyshaper,dailytrafficclass,dailytunneltraffic,hourlyapp,hourlydns,hourlydrc,hourlydrops,hourlydscp,hourlyflow,hourlyflowapp,hourlyflowapp2,hourlyinterface,hourlyjitter,hourlylatency,hourlyloss,hourlynxtraffic,hourlyport,hourlyshaper,hourlytoptalkers,hourlytrafficclass,hourlytunneltraffic,minuteapp,minutedrc,minutedrops,minutedscp,minuteflow,minuteinterface,minutejitter,minutenxtraffic,minuteshaper,minutetrafficclass,minutetunneltraffic,neconfig2,hourlyBehavioral,minuteinterfaceoverlay,hourlyinterfaceoverlay,dailyinterfaceoverlay,restrequesttimestats,minutemos,hourlymos,dailymos,minuteboost,hourlyboost,dailyboost,minutesecuritypolicy,hourlysecuritypolicy,dailysecuritypolicy' ",
          "type": "string"
        },
        "failedLoginAttemptThreshold": {
          "description": "Default value is 5 ",
          "type": "integer"
        },
        "fileOpsChunkSize": {
          "description": "Default value is 1024 * 1024 ",
          "type": "integer"
        },
        "jettyAcceptQueueSize": {
          "description": "Default value is 1000 ",
          "type": "integer"
        },
        "jettyIdleTimeout": {
          "description": "Default value is 60000 ",
          "type": "integer"
        },
        "jettyMaxThreads": {
          "description": "Default value is 128 ",
          "type": "integer"
        },
        "jettyMinThreads": {
          "description": "Default value is 10 ",
          "type": "integer"
        },
        "mgmtInterface": {
          "description": "Default value is 'eth0' ",
          "type": "string"
        },
        "modifyTunnelBatchSize": {
          "description": "Default value is 500 ",
          "type": "integer"
        },
        "newSoftwareReleasesNotification": {
          "description": "Default value is true ",
          "type": "boolean"
        },
        "restRequestStatsCollection": {
          "description": "Default value is true ",
          "type": "boolean"
        },
        "restRequestTimeout": {
          "description": "Default value is 60 ",
          "type": "integer"
        },
        "sslExcludeCiphers": {
          "description": "Default value is '.*NULL.*,.*RC4.*,.*MD5.*,.*DES.*,.*DSS.*' ",
          "type": "string"
        },
        "sslExcludeProtocols": {
          "description": "Default value is 'SSL,SSLv3,SSLv2,SSLv2Hello,TLSv1,TLSv1.1' ",
          "type": "string"
        },
        "sslIncludeCiphers": {
          "description": "Default value is 'TLS_DHE_RSA.*,TLS_ECDHE.*' ",
          "type": "string"
        },
        "sslIncludeProtocols": {
          "description": "Default value is 'TLSv1.2' ",
          "type": "string"
        },
        "threadPoolSize": {
          "description": "Default value is 1000 ",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "AdvancedPropertiesMetaData": {
      "properties": {
        "ContentSecurityPolicyHeaderEnabled": {
          "$ref": "#/definitions/MataDataObject"
        },
        "MultipleOrchestratorsForOneZscalerAccount": {
          "$ref": "#/definitions/MataDataObject"
        },
        "ParallelActionTasks": {
          "$ref": "#/definitions/MataDataObject"
        },
        "ParallelOrchestrationTasks": {
          "$ref": "#/definitions/MataDataObject"
        },
        "ParallelReachabilityTasks": {
          "$ref": "#/definitions/MataDataObject"
        },
        "ParallelStatsTasks": {
          "$ref": "#/definitions/MataDataObject"
        },
        "bondedTunnelReorderWaitTime": {
          "$ref": "#/definitions/MataDataObject"
        },
        "bridgeCacheExpireTime": {
          "$ref": "#/definitions/MataDataObject"
        },
        "dbPoolConnectionTimeout": {
          "$ref": "#/definitions/MataDataObject"
        },
        "dbPoolIdleTimeout": {
          "$ref": "#/definitions/MataDataObject"
        },
        "dbPoolLeakDetectionThreshold": {
          "$ref": "#/definitions/MataDataObject"
        },
        "dbPoolMaxConnectionLifeTime": {
          "$ref": "#/definitions/MataDataObject"
        },
        "dbPoolMaxConnections": {
          "$ref": "#/definitions/MataDataObject"
        },
        "dbPoolMinimumIdleConnections": {
          "$ref": "#/definitions/MataDataObject"
        },
        "dbPoolValidationTimeout": {
          "$ref": "#/definitions/MataDataObject"
        },
        "denyApplianceOnDelete": {
          "$ref": "#/definitions/MataDataObject"
        },
        "emailImagesMaxSize": {
          "$ref": "#/definitions/MataDataObject"
        },
        "excludeTables": {
          "$ref": "#/definitions/MataDataObject"
        },
        "excludedTableNames": {
          "$ref": "#/definitions/MataDataObject"
        },
        "failedLoginAttemptThreshold": {
          "$ref": "#/definitions/MataDataObject"
        },
        "fileOpsChunkSize": {
          "$ref": "#/definitions/MataDataObject"
        },
        "jettyAcceptQueueSize": {
          "$ref": "#/definitions/MataDataObject"
        },
        "jettyIdleTimeout": {
          "$ref": "#/definitions/MataDataObject"
        },
        "jettyMaxThreads": {
          "$ref": "#/definitions/MataDataObject"
        },
        "jettyMinThreads": {
          "$ref": "#/definitions/MataDataObject"
        },
        "mgmtInterface": {
          "$ref": "#/definitions/MataDataObject"
        },
        "modifyTunnelBatchSize": {
          "$ref": "#/definitions/MataDataObject"
        },
        "newSoftwareReleasesNotification": {
          "$ref": "#/definitions/MataDataObject"
        },
        "restRequestStatsCollection": {
          "$ref": "#/definitions/MataDataObject"
        },
        "restRequestTimeout": {
          "$ref": "#/definitions/MataDataObject"
        },
        "sslExcludeCiphers": {
          "$ref": "#/definitions/MataDataObject"
        },
        "sslExcludeProtocols": {
          "$ref": "#/definitions/MataDataObject"
        },
        "sslIncludeCiphers": {
          "$ref": "#/definitions/MataDataObject"
        },
        "sslIncludeProtocols": {
          "$ref": "#/definitions/MataDataObject"
        },
        "threadPoolSize": {
          "$ref": "#/definitions/MataDataObject"
        }
      },
      "type": "object"
    },
    "AlarmAcknowledgementBody": {
      "properties": {
        "acknowledge": {
          "description": "Ack (true), Un-Ack(false)",
          "type": "boolean"
        },
        "actions": {
          "items": {
            "$ref": "#/definitions/AlarmAction"
          },
          "type": "array"
        }
      },
      "required": [
        "acknowledge"
      ],
      "type": "object"
    },
    "AlarmAction": {
      "properties": {
        "id": {
          "description": "Appliance alarm primary id",
          "type": "integer"
        },
        "sequenceId": {
          "description": "Appliance alarm sequence id",
          "type": "integer"
        },
        "source": {
          "description": "Appliance alarm source",
          "type": "string"
        }
      },
      "required": [
        "id",
        "sequenceId",
        "source"
      ],
      "type": "object"
    },
    "AlarmClearanceBody": {
      "properties": {
        "actions": {
          "items": {
            "$ref": "#/definitions/AlarmAction"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AlarmDesc": {
      "properties": {
        "alarmType": {
          "description": "Uniquely identifies the type of alarm within a sourceType",
          "type": "integer"
        },
        "description": {
          "description": "Alarm description",
          "type": "string"
        },
        "name": {
          "description": "Alarm name",
          "type": "string"
        },
        "recommendedAction": {
          "description": "recommended action",
          "type": "string"
        },
        "serviceAffecting": {
          "description": " Is alarm service affecting",
          "type": "boolean"
        },
        "severity": {
          "description": "Alarm severity info",
          "type": "string"
        },
        "source": {
          "description": "Module/system that generates alarm",
          "type": "string"
        },
        "sourceType": {
          "description": "Identifies the category of alarm. 1 = Tunnel,2 = Traffic Class, 3 = Equipment, 4 = Software, 5 = Threshold",
          "type": "integer"
        },
        "systemType": {
          "description": "Identifies which system generated the alaram.0 = Appliance,100 = Orchestartor",
          "type": "integer"
        },
        "typeId": {
          "description": "Alarm type id",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "AlarmGetSummary": {
      "properties": {
        "num_critical": {
          "type": "integer"
        },
        "num_equipment_outstanding": {
          "type": "integer"
        },
        "num_major": {
          "type": "integer"
        },
        "num_minor": {
          "type": "integer"
        },
        "num_outstanding": {
          "type": "integer"
        },
        "num_software_outstanding": {
          "type": "integer"
        },
        "num_tca_outstanding": {
          "type": "integer"
        },
        "num_traffic_class_outstanding": {
          "type": "integer"
        },
        "num_tunnel_outstanding": {
          "type": "integer"
        },
        "num_warning": {
          "type": "integer"
        }
      },
      "required": [
        "num_critical",
        "num_equipment_outstanding",
        "num_major",
        "num_minor",
        "num_outstanding",
        "num_software_outstanding",
        "num_tca_outstanding",
        "num_traffic_class_outstanding",
        "num_tunnel_outstanding",
        "num_warning"
      ],
      "type": "object"
    },
    "AlarmItem": {
      "properties": {
        "acknowledged": {
          "type": "boolean"
        },
        "clearable": {
          "type": "boolean"
        },
        "description": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "occurrenceCount": {
          "type": "integer"
        },
        "recommendation": {
          "type": "string"
        },
        "sequenceId": {
          "type": "integer"
        },
        "serviceAffect": {
          "type": "boolean"
        },
        "severity": {
          "type": "integer"
        },
        "source": {
          "type": "string"
        },
        "time": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "typeId": {
          "type": "integer"
        }
      },
      "required": [
        "acknowledged",
        "clearable",
        "description",
        "name",
        "occurrenceCount",
        "recommendation",
        "sequenceId",
        "serviceAffect",
        "severity",
        "source",
        "time",
        "type",
        "typeId"
      ],
      "type": "object"
    },
    "AlarmNotification": {
      "properties": {
        "enable": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AlarmPeriodSummary": {
      "properties": {
        "alarmCountsInPeriod": {
          "$ref": "#/definitions/CountSummary"
        },
        "critical": {
          "$ref": "#/definitions/AlarmPeriodSummaryItem"
        },
        "major": {
          "$ref": "#/definitions/AlarmPeriodSummaryItem"
        },
        "minor": {
          "$ref": "#/definitions/AlarmPeriodSummaryItem"
        },
        "warning": {
          "$ref": "#/definitions/AlarmPeriodSummaryItem"
        }
      },
      "required": [
        "alarmCountsInPeriod",
        "critical",
        "major",
        "minor",
        "warning"
      ],
      "type": "object"
    },
    "AlarmPeriodSummaryItem": {
      "properties": {
        "description": {
          "description": "Alarm description",
          "type": "string"
        },
        "sequenceId": {
          "description": "Alarm sequence id",
          "type": "integer"
        },
        "time": {
          "description": "Time alarm occurred",
          "type": "integer"
        }
      },
      "required": [
        "description",
        "sequenceId",
        "time"
      ],
      "type": "object"
    },
    "AlarmSummary": {
      "properties": {
        "numOfCriticalAlarms": {
          "type": "integer"
        },
        "numOfMajorAlarms": {
          "type": "integer"
        },
        "numOfMinorAlarms": {
          "type": "integer"
        },
        "numOfWarningAlarms": {
          "type": "integer"
        }
      },
      "required": [
        "numOfCriticalAlarms",
        "numOfMajorAlarms",
        "numOfMinorAlarms",
        "numOfWarningAlarms"
      ],
      "type": "object"
    },
    "AllDiscoveredAppliance": {
      "properties": {
        "applianceInfo": {
          "$ref": "#/definitions/applianceInfoObj"
        },
        "approved": {
          "description": "Boolean flag that indicates if appliance is approved, 0 = not approve, 1 = approved",
          "type": "boolean"
        },
        "approvedTime": {
          "description": "Time appliance got approved",
          "type": "integer"
        },
        "denied": {
          "description": "Boolean flag that indicates if appliance is denied, 0 = not denied, 1 = denied",
          "type": "boolean"
        },
        "deniedTime": {
          "description": "Time appliance got denied",
          "type": "integer"
        },
        "discoveredFrom": {
          "description": "Describe the each enum value and what is means in 1 sentence",
          "type": "integer"
        },
        "discoveredTime": {
          "description": "Time appliance got discovered",
          "type": "integer"
        },
        "dynamicUuid": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "portalObjectId": {
          "type": "string"
        },
        "userId": {
          "description": "User who approved or denied it",
          "type": "string"
        },
        "uuid": {
          "type": "string"
        }
      }
    },
    "AllStates": {
      "properties": {
        "<tunnel name>": {
          "$ref": "#/definitions/TunnelState"
        }
      },
      "type": "object"
    },
    "AllWanLabelSettings": {
      "properties": {
        "<Wan Label Id>": {
          "$ref": "#/definitions/WanLabelSettings"
        }
      },
      "type": "object"
    },
    "AppSystemDeployInfo": {
      "properties": {
        "auto_ipid": {
          "description": "Enable auto IP ID",
          "type": "boolean"
        },
        "auto_pol_lookup_intvl": {
          "description": "Auto policy lookup interval",
          "type": "integer"
        },
        "auto_subnet": {
          "$ref": "#/definitions/auto_subnet",
          "description": "Auto subnet"
        },
        "auto_syn": {
          "description": "Enable auto SYN",
          "type": "boolean"
        },
        "auto_tunnel": {
          "description": "Enable auto tunnel",
          "type": "boolean"
        },
        "bridge_loop_test": {
          "description": "Bridge loop test",
          "type": "boolean"
        },
        "bw": {
          "$ref": "#/definitions/bw",
          "description": "System bandwidth"
        },
        "disk_encrypt_enable": {
          "description": "Enable disk encryption",
          "type": "boolean"
        },
        "dpc": {
          "$ref": "#/definitions/dpc",
          "description": "DPC"
        },
        "excess_flow": {
          "$ref": "#/definitions/excess_flow",
          "description": "Excess flow"
        },
        "ha_if": {
          "description": "High availability interface",
          "type": "string"
        },
        "idrc": {
          "$ref": "#/definitions/idrc",
          "description": "IDRC"
        },
        "igmp_snooping": {
          "description": "Bridge multicast IGMP snooping",
          "type": "boolean"
        },
        "int_hairpin": {
          "description": "Enable internal hairpinning",
          "type": "boolean"
        },
        "ipsec_override": {
          "description": "SSL IPSec override",
          "type": "boolean"
        },
        "max_tcp_mss": {
          "description": "Maximum TCP MSS range from 500 to 9000",
          "type": "integer"
        },
        "nat": {
          "description": "Enable NAT",
          "type": "boolean"
        },
        "network_role": {
          "description": "Network role",
          "type": "integer"
        },
        "nm_fsp_enable": {
          "description": "Enable network memory FSP",
          "type": "boolean"
        },
        "nm_media": {
          "description": "System network memory media",
          "type": "integer"
        },
        "nm_mode": {
          "description": "System network memory mode",
          "type": "integer"
        },
        "node_dns": {
          "$ref": "#/definitions/dns",
          "description": "DNS lookup"
        },
        "options": {
          "description": "Tunnel system level options for future",
          "type": "integer"
        },
        "orch_guid": {
          "description": "Orchestrator GUID",
          "type": "string"
        },
        "passthru_to_sender": {
          "description": "Disable passthrough L2 return to sender",
          "type": "boolean"
        },
        "port_fwd_rules": {
          "description": "Inbound port forwarding rules",
          "type": "string"
        },
        "quies_tun_ka_intvl": {
          "description": "Quiescent-tunnel keep alive time range from 1 to 65535",
          "type": "integer"
        },
        "serverMode": {
          "$ref": "#/definitions/serverMode",
          "description": "Server mode"
        },
        "shaperinbound": {
          "$ref": "#/definitions/shaperInbound",
          "description": "Shaper inbound"
        },
        "smb_signing": {
          "description": "SMB signing optimization",
          "type": "boolean"
        },
        "udp_inact_time": {
          "description": "UDP flow timeout in seconds range from 1 to 65535",
          "type": "integer"
        },
        "udp_ipsec_lcl_ports": {
          "description": "List of ports used locally for UDP IPSec tunnels",
          "type": "string"
        },
        "udp_ipsec_peer_ports": {
          "description": "List of ports used by peers for UDP IPSec tunnels",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AppSystemStateInfo": {
      "properties": {
        "alarmSummary": {
          "$ref": "#/definitions/alarmSummary",
          "description": "Need description here"
        },
        "applianceid": {
          "description": "Need description here",
          "type": "integer"
        },
        "biosVersion": {
          "description": "Need description here",
          "type": "string"
        },
        "datetime": {
          "description": "Need description here",
          "type": "string"
        },
        "deploymentMode": {
          "description": "Need description here",
          "type": "string"
        },
        "gmtOffset": {
          "description": "Need description here",
          "type": "integer"
        },
        "hasUnsavedChanges": {
          "description": "Need description here",
          "type": "boolean"
        },
        "hostName": {
          "description": "Need description here",
          "type": "string"
        },
        "isLicenseInstalled": {
          "description": "Need description here",
          "type": "boolean"
        },
        "licenseExpirationDaysLeft": {
          "description": "Need description here",
          "type": "integer"
        },
        "licenseExpiryDate": {
          "description": "Need description here",
          "type": "integer"
        },
        "licenseRequired": {
          "description": "Need description here",
          "type": "boolean"
        },
        "model": {
          "description": "Need description here",
          "type": "string"
        },
        "modelShort": {
          "description": "Need description here",
          "type": "string"
        },
        "rebootRequired": {
          "description": "Need description here",
          "type": "boolean"
        },
        "release": {
          "description": "Need description here",
          "type": "string"
        },
        "releaseWithoutPrefix": {
          "description": "Need description here",
          "type": "string"
        },
        "serial": {
          "description": "Need description here",
          "type": "string"
        },
        "status": {
          "description": "Need description here",
          "type": "string"
        },
        "timezone": {
          "description": "Need description here",
          "type": "string"
        },
        "uptime": {
          "description": "Need description here",
          "type": "integer"
        },
        "uptimeString": {
          "description": "Need description here",
          "type": "string"
        },
        "uuid": {
          "description": "Need description here",
          "type": "string"
        }
      },
      "required": [
        "applianceid",
        "biosVersion",
        "datetime",
        "deploymentMode",
        "gmtOffset",
        "hasUnsavedChanges",
        "hostName",
        "isLicenseInstalled",
        "licenseExpirationDaysLeft",
        "licenseExpiryDate",
        "licenseRequired",
        "model",
        "modelShort",
        "rebootRequired",
        "release",
        "releaseWithoutPrefix",
        "serial",
        "status",
        "timezone",
        "uptime",
        "uptimeString",
        "uuid"
      ],
      "type": "object"
    },
    "ApplianceAggregateStats": {
      "properties": {
        "<trafficType>": {
          "$ref": "#/definitions/ApplianceAggregateStatsApplianceLevelObject"
        }
      },
      "required": [
        "<trafficType>"
      ]
    },
    "ApplianceAggregateStatsApplianceLevelObject": {
      "properties": {
        "<nePk/IP>": {
          "$ref": "#/definitions/TunnelAggregateStatsBase"
        }
      },
      "required": [
        "<nePk/IP>"
      ]
    },
    "ApplianceAggregateStatsBase": {
      "properties": {
        "AVG_BW_PCT_UTIL_AVG": {
          "description": "Integer value of average bandwidth utilization percentage",
          "type": "integer"
        },
        "AVG_LATENCY_AVG": {
          "description": "Integer value of average latency, unit is millisecond",
          "type": "integer"
        },
        "HOSTNAME": {
          "description": "Hostname of the appliance",
          "type": "string"
        },
        "IP": {
          "description": "Management IP address of appliance",
          "type": "string"
        },
        "LATENCY_MIN_FROM_PEAK": {
          "description": "Integer value of the second peak latency",
          "type": "integer"
        },
        "MAX_BW_PCT_UTIL_MAX": {
          "description": "Integer value of maximum peak bandwidth utilization percentage",
          "type": "integer"
        },
        "MAX_COMP_L2W": {
          "description": "Integer value of maximum LAN to WAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_L2WMAX": {
          "description": "Integer value of maximum peak LAN to WAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_L2W": {
          "description": "Integer value of maximum LAN to WAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_L2WMAX": {
          "description": "Integer value of maximum peak LAN to WAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_W2L": {
          "description": "Integer value of maximum WAN to LAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_W2LMAX": {
          "description": "Integer value of maximum peak WAN to LAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_W2L": {
          "description": "Integer value of maximum WAN to LAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_W2LMAX": {
          "description": "Integer value of maximum peak WAN to LAN compression rate",
          "type": "integer"
        },
        "MAX_CREATED_MAX": {
          "description": "Integer value of maximum peak number of created flows",
          "type": "integer"
        },
        "MAX_DELETED_MAX": {
          "description": "Integer value of maximum peak number of deleted flows",
          "type": "integer"
        },
        "MAX_LATENCY_MAX": {
          "description": "Integer value of maximum highest latency, unit is millisecond",
          "type": "integer"
        },
        "MAX_LRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes LAN side received",
          "type": "integer"
        },
        "MAX_LRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets LAN side received",
          "type": "integer"
        },
        "MAX_LTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes LAN side transmitted",
          "type": "integer"
        },
        "MAX_LTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets LAN side transmitted",
          "type": "integer"
        },
        "MAX_NON_TCP_FLOWS_MAX": {
          "description": "Integer value of maximum peak number of TCP flows",
          "type": "integer"
        },
        "MAX_OHEAD_WRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of maximum peak number of bytes WAN side received with overhead",
          "type": "integer"
        },
        "MAX_OHEAD_WRX_HDR_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of maximum peak number of header bytes WAN side received with overhead",
          "type": "integer"
        },
        "MAX_OHEAD_WRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of maximum peak number of packets WAN side received with overhead",
          "type": "integer"
        },
        "MAX_OHEAD_WTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of maximum peak number of bytes WAN side transmitted with overhead",
          "type": "integer"
        },
        "MAX_OHEAD_WTX_HDR_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of maximum peak number of header bytes WAN side transmitted with overhead",
          "type": "integer"
        },
        "MAX_OHEAD_WTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of maximum peak number of packets WAN side transmitted with overhead",
          "type": "integer"
        },
        "MAX_POST_LOSS_MAX": {
          "description": "Integer value of maximum peak post-corrected packets loss",
          "type": "integer"
        },
        "MAX_POST_PCT_LOSS": {
          "description": "Integer value of maximum post-corrected packets loss percentage",
          "type": "integer"
        },
        "MAX_POST_PCT_LOSS_MAX": {
          "description": "Integer value of maximum peak post-corrected packets loss",
          "type": "integer"
        },
        "MAX_POST_POCMAX": {
          "description": "Integer value of maximum peak post-POC packets loss",
          "type": "integer"
        },
        "MAX_PRE_LOSS_MAX": {
          "description": "Integer value of maximum peak pre-corrected packets loss",
          "type": "integer"
        },
        "MAX_PRE_PCT_LOSS": {
          "description": "Integer value of maximum pre-corrected packets loss percentage",
          "type": "integer"
        },
        "MAX_PRE_PCT_LOSS_MAX": {
          "description": "Integer value of maximum peak pre-corrected packets loss",
          "type": "integer"
        },
        "MAX_PRE_PCT_POC": {
          "description": "Integer value of maximum pre-POC packets loss percentage",
          "type": "integer"
        },
        "MAX_PRE_PCT_POCMAX": {
          "description": "Integer value of maximum peak pre-POC packets loss percentage",
          "type": "integer"
        },
        "MAX_PRE_POCMAX": {
          "description": "Integer value of maximum peak pre-POC packets loss",
          "type": "integer"
        },
        "MAX_TCP_ACC_FLOWS_MAX": {
          "description": "Integer value of maximum peak number of TCP flows",
          "type": "integer"
        },
        "MAX_TCP_FLOWS_MAX": {
          "description": "Integer value of maximum peak number of TCP flows",
          "type": "integer"
        },
        "MAX_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual starting boundary of data time range",
          "type": "integer"
        },
        "MAX_WRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes WAN side received",
          "type": "integer"
        },
        "MAX_WRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets WAN side received",
          "type": "integer"
        },
        "MAX_WTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes WAN side transmitted",
          "type": "integer"
        },
        "MAX_WTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets WAN side transmitted",
          "type": "integer"
        },
        "MIN_LATENCY_MIN": {
          "description": "Integer value of minimum lowest latency, unit is millisecond",
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual ending boundary of data time range",
          "type": "integer"
        },
        "POST_PCT_POCMAX": {
          "description": "Integer value of maximum peak post-POC packets loss percentage",
          "type": "integer"
        },
        "SUM_CREATED": {
          "description": "Integer value of total number of created flows",
          "type": "integer"
        },
        "SUM_DELETED": {
          "description": "Integer value of total number of deleted flows",
          "type": "integer"
        },
        "SUM_LRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side received",
          "type": "integer"
        },
        "SUM_LRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_NON_TCP_FLOWS": {
          "description": "Integer value of total number of non-TCP flows",
          "type": "integer"
        },
        "SUM_OHEAD_WRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side received with overhead",
          "type": "integer"
        },
        "SUM_OHEAD_WRX_HDR_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of header bytes WAN side received with overhead",
          "type": "integer"
        },
        "SUM_OHEAD_WRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side received with overhead",
          "type": "integer"
        },
        "SUM_OHEAD_WTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side transmitted with overhead",
          "type": "integer"
        },
        "SUM_OHEAD_WTX_HDR_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of header bytes WAN side transmitted with overhead",
          "type": "integer"
        },
        "SUM_OHEAD_WTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side transmitted with overhead",
          "type": "integer"
        },
        "SUM_POST_LOSS": {
          "description": "Integer value of total number of post-corrected packets loss",
          "type": "integer"
        },
        "SUM_POST_PCT_POC": {
          "description": "Integer value of maximum post-POC packets loss percentage",
          "type": "integer"
        },
        "SUM_POST_POC": {
          "description": "Integer value of total number of post-POC packets loss",
          "type": "integer"
        },
        "SUM_PRE_LOSS": {
          "description": "Integer value of total number of pre-corrected packets loss",
          "type": "integer"
        },
        "SUM_PRE_POC": {
          "description": "Integer value of total number of pre-POC packets loss",
          "type": "integer"
        },
        "SUM_TCP_ACC_FLOWS": {
          "description": "Integer value of total number of TCP accelerated flows",
          "type": "integer"
        },
        "SUM_TCP_FLOWS": {
          "description": "Integer value of total number of TCP flows",
          "type": "integer"
        },
        "SUM_WRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side received",
          "type": "integer"
        },
        "SUM_WRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side received",
          "type": "integer"
        },
        "SUM_WTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side transmitted",
          "type": "integer"
        },
        "SUM_WTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side transmitted",
          "type": "integer"
        },
        "nePk": {
          "description": "Internal ID of appliance",
          "type": "string"
        }
      },
      "required": [
        "AVG_BW_PCT_UTIL_AVG",
        "AVG_LATENCY_AVG",
        "HOSTNAME",
        "IP",
        "LATENCY_MIN_FROM_PEAK",
        "MAX_BW_PCT_UTIL_MAX",
        "MAX_COMP_L2W",
        "MAX_COMP_L2WMAX",
        "MAX_COMP_NOOHEAD_L2W",
        "MAX_COMP_NOOHEAD_L2WMAX",
        "MAX_COMP_NOOHEAD_W2L",
        "MAX_COMP_NOOHEAD_W2LMAX",
        "MAX_COMP_W2L",
        "MAX_COMP_W2LMAX",
        "MAX_CREATED_MAX",
        "MAX_DELETED_MAX",
        "MAX_LATENCY_MAX",
        "MAX_LRX_BYTES_MAX",
        "MAX_LRX_PKTS_MAX",
        "MAX_LTX_BYTES_MAX",
        "MAX_LTX_PKTS_MAX",
        "MAX_NON_TCP_FLOWS_MAX",
        "MAX_OHEAD_WRX_BYTES_MAX",
        "MAX_OHEAD_WRX_HDR_BYTES_MAX",
        "MAX_OHEAD_WRX_PKTS_MAX",
        "MAX_OHEAD_WTX_BYTES_MAX",
        "MAX_OHEAD_WTX_HDR_BYTES_MAX",
        "MAX_OHEAD_WTX_PKTS_MAX",
        "MAX_POST_LOSS_MAX",
        "MAX_POST_PCT_LOSS",
        "MAX_POST_PCT_LOSS_MAX",
        "MAX_POST_POCMAX",
        "MAX_PRE_LOSS_MAX",
        "MAX_PRE_PCT_LOSS",
        "MAX_PRE_PCT_LOSS_MAX",
        "MAX_PRE_PCT_POC",
        "MAX_PRE_PCT_POCMAX",
        "MAX_PRE_POCMAX",
        "MAX_TCP_ACC_FLOWS_MAX",
        "MAX_TCP_FLOWS_MAX",
        "MAX_TIMESTAMP",
        "MAX_WRX_BYTES_MAX",
        "MAX_WRX_PKTS_MAX",
        "MAX_WTX_BYTES_MAX",
        "MAX_WTX_PKTS_MAX",
        "MIN_LATENCY_MIN",
        "MIN_TIMESTAMP",
        "POST_PCT_POCMAX",
        "SUM_CREATED",
        "SUM_DELETED",
        "SUM_LRX_BYTES",
        "SUM_LRX_PKTS",
        "SUM_LTX_BYTES",
        "SUM_LTX_PKTS",
        "SUM_NON_TCP_FLOWS",
        "SUM_OHEAD_WRX_BYTES",
        "SUM_OHEAD_WRX_HDR_BYTES",
        "SUM_OHEAD_WRX_PKTS",
        "SUM_OHEAD_WTX_BYTES",
        "SUM_OHEAD_WTX_HDR_BYTES",
        "SUM_OHEAD_WTX_PKTS",
        "SUM_POST_LOSS",
        "SUM_POST_PCT_POC",
        "SUM_POST_POC",
        "SUM_PRE_LOSS",
        "SUM_PRE_POC",
        "SUM_TCP_ACC_FLOWS",
        "SUM_TCP_FLOWS",
        "SUM_WRX_BYTES",
        "SUM_WRX_PKTS",
        "SUM_WTX_BYTES",
        "SUM_WTX_PKTS",
        "nePk"
      ]
    },
    "ApplianceAlarmGetPostBody": {
      "properties": {
        "ids": {
          "description": "Contains appliance IDs",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "ids"
      ],
      "type": "object"
    },
    "ApplianceAlarmItem": {
      "properties": {
        "acknowledged": {
          "type": "boolean"
        },
        "applianceId": {
          "type": "string"
        },
        "clearable": {
          "type": "boolean"
        },
        "clearedTimeInMills": {
          "type": "integer"
        },
        "closed": {
          "type": "boolean"
        },
        "description": {
          "type": "string"
        },
        "hostName": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "occurrenceCount": {
          "type": "integer"
        },
        "recommendedAction": {
          "type": "string"
        },
        "sequenceId": {
          "type": "integer"
        },
        "serviceAffect": {
          "type": "boolean"
        },
        "severity": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "timeOccurredInMills": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "typeId": {
          "type": "integer"
        }
      },
      "required": [
        "acknowledged",
        "applianceId",
        "clearable",
        "clearedTimeInMills",
        "closed",
        "description",
        "hostName",
        "name",
        "occurrenceCount",
        "recommendedAction",
        "sequenceId",
        "serviceAffect",
        "severity",
        "source",
        "timeOccurredInMills",
        "type",
        "typeId"
      ],
      "type": "object"
    },
    "ApplianceAssociationGet": {
      "description": "Map of appliance IDs to template group names associated with them",
      "properties": {
        "nepk": {
          "description": "Names of the template groups associated with this appliance",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ApplianceAssociationGetNepk": {
      "description": "Map of appliance IDs to template group names associated with them",
      "properties": {
        "templateIds": {
          "description": "Names of the template groups associated with this appliance",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ApplianceChangePasswordPost": {
      "properties": {
        "password": {
          "description": "The 'admin' user password for the appliance",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ApplianceExtraInfo": {
      "properties": {
        "contact": {
          "$ref": "#/definitions/Contact",
          "description": "The contact information for the appliance"
        },
        "location": {
          "$ref": "#/definitions/Location",
          "description": "The location of the appliance"
        },
        "overlaySettings": {
          "$ref": "#/definitions/AEIOverlaySettings",
          "description": "Appliance specific overlay settings"
        }
      }
    },
    "ApplianceFileInfo": {
      "properties": {
        "fileNames": {
          "description": "The name of the files",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "group": {
          "description": "The group of the file",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ApplianceFiles": {
      "properties": {
        "files": {
          "items": {
            "$ref": "#/definitions/ApplianceFileInfo"
          },
          "type": "array"
        },
        "nePk": {
          "description": "nePk is the device key assigned by Orchestrator, usually look like '0.NE'.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ApplianceIDs": {
      "properties": {
        "ids": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "ApplianceIds": {
      "properties": {
        "ids": {
          "description": "Array of appliance primary keys. Eg: Appliance primary key looks like \"1.NE\"",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "ids"
      ],
      "type": "object"
    },
    "ApplianceItem": {
      "properties": {
        "IP": {
          "description": "IP Address of the appliance",
          "type": "string"
        },
        "applianceId": {
          "description": "This is yet another identifier of the appliance. But it is mainly used by the appliance to identify its peer",
          "type": "integer"
        },
        "bypass": {
          "description": "If true, appliance is currently in bypass",
          "type": "boolean"
        },
        "discoveredFrom": {
          "description": "How the appliance was added to Orchestrator. 1 = MANUAL, 2 = PORTAL, 3 = APPLIANCE.",
          "type": "integer"
        },
        "dynamicUuid": {
          "description": "Need description here.",
          "type": "string"
        },
        "groupId": {
          "description": "Primary key identifier of the Orchestrator group the appliance belongs to",
          "type": "string"
        },
        "hardwareRevision": {
          "description": "Hardware revision of the appliance. Eg: 200193-004 Rev A",
          "type": "string"
        },
        "hasUnsavedChanges": {
          "description": "If true, there are unsaved changes on the appliance.",
          "type": "boolean"
        },
        "hostName": {
          "description": "Appliance hostname",
          "type": "string"
        },
        "id": {
          "description": "This is the primary key of the appliance. Every appliance managed by Orchestrator is given a primary key and it uniquely identifies an appliance among all appliances managed by Orchestrator",
          "type": "string"
        },
        "ip": {
          "description": "Same as IP",
          "type": "string"
        },
        "latitude": {
          "description": "The latitude of the coordinates of the appliance's address",
          "type": "number"
        },
        "longitude": {
          "description": "The longitude of the coordinates of the appliance's address",
          "type": "number"
        },
        "mode": {
          "description": "Deployment mode the appliance is configured in",
          "type": "string"
        },
        "model": {
          "description": "Appliance model. Eg: NX-2610",
          "type": "string"
        },
        "nePk": {
          "description": "Same as ID field",
          "type": "string"
        },
        "networkRole": {
          "description": "The network role the appliance is configured in Orchestrator. spoke = 0, hub = 1, mesh= 2",
          "type": "string"
        },
        "password": {
          "type": "string",
          "description": "Password used to login to appliance. They are not returned for security reasons"
        },
        "portalObjectId": {
          "description": "Need description here",
          "type": "string"
        },
        "reachabilityChannel": {
          "description": "Reachability channel of the appliance. 0 - Unknown, 1 - Orchestrator talks to appliance using HTTP/HTTPS using user id and password. This is not used for EdgeConnects and SD-WAN, 2 - Appliance connects to Orchestrator using HTTPS Websocket. Orchestrator uses this permanent connection to configure/monitor appliance. This is done because Appliance may be behind a firewall making it hard for Orchestrator to contact appliance using IP address, 4 - Orchestrator sends configuration/monitoring request to Silver Peak Cloud Portal which relays those requests to Appliance. Appliance sends its response to Cloud Portal which relays it back to Orchestrator.",
          "type": "number"
        },
        "rebootRequired": {
          "description": "If true, the appliance requires a reboot",
          "type": "boolean"
        },
        "serial": {
          "description": "Serial number of the appliance",
          "type": "string"
        },
        "site": {
          "description": "An identifier used to tag an appliance with a site name",
          "type": "string"
        },
        "sitePriority": {
          "description": "Priority given to the appliance with the site it belongs to",
          "type": "integer"
        },
        "softwareVersion": {
          "description": "Software version running on the appliance",
          "type": "string"
        },
        "startupTime": {
          "description": "Need description here.",
          "type": "integer"
        },
        "state": {
          "description": "State of the appliance. 0 - Unknown ( When an appliance is added to Orchestrator, it is in this state ), 1 - Normal ( Appliance is reachable from Orchestrator), 2 - Unreachable ( Appliance is unreachable from Orchestrator ), 3 - Unsupported Version ( Orchestrator does not support this version of the appliance ), 4 - Out of Synchronization ( Orchestrator's cache of appliance configuration/state is out of sync with the configuration/state on the appliance ), 5 - Synchronization in Progress ( Orchestrator is currently synchronizing appliances's configuration and state )",
          "type": "integer"
        },
        "systemBandwidth": {
          "description": "Appliance system bandwidth",
          "type": "integer"
        },
        "userName": {
          "description": "User name used to login to appliance",
          "type": "string"
        },
        "uuid": {
          "description": "This is also an unique identifier. But it is generated and self assigned by the appliance itself.",
          "type": "string"
        },
        "webProtocol": {
          "description": "String version of the protocol field. Possible values are BOTH, HTTP, HTTPS",
          "type": "string"
        },
        "webProtocolType": {
          "description": "Protocol used by Orchestrator to talk to appliance. Http = 1, Https = 2, Both = 3",
          "type": "integer"
        }
      },
      "required": [
        "IP",
        "applianceId",
        "bypass",
        "discoveredFrom",
        "dynamicUuid",
        "groupId",
        "hardwareRevision",
        "hasUnsavedChanges",
        "hostName",
        "id",
        "ip",
        "latitude",
        "longitude",
        "mode",
        "model",
        "nePk",
        "networkRole",
        "password",
        "portalObjectId",
        "reachabilityChannel",
        "rebootRequired",
        "serial",
        "site",
        "sitePriority",
        "softwareVersion",
        "startupTime",
        "state",
        "systemBandwidth",
        "userName",
        "uuid",
        "webProtocol",
        "webProtocolType"
      ],
      "type": "object"
    },
    "ApplianceNewData": {
      "properties": {
        "IP": {
          "description": "the IP address of the appliance",
          "type": "string"
        },
        "groupId": {
          "description": "Orchestrator Group primary key into which this appliance will be added",
          "type": "string"
        },
        "latitude": {
          "description": "Optional - the latitude of the coordinates of the appliance's address",
          "type": "number"
        },
        "longitude": {
          "description": "Optional - the longitude of the coordinates of the appliance's address"
        },
        "networkRole": {
          "description": "the network role the appliance is configured in Orchestrator. Choose 0 for spoke , 1 for hub, 2 for mesh",
          "type": "string"
        },
        "password": {
          "description": "the password for logging into this appliance",
          "type": "string"
        },
        "userName": {
          "description": "the username for logging into this appliance",
          "type": "string"
        },
        "webProtocolType": {
          "description": "protocol used by Orchestrator to talk to appliance. Choose 1 for Http, 2 for Https and 3 both Both",
          "type": "integer"
        }
      },
      "required": [
        "IP"
      ],
      "type": "object"
    },
    "AppliancePostData": {
      "properties": {
        "IP": {
          "description": "the IP address of this appliance",
          "type": "string"
        },
        "networkRole": {
          "description": "the network role the appliance is configured in Orchestrator. spoke = 0, hub = 1, mesh= 2",
          "type": "string"
        },
        "password": {
          "description": "the password for logging on to this appliance",
          "type": "string"
        },
        "userName": {
          "description": "the username for logging on to this appliance",
          "type": "string"
        },
        "webProtocolType": {
          "description": "protocol used by Orchestrator to talk to appliance. Http = 1, Https = 2, Both = 3",
          "type": "integer"
        }
      },
      "required": [
        "IP",
        "networkRole",
        "password",
        "userName",
        "webProtocolType"
      ],
      "type": "object"
    },
    "ApplianceProcessState": {
      "properties": {
        "processstate": {
          "$ref": "#/definitions/ApplianceProcessStateDetail"
        },
        "timestamp": {
          "type": "integer"
        }
      }
    },
    "ApplianceProcessStateDetail": {
      "properties": {
        "cifsproxyd": {
          "$ref": "#/definitions/ApplianceProcessStateMemoryDetail"
        },
        "jsond": {
          "$ref": "#/definitions/ApplianceProcessStateMemoryDetail"
        },
        "mgmtd": {
          "$ref": "#/definitions/ApplianceProcessStateMemoryDetail"
        },
        "netflowd": {
          "$ref": "#/definitions/ApplianceProcessStateMemoryDetail"
        },
        "node": {
          "$ref": "#/definitions/ApplianceProcessStateMemoryDetail"
        },
        "pm": {
          "$ref": "#/definitions/ApplianceProcessStateMemoryDetail"
        },
        "snmpd": {
          "$ref": "#/definitions/ApplianceProcessStateMemoryDetail"
        },
        "sslpd": {
          "$ref": "#/definitions/ApplianceProcessStateMemoryDetail"
        },
        "statsd2": {
          "$ref": "#/definitions/ApplianceProcessStateMemoryDetail"
        },
        "sysd": {
          "$ref": "#/definitions/ApplianceProcessStateMemoryDetail"
        },
        "tunneld": {
          "$ref": "#/definitions/ApplianceProcessStateMemoryDetail"
        }
      },
      "type": "object"
    },
    "ApplianceProcessStateMemoryDetail": {
      "properties": {
        "VmPeak": {
          "type": "integer"
        },
        "VmRSS": {
          "type": "integer"
        },
        "VmSize": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "ApplianceStatus": {
      "properties": {
        "https": {
          "description": "The status of the HTTPs",
          "type": "string"
        },
        "rest": {
          "description": "The status of the REST",
          "type": "string"
        },
        "ssh": {
          "description": "The status of the SSH",
          "type": "string"
        },
        "webSocket": {
          "description": "The status of the WebSocket",
          "type": "string"
        }
      },
      "required": [
        "https",
        "rest",
        "ssh",
        "webSocket"
      ],
      "type": "object"
    },
    "ApplianceToApplianceTunnel": {
      "properties": {
        "destMgmtIp": {
          "type": "string",
          "description": "the destination node's management ip address"
        },
        "destName": {
          "type": "string",
          "description": "the name of the tunnel from the destination node to source node"
        },
        "destNeId": {
          "type": "string",
          "description": "the destination node's id number in Orchestrator"
        },
        "fecRatio": {
          "description": "the forward error correction ratio of this tunnel",
          "type": "integer"
        },
        "fecState": {
          "description": "the forward error correction state of this tunnel",
          "type": "string"
        },
        "lastUpdatedTime": {
          "description": "the time in milliseconds when this tunnel was updated",
          "type": "integer"
        },
        "localIp": {
          "description": "the local port ip address of this tunnel",
          "type": "string"
        },
        "name": {
          "description": "the name of the tunnel from the source node to destination node",
          "type": "string"
        },
        "operState": {
          "description": "the state of the tunnel",
          "type": "string"
        },
        "remoteIp": {
          "description": "the remote port ip address of this tunnel",
          "type": "string"
        },
        "srcMgmtIp": {
          "description": "the source node's management ip address",
          "type": "string"
        },
        "srcNeId": {
          "description": "the source node's id number",
          "type": "string"
        }
      },
      "required": [
        "name",
        "srcMgmtIp",
        "localIp",
        "srcNeId",
        "remoteIp",
        "destNeId",
        "destName",
        "destMgmtIp",
        "operState",
        "fecState",
        "fecRatio",
        "lastUpdatedTime"
      ],
      "type": "object"
    },
    "ApplianceTunnels": {
      "properties": {
        "<nePk>": {
          "description": "the tunnels between this appliance and its parent appliance",
          "items": {
            "$ref": "#/definitions/ApplianceToApplianceTunnel",
            "description": "one tunnel's information between this appliance and its parent appliance"
          },
          "type": "array"
        }
      },
      "required": [
        "<nePk>"
      ],
      "type": "object"
    },
    "ApplianceUpgradeEntry": {
      "properties": {
        "imageName": {
          "description": "The image name that will use to upgrade for the appliances.",
          "type": "string"
        },
        "installOption": {
          "description": "The install option. It include: install_only, install_switch and install_reboot.",
          "type": "string"
        },
        "neList": {
          "description": "The nePk id of appliance.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "version": {
          "description": "Version of software to upgrade to",
          "type": "string"
        }
      },
      "required": [
        "imageName",
        "installOption",
        "neList",
        "version"
      ],
      "type": "object"
    },
    "ApplianceUploadToSpPost": {
      "properties": {
        "appliances": {
          "items": {
            "$ref": "#/definitions/ApplianceFiles"
          },
          "type": "array"
        },
        "options": {
          "$ref": "#/definitions/Options"
        }
      },
      "type": "object"
    },
    "AppliancesSoftwareVersions": {
      "properties": {
        "xyz": {
          "items": {
            "$ref": "#/definitions/PartitionSoftwareVersionInfo"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Application2AggregateStats": {
      "properties": {
        "APPNAME": {
          "description": "String value of application name to which these stats belong to",
          "type": "string"
        },
        "HOSTNAME": {
          "description": "Hostname of the appliance",
          "type": "string"
        },
        "MAX_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual starting boundary of data time range",
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual ending boundary of data time range",
          "type": "integer"
        },
        "SUM_LRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side received",
          "type": "integer"
        },
        "SUM_LRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_WRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side received",
          "type": "integer"
        },
        "SUM_WRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side received",
          "type": "integer"
        },
        "SUM_WTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side transmitted",
          "type": "integer"
        },
        "SUM_WTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side transmitted",
          "type": "integer"
        },
        "nePk": {
          "description": "Internal ID of appliance",
          "type": "string"
        }
      },
      "required": [
        "APPNAME",
        "HOSTNAME",
        "MAX_TIMESTAMP",
        "MIN_TIMESTAMP",
        "SUM_LRX_BYTES",
        "SUM_LRX_PKTS",
        "SUM_LTX_BYTES",
        "SUM_LTX_PKTS",
        "SUM_WRX_BYTES",
        "SUM_WRX_PKTS",
        "SUM_WTX_BYTES",
        "SUM_WTX_PKTS",
        "nePk"
      ]
    },
    "ApplicationAggregateStats": {
      "properties": {
        "<Traffic Type>": {
          "$ref": "#/definitions/ApplicationAggregateStatsAppLevelObject"
        }
      },
      "required": [
        "<Traffic Type>"
      ]
    },
    "ApplicationAggregateStatsAppLevelObject": {
      "properties": {
        "<Application Name>": {
          "$ref": "#/definitions/ApplicationAggregateStatsApplianceLevelObject"
        }
      },
      "required": [
        "<Application Name>"
      ]
    },
    "ApplicationAggregateStatsApplianceLevelObject": {
      "properties": {
        "<nePk/IP>": {
          "$ref": "#/definitions/ApplicationAggregateStatsBase"
        }
      },
      "required": [
        "<nePk/IP>"
      ]
    },
    "ApplicationAggregateStatsBase": {
      "properties": {
        "APPNAME": {
          "description": "String value of application name to which these stats belong to",
          "type": "string"
        },
        "HOSTNAME": {
          "description": "Hostname of the appliance",
          "type": "string"
        },
        "IP": {
          "description": "Management IP address of appliance",
          "type": "string"
        },
        "MAX_COMP_L2W": {
          "description": "Integer value of maximum LAN to WAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_L2WMAX": {
          "description": "Integer value of maximum peak LAN to WAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_L2W": {
          "description": "Integer value of maximum LAN to WAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_L2WMAX": {
          "description": "Integer value of maximum peak LAN to WAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_W2L": {
          "description": "Integer value of maximum WAN to LAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_W2LMAX": {
          "description": "Integer value of maximum peak WAN to LAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_W2L": {
          "description": "Integer value of maximum WAN to LAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_W2LMAX": {
          "description": "Integer value of maximum peak WAN to LAN compression rate",
          "type": "integer"
        },
        "MAX_LRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes LAN side received",
          "type": "integer"
        },
        "MAX_LRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets LAN side received",
          "type": "integer"
        },
        "MAX_LTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes LAN side transmitted",
          "type": "integer"
        },
        "MAX_LTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets LAN side transmitted",
          "type": "integer"
        },
        "MAX_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual starting boundary of data time range",
          "type": "integer"
        },
        "MAX_WRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes WAN side received",
          "type": "integer"
        },
        "MAX_WRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets WAN side received",
          "type": "integer"
        },
        "MAX_WTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes WAN side transmitted",
          "type": "integer"
        },
        "MAX_WTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets WAN side transmitted",
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual ending boundary of data time range",
          "type": "integer"
        },
        "SUM_LRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side received",
          "type": "integer"
        },
        "SUM_LRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_WRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side received",
          "type": "integer"
        },
        "SUM_WRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side received",
          "type": "integer"
        },
        "SUM_WTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side transmitted",
          "type": "integer"
        },
        "SUM_WTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side transmitted",
          "type": "integer"
        },
        "TRAFFIC_TYPE": {
          "description": "Integer value indicating the traffic type these stats belong to. 1: Optimized Traffic, 2: Pass-through Shaped, 3: Pass-through Unshaped, 4: All Traffic",
          "type": "integer"
        },
        "nePk": {
          "description": "Internal ID of appliance",
          "type": "string"
        }
      },
      "required": [
        "APPNAME",
        "HOSTNAME",
        "IP",
        "MAX_COMP_L2W",
        "MAX_COMP_L2WMAX",
        "MAX_COMP_NOOHEAD_L2W",
        "MAX_COMP_NOOHEAD_L2WMAX",
        "MAX_COMP_NOOHEAD_W2L",
        "MAX_COMP_NOOHEAD_W2LMAX",
        "MAX_COMP_W2L",
        "MAX_COMP_W2LMAX",
        "MAX_LRX_BYTES_MAX",
        "MAX_LRX_PKTS_MAX",
        "MAX_LTX_BYTES_MAX",
        "MAX_LTX_PKTS_MAX",
        "MAX_TIMESTAMP",
        "MAX_WRX_BYTES_MAX",
        "MAX_WRX_PKTS_MAX",
        "MAX_WTX_BYTES_MAX",
        "MAX_WTX_PKTS_MAX",
        "MIN_TIMESTAMP",
        "SUM_LRX_BYTES",
        "SUM_LRX_PKTS",
        "SUM_LTX_BYTES",
        "SUM_LTX_PKTS",
        "SUM_WRX_BYTES",
        "SUM_WRX_PKTS",
        "SUM_WTX_BYTES",
        "SUM_WTX_PKTS",
        "TRAFFIC_TYPE",
        "nePk"
      ]
    },
    "ApplicationTrendsGet": {
      "properties": {
        "applicationStatsOfAppliances": {
          "$ref": "#/definitions/StatsOfAppliances"
        }
      },
      "required": [
        "applicationStatsOfAppliances"
      ],
      "type": "object"
    },
    "ApplicationTrendsItem": {
      "properties": {
        "app": {
          "$ref": "#/definitions/appObject"
        },
        "bytes": {
          "description": "inbound or outbound bytes depending on the query parameter",
          "type": "integer"
        },
        "milliseconds": {
          "description": "the time(in milliseconds) of stats for this application at this time(minute, hour, day)",
          "type": "integer"
        },
        "nePKId": {
          "description": "appliance ID",
          "type": "string"
        },
        "totalInboundOutbound": {
          "description": "total inbound and outbound traffic in bytes",
          "type": "integer"
        },
        "vxoa": {
          "$ref": "#/definitions/vxoaObject"
        }
      },
      "required": [
        "bytes",
        "milliseconds",
        "nePKId",
        "totalInboundOutbound"
      ],
      "type": "object"
    },
    "ApplyRmaWizard": {
      "properties": {
        "backup": {
          "$ref": "#/definitions/BackupGetResponse",
          "description": "Optional backup selection. Backup is required for downgrades, however."
        },
        "discoveredAppliance": {
          "$ref": "#/definitions/AllDiscoveredAppliance",
          "description": "Representation of the discovered appliance that will replace the existing appliance."
        },
        "existingAppliance": {
          "$ref": "#/definitions/ApplianceItem",
          "description": "Representation of existing appliance to be replaced."
        },
        "selectedImage": {
          "$ref": "#/definitions/ImageItem",
          "description": "Representation of intended software version to upgrade or downgrade to. If using cloud orchestrator, use keys 'version' and 'imageId' instead of keys with prefix 'NxImage'"
        }
      }
    },
    "ApplyWizardGet": {
      "properties": {
        "actionGroupId": {
          "description": "The handle to poll status with using /action/status?key={actionGroupId}",
          "type": "string"
        }
      }
    },
    "ApplyWizardPost": {
      "properties": {
        "wizardData": {
          "$ref": "#/definitions/WizardData",
          "description": "Data for all the steps in the wizard"
        }
      }
    },
    "Auth": {
      "properties": {
        "aaa": {
          "$ref": "#/definitions/aaaConfig"
        },
        "radius": {
          "$ref": "#/definitions/RADIUSConfig"
        },
        "tacacs": {
          "$ref": "#/definitions/TACACSConfig"
        }
      },
      "required": [
        "aaa",
        "radius",
        "tacacs"
      ]
    },
    "AuthConfigElement": {
      "properties": {
        "name": {
          "description": "Authentication method",
          "type": "string"
        },
        "self": {
          "description": "Order of Authentication method",
          "type": "integer"
        }
      },
      "required": [
        "name",
        "self"
      ]
    },
    "AuthConfigMap": {
      "description": "You can add a maximum of three Authentication Methods.",
      "properties": {
        "<a number from 1 to 3>": {
          "$ref": "#/definitions/AuthConfigElement",
          "description": "Authentication Method"
        }
      },
      "required": [
        "<a number from 1 to 3>"
      ]
    },
    "AuthorConfigElement": {
      "properties": {
        "default-user": {
          "description": "default-user to be used for authorization",
          "type": "string"
        },
        "map-order": {
          "description": "map-order to be used for authorization",
          "type": "string"
        }
      },
      "required": [
        "default-user",
        "map-order"
      ]
    },
    "AutoLog": {
      "properties": {
        "isTimeout": {
          "description": "IF need port the waring logout dialog",
          "type": "string"
        }
      },
      "required": [
        "isTimeout"
      ],
      "type": "object"
    },
    "AutoSubnet": {
      "properties": {
        "add_local": {
          "description": "Flag to control Automatically Advertising local subnets.<BR/><b>Note</b>: This field is only applicable for older appliances whose version is less than 8.1.4.",
          "type": "boolean"
        },
        "add_local_lan": {
          "description": "flag to control Automatically advertise local LAN subnets.<BR/><b>Note</b>: This field is only applicable for appliances whose version is greater than or equal to 8.1.4.",
          "type": "boolean"
        },
        "add_local_wan": {
          "description": "flag to control Automatically advertise local WAN subnets.<BR/><b>Note</b>: This field is only applicable for appliances whose version is greater than or equal to 8.1.4.",
          "type": "boolean"
        },
        "self": {
          "description": "Whether or not to use shared subnet information",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "BI_bridge": {
      "description": "Need description here",
      "properties": {
        "lan0": {
          "$ref": "#/definitions/BI_lan0"
        },
        "lan1": {
          "$ref": "#/definitions/BI_lan1"
        },
        "wan0": {
          "$ref": "#/definitions/BI_wan0"
        },
        "wan1": {
          "$ref": "#/definitions/BI_wan1"
        }
      },
      "type": "object"
    },
    "BI_lan0": {
      "description": "Need description here",
      "properties": {
        "link_state": {
          "description": "Need description here",
          "type": "string"
        },
        "pthru_tx_if": {
          "description": "Need description here",
          "type": "string"
        },
        "state": {
          "description": "Need description here",
          "type": "string"
        }
      },
      "required": [
        "link_state",
        "pthru_tx_if",
        "state"
      ],
      "type": "object"
    },
    "BI_lan1": {
      "description": "Need description here",
      "properties": {
        "link_state": {
          "description": "Need description here",
          "type": "string"
        },
        "pthru_tx_if": {
          "description": "Need description here",
          "type": "string"
        },
        "state": {
          "description": "Need description here",
          "type": "string"
        }
      },
      "required": [
        "link_state",
        "pthru_tx_if",
        "state"
      ],
      "type": "object"
    },
    "BI_wan0": {
      "description": "Need description here",
      "properties": {
        "link_state": {
          "description": "Need description here",
          "type": "string"
        },
        "pthru_tx_if": {
          "description": "Need description here",
          "type": "string"
        },
        "state": {
          "description": "Need description here",
          "type": "string"
        }
      },
      "required": [
        "link_state",
        "pthru_tx_if",
        "state"
      ],
      "type": "object"
    },
    "BI_wan1": {
      "description": "Need description here",
      "properties": {
        "link_state": {
          "description": "Need description here",
          "type": "string"
        },
        "pthru_tx_if": {
          "description": "Need description here",
          "type": "string"
        },
        "state": {
          "description": "Need description here",
          "type": "string"
        }
      },
      "required": [
        "link_state",
        "pthru_tx_if",
        "state"
      ],
      "type": "object"
    },
    "BackupAndRestoreResponse": {
      "properties": {
        "clientKey": {
          "description": "a client key which can be polled to get progress of the requested operation",
          "type": "string"
        }
      },
      "required": [
        "clientKey"
      ],
      "type": "object"
    },
    "BackupFile": {
      "properties": {
        "backupFilePk": {
          "description": "The backup file's id.",
          "type": "integer"
        }
      },
      "required": [
        "backupFilePk"
      ],
      "type": "object"
    },
    "BackupGetResponse": {
      "properties": {
        "backupTime": {
          "description": "When was this backup operation executed.",
          "type": "integer"
        },
        "comment": {
          "description": "The comment.",
          "type": "string"
        },
        "fileName": {
          "description": "The file's name on which the appliance configuration is now based.",
          "type": "string"
        },
        "id": {
          "description": "The id number of this backup in Orchestrator database.",
          "type": "integer"
        },
        "runningConfig": {
          "description": "The appliance currently active configuration files' data.",
          "type": "string"
        },
        "swVersion": {
          "description": "The appliance's software version when it was backuped.",
          "type": "string"
        }
      },
      "required": [
        "backupTime",
        "comment",
        "fileName",
        "id",
        "runningConfig",
        "swVersion"
      ],
      "type": "object"
    },
    "BackupPostBody": {
      "properties": {
        "comment": {
          "type": "string"
        },
        "neList": {
          "description": "List of appliance primary keys",
          "items": {
            "description": "Appliance primary key",
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "comment"
      ],
      "type": "object"
    },
    "BannerInfo": {
      "properties": {
        "issue": {
          "description": "The Message of the Day appears after a successful login",
          "type": "string"
        },
        "motd": {
          "description": "The Login Message appears before the login prompt",
          "type": "string"
        }
      },
      "required": [
        "issue",
        "motd"
      ],
      "type": "object"
    },
    "BgpStateSummary": {
      "properties": {
        "bgp_state": {
          "description": "Overall state of the routerd & bgp processes. The state will be one of the following({0 =Not Enabled,  1 = Down, 2=Mgmt Stub Initializing, 3=Mgmt Stub Active,4=RTM Initializing, 5=RTM Active, 6=RM Initializing,7=RM Active, 8=NM Intitializing, 9=Active, 10=Unknown})",
          "type": "integer"
        },
        "bgp_state_str": {
          "description": "String representation of the bgp state",
          "type": "integer"
        },
        "local_asn": {
          "description": "local asn number",
          "type": "integer"
        },
        "local_ip": {
          "description": "local ip address",
          "type": "string"
        },
        "mgmt_stub_last_err": {
          "description": "last error code from routerd",
          "type": "integer"
        },
        "mgmt_stub_last_err_str": {
          "description": "last error string from routerd",
          "type": "string"
        },
        "mgmt_stub_last_err_subcode": {
          "type": "integer"
        },
        "mgmt_stub_last_err_time": {
          "description": "last routerd error time",
          "type": "integer"
        },
        "mgmt_stub_tot_errors": {
          "description": "total number of errors from routerd",
          "type": "integer"
        },
        "num_bgp_rtes_rcvd": {
          "description": "number of subnets learned from BGP peers",
          "type": "integer"
        },
        "num_ebgp_rtes": {
          "description": "number of subnets learned from EBGP peers",
          "type": "integer"
        },
        "num_ibgp_rtes": {
          "description": "number of subnets learned from IBGP peers",
          "type": "integer"
        },
        "num_peers": {
          "description": "Total number of bgp peers configured",
          "type": "integer"
        },
        "num_peers_active": {
          "description": "active peers count",
          "type": "integer"
        },
        "num_rib_rtes": {
          "type": "integer"
        },
        "num_rtm_rtes": {
          "type": "integer"
        },
        "num_subs_installed": {
          "description": "Number of subnets advertised to BGP peers",
          "type": "integer"
        },
        "reject_mismatches": {
          "description": "subnets rejected due to bad scope",
          "type": "integer"
        },
        "reject_unpreferred": {
          "description": "subnets rejected because other preferred",
          "type": "integer"
        },
        "rm_status": {
          "type": "integer"
        },
        "rtm_status": {
          "type": "integer"
        },
        "rtr_id": {
          "description": "router id",
          "type": "string"
        },
        "socket_retry_cnt": {
          "type": "integer"
        },
        "tunbgp_last_err": {
          "description": "last error code from tunneld-bgp",
          "type": "integer"
        },
        "tunbgp_last_err_str": {
          "description": "last error string from tunneld-bgp",
          "type": "string"
        },
        "tunbgp_last_err_subcode": {
          "type": "integer"
        },
        "tunbgp_last_err_time": {
          "description": "last error time from tunneld-bgp",
          "type": "integer"
        },
        "tunbgp_tot_errors": {
          "description": "total tunneld-bgp errors",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "BgpSystemConfig": {
      "properties": {
        "asn": {
          "description": "Autonomous System Number",
          "type": "integer"
        },
        "enable": {
          "description": "Flag to enable/disable bgp",
          "type": "boolean"
        },
        "graceful_restart_en": {
          "description": "Flag to control graceful restart. This filed is only applicable from 8.1.9.3 or higher appliances.Remove this field before applying to older appliances.",
          "type": "boolean"
        },
        "max_restart_time": {
          "description": "Max waiting time for a bgp peer to restart before deleting its advertised routes from routing tables. value must be between 1 to 3600(inclusive). This filed is only applicable from 8.1.9.3 or higher appliances. Remove this field before applying to older appliances",
          "type": "integer"
        },
        "redist_ospf": {
          "description": "Flag to control redistribution of routes to ospf",
          "type": "boolean"
        },
        "redist_ospf_filter": {
          "description": "used to filter redistributed routes to ospf",
          "type": "integer"
        },
        "remote_as_path_advertise": {
          "description": "Flag to control remote as path propagation. This filed is only applicable from 8.1.9.4 or higher appliances.Remove this field before applying to older appliances.",
          "type": "boolean"
        },
        "rtr_id": {
          "description": "router id",
          "type": "string"
        },
        "stale_path_time": {
          "description": "The stale_path_time specifies the maximum time (in seconds) following a peer restart that SP waits before removing stale routes associated with that peer.value must be between 1 to 3600(inclusive). This filed is only applicable from 8.1.9.3 or higher appliances.",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "BondedTunnelConfig2": {
      "properties": {
        "adminStatus": {
          "description": "The admin status of the tunnel",
          "type": "string"
        },
        "alias": {
          "description": "The alias, this is the name of the tunnel used in the user interface",
          "type": "string"
        },
        "children": {
          "items": {
            "$ref": "#/definitions/PhysicalTunnelConfig2"
          },
          "type": "array"
        },
        "destNePk": {
          "description": "The nePk of the destination appliance for this tunnel",
          "type": "string"
        },
        "destTunnelAlias": {
          "description": "The tunnel alias of the opposite tunnel on the destination appliance",
          "type": "string"
        },
        "destTunnelId": {
          "description": "The tunnel id of the opposite tunnel on the destination appliance",
          "type": "string"
        },
        "gmsMarked": {
          "description": "Whether or not Orchestrator added or modified this tunnel",
          "type": "string"
        },
        "id": {
          "description": "The id of the tunnel",
          "type": "string"
        },
        "operStatus": {
          "description": "The current status of the tunnel",
          "type": "string"
        },
        "overlayId": {
          "description": "The overlay Id for the bonded tunnel",
          "type": "number"
        },
        "srcNePk": {
          "description": "The nePk of the appliance that this bonded tunnel belongs to",
          "type": "string"
        },
        "tag": {
          "description": "The overlay name for the bonded tunnel",
          "type": "string"
        }
      }
    },
    "BondedTunnelConfigData": {
      "properties": {
        "admin": {
          "description": "Admin state of the tunnel - takes two values: 'up' or 'down'.",
          "type": "string"
        },
        "auto_mtu": {
          "description": "Determines if the tunnel should have auto MTU detection.",
          "type": "boolean"
        },
        "bound_tun": {
          "$ref": "#/definitions/BoundTunnels"
        },
        "ctrl_pkt": {
          "$ref": "#/definitions/FecSettings"
        },
        "destination": {
          "description": "Destination IP address.",
          "type": "string"
        },
        "gre_proto": {
          "description": "GRE protocol in the GRE header",
          "type": "integer"
        },
        "id2": {
          "description": "id of overlay 1-7",
          "type": "integer"
        },
        "ipsec_arc_window": {
          "description": "IPSec ARC Window - not configurable.",
          "type": "string"
        },
        "ipsec_enable": {
          "description": "A quick shortcut for knowing if tunnel mode is IPSec. You can get the same information using mode property.",
          "type": "boolean"
        },
        "max_bw": {
          "description": "If the tunnel max bandwidth is manually configured, use this field and set max_bw_auto to false. Units Kbps.",
          "type": "integer"
        },
        "max_bw_auto": {
          "description": "If the tunnel max bandwidth needs to be set to auto, this field must be true.",
          "type": "boolean"
        },
        "min_bw": {
          "description": "Tunnel minimum bandwidth",
          "type": "integer"
        },
        "mode": {
          "description": "Tunnel mode: it can be one of 'gre', 'udp', 'ipsec'",
          "type": "string"
        },
        "mtu": {
          "description": "Tunnel MTU. If 'auto_mtu' is false, user must set a specific tunnel mtu value",
          "type": "integer"
        },
        "options": {
          "description": "Not used",
          "type": "integer"
        },
        "pkt": {
          "$ref": "#/definitions/FecSettings"
        },
        "self": {
          "description": "The value is the same as the tunnel name.",
          "type": "string"
        },
        "source": {
          "description": "Source IP address of the tunnel.",
          "type": "string"
        },
        "tag_name": {
          "description": "name of overlay",
          "type": "string"
        },
        "threshold": {
          "$ref": "#/definitions/TunnelHealthFailureCount"
        },
        "type": {
          "description": "Not used",
          "type": "string"
        },
        "udp_dest_port": {
          "description": "If the tunnel is of type 'udp', the udp port to use.",
          "type": "integer"
        },
        "udp_flows": {
          "description": "If tunnel mode is udp, this field determines how many different udp flows are used to distribute tunnel traffic",
          "type": "integer"
        }
      },
      "required": [
        "admin",
        "auto_mtu",
        "bound_tun",
        "destination",
        "gre_proto",
        "id2",
        "ipsec_arc_window",
        "ipsec_enable",
        "max_bw",
        "max_bw_auto",
        "min_bw",
        "mode",
        "mtu",
        "self",
        "source",
        "tag_name",
        "udp_flows"
      ],
      "type": "object"
    },
    "BondedTunnelsConfigAndStates": {
      "properties": {
        "<tunnel name>": {
          "$ref": "#/definitions/BondedTunnelConfigData",
          "description": "Need description here"
        },
        "allTunnelState": {
          "$ref": "#/definitions/AllStates",
          "description": "Need description here"
        }
      },
      "required": [
        "<tunnel name>",
        "allTunnelState"
      ],
      "type": "object"
    },
    "BondedTunnelsIdToTunnelMap": {
      "properties": {
        "exampleTunnelId1": {
          "$ref": "#/definitions/BondedTunnelConfig2",
          "description": "The bonded tunnel for the tunnel Id"
        },
        "exampleTunnelId2": {
          "$ref": "#/definitions/BondedTunnelConfig2",
          "description": "The bonded tunnel for the tunnel Id"
        }
      }
    },
    "BoostPlus": {
      "properties": {
        "boost": {
          "$ref": "#/definitions/ecBoost"
        },
        "mini": {
          "$ref": "#/definitions/ecMini"
        },
        "plus": {
          "$ref": "#/definitions/ecPlus"
        },
        "tier": {
          "$ref": "#/definitions/ecTier"
        }
      }
    },
    "BoundTunnels": {
      "properties": {
        "<boundTunnelName1>": {
          "description": "Physical tunnel name, value should be <boundTunnelName1>",
          "type": "string"
        },
        "<boundTunnelName2>": {
          "description": "Physical tunnel name",
          "type": "string"
        }
      }
    },
    "BrNatPriorities": {
      "properties": {
        "<priorityNumber>": {
          "$ref": "#/definitions/BrNatPriority"
        }
      },
      "type": "object"
    },
    "BrNatPriority": {
      "properties": {
        "comment": {
          "type": "string"
        },
        "dir": {
          "description": "Traffic direction to perform NAT on. Valid values are ['outbound', 'inbound']",
          "type": "string"
        },
        "gms_marked": {
          "description": "For internal use. Flag to determine if this rule was created by Orchestrator",
          "type": "boolean"
        },
        "match": {
          "$ref": "#/definitions/BrNatPriorityMatch",
          "description": "Object containing rules to match traffic"
        },
        "set": {
          "$ref": "#/definitions/BrNatPrioritySet",
          "description": "Object to hold NAT set actions"
        }
      },
      "type": "object"
    },
    "BrNatPriorityMatch": {
      "properties": {
        "dst_subnet": {
          "description": "Destination IP address range to be translated. Must be a valid subnet",
          "type": "string"
        },
        "intf": {
          "description": "Interface name or label id",
          "type": "string"
        },
        "src_subnet": {
          "description": "Source IP address range to be translated. Must be a valid subnet",
          "type": "string"
        }
      },
      "type": "object"
    },
    "BrNatPrioritySet": {
      "properties": {
        "trans_dst": {
          "description": "Translated destination subnet",
          "type": "string"
        },
        "trans_src": {
          "description": "Translated source subnet or NAT Pool ID",
          "type": "string"
        }
      },
      "type": "object"
    },
    "BranchNat": {
      "properties": {
        "maps": {
          "$ref": "#/definitions/BranchNatMap"
        },
        "natPools": {
          "$ref": "#/definitions/NATPools"
        }
      },
      "type": "object"
    },
    "BranchNatMap": {
      "properties": {
        "prio": {
          "$ref": "#/definitions/BrNatPriorities"
        }
      },
      "type": "object"
    },
    "BranchNatMaps": {
      "properties": {
        "map1": {
          "$ref": "#/definitions/BranchNatMap"
        }
      },
      "type": "object"
    },
    "BridgeInterfaceState": {
      "properties": {
        "bridge": {
          "$ref": "#/definitions/BI_bridge",
          "description": "Need description here"
        }
      },
      "type": "object"
    },
    "BrownoutThreshold": {
      "properties": {
        "jitter": {
          "description": "The jitter (ms) to classify a tunnel in the brownout state.",
          "type": "number"
        },
        "latency": {
          "description": "The latency (ms) to classify a tunnel in the brownout state.",
          "type": "number"
        },
        "loss": {
          "description": "The percentage of loss to classify a tunnel in the 'brownout' state (when the other criteria is also met).",
          "type": "number"
        }
      }
    },
    "BuiltinAppItem": {
      "properties": {
        "neID": {
          "description": "the appliance id",
          "type": "string"
        },
        "neIP": {
          "description": "the appliance IP address",
          "type": "string"
        }
      },
      "required": [
        "neID",
        "neIP"
      ],
      "type": "object"
    },
    "BuiltinApps": {
      "properties": {
        "<appName&Type>": {
          "description": "one built in application's related appliances information",
          "items": {
            "$ref": "#/definitions/BuiltinAppItem"
          },
          "type": "array"
        }
      },
      "required": [
        "<appName&Type>"
      ],
      "type": "object"
    },
    "ChangePasswordBody": {
      "properties": {
        "newPassword": {
          "type": "string"
        },
        "oldPassword": {
          "type": "string"
        }
      },
      "required": [
        "newPassword",
        "oldPassword"
      ],
      "type": "object"
    },
    "ChangedObject": {
      "properties": {
        "clearVal": {
          "description": "Need description here",
          "type": "integer"
        },
        "is_set": {
          "description": "Need description here",
          "type": "boolean"
        },
        "raiseVal": {
          "description": "Need description here",
          "type": "integer"
        },
        "sustain": {
          "description": "Need description here",
          "type": "integer"
        }
      },
      "required": [
        "clearVal",
        "is_set",
        "raiseVal",
        "sustain"
      ],
      "type": "object"
    },
    "CheckApplianceReachability": {
      "description": "Appliance reachability info via websockets",
      "properties": {
        "err": {
          "type": "string"
        },
        "reachable": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "ClientKeyBody": {
      "properties": {
        "clientKey": {
          "description": "The action key to get the status of the action",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CloudApp": {
      "properties": {
        "app_name": {
          "type": "string"
        },
        "client_enabled": {
          "description": "Field to indicate if Optimization flag is turned on for this Cloud App",
          "type": "boolean"
        },
        "domain": {
          "description": "Collection of domain names associated with this cloud app. Indexed by domain name",
          "type": "object"
        },
        "enabled": {
          "description": "Field to indicate if Advertise flag is turned on for this Cloud App",
          "type": "boolean"
        },
        "ports": {
          "type": "string"
        },
        "rtt_threshold": {
          "description": "If Advertise/Gateway enable is turned on, RTTs above this threshold will be advertised",
          "type": "number"
        },
        "self": {
          "description": "SaaS Id value",
          "type": "string"
        },
        "ssl_enabled": {
          "description": "No longer used, default to false",
          "type": "boolean"
        },
        "user_modified": {
          "type": "boolean"
        }
      }
    },
    "CloudAppCollection": {
      "properties": {
        "1": {
          "$ref": "#/definitions/CloudApp"
        }
      }
    },
    "CloudAppSubnet": {
      "properties": {
        "pingMethod": {
          "description": "Type of ping used to find reachability eg: TCP or UDP",
          "type": "string"
        },
        "pingPort": {
          "description": "Port number used to ping eg: 80 or 443",
          "type": "number"
        },
        "reachableIp": {
          "description": "First reachable ip from the subnet eg: 173.240.103.65",
          "type": "string"
        },
        "subnet": {
          "description": "Cloud application subnet eg: 173.240.103.64/26",
          "type": "string"
        }
      }
    },
    "ConfigData": {
      "properties": {
        "availMACs": {
          "description": "Available MACs' addresses.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ifInfo": {
          "description": "The network interface configuration information, including 7 objects, which are separately for mgmt0, mgmt1, wan0, wan1, lan0, lan1m and bvi0, because each object has too many properties and the array of a fixed length can not be shown correctly in this version of schema so this array is not expanded.",
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "macIfs": {
          "description": "MACs' configuration information of this appliance, including six strings which are wan0, wan1, lan0, lan1, mgmt0 and mgmt1.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "scalars": {
          "description": "Need description here.",
          "type": "object"
        },
        "sysConfig": {
          "$ref": "#/definitions/sysConfigIfState",
          "description": "The system configuration of the appliance."
        }
      },
      "required": [
        "availMACs",
        "ifInfo",
        "macIfs",
        "scalars",
        "sysConfig"
      ],
      "type": "object"
    },
    "ConfigMemberInfo": {
      "properties": {
        "auditlog": {
          "description": "The value should be one of the local0, local1, local2, local3, local4, local5, local6 and local7",
          "type": "string"
        },
        "flow": {
          "description": "The value should be one of the local0, local1, local2, local3, local4, local5, local6 and local7",
          "type": "string"
        },
        "keep_number": {
          "description": "The valid range is 1-100, inclusive",
          "type": "integer"
        },
        "min_priority": {
          "description": "The value should be one of the none, emergence, alert, critical, error, warning, notice, info and debug",
          "type": "string"
        },
        "system": {
          "description": "The value should be one of the local0, local1, local2, local3, local4, local5, local6 and local7",
          "type": "string"
        },
        "threshold_size": {
          "description": "The valid range is 1M-50M, inclusive",
          "type": "integer"
        }
      },
      "required": [
        "auditlog",
        "flow",
        "keep_number",
        "min_priority",
        "system",
        "threshold_size"
      ],
      "type": "object"
    },
    "ConfigObj": {
      "properties": {
        "members": {
          "$ref": "#/definitions/ConfigMemberInfo"
        }
      },
      "required": [
        "members"
      ],
      "type": "object"
    },
    "ConfigResponse": {
      "properties": {
        "comment": {
          "description": "The comment of this backup.",
          "type": "string"
        },
        "id": {
          "description": "The id of this backup.",
          "type": "string"
        },
        "time": {
          "description": "The time of this backup.",
          "type": "string"
        },
        "version": {
          "description": "The appliance software version when backup.",
          "type": "string"
        }
      },
      "required": [
        "comment",
        "id",
        "time",
        "version"
      ],
      "type": "object"
    },
    "Configuration": {
      "properties": {
        "interfaces": {
          "description": "interface label order, e.g [['1', '3']]",
          "items": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "type": "array"
        },
        "locationSetting": {
          "$ref": "#/definitions/LocationSecuritySetting",
          "description": "Zscaler Security setting for location. Currently, Orchestrator does not manager this setting."
        },
        "tunnelSetting": {
          "$ref": "#/definitions/TunnelSetting"
        }
      },
      "required": [
        "interfaces",
        "locationSetting",
        "tunnelSetting"
      ],
      "type": "object"
    },
    "ConfigurePostData": {
      "properties": {
        "ipv4": {
          "$ref": "#/definitions/Ipv4",
          "description": "A list of all subnets."
        }
      },
      "required": [
        "ipv4"
      ],
      "type": "object"
    },
    "Connectivity": {
      "properties": {
        "connectivity": {
          "description": "1 for connected, 0 for not connected",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Contact": {
      "properties": {
        "email": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "phoneNumber": {
          "type": "string"
        }
      }
    },
    "Controller": {
      "description": "Disk array controller info",
      "properties": {
        "card_model": {
          "description": "Card model",
          "type": "string"
        },
        "configuration": {
          "description": "Configuration mode",
          "type": "string"
        },
        "drives": {
          "description": "ID list of disks controlled like '1, 0'",
          "type": "string"
        },
        "fw_ver": {
          "description": "Firmware version",
          "type": "string"
        },
        "percent_complete": {
          "description": "Completion percentage",
          "type": "integer"
        },
        "self": {
          "description": "Controller ID",
          "format": "number",
          "type": "string"
        },
        "size": {
          "description": "Size (GB)",
          "type": "integer"
        },
        "status": {
          "description": "Status",
          "type": "string"
        },
        "type": {
          "description": "Type",
          "type": "string"
        }
      },
      "required": [
        "card_model",
        "configuration",
        "drives",
        "fw_ver",
        "percent_complete",
        "self",
        "size",
        "status",
        "type"
      ],
      "type": "object"
    },
    "ControllerMap": {
      "description": "Map of hard disk controller info keyed by controller id",
      "properties": {
        "<a number from 0>": {
          "$ref": "#/definitions/Controller",
          "description": "Order of controller id"
        }
      },
      "required": [
        "<a number from 0>"
      ]
    },
    "CountSummary": {
      "properties": {
        "CRITICAL": {
          "type": "integer"
        },
        "MAJOR": {
          "type": "integer"
        },
        "MINOR": {
          "type": "integer"
        },
        "WARNING": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "CpxSummary": {
      "properties": {
        "enable": {
          "type": "boolean"
        },
        "expire": {
          "type": "integer"
        }
      },
      "required": [
        "enable",
        "expire"
      ],
      "type": "object"
    },
    "CrashHistory": {
      "properties": {
        "backTraceStr": {
          "description": "String representation of crash dum ",
          "type": "string"
        },
        "crashTime": {
          "description": "Epoch time of Appliance crash Time",
          "type": "integer"
        },
        "nePk": {
          "description": "This is the primary key of the appliance. Every appliance managed by Orchestrator is given a primary key and it uniquely identifies an appliance among all appliances managed by Orchestrator",
          "type": "string"
        },
        "processName": {
          "description": "Process which caused the crash",
          "type": "string"
        },
        "sentToPortal": {
          "description": "boolean flag to indicate whether the crash record sent to portal or not?",
          "type": "boolean"
        },
        "signalName": {
          "description": "Signal which caused the crash",
          "type": "string"
        },
        "version": {
          "description": "Appliance version before it crashed",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DNS": {
      "properties": {
        "domain_search": {
          "$ref": "#/definitions/DomainSearchMap",
          "description": "Details of the Domain Names"
        },
        "nameserver": {
          "$ref": "#/definitions/NameServerMap",
          "description": "Details of the Name Servers"
        }
      },
      "required": [
        "domain_search",
        "nameserver"
      ]
    },
    "DNSAggregateStatsFields": {
      "properties": {
        "CALC_DNS": {
          "type": "string"
        },
        "COUNT": {
          "type": "integer"
        },
        "COUNTRY": {
          "type": "string"
        },
        "DNS": {
          "type": "string"
        },
        "FLOWS_CREATED": {
          "type": "integer"
        },
        "FLOWS_DELETED": {
          "type": "integer"
        },
        "FLOW_COUNT": {
          "type": "integer"
        },
        "HOSTNAME": {
          "type": "string"
        },
        "IPADDR": {
          "type": "string"
        },
        "IS_SOURCE": {
          "type": "integer"
        },
        "LANRX_BYTES": {
          "type": "integer"
        },
        "LANRX_PKTS": {
          "type": "integer"
        },
        "LANTX_BYTES": {
          "type": "integer"
        },
        "LANTX_PKTS": {
          "type": "integer"
        },
        "MAX_TIME": {
          "type": "integer"
        },
        "MIN_TIME": {
          "type": "integer"
        },
        "NEPK": {
          "type": "string"
        },
        "NE_IPADDR": {
          "type": "string"
        },
        "SERVICE_ID": {
          "type": "integer"
        },
        "SPLIT_TYPE": {
          "type": "integer"
        },
        "WANRX_BYTES": {
          "type": "integer"
        },
        "WANRX_PKTS": {
          "type": "integer"
        },
        "WANTX_BYTES": {
          "type": "integer"
        },
        "WANTX_PKTS": {
          "type": "integer"
        }
      }
    },
    "DSCPTimeSeriesStatsData": {
      "description": "An array that contains the stats data of a certain timestamp.",
      "items": {},
      "properties": {
        "COMP_L2W": {
          "description": "LAN to WAN compression",
          "type": "integer"
        },
        "COMP_L2WMAX": {
          "description": "Peak LAN to WAN compression for one second interval",
          "type": "integer"
        },
        "COMP_L2WMAX_TS": {
          "description": "Timestamp of when peak LAN to WAN compression occurred",
          "type": "integer"
        },
        "COMP_NOOHEAD_L2W": {
          "description": "LAN to WAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_L2WMAX": {
          "description": "Peak LAN to WAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_L2WMAX_TS": {
          "description": "Timestamp of when peak LAN to WAN compression without protocol headers occurred",
          "type": "integer"
        },
        "COMP_NOOHEAD_W2L": {
          "description": "WAN to LAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_W2LMAX": {
          "description": "Peak WAN to LAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_W2LMAX_TS": {
          "description": "Timestamp of when peak WAN to LAN compression without protocol headers occurred",
          "type": "integer"
        },
        "COMP_W2L": {
          "description": "WAN to LAN compression",
          "type": "integer"
        },
        "COMP_W2LMAX": {
          "description": "Peak WAN to LAN compression for one second interval",
          "type": "integer"
        },
        "COMP_W2LMAX_TS": {
          "description": "Timestamp of when peak WAN to LAN compression occurred",
          "type": "integer"
        },
        "DSCP": {
          "description": "DSCP value",
          "type": "integer"
        },
        "LRX_BYTES": {
          "description": "Number of bytes LAN side received",
          "type": "integer"
        },
        "LRX_BYTES_MAX": {
          "description": "Peak number of bytes LAN side received in one second",
          "type": "integer"
        },
        "LRX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes LAN side received",
          "type": "integer"
        },
        "LRX_PKTS": {
          "description": "Number of packets LAN side received",
          "type": "integer"
        },
        "LRX_PKTS_MAX": {
          "description": "Peak number of packets LAN side received in one second",
          "type": "integer"
        },
        "LRX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets LAN side received",
          "type": "integer"
        },
        "LTX_BYTES": {
          "description": "Number of bytes LAN side transmitted",
          "type": "integer"
        },
        "LTX_BYTES_MAX": {
          "description": "Peak number of bytes LAN side transmitted in one second",
          "type": "integer"
        },
        "LTX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes LAN side transmitted",
          "type": "integer"
        },
        "LTX_PKTS": {
          "description": "Number of packets LAN side transmitted",
          "type": "integer"
        },
        "LTX_PKTS_MAX": {
          "description": "Peak number of packets LAN side transmitted in one second",
          "type": "integer"
        },
        "LTX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets LAN side transmitted",
          "type": "integer"
        },
        "TIMESTAMP": {
          "description": "Timestamp in EPOCH time, all timestamp fields are in EPOCH time",
          "type": "integer"
        },
        "TRAFFIC_TYPE": {
          "description": "Integer value indicating the traffic type these stats belong to. 1: Optimized Traffic, 2: Pass-through Shaped, 3: Pass-through Unshaped, 4: All Traffic",
          "type": "integer"
        },
        "WRX_BYTES": {
          "description": "Number of bytes WAN side received",
          "type": "integer"
        },
        "WRX_BYTES_MAX": {
          "description": "Peak number of bytes WAN side received in one second",
          "type": "integer"
        },
        "WRX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes WAN side received",
          "type": "integer"
        },
        "WRX_PKTS": {
          "description": "Number of packets WAN side received",
          "type": "integer"
        },
        "WRX_PKTS_MAX": {
          "description": "Peak number of packets WAN side received in one second",
          "type": "integer"
        },
        "WRX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets WAN side received",
          "type": "integer"
        },
        "WTX_BYTES": {
          "description": "Number of bytes WAN side transmitted",
          "type": "integer"
        },
        "WTX_BYTES_MAX": {
          "description": "Peak number of bytes WAN side transmitted in one second",
          "type": "integer"
        },
        "WTX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes WAN side transmitted",
          "type": "integer"
        },
        "WTX_PKTS": {
          "description": "Number of packets WAN side transmitted",
          "type": "integer"
        },
        "WTX_PKTS_MAX": {
          "description": "Peak number of packets WAN side transmitted in one second",
          "type": "integer"
        },
        "WTX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets WAN side transmitted",
          "type": "integer"
        }
      },
      "type": "array"
    },
    "DSCPTimeSeriesStatsDataMultiAppliances": {
      "properties": {
        "<nePk/IP>": {
          "items": {
            "$ref": "#/definitions/DSCPTimeSeriesStatsData"
          },
          "type": "array"
        }
      }
    },
    "DSCPTimeSeriesStatsMultiAppliances": {
      "properties": {
        "column_def": {
          "description": "These names correspond to each stats field in the array of stats.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "data": {
          "$ref": "#/definitions/DSCPTimeSeriesStatsDataMultiAppliances"
        }
      }
    },
    "DSCPTimeSeriesStatsSingleAppliances": {
      "properties": {
        "column_def": {
          "description": "These names correspond to each stats field in the array of stats.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "data": {
          "$ref": "#/definitions/DSCPTimeSeriesStatsData"
        }
      }
    },
    "DbPartitionInfo": {
      "properties": {
        "isReadOnlyPartition": {
          "type": "boolean"
        },
        "partitionEndTime": {
          "type": "string"
        },
        "partitionName": {
          "type": "string"
        },
        "partitionSize": {
          "type": "integer"
        },
        "partitionStartTime": {
          "type": "string"
        },
        "readOnlyPartition": {
          "type": "boolean"
        },
        "rows": {
          "type": "integer"
        },
        "tableName": {
          "type": "string"
        }
      }
    },
    "DebugFileInfo": {
      "properties": {
        "name": {
          "description": "The name of the file",
          "type": "string"
        },
        "stats": {
          "$ref": "#/definitions/DebugFileInfoStats"
        }
      },
      "type": "object"
    },
    "DebugFileInfoStats": {
      "properties": {
        "atime": {
          "description": "The access time of the file",
          "type": "string"
        },
        "blksize": {
          "description": "The size of the block",
          "type": "integer"
        },
        "blocks": {
          "description": "The blocks of the file",
          "type": "integer"
        },
        "ctime": {
          "description": "The change time of the file",
          "type": "string"
        },
        "dev": {
          "description": "Need description here",
          "type": "integer"
        },
        "gid": {
          "description": "Need description here",
          "type": "integer"
        },
        "ino": {
          "description": "Need description here",
          "type": "integer"
        },
        "mode": {
          "description": "The mode of the file",
          "type": "integer"
        },
        "mtime": {
          "description": "The modified time of the file",
          "type": "string"
        },
        "nlink": {
          "description": "Need description here",
          "type": "integer"
        },
        "rdev": {
          "description": "Need description here",
          "type": "integer"
        },
        "size": {
          "description": "The size of the file",
          "type": "integer"
        },
        "uid": {
          "description": "Need description here",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "DebugFiles": {
      "properties": {
        "debugDump": {
          "description": "The info of the Sys Dump file",
          "items": {
            "$ref": "#/definitions/DebugFileInfo"
          },
          "type": "array"
        },
        "debugFile": {
          "description": "The info of the debug file",
          "items": {
            "$ref": "#/definitions/DebugFileInfo"
          },
          "type": "array"
        },
        "log": {
          "description": "The info of the Log file",
          "items": {
            "$ref": "#/definitions/DebugFileInfo"
          },
          "type": "array"
        },
        "snapshots": {
          "description": "The info of the Snapshot file",
          "items": {
            "$ref": "#/definitions/DebugFileInfo"
          },
          "type": "array"
        },
        "tcpDump": {
          "description": "The info of the TCP Dump file",
          "items": {
            "$ref": "#/definitions/DebugFileInfo"
          },
          "type": "array"
        },
        "techDump": {
          "description": "The info of the Show Tech file",
          "items": {
            "$ref": "#/definitions/DebugFileInfo"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "DelayNotificationRequest": {
      "properties": {
        "delayByHours": {
          "description": "The number of hours to delay the notification by",
          "type": "number"
        }
      },
      "required": [
        "delayByHours"
      ]
    },
    "DeleteGMSDebugFile": {
      "properties": {
        "fileName": {
          "description": "The name of the file",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DeleteInfoClass": {
      "properties": {
        "group": {
          "description": "The group of the file which need to delete",
          "type": "string"
        },
        "local_filename": {
          "description": "The name of the file which need to delete",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DeploymentBackgroundClientKey": {
      "properties": {
        "clientKey": {
          "description": "The client key that can be used to check the status of the deployment apply.",
          "type": "string"
        }
      }
    },
    "DeploymentGet": {
      "properties": {
        "dhcpFailover": {
          "$ref": "#/definitions/dhcpFailover"
        },
        "dpRoutes": {
          "items": {
            "$ref": "#/definitions/dpRoute"
          },
          "type": "array"
        },
        "mgmtIfData": {
          "$ref": "#/definitions/mgmtIfData",
          "description": "Appliance's management network interfaces information"
        },
        "modeIfs": {
          "items": {
            "$ref": "#/definitions/modeIf"
          },
          "type": "array"
        },
        "scalars": {
          "$ref": "#/definitions/Scalars"
        },
        "sysConfig": {
          "$ref": "#/definitions/sysConfig",
          "description": "Appliance's system configuration"
        },
        "vifs": {
          "$ref": "#/definitions/vifs"
        }
      }
    },
    "DeploymentPost": {
      "properties": {
        "dhcpFailover": {
          "$ref": "#/definitions/dhcpFailover"
        },
        "dpRoutes": {
          "items": {
            "$ref": "#/definitions/dpRoute"
          },
          "type": "array"
        },
        "modeIfs": {
          "items": {
            "$ref": "#/definitions/modeIf"
          },
          "type": "array"
        },
        "sysConfig": {
          "$ref": "#/definitions/sysConfig"
        }
      },
      "required": [
        "dpRoutes",
        "modeIfs",
        "sysConfig"
      ]
    },
    "DeploymentPut": {
      "properties": {
        "dpRoutes": {
          "items": {
            "$ref": "#/definitions/dpRoute"
          },
          "type": "array"
        },
        "modeIfs": {
          "items": {
            "$ref": "#/definitions/modeIf"
          },
          "type": "array"
        },
        "sysConfig": {
          "$ref": "#/definitions/sysConfig"
        }
      },
      "required": [
        "dpRoutes",
        "modeIfs",
        "sysConfig"
      ]
    },
    "DeploymentValidate": {
      "properties": {
        "dhcpFailover": {
          "items": {
            "$ref": "#/definitions/dhcpFailover"
          }
        },
        "dpRoutes": {
          "items": {
            "$ref": "#/definitions/dpRoute"
          },
          "type": "array"
        },
        "modeIfs": {
          "items": {
            "$ref": "#/definitions/modeIf"
          },
          "type": "array"
        },
        "sysConfig": {
          "$ref": "#/definitions/sysConfig"
        }
      },
      "required": [
        "dpRoutes",
        "modeIfs",
        "sysConfig"
      ]
    },
    "DeploymentValidateResult": {
      "properties": {
        "err": {
          "description": "Deployment data validation result - OK: null, or in case of error, the error message here",
          "type": "string"
        },
        "rebootRequired": {
          "description": "Indicates whether reboot is required if the deployment data provided is applied, ",
          "type": "boolean"
        }
      },
      "required": [
        "err",
        "rebootRequired"
      ]
    },
    "DestNepkToPhysicalTunnelsMap": {
      "description": "A map of destination appliances (nePk) to an array of tunnels",
      "properties": {
        "destinationNePk": {
          "items": {
            "$ref": "#/definitions/OverlayPhysicalTunnelsInfo"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "DestNepkToTunnelsMap": {
      "description": "A map of destination appliances (nePk) to an array of tunnels",
      "properties": {
        "destinationNePk": {
          "items": {
            "$ref": "#/definitions/OverlayBondedTunnelsInfo"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "DftData": {
      "properties": {
        "enable": {
          "description": "Need description here",
          "type": "boolean"
        },
        "falling": {
          "$ref": "#/definitions/ChangedObject"
        },
        "rising": {
          "$ref": "#/definitions/ChangedObject"
        }
      },
      "required": [
        "enable",
        "falling",
        "rising"
      ],
      "type": "object"
    },
    "DiscoveryConfiguration": {
      "properties": {
        "emails": {
          "description": "An array of email addresses to send the discovery (discovered, approved and denied EdgeConnects) email to.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "Disk": {
      "description": "Disk info",
      "properties": {
        "is_removable": {
          "description": "Whether it is removable",
          "type": "boolean"
        },
        "pair": {
          "description": "ID of the pair disk, if no pair, it is -1",
          "type": "integer"
        },
        "percent_complete": {
          "description": "Completion percentage",
          "type": "integer"
        },
        "self": {
          "description": "Disk ID",
          "format": "number",
          "type": "string"
        },
        "serial_num": {
          "description": "Serial number",
          "type": "string"
        },
        "size": {
          "description": "Size (GB)",
          "type": "integer"
        },
        "status": {
          "description": "Status",
          "type": "string"
        }
      },
      "required": [
        "is_removable",
        "pair",
        "percent_complete",
        "self",
        "serial_num",
        "size",
        "status"
      ],
      "type": "object"
    },
    "DiskMap": {
      "description": "Map of disk info keyed by disk ID",
      "properties": {
        "<a number from 0>": {
          "$ref": "#/definitions/Disk",
          "description": "Order of disk ID"
        }
      },
      "required": [
        "<a number from 0>"
      ]
    },
    "DisksGet": {
      "properties": {
        "controller": {
          "$ref": "#/definitions/ControllerMap",
          "description": "All controller information"
        },
        "diskImage": {
          "description": "Filename of disk image",
          "type": "string"
        },
        "disks": {
          "$ref": "#/definitions/DiskMap",
          "description": "All disk information"
        }
      },
      "required": [
        "controller",
        "diskImage",
        "disks"
      ],
      "type": "object"
    },
    "DnsCacheConfig": {
      "properties": {
        "http": {
          "description": "enable/disable flag for DNS http snooping",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "DnsObj": {
      "properties": {
        "domain": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "priority": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "DnsProxyConfig": {
      "properties": {
        "active": {
          "description": "Active map",
          "type": "string"
        },
        "domaingroup": {
          "$ref": "#/definitions/DomainGroups"
        },
        "enable": {
          "description": "Enable DNS proxy",
          "type": "boolean"
        },
        "interface": {
          "description": "Loopback interface",
          "type": "string"
        },
        "map": {
          "$ref": "#/definitions/Maps"
        },
        "profile": {
          "$ref": "#/definitions/Profile"
        }
      },
      "required": [
        "active",
        "enable",
        "interface"
      ],
      "type": "object"
    },
    "DnsProxyConfigPost": {
      "properties": {
        "config": {
          "$ref": "#/definitions/DnsProxyConfig"
        }
      },
      "type": "object"
    },
    "Domain": {
      "properties": {
        "application": {
          "description": "Cloud application name",
          "type": "string"
        },
        "domain": {
          "description": "Domain name",
          "type": "string"
        },
        "saasId": {
          "type": "string"
        }
      }
    },
    "DomainGroups": {
      "properties": {
        "<group_name>": {
          "$ref": "#/definitions/DomainGroupsObj"
        }
      },
      "type": "object"
    },
    "DomainGroupsObj": {
      "properties": {
        "domains": {
          "description": "Domains",
          "type": "string"
        }
      },
      "required": [
        "domains"
      ],
      "type": "object"
    },
    "DomainSearch": {
      "description": "Details of the Domain Names",
      "properties": {
        "domain_search": {
          "$ref": "#/definitions/DomainSearchMap"
        }
      },
      "required": [
        "domain_search"
      ]
    },
    "DomainSearchElement": {
      "properties": {
        "domainname": {
          "description": "Primary Domain Name",
          "type": "string"
        },
        "self": {
          "type": "integer"
        }
      },
      "required": [
        "domainname",
        "self"
      ]
    },
    "DomainSearchMap": {
      "description": "You can add a maximum of three Domain Names.",
      "properties": {
        "1": {
          "$ref": "#/definitions/DomainSearchElement",
          "description": "Primary Domain Name"
        },
        "2": {
          "$ref": "#/definitions/DomainSearchElement",
          "description": "Secondary Domain Name"
        },
        "3": {
          "$ref": "#/definitions/DomainSearchElement",
          "description": "Tertiary Domain Name"
        }
      }
    },
    "DownloadFilePost": {
      "properties": {
        "appliances": {
          "items": {
            "$ref": "#/definitions/ApplianceFiles"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "DscpAggregateStats": {
      "properties": {
        "<Traffic Type>": {
          "$ref": "#/definitions/DscpAggregateStatsDscpLevelObject"
        }
      },
      "required": [
        "<Traffic Type>"
      ]
    },
    "DscpAggregateStatsApplianceLevelObject": {
      "properties": {
        "<nePk/IP>": {
          "$ref": "#/definitions/DscpAggregateStatsBase"
        }
      },
      "required": [
        "<nePk/IP>"
      ]
    },
    "DscpAggregateStatsBase": {
      "properties": {
        "DSCP": {
          "description": "Integer value indicating DSCP to which the stats object belongs.",
          "type": "integer"
        },
        "HOSTNAME": {
          "description": "Hostname of the appliance",
          "type": "string"
        },
        "IP": {
          "description": "Management IP address of appliance",
          "type": "string"
        },
        "MAX_COMP_L2W": {
          "description": "Integer value of maximum LAN to WAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_L2WMAX": {
          "description": "Integer value of maximum peak LAN to WAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_L2W": {
          "description": "Integer value of maximum LAN to WAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_L2WMAX": {
          "description": "Integer value of maximum peak LAN to WAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_W2L": {
          "description": "Integer value of maximum WAN to LAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_W2LMAX": {
          "description": "Integer value of maximum peak WAN to LAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_W2L": {
          "description": "Integer value of maximum WAN to LAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_W2LMAX": {
          "description": "Integer value of maximum peak WAN to LAN compression rate",
          "type": "integer"
        },
        "MAX_LRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes LAN side received",
          "type": "integer"
        },
        "MAX_LRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets LAN side received",
          "type": "integer"
        },
        "MAX_LTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes LAN side transmitted",
          "type": "integer"
        },
        "MAX_LTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets LAN side transmitted",
          "type": "integer"
        },
        "MAX_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual starting boundary of data time range",
          "type": "integer"
        },
        "MAX_WRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes WAN side received",
          "type": "integer"
        },
        "MAX_WRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets WAN side received",
          "type": "integer"
        },
        "MAX_WTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes WAN side transmitted",
          "type": "integer"
        },
        "MAX_WTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets WAN side transmitted",
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual ending boundary of data time range",
          "type": "integer"
        },
        "SUM_LRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side received",
          "type": "integer"
        },
        "SUM_LRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_WRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side received",
          "type": "integer"
        },
        "SUM_WRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side received",
          "type": "integer"
        },
        "SUM_WTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side transmitted",
          "type": "integer"
        },
        "SUM_WTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side transmitted",
          "type": "integer"
        },
        "TRAFFIC_TYPE": {
          "description": "Integer value indicating the traffic type these stats belong to. 1: Optimized Traffic, 2: Pass-through Shaped, 3: Pass-through Unshaped, 4: All Traffic",
          "type": "integer"
        },
        "nePk": {
          "description": "Internal ID of appliance",
          "type": "string"
        }
      },
      "required": [
        "DSCP",
        "HOSTNAME",
        "IP",
        "MAX_COMP_L2W",
        "MAX_COMP_L2WMAX",
        "MAX_COMP_NOOHEAD_L2W",
        "MAX_COMP_NOOHEAD_L2WMAX",
        "MAX_COMP_NOOHEAD_W2L",
        "MAX_COMP_NOOHEAD_W2LMAX",
        "MAX_COMP_W2L",
        "MAX_COMP_W2LMAX",
        "MAX_LRX_BYTES_MAX",
        "MAX_LRX_PKTS_MAX",
        "MAX_LTX_BYTES_MAX",
        "MAX_LTX_PKTS_MAX",
        "MAX_TIMESTAMP",
        "MAX_WRX_BYTES_MAX",
        "MAX_WRX_PKTS_MAX",
        "MAX_WTX_BYTES_MAX",
        "MAX_WTX_PKTS_MAX",
        "MIN_TIMESTAMP",
        "SUM_LRX_BYTES",
        "SUM_LRX_PKTS",
        "SUM_LTX_BYTES",
        "SUM_LTX_PKTS",
        "SUM_WRX_BYTES",
        "SUM_WRX_PKTS",
        "SUM_WTX_BYTES",
        "SUM_WTX_PKTS",
        "TRAFFIC_TYPE",
        "nePk"
      ]
    },
    "DscpAggregateStatsDscpLevelObject": {
      "properties": {
        "<DSCP>": {
          "$ref": "#/definitions/DscpAggregateStatsApplianceLevelObject"
        }
      },
      "required": [
        "<DSCP>"
      ]
    },
    "DynamicPreferenceResponse": {
      "properties": {
        "latitude": {
          "description": "The latitude of the map's initial center",
          "format": "double",
          "type": "number"
        },
        "longitude": {
          "description": "The longitude of the map's initial center",
          "format": "double",
          "type": "number"
        },
        "zoom": {
          "description": "Zoom level of the map",
          "type": "number"
        }
      }
    },
    "DynamicPreferenceSave": {
      "properties": {
        "latitude": {
          "description": "The latitude of the map's initial center",
          "format": "double",
          "type": "number"
        },
        "longitude": {
          "description": "The longitude of the map's initial center",
          "format": "double",
          "type": "number"
        },
        "zoom": {
          "description": "Zoom level of the map",
          "type": "number"
        }
      }
    },
    "DynamicPreferencesSaveForUser": {
      "properties": {
        "username": {
          "$ref": "#/definitions/DynamicPreferenceSave"
        }
      },
      "required": [
        "username"
      ]
    },
    "DynamicTopologyConfiguration": {
      "properties": {
        "key": {
          "$ref": "#/definitions/DynamicPreferenceResponse",
          "description": "The dynamic topology configuration will be stored under the key 'default' or the user's username (depending on if you sent the request with a username or not. "
        }
      }
    },
    "DynamicTopologySaveRequest": {
      "properties": {
        "username": {
          "$ref": "#/definitions/DynamicPreferenceSave",
          "description": "The username is should match the username passed in the URL of the request."
        }
      }
    },
    "ECPostData": {
      "properties": {
        "license": {
          "$ref": "#/definitions/BoostPlus"
        }
      },
      "type": "object"
    },
    "EcspSummary": {
      "properties": {
        "enable": {
          "type": "boolean"
        }
      },
      "required": [
        "enable"
      ],
      "type": "object"
    },
    "EmptyObject": {
      "type": "object"
    },
    "EndpointException": {
      "properties": {
        "ip1": {
          "description": "Primary IPv4 address",
          "type": "string"
        },
        "ip2": {
          "description": "Secondary IPv4 address",
          "type": "string"
        }
      },
      "required": [
        "ip1",
        "ip2"
      ],
      "type": "object"
    },
    "EndpointExceptionLabelMap": {
      "properties": {
        "<labelId>": {
          "$ref": "#/definitions/EndpointException",
          "description": "label id"
        }
      },
      "type": "object"
    },
    "EndpointExceptionMap": {
      "properties": {
        "<nePk>": {
          "$ref": "#/definitions/EndpointExceptionLabelMap",
          "description": "appliance id(nePk)"
        }
      },
      "type": "object"
    },
    "EraseNmPost": {
      "properties": {
        "erase": {
          "description": "Should be always true, if you want to erase NM",
          "type": "boolean"
        },
        "neList": {
          "description": "Array of appliance keys, for eg: ['0.NE','1.NE']",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "erase",
        "neList"
      ],
      "type": "object"
    },
    "FecSettings": {
      "properties": {
        "fec_enable_str": {
          "description": "Enable Forward Error Correction(FEC)",
          "enum": [
            "enable",
            "disable",
            "auto"
          ],
          "type": "string"
        },
        "fec_reset_intvl": {
          "description": "Forward Error Correction Ratio",
          "enum": [
            2,
            5,
            10,
            20
          ],
          "type": "integer"
        },
        "frag_enable": {
          "description": "Enable tunnel packet fragmentation and reassembly",
          "type": "boolean"
        },
        "reorder_wait": {
          "description": "Amount of time in milliseconds to wait for Packet Order Correction algorithm",
          "type": "integer"
        }
      }
    },
    "FileCreationBody": {
      "properties": {
        "data": {
          "type": "string"
        },
        "fileName": {
          "type": "string"
        }
      },
      "required": [
        "data",
        "fileName"
      ],
      "type": "object"
    },
    "FlowAggregateStats": {
      "properties": {
        "<Traffic Type>": {
          "$ref": "#/definitions/FlowAggregateStatsFlowLevelObject"
        }
      },
      "required": [
        "<Traffic Type>"
      ]
    },
    "FlowAggregateStatsApplianceLevelObject": {
      "properties": {
        "<nePk/IP>": {
          "$ref": "#/definitions/FlowAggregateStatsBase"
        }
      },
      "required": [
        "<nePk/IP>"
      ]
    },
    "FlowAggregateStatsBase": {
      "properties": {
        "FLOW_TYPE": {
          "description": "Integer value indicating flow type to which the stats object belongs. 1: TCP_Accelerated, 2: TCP_Not_Accelerated, 3: Non_TCP",
          "type": "integer"
        },
        "HOSTNAME": {
          "description": "Hostname of the appliance",
          "type": "string"
        },
        "IP": {
          "description": "Management IP address of appliance",
          "type": "string"
        },
        "MAX_COMP_L2W": {
          "description": "Integer value of maximum LAN to WAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_L2WMAX": {
          "description": "Integer value of maximum peak LAN to WAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_L2W": {
          "description": "Integer value of maximum LAN to WAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_L2WMAX": {
          "description": "Integer value of maximum peak LAN to WAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_W2L": {
          "description": "Integer value of maximum WAN to LAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_W2LMAX": {
          "description": "Integer value of maximum peak WAN to LAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_W2L": {
          "description": "Integer value of maximum WAN to LAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_W2LMAX": {
          "description": "Integer value of maximum peak WAN to LAN compression rate",
          "type": "integer"
        },
        "MAX_CREATED_MAX": {
          "description": "Integer value of maximum number of flows created",
          "type": "integer"
        },
        "MAX_DELETED_MAX": {
          "description": "Integer value of maximum number of flows deleted",
          "type": "integer"
        },
        "MAX_FLOW_EXT_PEAK": {
          "description": "Integer value of maximum peak number of flows exist",
          "type": "integer"
        },
        "MAX_FLOW_MAX": {
          "description": "Integer value of maximum number of flows exist",
          "type": "integer"
        },
        "MAX_FLOW_PEAK": {
          "description": "Integer value of maximum peak number of flows",
          "type": "integer"
        },
        "MAX_LRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes LAN side received",
          "type": "integer"
        },
        "MAX_LRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets LAN side received",
          "type": "integer"
        },
        "MAX_LTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes LAN side transmitted",
          "type": "integer"
        },
        "MAX_LTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets LAN side transmitted",
          "type": "integer"
        },
        "MAX_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual starting boundary of data time range",
          "type": "integer"
        },
        "MAX_WRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes WAN side received",
          "type": "integer"
        },
        "MAX_WRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets WAN side received",
          "type": "integer"
        },
        "MAX_WTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes WAN side transmitted",
          "type": "integer"
        },
        "MAX_WTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets WAN side transmitted",
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual ending boundary of data time range",
          "type": "integer"
        },
        "SUM_CREATED": {
          "description": "Integer value of total number of flows created",
          "type": "integer"
        },
        "SUM_DELETED": {
          "description": "Integer value of total number of flows deleted",
          "type": "integer"
        },
        "SUM_EXT": {
          "description": "Integer value of total number of flows exist",
          "type": "integer"
        },
        "SUM_LRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side received",
          "type": "integer"
        },
        "SUM_LRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_WRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side received",
          "type": "integer"
        },
        "SUM_WRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side received",
          "type": "integer"
        },
        "SUM_WTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side transmitted",
          "type": "integer"
        },
        "SUM_WTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side transmitted",
          "type": "integer"
        },
        "TRAFFIC_TYPE": {
          "description": "Integer value indicating the traffic type these stats belong to. 1: Optimized Traffic, 2: Pass-through Shaped, 3: Pass-through Unshaped, 4: All Traffic",
          "type": "integer"
        },
        "nePk": {
          "description": "Internal ID of appliance",
          "type": "string"
        }
      },
      "required": [
        "FLOW_TYPE",
        "HOSTNAME",
        "IP",
        "MAX_COMP_L2W",
        "MAX_COMP_L2WMAX",
        "MAX_COMP_NOOHEAD_L2W",
        "MAX_COMP_NOOHEAD_L2WMAX",
        "MAX_COMP_NOOHEAD_W2L",
        "MAX_COMP_NOOHEAD_W2LMAX",
        "MAX_COMP_W2L",
        "MAX_COMP_W2LMAX",
        "MAX_CREATED_MAX",
        "MAX_DELETED_MAX",
        "MAX_FLOW_EXT_PEAK",
        "MAX_FLOW_MAX",
        "MAX_FLOW_PEAK",
        "MAX_LRX_BYTES_MAX",
        "MAX_LRX_PKTS_MAX",
        "MAX_LTX_BYTES_MAX",
        "MAX_LTX_PKTS_MAX",
        "MAX_TIMESTAMP",
        "MAX_WRX_BYTES_MAX",
        "MAX_WRX_PKTS_MAX",
        "MAX_WTX_BYTES_MAX",
        "MAX_WTX_PKTS_MAX",
        "MIN_TIMESTAMP",
        "SUM_CREATED",
        "SUM_DELETED",
        "SUM_EXT",
        "SUM_LRX_BYTES",
        "SUM_LRX_PKTS",
        "SUM_LTX_BYTES",
        "SUM_LTX_PKTS",
        "SUM_WRX_BYTES",
        "SUM_WRX_PKTS",
        "SUM_WTX_BYTES",
        "SUM_WTX_PKTS",
        "TRAFFIC_TYPE",
        "nePk"
      ]
    },
    "FlowAggregateStatsFlowLevelObject": {
      "properties": {
        "<Flow Type>": {
          "$ref": "#/definitions/FlowAggregateStatsApplianceLevelObject"
        }
      },
      "required": [
        "<Flow Type>"
      ]
    },
    "FlowDetails": {
      "properties": {
        "Optimization": {
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "QoS": {
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "Route": {
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "Stats": {
          "items": {
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "Optimization",
        "QoS",
        "Route",
        "Stats"
      ]
    },
    "FlowDetails2": {
      "properties": {
        "General": {
          "$ref": "#/definitions/FlowDetails2General"
        },
        "NAT Info": {
          "$ref": "#/definitions/FlowDetails2NatInfo"
        },
        "TCP Info": {
          "$ref": "#/definitions/FlowDetails2TCPInfo"
        }
      },
      "required": [
        "General",
        "NAT Info",
        "TCP Info"
      ]
    },
    "FlowDetails2General": {
      "properties": {
        "Optimization": {
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "QoS": {
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "Route": {
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "Stats": {
          "items": {
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "Optimization",
        "QoS",
        "Route",
        "Stats"
      ],
      "type": "object"
    },
    "FlowDetails2NatInfo": {
      "properties": {
        "NAT": {
          "items": {
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "NAT"
      ]
    },
    "FlowDetails2TCPInfo": {
      "properties": {
        "TCP-Stats": {
          "items": {
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "TCP-Stats"
      ]
    },
    "FlowTimeSeriesStatsItems": {
      "description": "An array that contains the stats data of a certain timestamp.",
      "items": {},
      "properties": {
        "COMP_L2W": {
          "description": "LAN to WAN compression",
          "type": "integer"
        },
        "COMP_L2WMAX": {
          "description": "Peak LAN to WAN compression for one second interval",
          "type": "integer"
        },
        "COMP_L2WMAX_TS": {
          "description": "Timestamp of when peak LAN to WAN compression occurred",
          "type": "integer"
        },
        "COMP_NOOHEAD_L2W": {
          "description": "LAN to WAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_L2WMAX": {
          "description": "Peak LAN to WAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_L2WMAX_TS": {
          "description": "Timestamp of when peak LAN to WAN compression without protocol headers occurred",
          "type": "integer"
        },
        "COMP_NOOHEAD_W2L": {
          "description": "WAN to LAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_W2LMAX": {
          "description": "Peak WAN to LAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_W2LMAX_TS": {
          "description": "Timestamp of when peak WAN to LAN compression without protocol headers occurred",
          "type": "integer"
        },
        "COMP_W2L": {
          "description": "WAN to LAN compression",
          "type": "integer"
        },
        "COMP_W2LMAX": {
          "description": "Peak WAN to LAN compression for one second interval",
          "type": "integer"
        },
        "COMP_W2LMAX_TS": {
          "description": "Timestamp of when peak WAN to LAN compression occurred",
          "type": "integer"
        },
        "CREATED": {
          "description": "Number of created flows",
          "type": "integer"
        },
        "CREATED_MAX": {
          "description": "Peak number of created flows",
          "type": "integer"
        },
        "CREATED_MAX_TS": {
          "description": "Timestamp of when peak number of created flows occurred",
          "type": "integer"
        },
        "DELETED": {
          "description": "Number of deleted flows",
          "type": "integer"
        },
        "DELETED_MAX": {
          "description": "Peak number of deleted flows",
          "type": "integer"
        },
        "DELETED_MAX_TS": {
          "description": "Timestamp of when peak number of deleted flows occurred",
          "type": "integer"
        },
        "EXT": {
          "description": "Number of existing flows at the time when the stats sample was taken",
          "type": "integer"
        },
        "FLOW_EXT_PEAK": {
          "description": "Peak number of existing flows at the time when the stats sample was taken",
          "type": "integer"
        },
        "FLOW_EXT_PEAK_TS": {
          "description": "Timestamp of when peak number of existing flow occurred",
          "type": "integer"
        },
        "FLOW_MAX": {
          "description": "Peak number of flows",
          "type": "integer"
        },
        "FLOW_PEAK": {
          "description": "Same as FLOW_MAX",
          "type": "integer"
        },
        "FLOW_PEAK_TS": {
          "description": "Timestamp of when peak number of flows occurred",
          "type": "integer"
        },
        "FLOW_TYPE": {
          "description": "Number of bytes of protocol headers WAN side received",
          "type": "integer"
        },
        "LRX_BYTES": {
          "description": "Number of bytes LAN side received",
          "type": "integer"
        },
        "LRX_BYTES_MAX": {
          "description": "Peak number of bytes LAN side received in one second",
          "type": "integer"
        },
        "LRX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes LAN side received",
          "type": "integer"
        },
        "LRX_PKTS": {
          "description": "Number of packets LAN side received",
          "type": "integer"
        },
        "LRX_PKTS_MAX": {
          "description": "Peak number of packets LAN side received in one second",
          "type": "integer"
        },
        "LRX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets LAN side received",
          "type": "integer"
        },
        "LTX_BYTES": {
          "description": "Number of bytes LAN side transmitted",
          "type": "integer"
        },
        "LTX_BYTES_MAX": {
          "description": "Peak number of bytes LAN side transmitted in one second",
          "type": "integer"
        },
        "LTX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes LAN side transmitted",
          "type": "integer"
        },
        "LTX_PKTS": {
          "description": "Number of packets LAN side transmitted",
          "type": "integer"
        },
        "LTX_PKTS_MAX": {
          "description": "Peak number of packets LAN side transmitted in one second",
          "type": "integer"
        },
        "LTX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets LAN side transmitted",
          "type": "integer"
        },
        "TIMESTAMP": {
          "description": "Timestamp in EPOCH time, all timestamp fields are in EPOCH time",
          "type": "integer"
        },
        "TRAFFIC_TYPE": {
          "description": "Integer value indicating the traffic type these stats belong to. 1: Optimized Traffic, 2: Pass-through Shaped, 3: Pass-through Unshaped, 4: All Traffic",
          "type": "integer"
        },
        "WRX_BYTES": {
          "description": "Number of bytes WAN side received",
          "type": "integer"
        },
        "WRX_BYTES_MAX": {
          "description": "Peak number of bytes WAN side received in one second",
          "type": "integer"
        },
        "WRX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes WAN side received",
          "type": "integer"
        },
        "WRX_PKTS": {
          "description": "Number of packets WAN side received",
          "type": "integer"
        },
        "WRX_PKTS_MAX": {
          "description": "Peak number of packets WAN side received in one second",
          "type": "integer"
        },
        "WRX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets WAN side received",
          "type": "integer"
        },
        "WTX_BYTES": {
          "description": "Number of bytes WAN side transmitted",
          "type": "integer"
        },
        "WTX_BYTES_MAX": {
          "description": "Peak number of bytes WAN side transmitted in one second",
          "type": "integer"
        },
        "WTX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes WAN side transmitted",
          "type": "integer"
        },
        "WTX_PKTS": {
          "description": "Number of packets WAN side transmitted",
          "type": "integer"
        },
        "WTX_PKTS_MAX": {
          "description": "Peak number of packets WAN side transmitted in one second",
          "type": "integer"
        },
        "WTX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets WAN side transmitted",
          "type": "integer"
        }
      },
      "type": "array"
    },
    "FlowTimeSeriesStatsMultiAppliances": {
      "properties": {
        "column_def": {
          "description": "These names correspond to each stats field in the array of stats.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "data": {
          "items": {
            "$ref": "#/definitions/FlowTimeSeriesStatsItems"
          },
          "type": "array"
        }
      }
    },
    "FlowsGet": {
      "properties": {
        "active": {
          "$ref": "#/definitions/FlowsGetActivePart"
        },
        "err_msg": {
          "type": "string"
        },
        "flows": {
          "description": "Each array element consists of the following items in the listed order: [Flow Id, Flow Sequence Id, SilverPeak Flow Id, Application Name, IP1_1, IP1_2, IP1_3, IP1_4, Ip1 Version, IP1 String, Port1, IP2_1, IP2_2, IP2_3, IP2_4, Ip2 Version, IP2 String, Port2, Flow Optimization Status, Percentage Reduction Inbound, Inbound TX Bytes, Inbound RX Bytes, Outbound RX Bytes, Outbound TX Bytes, Percentage Reduction OutBound, Uptime, Protocol, Outbound Tunnel Id, Inbound Tunnel Id, Configured Outbound Tunnel Id, LAN Side VLAN, Traffic Class, LAN DSCP, WAN DSCP, Flow Redirected From, ISCI Flow Info, SnatIp1, SnatIp2, Flow Start Time, Flow End Time, Service Id, SaaS Id, TCP UTC Slow Start Time, TCP Slow Duration, IP1 Domain Name, IP2 Domain Name, From Zone, To Zone, Zone Dropped, EdgeHA, LAN TX DSCP, LAN RX DSCP, WAN TX DSCP, WAN RX DSCP, NAT IP, NAT Port, Original Port, NAT Type, Application Type].",
          "items": {
            "items": {},
            "type": "array"
          },
          "type": "array"
        },
        "flows_management": {
          "type": "integer"
        },
        "flows_optimized": {
          "type": "integer"
        },
        "flows_passthrough": {
          "type": "integer"
        },
        "flows_with_ignores": {
          "type": "integer"
        },
        "flows_with_issues": {
          "type": "integer"
        },
        "inactive": {
          "$ref": "#/definitions/FlowsGetInactivePart"
        },
        "inconsistent_flows": {
          "type": "integer"
        },
        "matched_flows": {
          "type": "integer"
        },
        "now": {
          "type": "integer"
        },
        "ret_code": {
          "type": "integer"
        },
        "returned_flows": {
          "type": "integer"
        },
        "stale_flows": {
          "type": "integer"
        },
        "total_flows": {
          "type": "integer"
        }
      },
      "required": [
        "active",
        "err_msg",
        "flows",
        "flows_management",
        "flows_optimized",
        "flows_passthrough",
        "flows_with_ignores",
        "flows_with_issues",
        "inactive",
        "inconsistent_flows",
        "matched_flows",
        "now",
        "ret_code",
        "returned_flows",
        "stale_flows",
        "total_flows"
      ],
      "type": "object"
    },
    "FlowsGetActivePart": {
      "properties": {
        "flows_asymmetric": {
          "type": "integer"
        },
        "flows_firewall_dropped": {
          "type": "integer"
        },
        "flows_management": {
          "type": "integer"
        },
        "flows_optimized": {
          "type": "integer"
        },
        "flows_passthrough": {
          "type": "integer"
        },
        "flows_route_dropped": {
          "type": "integer"
        },
        "flows_with_ignores": {
          "type": "integer"
        },
        "flows_with_issues": {
          "type": "integer"
        },
        "inconsistent_flows": {
          "type": "integer"
        },
        "stale_flows": {
          "type": "integer"
        },
        "total_flows": {
          "type": "integer"
        }
      },
      "required": [
        "flows_asymmetric",
        "flows_firewall_dropped",
        "flows_management",
        "flows_optimized",
        "flows_passthrough",
        "flows_route_dropped",
        "flows_with_ignores",
        "flows_with_issues",
        "inconsistent_flows",
        "stale_flows",
        "total_flows"
      ],
      "type": "object"
    },
    "FlowsGetInactivePart": {
      "properties": {
        "flows_asymmetric": {
          "type": "integer"
        },
        "flows_firewall_dropped": {
          "type": "integer"
        },
        "flows_management": {
          "type": "integer"
        },
        "flows_optimized": {
          "type": "integer"
        },
        "flows_passthrough": {
          "type": "integer"
        },
        "flows_route_dropped": {
          "type": "integer"
        },
        "flows_with_ignores": {
          "type": "integer"
        },
        "flows_with_issues": {
          "type": "integer"
        },
        "inconsistent_flows": {
          "type": "integer"
        },
        "stale_flows": {
          "type": "integer"
        },
        "total_flows": {
          "type": "integer"
        }
      },
      "required": [
        "flows_asymmetric",
        "flows_firewall_dropped",
        "flows_management",
        "flows_optimized",
        "flows_passthrough",
        "flows_route_dropped",
        "flows_with_ignores",
        "flows_with_issues",
        "inconsistent_flows",
        "stale_flows",
        "total_flows"
      ],
      "type": "object"
    },
    "FlowsResetBody": {
      "properties": {
        "spIds": {
          "description": "Contains the flow IDs.",
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "spIds"
      ],
      "type": "object"
    },
    "FlowsResetResponse": {
      "properties": {
        "rc": {
          "description": "Indicates success or failure",
          "enum": [
            0,
            -1
          ],
          "format": "int32",
          "type": "integer"
        },
        "results": {
          "items": {},
          "type": "array"
        },
        "value": {
          "type": "string"
        }
      },
      "required": [
        "rc",
        "results",
        "value"
      ],
      "type": "object"
    },
    "ForgotPasswordBody": {
      "properties": {
        "userName": {
          "description": "User name",
          "type": "string"
        }
      },
      "required": [
        "userName"
      ],
      "type": "object"
    },
    "FxSummary": {
      "properties": {
        "base": {
          "type": "integer"
        },
        "boost": {
          "type": "integer"
        },
        "boostExpire": {
          "type": "integer"
        },
        "enable": {
          "type": "boolean"
        },
        "expire": {
          "type": "integer"
        },
        "mini": {
          "type": "integer"
        },
        "plus": {
          "type": "integer"
        },
        "tier": {
          "$ref": "#/definitions/TierSummary"
        }
      },
      "required": [
        "base",
        "boost",
        "boostExpire",
        "enable",
        "expire",
        "mini",
        "plus",
        "tier"
      ],
      "type": "object"
    },
    "GRNode": {
      "properties": {
        "appliance": {
          "description": "Appliance(true), Group(false)",
          "type": "boolean"
        },
        "groupId": {
          "description": "ID of the group belonged to",
          "type": "string"
        },
        "id": {
          "description": "ID, assigned by Orchestrator like 1.GrNode",
          "type": "string"
        },
        "latitude": {
          "description": "Latitude",
          "format": "double",
          "type": "number"
        },
        "longitude": {
          "description": "Longitude",
          "format": "double",
          "type": "number"
        },
        "sourceId": {
          "description": "Source ID: appliance(neId like 0.NE), group(group ID like 10.Network)",
          "type": "string"
        },
        "wx": {
          "description": "Coordinates X in map window",
          "type": "integer"
        },
        "wy": {
          "description": "Coordinates Y in map window",
          "type": "integer"
        }
      },
      "required": [
        "appliance",
        "groupId",
        "latitude",
        "longitude",
        "sourceId",
        "wx",
        "wy"
      ]
    },
    "GRNodeUpdatePostBody": {
      "properties": {
        "latitude": {
          "description": "Latitude",
          "format": "double",
          "type": "number"
        },
        "longitude": {
          "description": "Longitude",
          "format": "double",
          "type": "number"
        },
        "wx": {
          "description": "Coordinates X in map window",
          "type": "integer"
        },
        "wy": {
          "description": "Coordinates Y in map window",
          "type": "integer"
        }
      },
      "required": [
        "latitude",
        "longitude",
        "wx",
        "wy"
      ]
    },
    "GeoLocationObject": {
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "countryCode": {
          "type": "string"
        },
        "ip": {
          "description": "IP address for which geo location is calculated",
          "type": "integer"
        },
        "isp": {
          "type": "string"
        },
        "latitude": {
          "type": "number"
        },
        "longitude": {
          "type": "number"
        },
        "org": {
          "type": "string"
        },
        "postalCode": {
          "type": "integer"
        },
        "rangeIpEnd": {
          "description": "End IP of subnet that the geolocated IP falls under",
          "type": "integer"
        },
        "rangeIpStart": {
          "description": "Start IP of subnet that the geolocated IP falls under",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "GeoLocationResponse": {
      "description": "Collection of GeoLocationObject indexed by ip address value",
      "properties": {
        "<ip>": {
          "$ref": "#/definitions/GeoLocationObject"
        }
      },
      "type": "object"
    },
    "Geometry": {
      "properties": {
        "bounds": {
          "$ref": "#/definitions/GeometryBounds",
          "description": "The bounds of the location"
        },
        "location": {
          "$ref": "#/definitions/GeometryLatLng",
          "description": "The latitude/longitude location of the address"
        },
        "location_type": {
          "description": "A string describing how accurate the location is",
          "type": "string"
        },
        "viewport": {
          "$ref": "#/definitions/GeometryBounds",
          "description": "The viewport of the map location found"
        }
      },
      "type": "object"
    },
    "GeometryBounds": {
      "properties": {
        "northeast": {
          "$ref": "#/definitions/GeometryLatLng",
          "description": "The northeast corner of the bounding box"
        },
        "southwest": {
          "$ref": "#/definitions/GeometryLatLng",
          "description": "The northeast corner of the bounding box"
        }
      },
      "type": "object"
    },
    "GeometryLatLng": {
      "properties": {
        "lat": {
          "description": "The latitude value of the coordinate",
          "type": "number"
        },
        "lng": {
          "description": "The longitude value of the coordinate",
          "type": "number"
        }
      },
      "type": "object"
    },
    "GetResponse": {
      "properties": {
        "moduleInfo": {
          "$ref": "#/definitions/ModuleInfo",
          "description": "Need description here."
        },
        "peers": {
          "description": "Each element of this array is an object describing one peer's detail information, and the minimum number of the elements is 0",
          "items": {
            "$ref": "#/definitions/OnePeer"
          },
          "type": "array"
        },
        "subnets": {
          "$ref": "#/definitions/Subnets",
          "description": "Subnets' statistic information."
        }
      },
      "required": [
        "moduleInfo",
        "peers",
        "subnets"
      ],
      "type": "object"
    },
    "GmsAlarm": {
      "properties": {
        "acknowledged": {
          "type": "boolean"
        },
        "clearable": {
          "type": "boolean"
        },
        "clearedTimeInMills": {
          "type": "integer"
        },
        "closed": {
          "type": "boolean"
        },
        "description": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "occurrenceCount": {
          "type": "integer"
        },
        "recommendedAction": {
          "type": "string"
        },
        "serviceAffect": {
          "type": "boolean"
        },
        "severity": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "timeOccurredInMills": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "typeId": {
          "type": "integer"
        }
      },
      "required": [
        "acknowledged",
        "clearable",
        "clearedTimeInMills",
        "closed",
        "description",
        "id",
        "name",
        "occurrenceCount",
        "recommendedAction",
        "serviceAffect",
        "severity",
        "source",
        "timeOccurredInMills",
        "type",
        "typeId"
      ],
      "type": "object"
    },
    "GmsAlarmAcknowledgementBody": {
      "properties": {
        "acknowledge": {
          "description": "Ack (true), Un-Ack(false)",
          "type": "boolean"
        },
        "ids": {
          "description": "Orchestrator alarm IDs",
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "acknowledge",
        "ids"
      ],
      "type": "object"
    },
    "GmsAlarmClearanceBody": {
      "properties": {
        "ids": {
          "description": "Orchestrator alarm IDs",
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "ids"
      ],
      "type": "object"
    },
    "GmsBackupConfigObject": {
      "properties": {
        "directory": {
          "description": "The directory of the remote server",
          "type": "string"
        },
        "hostname": {
          "description": "The hostname of the remote server",
          "type": "string"
        },
        "maxBackups": {
          "default": 10,
          "description": "The number of the backup files in the directory",
          "type": "integer"
        },
        "password": {
          "description": "The password of the remote server",
          "type": "string"
        },
        "port": {
          "default": 21,
          "description": "The port of the remote server",
          "type": "integer"
        },
        "protocol": {
          "default": 2,
          "description": "The protocol of the remote server",
          "type": "integer"
        },
        "username": {
          "description": "The username of the remote server",
          "type": "string"
        }
      },
      "required": [
        "directory",
        "hostname",
        "maxBackups",
        "password",
        "port",
        "protocol",
        "username"
      ],
      "type": "object"
    },
    "GmsBackupResponseObject": {
      "properties": {
        "message": {
          "description": "Return schedule orchestrator backup successful message.",
          "type": "string"
        }
      },
      "required": [
        "message"
      ],
      "type": "object"
    },
    "GmsBriefInfo": {
      "properties": {
        "hostName": {
          "description": "host name of the orchestrator server",
          "type": "string"
        },
        "ip": {
          "description": "IP address of the GSM",
          "type": "string"
        },
        "time": {
          "description": "current time",
          "type": "string"
        },
        "uptime": {
          "description": "Duration since the server is up",
          "type": "string"
        },
        "version": {
          "description": "Current GSM version",
          "type": "string"
        }
      }
    },
    "GmsConfigCreation": {
      "properties": {
        "configData": {
          "description": "could be any type of json object/array",
          "type": "object"
        },
        "resourceBase": {
          "description": "name of the main resource",
          "type": "string"
        },
        "resourceKey": {
          "description": "name of the sub-resource. this is optional",
          "type": "string"
        }
      },
      "required": [
        "configData",
        "resourceBase"
      ],
      "type": "object"
    },
    "GmsConfigItem": {
      "properties": {
        "configData": {
          "description": "could be any type of json object/array",
          "type": "object"
        },
        "resourceBase": {
          "description": "name of the main resource",
          "type": "string"
        },
        "resourceKey": {
          "description": "name of the sub-resource. this is optional, so if the sub-resource is not available, it will be null",
          "type": "string"
        },
        "version": {
          "description": "current version of the Orchestrator config resource, gets incremented with updates",
          "type": "integer"
        }
      },
      "required": [
        "configData",
        "resourceBase",
        "resourceKey",
        "version"
      ],
      "type": "object"
    },
    "GmsConfigUpdate": {
      "properties": {
        "configData": {
          "description": "could be any type of json object/array",
          "type": "object"
        },
        "version": {
          "description": "version of the orchestrator config resource, gets incremented with updates",
          "type": "integer"
        }
      },
      "required": [
        "configData",
        "version"
      ],
      "type": "object"
    },
    "GmsPingInfo": {
      "properties": {
        "hostName": {
          "description": "host name of the orchestrator server",
          "type": "string"
        },
        "message": {
          "description": "status message of Server",
          "type": "string"
        },
        "time": {
          "description": "time",
          "type": "integer"
        },
        "timeStr": {
          "description": "timeStr",
          "type": "string"
        },
        "uptime": {
          "description": "Duration since the server is up",
          "type": "string"
        },
        "version": {
          "description": "Current GSM version",
          "type": "string"
        }
      }
    },
    "GmsRemoteAuthGet": {
      "properties": {
        "authOrder": {
          "description": "Need description here",
          "type": "integer"
        },
        "authOrderStr": {
          "description": "Need description here",
          "type": "string"
        },
        "netReadPrivilege": {
          "description": "Need description here",
          "type": "integer"
        },
        "netReadWritePrivilege": {
          "description": "Need description here",
          "type": "integer"
        },
        "primaryHost": {
          "description": "Need description here",
          "type": "string"
        },
        "primaryPort": {
          "type": "string",
          "description": "Need description here"
        },
        "primaryRadiusKey": {
          "description": "Need description here",
          "type": "string"
        },
        "protocol": {
          "description": "Need description here",
          "type": "integer"
        },
        "protocolStr": {
          "description": "Need description here",
          "type": "string"
        },
        "radiusType": {
          "description": "Need description here",
          "type": "string"
        },
        "secondaryHost": {
          "type": "string",
          "description": "Need description here"
        },
        "secondaryPort": {
          "type": "string",
          "description": "Need description here"
        },
        "secondaryRadiusKey": {
          "type": "string",
          "description": "Need description here"
        },
        "type": {
          "description": "Need description here",
          "type": "string"
        }
      },
      "required": [
        "authOrder",
        "authOrderStr",
        "netReadPrivilege",
        "netReadWritePrivilege",
        "primaryHost",
        "primaryPort",
        "primaryRadiusKey",
        "protocol",
        "protocolStr",
        "radiusType",
        "secondaryHost",
        "secondaryPort",
        "secondaryRadiusKey",
        "type"
      ],
      "type": "object"
    },
    "GmsRemoteAuthPost": {
      "properties": {
        "authOrderStr": {
          "description": "Need description here",
          "type": "string"
        },
        "authenticationOrder": {
          "description": "Consists of the following items : [\"Local first\", \"Remote first\"]",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "hasChanges": {
          "description": "Need description here",
          "type": "boolean"
        },
        "hasError": {
          "description": "Need description here",
          "type": "boolean"
        },
        "netReadPrivilege": {
          "description": "Need description here",
          "enum": [
            0,
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15
          ],
          "type": "integer"
        },
        "netReadWritePrivilege": {
          "description": "Need description here",
          "enum": [
            0,
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15
          ],
          "type": "integer"
        },
        "primaryHost": {
          "description": "Need description here",
          "type": "string"
        },
        "primaryPort": {
          "description": "Need description here",
          "type": "string"
        },
        "primaryRadiusKey": {
          "description": "Need description here",
          "type": "string"
        },
        "privileges": {
          "description": "Consists of the following items : [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "protocolStr": {
          "description": "Need description here",
          "enum": [
            "Local"
          ],
          "type": "string"
        },
        "radiusAuth": {
          "description": "Consists of the following items : [\"CHAP\",\"PAP\",\"MSCHAP\",\"MSCHAPv2\",\"EAP-MSCHAPv2\"]",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "radiusType": {
          "description": "Need description here",
          "type": "string"
        },
        "secondaryHost": {
          "description": "Need description here",
          "type": "string"
        },
        "secondaryPort": {
          "description": "Need description here",
          "type": "string"
        },
        "secondaryRadiusKey": {
          "description": "Need description here",
          "type": "string"
        },
        "tacascAuth": {
          "description": "Consists of the following items : [\"CHAP\",\"PAP\",\"MSCHAP\"]",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "type": {
          "description": "Need description here",
          "type": "string"
        }
      },
      "required": [
        "authOrderStr",
        "authenticationOrder",
        "hasChanges",
        "hasError",
        "netReadPrivilege",
        "netReadWritePrivilege",
        "primaryHost",
        "primaryPort",
        "primaryRadiusKey",
        "privileges",
        "protocolStr",
        "radiusAuth",
        "radiusType",
        "secondaryHost",
        "secondaryPort",
        "secondaryRadiusKey",
        "tacascAuth",
        "type"
      ],
      "type": "object"
    },
    "GmsServerInfo": {
      "properties": {
        "host": {
          "description": "orchestrator host IP number",
          "type": "string"
        },
        "domain": {
          "description": "Orchestrator domain name",
          "type": "string"
        },
        "freeDiskSpace": {
          "description": "Remaining disk Memory",
          "type": "string"
        },
        "hostName": {
          "description": "host name of the orchestrator server",
          "type": "string"
        },
        "hwRev": {
          "description": "hwRev",
          "type": "string"
        },
        "inContainerMode": {
          "description": "container mode",
          "type": "boolean"
        },
        "loadAverage": {
          "description": "loadAverage",
          "type": "integer"
        },
        "memSize": {
          "description": "Total memory of the server ",
          "type": "integer"
        },
        "model": {
          "description": "Orchestrator server model number ",
          "type": "string"
        },
        "numActiveUsers": {
          "description": "number of active user accessing the Orchestrator ",
          "type": "integer"
        },
        "numCpus": {
          "description": "Number of CPUs",
          "type": "integer"
        },
        "osRev": {
          "description": "Operating System Version",
          "type": "string"
        },
        "release": {
          "description": "orchestrator release version",
          "type": "string"
        },
        "role": {
          "description": "role",
          "type": "integer"
        },
        "serialNumber": {
          "description": "orchestrator server serialNumber",
          "type": "string"
        },
        "time": {
          "description": "time",
          "type": "integer"
        },
        "uptime": {
          "description": "uptime",
          "type": "string"
        },
        "usedDiskSpace": {
          "description": "Total disk Memory used so far",
          "type": "string"
        }
      }
    },
    "Group": {
      "properties": {
        "backgroundImage": {
          "description": "image filename",
          "type": "string"
        },
        "id": {
          "description": "Group primary key, like '10.Network'",
          "type": "string"
        },
        "name": {
          "description": "Unique name given to a group",
          "type": "string"
        },
        "parentId": {
          "description": "Primary key of parent group. If this group has no parent, the value will be null",
          "type": "string"
        },
        "subType": {
          "description": "Network sub type: Root Group(0), Auto discovered group(2), User defined group(3)",
          "type": "integer"
        }
      },
      "required": [
        "backgroundImage",
        "id",
        "name",
        "parentId",
        "subType"
      ]
    },
    "GroupIdObject": {
      "properties": {
        "id": {
          "description": "The Orchestrator Group ID to add the appliance to.",
          "type": "string"
        },
        "latitude": {
          "description": "Optional - the latitude of the coordinates of the appliance's address",
          "type": "number"
        },
        "longitude": {
          "description": "Optional - the longitude of the coordinates of the appliance's address",
          "type": "number"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "GroupNewPostBody": {
      "properties": {
        "backgroundImage": {
          "description": "image filename",
          "type": "string"
        },
        "name": {
          "description": "Unique group name",
          "type": "string"
        },
        "parentId": {
          "description": "Primary key of parent group. Like '10.Network'",
          "type": "string"
        }
      },
      "required": [
        "name",
        "parentId"
      ]
    },
    "GroupUpdatePostBody": {
      "properties": {
        "backgroundImage": {
          "description": "Optional image filename",
          "type": "string"
        },
        "id": {
          "description": "Primarky key. Like '10.Network'",
          "type": "string"
        },
        "name": {
          "description": "Unique group name",
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ]
    },
    "HaAppliance": {
      "description": "Properties of appliances which are paired in a HA configuration",
      "properties": {
        "nePk": {
          "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
          "type": "string"
        }
      },
      "required": [
        "nePk"
      ],
      "type": "object"
    },
    "HaGroup": {
      "properties": {
        "appliances": {
          "description": "Appliance pair",
          "items": {
            "$ref": "#/definitions/HaAppliance"
          },
          "type": "array"
        },
        "mask": {
          "description": "Mask value to be assigned to internal HA VLAN interfaces. This value will be used to carve out smaller ip blocks from above larger subnet, default is 30",
          "type": "number"
        },
        "subnet": {
          "description": "Subnet to be used to allocate IPs to internal HA VLAN interfaces, default is 169.254.1.0/24.",
          "type": "string"
        },
        "vlanStart": {
          "description": "Starting VLAN id value to be assigned to internal HA VLAN interfaces. Will increment by 1 for multiple VLAN interfaces, default start value is 100",
          "type": "number"
        }
      },
      "required": [
        "appliances",
        "mask",
        "subnet",
        "vlanStart"
      ],
      "type": "object"
    },
    "HaGroups": {
      "properties": {
        "<indexNumber>": {
          "$ref": "#/definitions/HaGroup"
        }
      },
      "type": "object"
    },
    "HealthSummaryGetPostBody": {
      "properties": {
        "applianceIds": {
          "description": "Contains appliance IDs",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "from": {
          "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the starting time boundary of data time range",
          "type": "integer"
        },
        "overlayId": {
          "description": "Overlay id. -1 == all overlays",
          "type": "integer"
        },
        "to": {
          "description": "Long(Signed 64 bits) value of seconds since EPOCH time indicating the ending time boundary of data time range",
          "type": "integer"
        },
        "verticals": {
          "description": "Contains vertical IDs",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "applianceIds",
        "from",
        "overlayId",
        "to",
        "verticals"
      ],
      "type": "object"
    },
    "HealthSummaryResp": {
      "properties": {
        "appliance-id": {
          "items": {
            "$ref": "#/definitions/appliance-Item"
          },
          "type": "array"
        }
      },
      "required": [
        "appliance-id"
      ],
      "type": "object"
    },
    "HistoricalJobItem": {
      "description": "The detail historical job information for one item.",
      "properties": {
        "assocId": {
          "description": "Every job is related to one scheduled job identified using this primary key",
          "type": "integer"
        },
        "config": {
          "description": "Job configuration",
          "type": "string"
        },
        "description": {
          "description": "Job description",
          "type": "string"
        },
        "endTime": {
          "description": "Time when job ended",
          "type": "integer"
        },
        "id": {
          "description": "Every job is uniquely identified using this primary key",
          "type": "integer"
        },
        "jobCategory": {
          "description": "Identifies the type of job. 1=TestJob, 2=Orchestrator Report, 3=Orchestrator Backup, 4 - Appliance Reboot/Shutdown, 5 = Appliance QOS Scheduling",
          "type": "string"
        },
        "jobType": {
          "description": "1=User defined job and 2=System job",
          "type": "integer"
        },
        "startTime": {
          "description": "Time when job started",
          "type": "integer"
        },
        "status": {
          "description": "1-Started, 2-Success, 3 - Failed",
          "type": "integer"
        },
        "statusText": {
          "description": "Job Status summary",
          "type": "integer"
        },
        "targetAppliance": {
          "$ref": "#/definitions/targetAppliance",
          "description": "The target appliances related to this job"
        }
      },
      "required": [
        "assocId",
        "config",
        "description",
        "endTime",
        "id",
        "jobCategory",
        "jobType",
        "startTime",
        "status",
        "statusText",
        "targetAppliance"
      ],
      "type": "object"
    },
    "HostName": {
      "properties": {
        "gms_hostname": {
          "description": "HostName of Orchestrator",
          "type": "string"
        }
      }
    },
    "HubInternetPolicies": {
      "properties": {
        "<nePk>": {
          "$ref": "#/definitions/HubInternetPolicy"
        }
      }
    },
    "HubInternetPolicy": {
      "properties": {
        "internetPolicy": {
          "$ref": "#/definitions/InternetPolicy",
          "description": "Internet policy associated with this hub in the overlay"
        }
      }
    },
    "IkelessSeedStatusForAppliance": {
      "properties": {
        "activationStatus": {
          "description": "If the key is active",
          "type": "boolean"
        },
        "arbitrary": {
          "description": "arbitrary id for key for debugging",
          "type": "integer"
        },
        "hasCurrentSeed": {
          "description": "If the appliance has the current key",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "IkelessSeedStatusGetAll": {
      "properties": {
        "<nePk>": {
          "$ref": "#/definitions/IkelessSeedStatusForAppliance"
        }
      },
      "type": "object"
    },
    "ImageItem": {
      "properties": {
        "NxImage.buildDate": {
          "description": "image build date time",
          "format": "yyyy-MM-dd HH:mm:ss",
          "type": "string"
        },
        "NxImage.fileName": {
          "description": "image filename",
          "type": "string"
        },
        "NxImage.version": {
          "description": "image version",
          "type": "string"
        }
      },
      "required": [
        "NxImage.buildDate",
        "NxImage.fileName",
        "NxImage.version"
      ],
      "type": "object"
    },
    "InstBNameData": {
      "properties": {
        "<a number from 1 to 1000>": {
          "$ref": "#/definitions/InstBNameObject"
        }
      },
      "required": [
        "<a number from 1 to 1000>"
      ],
      "type": "object"
    },
    "InstBNameObject": {
      "properties": {
        "descr": {
          "description": "Need description here",
          "type": "string"
        },
        "name": {
          "description": "Need description here",
          "type": "string"
        },
        "self": {
          "description": "The value should be a number and equal with its parent node key(a number from 1 to 1000)",
          "type": "integer"
        }
      },
      "required": [
        "descr",
        "name",
        "self"
      ],
      "type": "object"
    },
    "Interface": {
      "properties": {
        "adminStatus": {
          "description": "To set admin up or down",
          "type": "boolean"
        },
        "area": {
          "description": "area of the ospf interface in doted decimal format",
          "type": "string"
        },
        "authKey": {
          "description": "key for plain text authentication. Should only use either of plain text or md5 authentication ",
          "type": "string"
        },
        "authType": {
          "description": "Type of the authentication. Allowed values are 'Text ot 'MD5'",
          "type": "string"
        },
        "comment": {
          "description": "comments",
          "type": "string"
        },
        "cost": {
          "description": "cost of the ospf interface",
          "type": "integer"
        },
        "deadInterval": {
          "description": "To set the interval(in Seconds) during which at least one hello packet must be received from a neighbor before the router declares that neighbor as down",
          "type": "integer"
        },
        "helloInterval": {
          "description": "To specify the interval(in Seconds) between hello packets that OSPF sends on the interface.",
          "type": "integer"
        },
        "md5Key": {
          "description": "key for md5 authentication. Should only use either of plain text or md5 authentication ",
          "type": "integer"
        },
        "md5Password": {
          "description": "password for md5 authentication. Should only use either of plain text or md5 authentication ",
          "type": "string"
        },
        "priority": {
          "description": "priority of the ospf interface",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "InterfaceAggregateStats": {
      "properties": {
        "HOSTNAME": {
          "type": "string"
        },
        "INTERFACE": {
          "type": "string"
        },
        "IP": {
          "type": "string"
        },
        "MAX_FWDROPS_RX_BYTES_MAX": {
          "type": "integer"
        },
        "MAX_FWDROPS_RX_PKTS_MAX": {
          "type": "integer"
        },
        "MAX_FWDROPS_TX_BYTES_MAX": {
          "type": "integer"
        },
        "MAX_FWDROPS_TX_PKTS_MAX": {
          "type": "integer"
        },
        "MAX_OHEAD_RX_BYTES_MAX": {
          "type": "integer"
        },
        "MAX_OHEAD_RX_PKTS_MAX": {
          "type": "integer"
        },
        "MAX_OHEAD_TX_BYTES_MAX": {
          "type": "integer"
        },
        "MAX_OHEAD_TX_PKTS_MAX": {
          "type": "integer"
        },
        "MAX_RX_BYTES_MAX": {
          "type": "integer"
        },
        "MAX_RX_PKTS_MAX": {
          "type": "integer"
        },
        "MAX_TIMESTAMP": {
          "type": "integer"
        },
        "MAX_TX_BYTES_MAX": {
          "type": "integer"
        },
        "MAX_TX_PKTS_MAX": {
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "type": "integer"
        },
        "SUM_FWDROPS_RX_BYTES": {
          "type": "integer"
        },
        "SUM_FWDROPS_RX_PKTS": {
          "type": "integer"
        },
        "SUM_FWDROPS_TX_BYTES": {
          "type": "integer"
        },
        "SUM_FWDROPS_TX_PKTS": {
          "type": "integer"
        },
        "SUM_OHEAD_RX_BYTES": {
          "type": "integer"
        },
        "SUM_OHEAD_RX_PKTS": {
          "type": "integer"
        },
        "SUM_OHEAD_TX_BYTES": {
          "type": "integer"
        },
        "SUM_OHEAD_TX_PKTS": {
          "type": "integer"
        },
        "SUM_RX_BYTES": {
          "type": "integer"
        },
        "SUM_RX_PKTS": {
          "type": "integer"
        },
        "SUM_TX_BYTES": {
          "type": "integer"
        },
        "SUM_TX_PKTS": {
          "type": "integer"
        },
        "TRAFFIC_TYPE": {
          "type": "integer"
        },
        "nePk": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "InterfaceLabel": {
      "properties": {
        "active": {
          "description": "Whether or not the label is 'active'/deleted",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the label",
          "type": "string"
        },
        "topology": {
          "description": "Allowed topology for building tunnels",
          "type": "integer"
        }
      }
    },
    "InterfaceLabels": {
      "properties": {
        "lan": {
          "$ref": "#/definitions/SampleLabelSet",
          "description": "A map of lan labels. The key of the label is the label id  "
        },
        "wan": {
          "$ref": "#/definitions/SampleLabelSet",
          "description": "A map of wan labels. The key of the label is the label id  "
        }
      }
    },
    "InterfaceOverlayAggregateStats": {
      "properties": {
        "INTERFACE": {
          "type": "string"
        },
        "ISWANSIDE": {
          "type": "boolean"
        },
        "LABELID": {
          "type": "integer"
        },
        "LABELNAME": {
          "type": "string"
        },
        "MAX_OHEAD_RX_BYTES_MAX": {
          "type": "integer"
        },
        "MAX_OHEAD_RX_PKTS_MAX": {
          "type": "integer"
        },
        "MAX_OHEAD_TX_BYTES_MAX": {
          "type": "integer"
        },
        "MAX_OHEAD_TX_PKTS_MAX": {
          "type": "integer"
        },
        "MAX_RX_BYTES_MAX": {
          "type": "integer"
        },
        "MAX_RX_PKTS_MAX": {
          "type": "integer"
        },
        "MAX_TIMESTAMP": {
          "type": "integer"
        },
        "MAX_TX_BYTES_MAX": {
          "type": "integer"
        },
        "MAX_TX_PKTS_MAX": {
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "type": "integer"
        },
        "OVERLAY_ID": {
          "type": "integer"
        },
        "SUM_OHEAD_RX_BYTES": {
          "type": "integer"
        },
        "SUM_OHEAD_RX_PKTS": {
          "type": "integer"
        },
        "SUM_OHEAD_TX_BYTES": {
          "type": "integer"
        },
        "SUM_OHEAD_TX_PKTS": {
          "type": "integer"
        },
        "SUM_RX_BYTES": {
          "type": "integer"
        },
        "SUM_RX_PKTS": {
          "type": "integer"
        },
        "SUM_TX_BYTES": {
          "type": "integer"
        },
        "SUM_TX_PKTS": {
          "type": "integer"
        },
        "TUNNEL_TYPE": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "InterfaceOverlayTimeSeriesStats": {
      "properties": {
        "INTERFACE": {
          "description": "Interface name",
          "type": "string"
        },
        "ISWANSIDE": {
          "description": "Boolean value to get wan/lan data",
          "type": "boolean"
        },
        "LABELID": {
          "description": "Label internal id",
          "type": "integer"
        },
        "LABELNAME": {
          "description": "Label name",
          "type": "string"
        },
        "MAX_BW_RX": {
          "description": "Max received bandwidth",
          "type": "integer"
        },
        "MAX_BW_TX": {
          "description": "Max transmit bandwidth",
          "type": "integer"
        },
        "OHEAD_RX_BYTES": {
          "description": "Received overhead bandwidth",
          "type": "integer"
        },
        "OHEAD_RX_BYTES_MAX": {
          "description": "Max received overhead bandwidth",
          "type": "integer"
        },
        "OHEAD_RX_PKTS": {
          "description": "Received overhead packets",
          "type": "integer"
        },
        "OHEAD_RX_PKTS_MAX": {
          "description": "Max received overhead packets",
          "type": "integer"
        },
        "OHEAD_TX_BYTES": {
          "description": "Transmitted overhead bandwidth",
          "type": "integer"
        },
        "OHEAD_TX_BYTES_MAX": {
          "description": "Max Transmit overhead bandwidth",
          "type": "integer"
        },
        "OHEAD_TX_PKTS": {
          "description": "Transmit overhead packets",
          "type": "integer"
        },
        "OHEAD_TX_PKTS_MAX": {
          "description": "Max transmit overhead packets",
          "type": "integer"
        },
        "OVERLAY_ID": {
          "description": "Overlay id",
          "type": "integer"
        },
        "RX_BYTES": {
          "description": "Number of bytes received",
          "type": "string"
        },
        "RX_BYTES_MAX": {
          "description": " Peak number of bytes received in one second",
          "type": "integer"
        },
        "RX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes received",
          "type": "integer"
        },
        "RX_PKTS": {
          "description": "Number of packets received",
          "type": "integer"
        },
        "RX_PKTS_MAX": {
          "description": "Peak number of packets received in one second",
          "type": "integer"
        },
        "RX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets received",
          "type": "integer"
        },
        "TIMESTAMP": {
          "description": "Timestamp in EPOCH time, all timestamp fields are in EPOCH time",
          "type": "integer"
        },
        "TUNNEL_TYPE": {
          "description": "Tunnel type like sliver-peak, non silver-peak, pass through",
          "type": "integer"
        },
        "TX_BYTES": {
          "description": "Number of bytes transmitted",
          "type": "integer"
        },
        "TX_BYTES_MAX": {
          "description": "Peak number of bytes transmitted in one second",
          "type": "integer"
        },
        "TX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes transmitted",
          "type": "integer"
        },
        "TX_PKTS": {
          "description": "Number of packets transmitted",
          "type": "integer"
        },
        "TX_PKTS_MAX": {
          "description": "Peak number of packets transmitted in one second",
          "type": "integer"
        },
        "TX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets transmitted",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "InterfacePropertiesObj": {
      "properties": {
        "behindNAT": {
          "description": "Whether this interface is connected to a NAT device",
          "type": "boolean"
        },
        "dhcp": {
          "description": "Whether DHCP is enabled on this interface",
          "type": "boolean"
        },
        "harden": {
          "description": "Whether this interface is hardened",
          "type": "boolean"
        },
        "inboundBandwidth": {
          "description": "Inbound Shaping kbps value, 0 if not configured",
          "type": "number"
        },
        "ipAddress": {
          "description": "Interface IP Address",
          "type": "string"
        },
        "ipv4": {
          "description": "Whether interface IP address is IP version 4",
          "type": "boolean"
        },
        "label": {
          "description": "Interface label id. Empty string if no label configured for this interface",
          "type": "string"
        },
        "lanSide": {
          "description": "Whether this interface has lanSide tag (applicable for inline router mode only)",
          "type": "boolean"
        },
        "mask": {
          "description": "Interface Subnet Mask",
          "type": "number"
        },
        "name": {
          "description": "Interface name",
          "type": "string"
        },
        "outboundBandwidth": {
          "description": "Outbound Shaping kbps value, 0 if not configured",
          "type": "number"
        },
        "parentInterfaceName": {
          "type": "string"
        },
        "publicIPv4": {
          "description": "Whether interface public IP addres is IP version 4",
          "type": "boolean"
        },
        "publicIpAddress": {
          "description": "Resolved Public IP Address of this interface. Empty string if nothing resolved",
          "type": "string"
        },
        "subInterface": {
          "description": "Sub interface id, 0 if not a sub interface",
          "type": "number"
        },
        "vlan": {
          "description": "VLAN id, 0 if not a VLAN",
          "type": "number"
        },
        "wanNextHop": {
          "description": "IP Address of WAN gateway. 0.0.0.0 if not configured",
          "type": "string"
        },
        "wanSide": {
          "description": "Whether this interface has wanSide tag (appliacable for inline router mode only)",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "InterfaceTimeSeriesStats": {
      "properties": {
        "fwdrops_rx_bytes": {
          "type": "integer"
        },
        "fwdrops_rx_bytes_max": {
          "type": "integer"
        },
        "fwdrops_rx_bytes_max_ts": {
          "type": "integer"
        },
        "fwdrops_rx_pkts": {
          "type": "integer"
        },
        "fwdrops_rx_pkts_max": {
          "type": "integer"
        },
        "fwdrops_rx_pkts_max_ts": {
          "type": "integer"
        },
        "fwdrops_tx_bytes": {
          "type": "integer"
        },
        "fwdrops_tx_bytes_max": {
          "type": "integer"
        },
        "fwdrops_tx_bytes_max_ts": {
          "type": "integer"
        },
        "fwdrops_tx_pkts": {
          "type": "integer"
        },
        "fwdrops_tx_pkts_max": {
          "type": "integer"
        },
        "fwdrops_tx_pkts_max_ts": {
          "type": "integer"
        },
        "interfaceName": {
          "type": "string"
        },
        "max_bw_rx": {
          "type": "integer"
        },
        "max_bw_tx": {
          "type": "integer"
        },
        "ohead_rx_bytes": {
          "type": "integer"
        },
        "ohead_rx_bytes_max": {
          "type": "integer"
        },
        "ohead_rx_bytes_max_ts": {
          "type": "integer"
        },
        "ohead_rx_pkts": {
          "type": "integer"
        },
        "ohead_rx_pkts_max": {
          "type": "integer"
        },
        "ohead_rx_pkts_max_ts": {
          "type": "integer"
        },
        "ohead_tx_bytes": {
          "type": "integer"
        },
        "ohead_tx_bytes_max": {
          "type": "integer"
        },
        "ohead_tx_bytes_max_ts": {
          "type": "integer"
        },
        "ohead_tx_pkts": {
          "type": "integer"
        },
        "ohead_tx_pkts_max": {
          "type": "integer"
        },
        "ohead_tx_pkts_max_ts": {
          "type": "integer"
        },
        "rx_bytes": {
          "type": "integer"
        },
        "rx_bytes_max": {
          "type": "integer"
        },
        "rx_bytes_max_ts": {
          "type": "integer"
        },
        "rx_pkts": {
          "type": "integer"
        },
        "rx_pkts_max": {
          "type": "integer"
        },
        "rx_pkts_max_ts": {
          "type": "integer"
        },
        "timestamp": {
          "type": "integer"
        },
        "trafficType": {
          "type": "integer"
        },
        "tx_bytes": {
          "type": "integer"
        },
        "tx_bytes_max": {
          "type": "integer"
        },
        "tx_bytes_max_ts": {
          "type": "integer"
        },
        "tx_pkts": {
          "type": "integer"
        },
        "tx_pkts_max": {
          "type": "integer"
        },
        "tx_pkts_max_ts": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "Interfaces": {
      "properties": {
        "<NameOfTheInterface1>": {
          "$ref": "#/definitions/Interface"
        },
        "NameOfTheInterface2>": {
          "$ref": "#/definitions/Interface"
        }
      },
      "type": "object"
    },
    "InternalDropsTimeSeriesStats": {
      "properties": {
        "data": {
          "$ref": "#/definitions/InternalDropsTimeSeriesStatsData"
        }
      }
    },
    "InternalDropsTimeSeriesStatsData": {
      "properties": {
        "<dropId>": {
          "items": {
            "$ref": "#/definitions/InternalDropsTimeSeriesStatsItems"
          },
          "type": "array"
        }
      }
    },
    "InternalDropsTimeSeriesStatsItems": {
      "description": "An array that contains the stats data of a certain timestamp.",
      "items": {},
      "type": "array"
    },
    "InternalSubnetsApiObject": {
      "properties": {
        "ipv4": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ipv6": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "nonDefaultRoutes": {
          "type": "boolean"
        }
      }
    },
    "InternetPolicy": {
      "properties": {
        "localBreakout": {
          "$ref": "#/definitions/LocalBreakout",
          "description": "Which pass through tunnels to use when breaking out locally"
        },
        "policyList": {
          "description": "An array of the different internet policies, in the order of priority. This could be one of the standard options, or a pass through tunnel name to send the internet traffic on. See API notes for more details.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "IpIntelTmpObj": {
      "properties": {
        "country": {
          "type": "string"
        },
        "country_code": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "ip_end": {
          "description": "Ending IPv4 address in 32-bit integer format",
          "format": "int64",
          "type": "integer"
        },
        "ip_start": {
          "description": "Starting IPv4 address in 32-bit integer format",
          "format": "int64",
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "org": {
          "type": "string"
        },
        "priority": {
          "type": "integer"
        },
        "saas_id": {
          "description": "Saas id",
          "type": "integer"
        },
        "search": {
          "type": "string"
        },
        "service_id": {
          "description": "Service id",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "IpWhitelistDrop": {
      "properties": {
        "ip": {
          "description": "The source IP address of the dropped request on this server",
          "type": "string"
        },
        "lastContact": {
          "description": "The epoch time in milliseconds when the request was dropped",
          "type": "integer"
        },
        "resource": {
          "description": "The dropped request's url path",
          "type": "string"
        },
        "xForwardedFor": {
          "description": "The X-Forwarded-For attribute of the dropped request on this server",
          "type": "string"
        }
      },
      "required": [
        "ip",
        "lastContact",
        "resource",
        "xForwardedFor"
      ]
    },
    "Ipv4": {
      "properties": {
        "<SubnetMask>": {
          "$ref": "#/definitions/One_subnet",
          "description": "A subnet mask, in the form of 192.168.2.0/24."
        }
      },
      "type": "object"
    },
    "JitterAggregateStatsBase": {
      "properties": {
        "AVG_JITTER": {
          "description": "Average jitter",
          "type": "integer"
        },
        "HOSTNAME": {
          "description": "Hostname of the appliance",
          "type": "string"
        },
        "IP": {
          "description": "Management IP address of appliance",
          "type": "string"
        },
        "MAX_JITTER": {
          "description": "Maximum jitter",
          "type": "integer"
        },
        "MAX_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual starting boundary of data time range",
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual ending boundary of data time range",
          "type": "integer"
        },
        "TUNNEL": {
          "description": "Name of the tunnel",
          "type": "string"
        },
        "nePk": {
          "description": "Internal ID of appliance",
          "type": "string"
        }
      },
      "required": [
        "AVG_JITTER",
        "HOSTNAME",
        "IP",
        "MAX_JITTER",
        "MAX_TIMESTAMP",
        "MIN_TIMESTAMP",
        "TUNNEL",
        "nePk"
      ]
    },
    "JitterPeriodSummary": {
      "properties": {
        "criticalMins": {
          "description": "Total critical loss minutes",
          "type": "integer"
        },
        "healthStatus": {
          "description": "health status",
          "enum": [
            "HEALTHY",
            "WARNING",
            "MINOR",
            "MAJOR",
            "CRITICAL"
          ],
          "type": "string"
        },
        "majorMins": {
          "description": "Total major loss minutes",
          "type": "integer"
        },
        "max": {
          "description": "Max jitter",
          "type": "integer"
        },
        "normalMins": {
          "description": "Total normal minutes",
          "type": "integer"
        },
        "tunnelId": {
          "description": "Tunnel on which latency occurred",
          "type": "string"
        }
      },
      "required": [
        "criticalMins",
        "healthStatus",
        "majorMins",
        "max",
        "normalMins",
        "tunnelId"
      ],
      "type": "object"
    },
    "KPTState": {
      "properties": {
        "cur_fec_enable": {
          "description": "Need description here",
          "type": "string"
        },
        "cur_fec_reset_intvl": {
          "description": "Need description here",
          "type": "string"
        }
      },
      "required": [
        "cur_fec_enable",
        "cur_fec_reset_intvl"
      ],
      "type": "object"
    },
    "LabelDetails": {
      "properties": {
        "ipOrDns": {
          "description": "IP or DNS",
          "type": "string"
        },
        "labelId": {
          "description": "label Id",
          "type": "integer"
        }
      },
      "required": [
        "ipOrDns",
        "labelId"
      ]
    },
    "LatencyPeriodSummary": {
      "properties": {
        "criticalMins": {
          "description": "Total critical loss minutes",
          "type": "integer"
        },
        "healthStatus": {
          "description": "health status",
          "enum": [
            "HEALTHY",
            "WARNING",
            "MINOR",
            "MAJOR",
            "CRITICAL"
          ],
          "type": "string"
        },
        "majorMins": {
          "description": "Total major loss minutes",
          "type": "integer"
        },
        "max": {
          "description": "Max latency",
          "type": "integer"
        },
        "normalMins": {
          "description": "Total normal minutes",
          "type": "integer"
        },
        "tunnelId": {
          "description": "Tunnel on which latency occurred",
          "type": "string"
        }
      },
      "required": [
        "criticalMins",
        "healthStatus",
        "majorMins",
        "max",
        "normalMins",
        "tunnelId"
      ],
      "type": "object"
    },
    "LicenseInfoByGet": {
      "properties": {
        "availableAppliances": {
          "description": "count of available appliances",
          "type": "integer"
        },
        "code": {
          "description": "If license key decryption fails it returns -1 otherwise it returns 0",
          "type": "integer"
        },
        "daysToExpiration": {
          "description": "Number of days left for the license to expire",
          "type": "integer"
        },
        "expirationDate": {
          "description": "date of expiry - epoch time in milliseconds",
          "type": "string"
        },
        "licenseKey": {
          "description": "license key",
          "type": "string"
        },
        "maxAppliances": {
          "description": "total Appliances allowed for this license",
          "type": "integer"
        },
        "message": {
          "description": "message",
          "type": "string"
        },
        "serialNumber": {
          "description": "serialNumber",
          "type": "string"
        },
        "usedAppliances": {
          "description": "count of used Appliances",
          "type": "integer"
        }
      },
      "required": [
        "availableAppliances",
        "code",
        "daysToExpiration",
        "expirationDate",
        "licenseKey",
        "maxAppliances",
        "message",
        "serialNumber",
        "usedAppliances"
      ]
    },
    "LicenseInfoByPost": {
      "properties": {
        "availableAppliances": {
          "description": "count of available appliances",
          "type": "integer"
        },
        "code": {
          "description": "If license key decryption fails it returns -1 otherwise it returns 0",
          "type": "integer"
        },
        "daysToExpiration": {
          "description": "Number of days left for the license to expire",
          "type": "integer"
        },
        "expirationDate": {
          "description": "date of expiry - epoch time in milliseconds",
          "type": "string"
        },
        "licenseKey": {
          "description": "license key",
          "type": "string"
        },
        "maxAppliances": {
          "description": "total Appliances allowed for this license",
          "type": "integer"
        },
        "message": {
          "description": "message",
          "type": "string"
        },
        "rc": {
          "description": "value is set to -1 if any exception occurs during license key validation ",
          "type": "integer"
        },
        "serialNumber": {
          "description": "serialNumber",
          "type": "string"
        },
        "usedAppliances": {
          "description": "count of used Appliances",
          "type": "integer"
        }
      },
      "required": [
        "availableAppliances",
        "code",
        "daysToExpiration",
        "expirationDate",
        "licenseKey",
        "maxAppliances",
        "message",
        "rc",
        "serialNumber",
        "usedAppliances"
      ]
    },
    "LicenseInfoByValidate": {
      "properties": {
        "code": {
          "description": "If license key decryption fails it returns -1 otherwise it returns 0",
          "type": "integer"
        },
        "licenseKey": {
          "description": "license key",
          "type": "string"
        },
        "maxAppliances": {
          "description": "total Appliances allowed for this license",
          "type": "integer"
        },
        "message": {
          "description": "message",
          "type": "string"
        },
        "serialNumber": {
          "description": "serialNumber",
          "type": "string"
        }
      },
      "required": [
        "code",
        "licenseKey",
        "maxAppliances",
        "message",
        "serialNumber"
      ]
    },
    "LicenseKey": {
      "properties": {
        "licenseKey": {
          "description": "new license key value",
          "type": "string"
        }
      },
      "required": [
        "licenseKey"
      ]
    },
    "LinkIntegrityStatus": {
      "properties": {
        "active": {
          "description": "Boolean value indicating whether link integrity test is running",
          "type": "boolean"
        },
        "result": {
          "description": "Console output of current link integrity test",
          "type": "string"
        }
      },
      "required": [
        "active",
        "result"
      ]
    },
    "LinkIntegrityTestAppliance": {
      "properties": {
        "bandwidth": {
          "description": "Data transfer rate to try to use from this appliance.",
          "type": "string"
        },
        "nePk": {
          "description": "Internal ID of the appliance. Use /appliance rest api to fetch the IDs. They look like 1.NE, 2.NE etc., ",
          "type": "string"
        },
        "path": {
          "description": "Path setups for link integrity test. Path could be either 'pass-through', 'pass-through-unshaped' or '{tunnelID}'. Fetch the tunnelIDs using tunnels rest apis. They typically look like tunnel_1, tunnel_2 etc.,",
          "type": "string"
        }
      },
      "required": [
        "bandwidth",
        "nePk",
        "path"
      ]
    },
    "LinkIntegrityTestRun": {
      "properties": {
        "DSCP": {
          "description": "DSCP setup for link integrity test. If you don't want to specify a DSCP value, put 'any'.",
          "type": "string"
        },
        "appA": {
          "$ref": "#/definitions/LinkIntegrityTestAppliance"
        },
        "appB": {
          "$ref": "#/definitions/LinkIntegrityTestAppliance"
        },
        "duration": {
          "description": "Duration of the run for each side. Unit is second.",
          "type": "string"
        },
        "testProgram": {
          "description": "Test program desired for link integrity test. Currently we support 'iperf' and 'tcpperf'.",
          "type": "string"
        }
      },
      "required": [
        "DSCP",
        "duration",
        "testProgram"
      ]
    },
    "LinkIntegrityTestTunnelEndPoint": {
      "properties": {
        "localIP": {
          "description": "Tunnel local IP",
          "type": "string"
        },
        "mgmtIP": {
          "description": "Management IP of appliance of this tunnel.",
          "type": "string"
        },
        "name": {
          "description": "Tunnel name",
          "type": "string"
        },
        "remoteIP": {
          "description": "Tunnel remote IP",
          "type": "string"
        }
      },
      "required": [
        "localIP",
        "mgmtIP",
        "name",
        "remoteIP"
      ]
    },
    "LocalBreakout": {
      "properties": {
        "backup": {
          "description": "The backup WAN interface label IDs to be used to break internet traffic out locally (The traffic will be sent out on the passthrough tunnel for that label id for each overlay)",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "primary": {
          "description": "An array of the WAN interface label IDs to be used to break internet traffic out locally (The traffic will be sent out on the passthrough tunnel for that label id for each overlay)",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "Location": {
      "properties": {
        "address": {
          "description": "The first address line of the location address.",
          "type": "string"
        },
        "address2": {
          "description": "The second address line of the location address.",
          "type": "string"
        },
        "city": {
          "description": "The name of the city of the location",
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "state": {
          "description": "The state abbreviation if the location is in the United States",
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        }
      }
    },
    "LocationObject": {
      "properties": {
        "address_components": {
          "items": {
            "$ref": "#/definitions/AddressComponent"
          },
          "type": "array"
        },
        "formatted_address": {
          "description": "The formatted address string",
          "type": "string"
        },
        "geometry": {
          "$ref": "#/definitions/Geometry",
          "description": "Detailed information about the latitude/longitude of the address"
        },
        "place_id": {
          "type": "string"
        },
        "types": {
          "description": "The type of address found",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "LocationResult": {
      "items": {
        "$ref": "#/definitions/LocationObject"
      },
      "type": "array"
    },
    "LocationSecuritySetting": {
      "properties": {
        "authRequired": {
          "type": "boolean"
        },
        "ofwEnabled": {
          "type": "boolean"
        },
        "sslScanEnabled": {
          "type": "boolean"
        },
        "xffForwardEnabled": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "LoggingSettings": {
      "properties": {
        "config": {
          "$ref": "#/definitions/ConfigObj"
        },
        "remote": {
          "$ref": "#/definitions/RemoteObj"
        }
      },
      "required": [
        "config",
        "remote"
      ],
      "type": "object"
    },
    "Login": {
      "properties": {
        "password": {
          "description": "Password",
          "type": "string"
        },
        "token": {
          "description": "2-factor code, it is optional if you are not using 2-factor for the user",
          "type": "string"
        },
        "user": {
          "description": "User id",
          "type": "string"
        }
      },
      "required": [
        "password",
        "user"
      ]
    },
    "LoginStatus": {
      "properties": {
        "isLoggedIn": {
          "description": "True if the current HTTP session is authenticated",
          "type": "string"
        },
        "user": {
          "description": "Current user for the HTTP session",
          "type": "string"
        }
      },
      "required": [
        "isLoggedIn",
        "user"
      ]
    },
    "LoginToken": {
      "properties": {
        "password": {
          "description": "Password",
          "type": "string"
        },
        "user": {
          "description": "User id",
          "type": "string"
        }
      },
      "required": [
        "password",
        "user"
      ]
    },
    "LossPeriodSummary": {
      "properties": {
        "criticalMins": {
          "description": "Total critical loss minutes",
          "type": "integer"
        },
        "healthStatus": {
          "description": "health status",
          "enum": [
            "HEALTHY",
            "WARNING",
            "MINOR",
            "MAJOR",
            "CRITICAL"
          ],
          "type": "string"
        },
        "majorMins": {
          "description": "Total major loss minutes",
          "type": "integer"
        },
        "maxLossPercentage": {
          "description": "Max loss percentage",
          "format": "double",
          "type": "number"
        },
        "normalMins": {
          "description": "Total normal minutes",
          "type": "integer"
        },
        "tunnelId": {
          "description": "Tunnel on which loss occurred",
          "type": "string"
        }
      },
      "required": [
        "criticalMins",
        "healthStatus",
        "majorMins",
        "maxLossPercentage",
        "normalMins",
        "tunnelId"
      ],
      "type": "object"
    },
    "MaintenanceModeData": {
      "properties": {
        "pauseOrchestration": {
          "description": "NePk list whose orchestrations are or would be paused",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "suppressAlarm": {
          "description": "NePk list whose alarms are or would be disabled",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "pauseOrchestration",
        "suppressAlarm"
      ]
    },
    "MaintenanceModePostBody": {
      "properties": {
        "action": {
          "description": "Take 'add' or 'remove' as values, which means add appliances identified by nePk list into pause orchestration and/or suppress alarm lists, or remove them from the lists",
          "type": "string"
        },
        "data": {
          "$ref": "#/definitions/MaintenanceModeData",
          "description": "Pause Orchestration NePk list and Suppress Alarm list"
        }
      },
      "required": [
        "action",
        "data"
      ]
    },
    "MapEntryObject": {
      "properties": {
        "action": {
          "$ref": "#/definitions/ActionObject"
        },
        "comment": {
          "description": "comment of the map entry",
          "type": "string"
        },
        "matchCriteria": {
          "$ref": "#/definitions/MatchCriteriaObject"
        },
        "priority": {
          "description": "integer value of the rule priority",
          "type": "string"
        }
      }
    },
    "MapSave": {
      "properties": {
        "image": {
          "description": "Background image name",
          "type": "string"
        }
      }
    },
    "Maps": {
      "properties": {
        "map1": {
          "$ref": "#/definitions/MapsObj"
        }
      },
      "type": "object"
    },
    "MapsObj": {
      "properties": {
        "prio": {
          "$ref": "#/definitions/PrioObj"
        }
      },
      "type": "object"
    },
    "MataDataObject": {
      "properties": {
        "customValue": {
          "description": "User changed value. Note: The data type 'string' may vary based on the property. It can be either of integer,boolean or string ",
          "type": "string"
        },
        "defaultValue": {
          "description": "The initial default value. Note: The data type 'string' may vary based on the property. It can be either of integer,boolean or string ",
          "type": "string"
        },
        "isRestartRequired": {
          "description": "Flag indicate whether to restart GMS or not to affect the property value change in the application",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "MatchCriteriaObject": {
      "properties": {
        "application": {
          "description": "Application Name",
          "type": "string"
        },
        "bind_to_device_traffic": {
          "description": "Bind to device traffic",
          "type": "string"
        },
        "dst_ip": {
          "description": "The destination IP to match on",
          "type": "string"
        },
        "dst_port": {
          "description": "The destination port to match on.",
          "type": "string"
        },
        "protocol": {
          "description": "Name of protocol or protocol number in the IP header",
          "enum": [
            "ip",
            "tcp",
            "udp",
            "or a number on the IP protocol header"
          ],
          "type": "string"
        },
        "src_ip": {
          "description": "The source IP to match on",
          "type": "string"
        },
        "src_port": {
          "description": "The source port to match on.",
          "type": "string"
        }
      }
    },
    "MaxOverlaysResponse": {
      "properties": {
        "max": {
          "description": "The max number of overlays you are allowed to have on this orchestrator",
          "type": "number"
        }
      }
    },
    "MenuMap": {
      "description": "Effective role features.",
      "properties": {
        "net_read": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "net_read_write": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "net_read",
        "net_read_write"
      ],
      "type": "object"
    },
    "MeterFlowObj": {
      "properties": {
        "mid": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "priority": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "MeteredSummary": {
      "properties": {
        "enable": {
          "type": "boolean"
        },
        "expire": {
          "type": "integer"
        }
      },
      "required": [
        "enable",
        "expire"
      ],
      "type": "object"
    },
    "MgmInterfaceInfoDefault": {
      "properties": {
        "defaultIPOrDns": {
          "description": "default IP or dns",
          "type": "string"
        },
        "label": {
          "$ref": "#/definitions/priority",
          "description": "list of labels"
        }
      },
      "required": [
        "defaultIPOrDns"
      ]
    },
    "MgmInterfaceInfoDefault2": {
      "properties": {
        "customDefaultIP": {
          "description": "The user set default domain or IP to send to appliances",
          "type": "string"
        },
        "internalManagementIP": {
          "description": "The Orchestrator's management IP",
          "type": "string"
        },
        "label": {
          "$ref": "#/definitions/priority",
          "description": "list of labels"
        }
      },
      "required": [
        "customDefaultIP",
        "internalManagementIP"
      ]
    },
    "MgmInterfaceInfoDefault2Post": {
      "properties": {
        "customDefaultIP": {
          "description": "The user set default domain or IP to send to appliances",
          "type": "string"
        },
        "label": {
          "$ref": "#/definitions/priority",
          "description": "list of labels"
        }
      },
      "required": [
        "customDefaultIP"
      ]
    },
    "ModuleInfo": {
      "properties": {
        "last change": {
          "description": "Need description here.",
          "type": "string"
        },
        "last peer index": {
          "description": "Need description here.",
          "type": "string"
        },
        "last time": {
          "description": "Need description here.",
          "type": "string"
        },
        "last tx msg count": {
          "description": "Need description here.",
          "type": "string"
        },
        "last tx rec count": {
          "description": "Need description here.",
          "type": "string"
        },
        "last tx trans": {
          "description": "Need description here.",
          "type": "string"
        },
        "local change": {
          "description": "Need description here.",
          "type": "string"
        },
        "my system id": {
          "description": "My system id.",
          "type": "string"
        },
        "rx invalid msg": {
          "description": "Need description here.",
          "type": "string"
        },
        "rx unknown msg": {
          "description": "Need description here.",
          "type": "string"
        },
        "time since change": {
          "description": "The seconds that have passed since last change.",
          "type": "string"
        }
      },
      "required": [
        "last change",
        "last peer index",
        "last time",
        "last tx msg count",
        "last tx rec count",
        "last tx trans",
        "local change",
        "my system id",
        "rx invalid msg",
        "rx unknown msg",
        "time since change"
      ],
      "type": "object"
    },
    "MosAggregateStats": {
      "properties": {
        "ALIAS": {
          "description": "Alias/Name of tunnel",
          "type": "string"
        },
        "HOSTNAME": {
          "description": "Hostname of the appliance",
          "type": "string"
        },
        "IP": {
          "description": "Management IP address of appliance",
          "type": "string"
        },
        "TUNNEL": {
          "description": "ID of the tunnel",
          "type": "string"
        },
        "destNePk": {
          "description": "Internal ID of remote appliance",
          "type": "string"
        },
        "destTunnelAlias": {
          "description": "Alias/Name of remote tunnel",
          "type": "string"
        },
        "destTunnelId": {
          "description": "ID of the remote tunnel",
          "type": "string"
        },
        "isPassThrough": {
          "description": "is pass through tunnel",
          "type": "boolean"
        },
        "min_mos": {
          "description": "Minimum Mean Opinion Score",
          "type": "integer"
        },
        "min_mos_ts": {
          "description": "Minimum Mean Opinion Score time stamp",
          "type": "integer"
        },
        "mos": {
          "description": "Mean Opinion Score",
          "type": "integer"
        },
        "nePk": {
          "description": "Internal ID of appliance",
          "type": "string"
        }
      },
      "type": "object"
    },
    "MosPeriodSummary": {
      "properties": {
        "criticalMins": {
          "description": "Total critical MOS minutes",
          "type": "integer"
        },
        "healthStatus": {
          "description": "health status",
          "enum": [
            "HEALTHY",
            "WARNING",
            "MINOR",
            "MAJOR",
            "CRITICAL"
          ],
          "type": "string"
        },
        "majorMins": {
          "description": "Total major MOS minutes",
          "type": "integer"
        },
        "max": {
          "description": "Max MOS",
          "type": "integer"
        },
        "normalMins": {
          "description": "Total normal minutes",
          "type": "integer"
        },
        "tunnelId": {
          "description": "Tunnel on which latency occurred",
          "type": "string"
        }
      },
      "required": [
        "criticalMins",
        "healthStatus",
        "majorMins",
        "max",
        "normalMins",
        "tunnelId"
      ],
      "type": "object"
    },
    "NATPool": {
      "description": "Object to hold properties of a NATPool",
      "properties": {
        "comment": {
          "description": "User comments",
          "type": "string"
        },
        "dir": {
          "description": "Traffic direction to perform NAT on. Valid values are ['outbound', 'inbound']",
          "type": "string"
        },
        "name": {
          "description": "Name of NATPool",
          "type": "string"
        },
        "pat": {
          "description": "Enable Port Address Translation. Valid values are 0:Disabled or 1:Enabled",
          "type": "number"
        },
        "subnet": {
          "description": "Pool of IPs to be used for NAT",
          "type": "string"
        }
      },
      "required": [
        "dir",
        "name",
        "pat",
        "subnet"
      ]
    },
    "NATPools": {
      "description": "Object containing all the NATPools",
      "properties": {
        "<NATPool Id>": {
          "$ref": "#/definitions/NATPool"
        }
      }
    },
    "NEList": {
      "properties": {
        "neList": {
          "description": "The NePk list",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "NXLicenseItem": {
      "properties": {
        "applianceId": {
          "type": "string"
        },
        "hostname": {
          "type": "string"
        },
        "licenseType": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "saasEnabled": {
          "description": "Tells whether SaaS optimization is enabled on this appliance",
          "type": "boolean"
        },
        "serialNum": {
          "type": "string"
        }
      },
      "required": [
        "applianceId",
        "hostname",
        "licenseType",
        "model",
        "saasEnabled",
        "serialNum"
      ],
      "type": "object"
    },
    "NameServer": {
      "description": "Details of the Name Servers",
      "properties": {
        "nameserver": {
          "$ref": "#/definitions/NameServerMap"
        }
      },
      "required": [
        "nameserver"
      ]
    },
    "NameServerElement": {
      "properties": {
        "address": {
          "description": "IP Address of Name Server",
          "type": "string"
        },
        "self": {
          "description": "Order of Name Server",
          "type": "integer"
        }
      },
      "required": [
        "address",
        "self"
      ]
    },
    "NameServerMap": {
      "description": "You can add a maximum of three Name Servers.",
      "properties": {
        "1": {
          "$ref": "#/definitions/NameServerElement",
          "description": "Primary Name Server"
        },
        "2": {
          "$ref": "#/definitions/NameServerElement",
          "description": "Secondary Name Server"
        },
        "3": {
          "$ref": "#/definitions/NameServerElement",
          "description": "Tertiary Name Server"
        }
      }
    },
    "NePkToBondedTunnelsMap": {
      "properties": {
        "1.NE": {
          "$ref": "#/definitions/BondedTunnelsIdToTunnelMap",
          "description": "The tunnels for the appliance"
        },
        "2.NE": {
          "$ref": "#/definitions/BondedTunnelsIdToTunnelMap",
          "description": "The tunnels for the appliance"
        }
      }
    },
    "NePkToPassThroughTunnelsMap": {
      "properties": {
        "1.NE": {
          "$ref": "#/definitions/PassThroughTunnelIdToTunnelMap",
          "description": "The tunnels for the appliance"
        },
        "2.NE": {
          "$ref": "#/definitions/PassThroughTunnelIdToTunnelMap",
          "description": "The tunnels for the appliance"
        }
      }
    },
    "NePkToPhysicalTunnelsMap": {
      "properties": {
        "1.NE": {
          "$ref": "#/definitions/PhysicalTunnelsIdToTunnelMap",
          "description": "The tunnels for the appliance"
        },
        "2.NE": {
          "$ref": "#/definitions/PhysicalTunnelsIdToTunnelMap",
          "description": "The tunnels for the appliance"
        }
      }
    },
    "Neighbor": {
      "properties": {
        "as_prepend": {
          "description": "Count of additional times to prepend the local AS in the AS path",
          "type": "integer"
        },
        "enable": {
          "description": "flag to enable/disable neighbor bgp session",
          "type": "boolean"
        },
        "export_map": {
          "description": "Integer value of the 'Routes Export Policies' bitmask. Right now we have nine Route Export policies for each Peer Type namely<br/>1) Locally configured, <br/>2) Learned via subnet sharing, <br/>3) Learned from a local BGP branch peer, <br/>4) Learned from a local BGP branch-transit peer, <br/>5)Learned from a local BGP PE router, <br/>6)Remote BGP, <br/>7) Remote BGP branch-transit peer, 8) Learned from a local OSPF peer, <br>9) Learned from a Remote OSPF peer. <br/>These seven policies are represented with 9 binary values from right to left (1111111). We can turn on/off the policy by simple modifying respective binary value. For Example, to turn off export route policies 1 and 3 the bit map will look like 111111010. The equivalent decimal value for the bitmask is 506. So the rest API field should look like 'export_map': 506. Some of the predefined import_map values for the different Peer Types are {'Branch':511, 'Branch-transit':431 and 'PE-router':141}.By default we send a decimal value 4294967295 indicating the predefined bitmask of the Peer Type is not modified",
          "type": "integer"
        },
        "hold": {
          "description": "Time in seconds - specifies how long the device will wait for a KEEP ALIVE or UPDATE message from a neighbor before concluding that the neighbor is dead",
          "type": "integer"
        },
        "import_rtes": {
          "description": "flag to enable/disable importing routes of the neighbor",
          "type": "boolean"
        },
        "in_med": {
          "description": "input metric of routes received from the neighbor",
          "type": "integer"
        },
        "ka": {
          "description": "Time in seconds - specifies how frequently the device will send KEEP ALIVE messages to its BGP neighbors",
          "type": "integer"
        },
        "loc_pref": {
          "description": "Local preference for advertised routes to the neighbor ",
          "type": "integer"
        },
        "med": {
          "description": "Multi-Exit Discriminator to use for advertised routes to the neighbor",
          "type": "integer"
        },
        "next_hop_self": {
          "description": "Flag to send own ip as nexthop when advertising route to others. This filed is only applicable from 8.1.9.4 or higher appliances.Remove this field before applying to older appliances.",
          "type": "boolean"
        },
        "password": {
          "description": "MD5 Password of the neighbor",
          "type": "string"
        },
        "remote_as": {
          "description": "Remote Autonomous System Number of the neighbor",
          "type": "integer"
        },
        "self": {
          "description": "Ip address of the neighbor",
          "type": "string"
        },
        "type": {
          "description": "Peer Type of the neighbor",
          "type": "string"
        }
      },
      "required": [
        "as_prepend",
        "export_map",
        "hold",
        "import_rtes",
        "in_med",
        "ka",
        "loc_pref",
        "med",
        "password",
        "remote_as",
        "self",
        "type"
      ],
      "type": "object"
    },
    "NeighborStateInfo": {
      "properties": {
        "neighborCount": {
          "description": "Count of number of neighbor",
          "type": "integer"
        },
        "neighborState": {
          "$ref": "#/definitions/neighborsState"
        }
      },
      "type": "object"
    },
    "Neighbors": {
      "properties": {
        "IpAddress1": {
          "$ref": "#/definitions/Neighbor"
        }
      },
      "type": "object"
    },
    "NetFlowData": {
      "properties": {
        "active_timeout": {
          "description": "Specify NetFlow timeout (1..30) mins",
          "type": "integer"
        },
        "collector_type1": {
          "description": "NetFlow or IPFIX collector type",
          "type": "string"
        },
        "collector_type2": {
          "description": "NetFlow or IPFIX collector type",
          "type": "string"
        },
        "enable": {
          "description": "Need description here",
          "type": "boolean"
        },
        "if_lan_rx": {
          "description": "Need description here",
          "type": "boolean"
        },
        "if_lan_tx": {
          "description": "Need description here",
          "type": "boolean"
        },
        "if_wan_rx": {
          "description": "Need description here",
          "type": "boolean"
        },
        "if_wan_tx": {
          "description": "Need description here",
          "type": "boolean"
        },
        "ipaddr1": {
          "description": "valid ip address",
          "type": "string"
        },
        "ipaddr2": {
          "description": "valid ip address",
          "type": "string"
        },
        "ipfix_tmplt_rfrsh_t": {
          "description": "Specify IPFIX template refresh timeout (1..1440) mins",
          "type": "integer"
        },
        "port1": {
          "description": "Need description here",
          "type": "integer"
        },
        "port2": {
          "description": "Need description here",
          "type": "integer"
        }
      },
      "required": [
        "active_timeout",
        "collector_type1",
        "collector_type2",
        "enable",
        "if_lan_rx",
        "if_lan_tx",
        "if_wan_rx",
        "if_wan_tx",
        "ipaddr1",
        "ipaddr2",
        "ipfix_tmplt_rfrsh_t",
        "port1",
        "port2"
      ],
      "type": "object"
    },
    "NewOverlayConfig": {
      "properties": {
        "bondingPolicy": {
          "description": "The number of the bonding policy for the overlay. 1 - high availability, 2 - high throughput.",
          "type": "number"
        },
        "boostTraffic": {
          "description": "Whether or not to boost the traffic for this overlay.",
          "type": "boolean"
        },
        "brownoutThresholds": {
          "$ref": "#/definitions/BrownoutThreshold",
          "description": "Brownout thresholds configuration"
        },
        "hubInternetPolicies": {
          "$ref": "#/definitions/HubInternetPolicies",
          "description": "Map of appliance id to internet policy for a hub in an overlay"
        },
        "internetPolicy": {
          "$ref": "#/definitions/InternetPolicy",
          "description": "Describes what to do with internet traffic if it matches the overlay"
        },
        "lanDscp": {
          "description": "The LAN QoS to use in the QoS policy created for this Overlay. See the QoS policy page for valid values",
          "type": "string"
        },
        "match": {
          "$ref": "#/definitions/OverlayMatch",
          "description": "Match configuration"
        },
        "name": {
          "description": "The name of the overlay. ",
          "type": "string"
        },
        "overlayFallbackOption": {
          "description": "The fallback option of the overlay.",
          "type": "string"
        },
        "topology": {
          "$ref": "#/definitions/OverlayTopology",
          "description": "Topology configuration for this overlay"
        },
        "trafficClass": {
          "description": "The shaper traffic class ID to use in the overlay. (These are the keys in the traffic class, see the shaper api for more information).",
          "type": "string"
        },
        "tunnelUsagePolicy": {
          "$ref": "#/definitions/SampleTunnelUsagePolicy",
          "description": "A set of policy details to determine in which order do what links get used. The keys are integers as strings, the integers will be used to determine the order. The condition and links in the policy detail are used to determine if that policy detail is used, or if the next one should be used."
        },
        "useBackupOnBrownout": {
          "description": "Use the backup WAN ports when the primary WAN ports meet the brownout conditions.",
          "type": "boolean"
        },
        "wanDscp": {
          "description": "The WAN QoS to use in the QoS policy created for this Overlay. See the QoS policy page for valid values",
          "type": "string"
        },
        "wanPorts": {
          "$ref": "#/definitions/OverlayWanPorts",
          "description": "Wan port configuration"
        }
      }
    },
    "NewTfaKeyResponse": {
      "properties": {
        "barcodeBase64Jpeg": {
          "description": "Base 64 encoded string of a jpeg for a 2D barcode.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "NewTunnelGroupConfig": {
      "properties": {
        "crossConnect": {
          "description": "Whether or not to cross connect the WAN ports.",
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "topology": {
          "$ref": "#/definitions/OverlayTopology",
          "description": "Topology configuration for this overlay"
        },
        "useAllAvailableInterfaces": {
          "description": "Use all the available interfaces found on the appliances",
          "type": "boolean"
        },
        "wanPorts": {
          "description": "An array of WAN label ids  to use as the primary WAN ports this overlay.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "NextId": {
      "properties": {
        "nextId": {
          "description": "Zone Next Id",
          "type": "number"
        }
      },
      "required": [
        "nextId"
      ],
      "type": "object"
    },
    "NotificationConfig": {
      "properties": {
        "author": {
          "description": "the user who wrote the message",
          "type": "string"
        },
        "message": {
          "description": "the message of notification",
          "type": "string"
        }
      },
      "required": [
        "author",
        "message"
      ]
    },
    "NotificationGet": {
      "properties": {
        "configData": {
          "$ref": "#/definitions/NotificationConfig",
          "description": "could be any type of json object/array"
        },
        "resourceBase": {
          "description": "name of the main resource",
          "type": "string"
        },
        "resourceKey": {
          "description": "name of the sub-resource.it will be null",
          "type": "string"
        },
        "version": {
          "description": "current version of the Orchestrator config resource, gets incremented with updates",
          "type": "integer"
        }
      },
      "required": [
        "configData",
        "resourceBase",
        "resourceKey",
        "version"
      ],
      "type": "object"
    },
    "NumTierSummary": {
      "properties": {
        "<tier>": {
          "type": "integer"
        }
      },
      "required": [
        "<tier>"
      ],
      "type": "object"
    },
    "OSPFInterfaceStateResp": {
      "properties": {
        "interfaceState": {
          "items": {
            "$ref": "#/definitions/interfaceStateObj"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "OSPFNeighborsStateResp": {
      "properties": {
        "interfaceState": {
          "items": {
            "$ref": "#/definitions/neighborStateObj"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "OSPFStateObj": {
      "properties": {
        "extnl_lsa_cnt": {
          "description": "external lsa count",
          "type": "integer"
        },
        "extnl_lsa_refresh_intvl": {
          "description": "external link state advertisement refresh interval",
          "type": "integer"
        },
        "hold_ls_intvl": {
          "description": "hold link state advertisement interval",
          "type": "integer"
        },
        "max_ls_intvl": {
          "description": "Maximum link state advertisement interval",
          "type": "integer"
        },
        "min_lsa_arrival": {
          "description": "min link state advertisement count",
          "type": "integer"
        },
        "min_lsa_interval": {
          "description": "Minimum link state advertisement interval",
          "type": "integer"
        },
        "num_learned_extnl_ospf": {
          "type": "integer"
        },
        "num_nbrs": {
          "description": "neighbors count",
          "type": "integer"
        },
        "originated_new_lsas": {
          "description": "Originated new LSAs",
          "type": "integer"
        },
        "ospf_enabled": {
          "description": "Flag to enable/disable OSPF",
          "type": "boolean"
        },
        "pm_admin_state": {
          "description": "Process manager admin state",
          "type": "string"
        },
        "proto_version": {
          "description": "Protocol version",
          "type": "integer"
        },
        "redist_bgp": {
          "description": "boolean Flag to control redistribution of BGP routes to OSPF",
          "type": "boolean"
        },
        "redist_bgp_metric": {
          "description": "metric assign to the redistributed bgp routes to OSPF ",
          "type": "integer"
        },
        "redist_bgp_route_tag": {
          "description": "tag  assign to the redistributed bgp routes to OSPF ",
          "type": "integer"
        },
        "redist_bgp_route_type": {
          "description": "used to specify metric type for redistributed bgp routes to OSPF (1 - E1 and 2 - E2) ",
          "type": "integer"
        },
        "redist_local": {
          "description": "boolean Flag to control redistribution of local routes to OSPF",
          "type": "boolean"
        },
        "redist_local_metric": {
          "description": "metric assign to the redistributed local routes to OSPF ",
          "type": "integer"
        },
        "redist_local_route_tag": {
          "description": "tag  assign to the redistributed local routes to OSPF ",
          "type": "integer"
        },
        "redist_local_route_type": {
          "description": "used to specify metric type for redistributed local routes to OSPF (1 - E1 and 2 - E2) ",
          "type": "integer"
        },
        "redist_subshared": {
          "description": "boolean Flag to control redistribution of Silver Peak to OSPF",
          "type": "boolean"
        },
        "redist_subshared_metric": {
          "description": "metric assign to the redistributed silver peak routes to OSPF ",
          "type": "integer"
        },
        "redist_subshared_route_tag": {
          "description": "tag  assign to the redistributed silver peak routes to OSPF ",
          "type": "integer"
        },
        "redist_subshared_route_type": {
          "description": "used to specify metric type for redistributed silver peak routes to OSPF (1 - E1 and 2 - E2) ",
          "type": "integer"
        },
        "route_calc_max_delay": {
          "description": "Route calculation max delay",
          "type": "integer"
        },
        "router_id": {
          "description": "ospf router id",
          "type": "string"
        }
      },
      "type": "object"
    },
    "OSPFSystemConfig": {
      "properties": {
        "bgpRedistMetric": {
          "description": "metric assign to the redistributed bgp routes to OSPF ",
          "type": "integer"
        },
        "bgpRedistMetricType": {
          "description": "used to specify metric type for redistributed bgp routes to OSPF (1 - E1 and 2 - E2) ",
          "type": "integer"
        },
        "bgpRedistTag": {
          "description": "tag  assign to the redistributed bgp routes to OSPF ",
          "type": "integer"
        },
        "enable": {
          "description": "Flag to enable/disable OSPF",
          "type": "boolean"
        },
        "localRedistMetric": {
          "description": "metric assign to the redistributed local routes to OSPF ",
          "type": "integer"
        },
        "localRedistMetricType": {
          "description": "used to specify metric type for redistributed local routes to OSPF (1 - E1 and 2 - E2) ",
          "type": "integer"
        },
        "localRedistTag": {
          "description": "tag  assign to the redistributed local routes to OSPF ",
          "type": "integer"
        },
        "redistBgp": {
          "description": "boolean Flag to control redistribution of BGP routes to OSPF",
          "type": "boolean"
        },
        "redistLocal": {
          "description": "boolean Flag to control redistribution of local routes to OSPF",
          "type": "boolean"
        },
        "redistSubnetShare": {
          "description": "boolean Flag to control redistribution of Silver Peak to OSPF",
          "type": "boolean"
        },
        "routerId": {
          "description": "router id",
          "type": "string"
        },
        "subnetShareRedistMetric": {
          "description": "metric assign to the redistributed silver peak routes to OSPF ",
          "type": "integer"
        },
        "subnetShareRedistMetricType": {
          "description": "used to specify metric type for redistributed silver peak routes to OSPF (1 - E1 and 2 - E2) ",
          "type": "integer"
        },
        "subnetShareRedistTag": {
          "description": "tag  assign to the redistributed silver peak routes to OSPF ",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "OnePeer": {
      "properties": {
        "index": {
          "description": "Index.",
          "type": "string"
        },
        "peerIP": {
          "description": "The ip address.",
          "type": "string"
        },
        "peerid": {
          "description": "The id.",
          "type": "integer"
        },
        "rxrecs": {
          "description": "Need description here.",
          "type": "integer"
        },
        "rxsecs": {
          "description": "Need description here.",
          "type": "integer"
        },
        "rxtabs": {
          "description": "Need description here.",
          "type": "integer"
        },
        "rxtrans": {
          "description": "Need description here.",
          "type": "integer"
        },
        "txsecs": {
          "description": "Need description here.",
          "type": "integer"
        },
        "txtrans": {
          "description": "Need description here.",
          "type": "integer"
        }
      },
      "required": [
        "index",
        "peerIP",
        "peerid",
        "rxrecs",
        "rxsecs",
        "rxtabs",
        "rxtrans",
        "txsecs",
        "txtrans"
      ],
      "type": "object"
    },
    "One_subnet": {
      "properties": {
        "advert": {
          "description": "Whether it advertises to peers.",
          "type": "boolean"
        },
        "comment": {
          "description": "Some comments.",
          "type": "string"
        },
        "local": {
          "description": "Whether this subnet is local.",
          "type": "boolean"
        },
        "metric": {
          "description": "The metric value.",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "Options": {
      "properties": {
        "caseDesc": {
          "description": "The case description",
          "type": "string"
        },
        "caseKey": {
          "description": "The case number",
          "type": "string"
        }
      },
      "type": "object"
    },
    "OverlayApplianceAssociation": {
      "properties": {
        "1": {
          "description": "An array of appliance IDs (nePks) of appliances belonging to the overlay with ID 1.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "OverlayApplianceAssociations": {
      "properties": {
        "1": {
          "description": "An array of appliance IDs (nePks) of appliances belonging to the overlay with ID 1.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "2": {
          "description": "An array of appliance IDs (nePks) of appliances belonging to the overlay with ID 2.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "OverlayArrayResponse": {
      "items": {
        "$ref": "#/definitions/OverlayConfig"
      },
      "type": "array"
    },
    "OverlayBondedTunnelsInfo": {
      "properties": {
        "adminStatus": {
          "description": "Whether the tunnel was set as up or down (admin up/ admin down)",
          "type": "string"
        },
        "alias": {
          "description": "The name of the tunnel, in the Web UI tunnels will be identified and displayed with this name",
          "type": "string"
        },
        "children": {
          "items": {
            "$ref": "#/definitions/OverlayPhysicalTunnelsInfo"
          },
          "type": "array"
        },
        "destNePk": {
          "description": "The nePk of the appliance that is the destination appliance of this tunnel",
          "type": "string"
        },
        "destTunnelAlias": {
          "description": "The tunnel alias of this tunnel on the destination appliance",
          "type": "string"
        },
        "destTunnelId": {
          "description": "The tunnel ID of this tunnel on the destination appliance",
          "type": "string"
        },
        "fecRation": {
          "type": "string"
        },
        "fecStatus": {
          "type": "string"
        },
        "gmsMarked": {
          "description": "Whether or not Orchestrator is managing the tunnel.",
          "type": "boolean"
        },
        "id": {
          "description": "The tunnel's ID",
          "type": "string"
        },
        "operStatus": {
          "description": "The status of the tunnel (whether it's up/down/down in progress)",
          "type": "string"
        },
        "overlayId": {
          "description": "The ID of the overlay this tunnel belongs to. ",
          "type": "string"
        },
        "srcNePk": {
          "description": "The nePk of the appliance that is the source appliance of this tunnel",
          "type": "string"
        },
        "tag": {
          "description": "The name of the overlay that this tunnel belongs to",
          "type": "string"
        }
      },
      "type": "object"
    },
    "OverlayConfig": {
      "properties": {
        "bondingPolicy": {
          "description": "The number of the bonding policy for the overlay. 1 - high availability, 2 - high throughput.",
          "type": "number"
        },
        "boostTraffic": {
          "description": "Whether or not to boost the traffic for this overlay.",
          "type": "boolean"
        },
        "brownoutThresholds": {
          "$ref": "#/definitions/BrownoutThreshold",
          "description": "Brownout thresholds configuration"
        },
        "hubInternetPolicies": {
          "$ref": "#/definitions/HubInternetPolicies",
          "description": "Map of appliance id to internet policy for a hub in an overlay"
        },
        "id": {
          "description": "The id of the overlay.",
          "type": "string"
        },
        "internetPolicy": {
          "$ref": "#/definitions/InternetPolicy",
          "description": "Describes what to do with internet traffic if it matches the overlay"
        },
        "lanDscp": {
          "description": "The LAN QoS to use in the QoS policy created for this Overlay. See the QoS policy page for valid values",
          "type": "string"
        },
        "match": {
          "$ref": "#/definitions/OverlayMatch",
          "description": "Match configuration"
        },
        "name": {
          "description": "The name of the overlay. ",
          "type": "string"
        },
        "overlayFallbackOption": {
          "description": "The fallback option of the overlay.",
          "type": "number"
        },
        "topology": {
          "$ref": "#/definitions/OverlayTopology",
          "description": "Topology configuration for this overlay"
        },
        "trafficClass": {
          "description": "The shaper traffic class to use in the overlay. ",
          "type": "string"
        },
        "tunnelUsagePolicy": {
          "$ref": "#/definitions/SampleTunnelUsagePolicy",
          "description": "A set of policy details to determine in which order do what links get used. The keys are integers as strings, the integers will be used to determine the order. The condition and links in the policy detail are used to determine if that policy detail is used, or if the next one should be used."
        },
        "useBackupOnBrownout": {
          "description": "Use the backup WAN ports when the primary WAN ports meet the brownout conditions.",
          "type": "boolean"
        },
        "wanDscp": {
          "description": "The WAN QoS to use in the QoS policy created for this Overlay. See the QoS policy page for valid values",
          "type": "string"
        },
        "wanPorts": {
          "$ref": "#/definitions/OverlayWanPorts",
          "description": "Wan port configuration"
        }
      }
    },
    "OverlayIdToRegionalOverlay": {
      "properties": {
        "<overlayId>": {
          "$ref": "#/definitions/RegionToOverlay",
          "description": "Map of overlayId to RegionToOverlay"
        }
      }
    },
    "OverlayManagerProperties": {
      "properties": {
        "autoReclassifyValues": {
          "description": "The integer value of auto reclassify",
          "type": "integer"
        },
        "enable": {
          "description": "Enable to resume the overlay work or disable to pause it",
          "type": "boolean"
        },
        "enableAutoSaveOnVXOA": {
          "description": "When this flag is true, auto save changes on appliances in each overlay loop",
          "type": "boolean"
        },
        "enableTemplateApply": {
          "description": "When this flag is true, auto apply templates to appliances in each overlay loop",
          "type": "boolean"
        },
        "ipsecPresharedKey": {
          "description": "The IPsec preshared key property",
          "type": "string"
        },
        "overlayPaused": {
          "description": "Whether overlay manager is paused",
          "type": "boolean"
        },
        "pollingInterval": {
          "description": "How often to poll, in seconds, the value should not be less than 60.",
          "type": "integer"
        },
        "resetAllFlows": {
          "description": "Whether to reset all flows",
          "type": "boolean"
        },
        "settings": {
          "$ref": "#/definitions/AllWanLabelSettings",
          "description": "Wan label-specific tunnel settings"
        },
        "tunnelMode": {
          "description": "The tunnel mode property",
          "enum": [
            "ipsec",
            "udp",
            "gre"
          ],
          "type": "string"
        }
      },
      "required": [
        "autoReclassifyValues",
        "enable",
        "enableAutoSaveOnVXOA",
        "enableTemplateApply",
        "ipsecPresharedKey",
        "overlayPaused",
        "pollingInterval",
        "resetAllFlows",
        "tunnelMode"
      ]
    },
    "OverlayManagerPropertiesPost": {
      "properties": {
        "autoReclassifyValues": {
          "description": "The integer value of auto reclassify",
          "type": "integer"
        },
        "enable": {
          "description": "Enable to resume the overlay work or disable to pause it",
          "type": "boolean"
        },
        "enableAutoSaveOnVXOA": {
          "description": "When this flag is true, auto save changes on appliances in each overlay loop",
          "type": "boolean"
        },
        "enableTemplateApply": {
          "description": "When this flag is true, auto apply templates to appliances in each overlay loop",
          "type": "boolean"
        },
        "ipsecPresharedKey": {
          "description": "The IPsec preshared key property",
          "type": "string"
        },
        "pollingInterval": {
          "description": "How often to poll, in seconds, the value should not be less than 60.",
          "type": "integer"
        },
        "resetAllFlows": {
          "description": "Whether to reset all flows",
          "type": "boolean"
        },
        "settings": {
          "$ref": "#/definitions/AllWanLabelSettings",
          "description": "Wan label-specific tunnel settings"
        },
        "tunnelMode": {
          "description": "The tunnel mode property",
          "enum": [
            "ipsec",
            "udp",
            "gre"
          ],
          "type": "string"
        }
      },
      "required": [
        "autoReclassifyValues",
        "enable",
        "ipsecPresharedKey",
        "pollingInterval",
        "resetAllFlows",
        "tunnelMode"
      ]
    },
    "OverlayMatch": {
      "properties": {
        "acl": {
          "description": "The name of the ACL class (defined on the appliance). If this key exists, you should not have the interfaceLabel or overlayAcl keys.",
          "type": "string"
        },
        "interfaceLabel": {
          "description": "The name of the LAN interface, if this key exists, you should not have the acl or overlayAcl keys.",
          "type": "string"
        },
        "overlayAcl": {
          "description": "The contents of the overlay ACL that is built into this overlay configuration and that will be created on the appliance. If this key exists, you should not have the acl or interfaceLabel keys",
          "type": "string"
        }
      }
    },
    "OverlayPhysicalTunnelsInfo": {
      "properties": {
        "adminStatus": {
          "description": "Whether the tunnel was set as up or down (admin up/ admin down)",
          "type": "string"
        },
        "alias": {
          "description": "The name of the tunnel, in the Web UI tunnels will be identified and displayed with this name",
          "type": "string"
        },
        "destIpAddress": {
          "description": "The destination IP of the tunnel",
          "type": "string"
        },
        "destNePk": {
          "description": "The nePk of the appliance that is the destination appliance of this tunnel",
          "type": "string"
        },
        "destTunnelAlias": {
          "description": "The tunnel alias of this tunnel on the destination appliance",
          "type": "string"
        },
        "destTunnelId": {
          "description": "The tunnel ID of this tunnel on the destination appliance",
          "type": "string"
        },
        "fecRation": {
          "type": "string"
        },
        "fecStatus": {
          "type": "string"
        },
        "id": {
          "description": "The tunnel's ID",
          "type": "string"
        },
        "ipsec_enabled": {
          "type": "string"
        },
        "mode": {
          "description": "The mode of the tunnel",
          "type": "string"
        },
        "operStatus": {
          "description": "The status of the tunnel (whether it's up/down/down in progress)",
          "type": "string"
        },
        "parallelTunnelId": {
          "type": "number"
        },
        "presharedkey": {
          "type": "string"
        },
        "sourceIpAddress": {
          "description": "The source IP address of the tunnel",
          "type": "string"
        },
        "srcNePk": {
          "description": "The nePk of the appliance that is the source appliance of this tunnel",
          "type": "string"
        },
        "tag": {
          "description": "Describes which labels are used in the tunnel (labelId1 - labelId2)",
          "type": "string"
        },
        "tunnelThreshold": {
          "$ref": "#/definitions/TCTunnelsThreshold"
        }
      },
      "type": "object"
    },
    "OverlayPriorityMap": {
      "properties": {
        "1": {
          "type": "number"
        },
        "2": {
          "type": "number"
        }
      }
    },
    "OverlayTopology": {
      "properties": {
        "externalHubs": {
          "description": "An array of the NE.PKs (appliance id) for the external hubs of this regional overlay.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "hubs": {
          "description": "An array of the NE.PKs (appliance id) for the hubs of this overlay.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "topologyType": {
          "description": "The number corresponding to the type of topology. (1 - mesh, 2 - hub and spoke)",
          "type": "number"
        },
        "useRegions": {
          "description": "Connect appliances based on region",
          "type": "boolean"
        }
      }
    },
    "OverlayWanPorts": {
      "properties": {
        "backup": {
          "description": "An array of WAN interface label IDs to use as the backup WAN ports of this overlay.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "crossConnect": {
          "description": "An array of WAN interface label IDs to cross connect tunnels between",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "primary": {
          "description": "An array of WAN interface label IDs to use as the primary WAN ports this overlay.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "PartitionSoftwareVersionInfo": {
      "properties": {
        "active": {
          "type": "boolean"
        },
        "build_time": {
          "type": "string"
        },
        "build_version": {
          "type": "string"
        },
        "fallback_boot": {
          "type": "boolean"
        },
        "next_boot": {
          "type": "boolean"
        },
        "partition": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "PassThroughTunnel": {
      "properties": {
        "adminStatus": {
          "description": "Whether or not the tunnel is admin'ed up or down",
          "type": "string"
        },
        "alias": {
          "description": "The alias of the tunnel",
          "type": "string"
        },
        "destIpAddress": {
          "description": "The destination IP address (if applicable)",
          "type": "string"
        },
        "destNePk": {
          "description": "The nePk of the destination appliance (if applicable)",
          "type": "string"
        },
        "fecRatio": {
          "description": "The ratio of the fec",
          "type": "number"
        },
        "fecStatus": {
          "description": "The status of the FEC",
          "type": "string"
        },
        "gmsMarked": {
          "description": "Whether or not Orchestrator has created/modified this tunnel",
          "type": "boolean"
        },
        "id": {
          "description": "The ID of the pass through tunnel",
          "type": "string"
        },
        "max_bw": {
          "description": "The max bandwidth of the tunnel",
          "type": "number"
        },
        "max_bw_auto": {
          "type": "boolean"
        },
        "mode": {
          "description": "The mode of the tunnel",
          "type": "string"
        },
        "natMode": {
          "description": "Configured NAT mode",
          "type": "string"
        },
        "operStatus": {
          "description": "The current state of the tunnel",
          "type": "string"
        },
        "peerName": {
          "description": "The name of the service or peer for this pass through tunnel",
          "type": "string"
        },
        "sourceIpAddress": {
          "description": "The source IP address of the tunnel",
          "type": "string"
        },
        "srcNePk": {
          "description": "The nePk of the appliance the tunnel belongs to",
          "type": "string"
        }
      }
    },
    "PassThroughTunnelIdToTunnelMap": {
      "properties": {
        "exampleTunnelId1": {
          "$ref": "#/definitions/PassThroughTunnel",
          "description": "The pass through tunnel for this tunnel ID"
        },
        "exampleTunnelId2": {
          "$ref": "#/definitions/PassThroughTunnel",
          "description": "The pass through tunnel for this tunnel ID"
        }
      }
    },
    "PeerPriorityGet": {
      "properties": {
        "peerlist": {
          "$ref": "#/definitions/peerlist"
        }
      },
      "type": "object"
    },
    "PhysicalTunnelConfig2": {},
    "PhysicalTunnelsIdToTunnelMap": {
      "properties": {
        "exampleTunnelId1": {
          "$ref": "#/definitions/PhysicalTunnelConfig2",
          "description": "The bonded tunnel for the tunnel Id"
        },
        "exampleTunnelId2": {
          "$ref": "#/definitions/PhysicalTunnelConfig2",
          "description": "The bonded tunnel for the tunnel Id"
        }
      }
    },
    "PortForwardingEntry": {
      "description": "One port forwarding rule",
      "properties": {
        "comment": {
          "description": "Comment",
          "type": "string"
        },
        "destPort": {
          "description": "Destination port or port range of the rule, for example 123 or 123-234, and would be 0 for ICMP protocol",
          "type": "string"
        },
        "destSubnet": {
          "description": "Destination subnet of the rule",
          "type": "string"
        },
        "gms_marked": {
          "description": "To indicate whether this rule was generated by GMS or by user",
          "type": "boolean"
        },
        "protocol": {
          "description": "Protocol of the rule, could be any of UDP, TCP and ICMP",
          "type": "string"
        },
        "srcSubnet": {
          "description": "Source subnet of the rule",
          "type": "string"
        },
        "targetIp": {
          "description": "If a packet header matches this rule, the packet would be translated to this new IP address",
          "type": "string"
        },
        "targetPort": {
          "description": "If a packet header matches this rule, the packet would be translated to this new port or port range",
          "type": "string"
        }
      },
      "required": [
        "comment",
        "destPort",
        "destSubnet",
        "gms_marked",
        "protocol",
        "srcSubnet",
        "targetIp",
        "targetPort"
      ]
    },
    "PortProtocolMap": {
      "properties": {
        "portNumber": {
          "items": {
            "$ref": "#/definitions/PortProtocolObj"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "PortProtocolObj": {
      "properties": {
        "description": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "port": {
          "type": "string"
        },
        "priority": {
          "type": "integer"
        },
        "protocol": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "PortProtocolTmp": {
      "properties": {
        "applicationTags": {
          "type": "object"
        },
        "portProtocolWithPriority": {
          "$ref": "#/definitions/PortProtocolMap"
        }
      },
      "type": "object"
    },
    "PortalApplianceLicenseRequestPart": {
      "properties": {
        "fx": {
          "$ref": "#/definitions/PortalApplianceRequestFxPart"
        }
      },
      "required": [
        "fx"
      ],
      "type": "object"
    },
    "PortalApplianceLicensesBasePart": {
      "properties": {
        "enable": {
          "type": "boolean"
        }
      },
      "required": [
        "enable"
      ],
      "type": "object"
    },
    "PortalApplianceLicensesBoostPart": {
      "properties": {
        "bandwidth": {
          "type": "integer"
        },
        "enable": {
          "type": "boolean"
        }
      },
      "required": [
        "bandwidth",
        "enable"
      ],
      "type": "object"
    },
    "PortalApplianceLicensesFxPart": {
      "properties": {
        "base": {
          "$ref": "#/definitions/PortalApplianceLicensesBasePart"
        },
        "boost": {
          "$ref": "#/definitions/PortalApplianceLicensesBoostPart"
        },
        "mini": {
          "$ref": "#/definitions/PortalApplianceLicensesMiniPart"
        },
        "plus": {
          "$ref": "#/definitions/PortalApplianceLicensesPlusPart"
        },
        "tier": {
          "$ref": "#/definitions/PortalApplianceLicensesTierPart"
        }
      },
      "required": [
        "base",
        "boost",
        "mini",
        "plus",
        "tier"
      ],
      "type": "object"
    },
    "PortalApplianceLicensesMiniPart": {
      "properties": {
        "enable": {
          "type": "boolean"
        }
      },
      "required": [
        "enable"
      ],
      "type": "object"
    },
    "PortalApplianceLicensesPart": {
      "properties": {
        "fx": {
          "$ref": "#/definitions/PortalApplianceLicensesFxPart"
        }
      },
      "required": [
        "fx"
      ],
      "type": "object"
    },
    "PortalApplianceLicensesPlusPart": {
      "properties": {
        "enable": {
          "type": "boolean"
        }
      },
      "required": [
        "enable"
      ],
      "type": "object"
    },
    "PortalApplianceLicensesTierPart": {
      "properties": {
        "bandwidth": {
          "type": "integer"
        },
        "display": {
          "type": "string"
        }
      },
      "required": [
        "bandwidth",
        "display"
      ],
      "type": "object"
    },
    "PortalApplianceRequestFxBoostPart": {
      "properties": {
        "bandwidth": {
          "type": "integer"
        },
        "enable": {
          "type": "boolean"
        }
      },
      "required": [
        "bandwidth",
        "enable"
      ],
      "type": "object"
    },
    "PortalApplianceRequestFxMiniPart": {
      "properties": {
        "enable": {
          "type": "boolean"
        }
      },
      "required": [
        "enable"
      ],
      "type": "object"
    },
    "PortalApplianceRequestFxPart": {
      "properties": {
        "boost": {
          "$ref": "#/definitions/PortalApplianceRequestFxBoostPart"
        },
        "mini": {
          "$ref": "#/definitions/PortalApplianceRequestFxMiniPart"
        },
        "plus": {
          "$ref": "#/definitions/PortalApplianceRequestFxPlusPart"
        },
        "tier": {
          "$ref": "#/definitions/PortalApplianceRequestFxTierPart"
        }
      },
      "required": [
        "boost",
        "mini",
        "plus",
        "tier"
      ],
      "type": "object"
    },
    "PortalApplianceRequestFxPlusPart": {
      "properties": {
        "enable": {
          "type": "boolean"
        }
      },
      "required": [
        "enable"
      ],
      "type": "object"
    },
    "PortalApplianceRequestFxTierPart": {
      "properties": {
        "bandwidth": {
          "type": "integer"
        },
        "display": {
          "type": "string"
        }
      },
      "required": [
        "bandwidth",
        "display"
      ],
      "type": "object"
    },
    "PortalLicenseItem": {
      "properties": {
        "applianceId": {
          "type": "string"
        },
        "enabled": {
          "type": "boolean"
        },
        "hostname": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "isPortalLicensed": {
          "type": "boolean"
        },
        "licenseRequest": {
          "$ref": "#/definitions/PortalApplianceLicenseRequestPart"
        },
        "licenses": {
          "$ref": "#/definitions/PortalApplianceLicensesPart"
        },
        "model": {
          "type": "string"
        },
        "portalLicenseType": {
          "type": "integer"
        },
        "saasEnabled": {
          "type": "boolean"
        },
        "serial": {
          "type": "string"
        }
      },
      "required": [
        "applianceId",
        "enabled",
        "hostname",
        "id",
        "isPortalLicensed",
        "licenseRequest",
        "licenses",
        "model",
        "portalLicenseType",
        "saasEnabled",
        "serial"
      ],
      "type": "object"
    },
    "PortalLicenseSummary": {
      "properties": {
        "licenseState": {
          "$ref": "#/definitions/PortalSummaryLicenseStatePart"
        },
        "licenses": {
          "$ref": "#/definitions/PortalSummaryLicensesPart"
        }
      },
      "required": [
        "licenseState",
        "licenses"
      ],
      "type": "object"
    },
    "PortalRegistrationResponse": {
      "properties": {
        "accountKey": {
          "description": "Unique key per account generated by Portal.",
          "type": "string"
        },
        "accountName": {
          "type": "string"
        },
        "emails": {
          "description": "Array of email addresses associated with this Portal account",
          "items": {
            "description": "Account email address",
            "type": "string"
          },
          "type": "array"
        },
        "enabled": {
          "description": "Flag to denote if Orchestrator has registered with Portal and has been (manually or auto) approved by Administrator",
          "type": "boolean"
        },
        "group": {
          "description": "Account group name. 'Unassigned' if empty.",
          "type": "string"
        },
        "pendingPoll": {
          "description": "Flag to denote if Orchestrator is currently polling for registration status from portal",
          "type": "boolean"
        },
        "registered": {
          "description": "Flag to denote if Orchestrator has registered with Portal",
          "type": "boolean"
        },
        "site": {
          "description": "Account site name. 'Unassigned' if empty.",
          "type": "string"
        }
      }
    },
    "PortalSummaryLicenseStateFxPart": {
      "properties": {
        "numBase": {
          "type": "integer"
        },
        "numBoost": {
          "type": "integer"
        },
        "numPlus": {
          "type": "integer"
        },
        "numTier": {
          "$ref": "#/definitions/NumTierSummary"
        }
      },
      "required": [
        "numBase",
        "numBoost",
        "numPlus",
        "numTier"
      ],
      "type": "object"
    },
    "PortalSummaryLicenseStatePart": {
      "properties": {
        "fx": {
          "$ref": "#/definitions/PortalSummaryLicenseStateFxPart"
        }
      },
      "required": [
        "fx"
      ],
      "type": "object"
    },
    "PortalSummaryLicensesPart": {
      "properties": {
        "accountKey": {
          "$ref": "#/definitions/AccountKeySummary"
        },
        "cpx": {
          "$ref": "#/definitions/CpxSummary"
        },
        "ecsp": {
          "$ref": "#/definitions/EcspSummary"
        },
        "fx": {
          "$ref": "#/definitions/FxSummary"
        },
        "metered": {
          "$ref": "#/definitions/MeteredSummary"
        },
        "saas": {
          "$ref": "#/definitions/SaasSummary"
        }
      },
      "required": [
        "accountKey",
        "cpx",
        "ecsp",
        "fx",
        "metered",
        "saas"
      ],
      "type": "object"
    },
    "PostCancelConfig": {
      "properties": {
        "pmpKey": {
          "type": "string"
        }
      },
      "required": [
        "pmpKey"
      ],
      "type": "object"
    },
    "PostRunConfig": {
      "properties": {
        "ip": {
          "description": "Filter only for this IP to capture",
          "type": "string"
        },
        "max_packet": {
          "default": "1000",
          "description": "Desired number of packets to capture",
          "type": "string"
        },
        "nePks": {
          "description": "The nePks of the appliances",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "port": {
          "description": "Filter only for this port to capture",
          "type": "string"
        }
      },
      "required": [
        "max_packet",
        "nePks"
      ],
      "type": "object"
    },
    "PreferenceResponse": {
      "properties": {
        "dynamic": {
          "description": "True if using map server, false for static image",
          "type": "boolean"
        },
        "image": {
          "description": "Background image name",
          "type": "string"
        },
        "panx": {
          "description": "The x position of the pan",
          "type": "string"
        },
        "pany": {
          "description": "The y position of the pan",
          "type": "string"
        },
        "zoomLevel": {
          "description": "Zoom level of the background image",
          "type": "number"
        }
      }
    },
    "PreferenceSave": {
      "properties": {
        "panx": {
          "description": "The x position of the pan. Example: 10px",
          "type": "string"
        },
        "pany": {
          "description": "The y position of the pan. Example: 10px",
          "type": "string"
        },
        "zoomLevel": {
          "description": "Zoom level of the background image",
          "type": "number"
        }
      }
    },
    "PreferencesSaveForUser": {
      "properties": {
        "username": {
          "$ref": "#/definitions/PreferenceSave"
        }
      },
      "required": [
        "username"
      ]
    },
    "PrioObj": {
      "properties": {
        "<prio_id>": {
          "$ref": "#/definitions/Priority"
        }
      },
      "type": "object"
    },
    "Priority": {
      "properties": {
        "comment": {
          "type": "string"
        },
        "gms_marked": {
          "description": "For internal use. Flag to determine if this rule was created by Orchestrator.",
          "type": "boolean"
        },
        "match": {
          "description": "Match the domains under the specified domain group. Format: \"domain_group:group_name\" or \"any\"",
          "type": "string"
        },
        "set": {
          "description": "Set action to the specified profile. Format: profile_name:profile_name",
          "type": "string"
        }
      },
      "required": [
        "match",
        "set"
      ],
      "type": "object"
    },
    "Profile": {
      "properties": {
        "<profile_name>": {
          "$ref": "#/definitions/ProfileObj"
        }
      },
      "type": "object"
    },
    "ProfileObj": {
      "properties": {
        "servers": {
          "description": "DNS server addresses",
          "type": "string"
        },
        "caching": {
          "description": "Enable caching",
          "type": "string"
        }
      },
      "required": [
        "caching",
        "servers"
      ],
      "type": "object"
    },
    "ProxyConfig": {
      "properties": {
        "proxyHost": {
          "description": "The host of the proxy",
          "type": "string"
        },
        "proxyPassword": {
          "description": "The password",
          "type": "string"
        },
        "proxyPort": {
          "default": 80,
          "description": "The port of the proxy",
          "type": "integer"
        },
        "proxyUser": {
          "description": "The user name",
          "type": "string"
        },
        "useProxy": {
          "description": "Use the proxy or not",
          "type": "boolean"
        }
      },
      "required": [
        "proxyHost",
        "proxyPassword",
        "proxyPort",
        "proxyUser",
        "useProxy"
      ],
      "type": "object"
    },
    "RADIUSConfig": {
      "properties": {
        "server": {
          "$ref": "#/definitions/RADIUSConfigMap",
          "description": "RADIUS server settings"
        }
      },
      "required": [
        "server"
      ]
    },
    "RADIUSConfigElement": {
      "properties": {
        "address": {
          "description": "IP Address of RADIUS server",
          "type": "string"
        },
        "auth-port": {
          "description": "Port used by RADIUS server",
          "type": "integer"
        },
        "enable": {
          "description": "To enable/disable RADIUS server",
          "type": "boolean"
        },
        "key": {
          "description": "Shared key used for RADIUS authentication requests",
          "type": "string"
        },
        "retransmit": {
          "description": "Number of retransmit limits for RADIUS server",
          "type": "integer"
        },
        "self": {
          "description": "Order of RADIUS Servers",
          "type": "integer"
        },
        "timeout": {
          "description": "timeout in seconds for authentication requests",
          "type": "integer"
        }
      },
      "required": [
        "address",
        "auth-port",
        "enable",
        "key",
        "retransmit",
        "self",
        "timeout"
      ]
    },
    "RADIUSConfigMap": {
      "description": "You can add a maximum of three RADIUS servers.",
      "properties": {
        "<a number from 1 to 3>": {
          "$ref": "#/definitions/RADIUSConfigElement",
          "description": "Order of RADIUS server"
        }
      },
      "required": [
        "<a number from 1 to 3>"
      ]
    },
    "ReachabilityGMS": {
      "properties": {
        "actualWebProtocolType": {
          "description": "The actual web protocol type",
          "type": "string"
        },
        "hostName": {
          "description": "The hostname of the appliance",
          "type": "string"
        },
        "id": {
          "description": "The device key assigned by Orchestrator",
          "type": "string"
        },
        "neId": {
          "description": "The IP of the appliance",
          "type": "string"
        },
        "state": {
          "description": "The state of the appliance",
          "type": "integer"
        },
        "unsavedChanges": {
          "description": "The status of the unsavedChanges(1-Yes, 0-NO)",
          "type": "integer"
        },
        "userName": {
          "description": "User Name",
          "type": "string"
        }
      },
      "required": [
        "actualWebProtocolType",
        "hostName",
        "id",
        "neId",
        "state",
        "unsavedChanges",
        "userName"
      ],
      "type": "object"
    },
    "ReachabiltyAppliance": {
      "properties": {
        "neIP": {
          "$ref": "#/definitions/ApplianceStatus"
        }
      },
      "required": [
        "neIP"
      ],
      "type": "object"
    },
    "RealTimeStats": {
      "properties": {
        "filter": {
          "description": "For traffic Type : 0 - optimized traffic, 1 - passthrough-shaped, 2 - passthrough-unshaped, 3 - all traffic. Default is 0 - optimized traffic if omitted. For traffic direction: 1 - inbound, 0-outbound ",
          "enum": [
            0,
            1,
            2,
            3
          ],
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "type": {
          "enum": [
            "tunnel",
            "trafficType",
            "app",
            "flow",
            "dscp",
            "trafficClass",
            "shaper",
            "drops"
          ],
          "type": "string"
        }
      },
      "required": [
        "filter",
        "name",
        "type"
      ]
    },
    "RebootHistory": {
      "properties": {
        "nePk": {
          "description": "This is the primary key of the appliance. Every appliance managed by Orchestrator is given a primary key and it uniquely identifies an appliance among all appliances managed by Orchestrator",
          "type": "string"
        },
        "rootCause": {
          "description": "Root cause for the reboot. 'Normal' indicates reboot was initiated by user. 'Unexpected shutdown'- indicates there could be a appliance crash",
          "type": "string"
        },
        "sentToPortal": {
          "description": "boolean flag to indicate whether the reboot record sent to portal or not?",
          "type": "boolean"
        },
        "time": {
          "description": "Epoch time of Appliance reboot Time",
          "type": "integer"
        },
        "version": {
          "description": "Appliance version before it rebooted",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RegionAssociationGETModel": {
      "properties": {
        "nePk": {
          "description": "Appliance ID",
          "type": "string"
        },
        "regionId": {
          "description": "ID of region",
          "type": "integer"
        },
        "regionName": {
          "description": "name of region",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RegionAssociationPutModel": {
      "properties": {
        "regionId": {
          "description": "ID of region",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "RegionModel": {
      "properties": {
        "regionId": {
          "description": "ID of region",
          "type": "integer"
        },
        "regionName": {
          "description": "Name of region",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RegionPostModel": {
      "properties": {
        "regionName": {
          "description": "Name of region",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RegionToOverlay": {
      "properties": {
        "<regionId>": {
          "$ref": "#/definitions/OverlayConfig",
          "description": "Map of regionId to overlay"
        }
      }
    },
    "Release": {
      "properties": {
        "description": {
          "description": "A description of new features or bug fixes in the release",
          "type": "string"
        },
        "product": {
          "description": "The product type, either Orchestrator or vxoa",
          "type": "string"
        },
        "releaseDate": {
          "description": "The unix timestamp representing the date of the release",
          "type": "number"
        },
        "releaseType": {
          "description": "The type of release, ex: BETA",
          "type": "string"
        },
        "version": {
          "description": "The version of the release",
          "type": "string"
        }
      }
    },
    "ReleaseInfo": {
      "properties": {
        "gmsbuilds": {
          "description": "list of  available orchestrator version",
          "items": {
            "$ref": "#/definitions/Release"
          },
          "type": "array"
        },
        "vxoabuilds": {
          "description": "list of  available vxoa version",
          "items": {
            "$ref": "#/definitions/Release"
          },
          "type": "array"
        }
      },
      "required": [
        "gmsbuilds",
        "vxoabuilds"
      ]
    },
    "ReleaseNotification": {
      "properties": {
        "description": {
          "description": "The description to text to show in the notification",
          "type": "string"
        },
        "nextTime": {
          "description": "The next time the notification needs to be shown, in unix timestamp",
          "type": "number"
        },
        "product": {
          "description": "A number indicating which product the notification is for, 1 - Orchestrator, 2 - VXOA",
          "type": "number"
        },
        "version": {
          "description": "The software version for the release",
          "type": "string"
        }
      }
    },
    "RemoteInfo": {
      "properties": {
        "fac": {
          "description": "The value should be one of the all, local0, local1, local2, local3, local4, local5, local6 and local7",
          "type": "string"
        },
        "min_severity": {
          "description": "The value should be one of the none, emergence, alert, critical, error, warning, notice, info and debug",
          "type": "string"
        }
      },
      "required": [
        "fac",
        "min_severity"
      ],
      "type": "object"
    },
    "RemoteItem": {
      "properties": {
        "ip": {
          "description": "valid ip address",
          "type": "string"
        },
        "self": {
          "$ref": "#/definitions/RemoteInfo"
        }
      },
      "required": [
        "ip",
        "self"
      ],
      "type": "object"
    },
    "RemoteObj": {
      "properties": {
        "elements": {
          "items": {
            "$ref": "#/definitions/RemoteItem"
          },
          "type": "array"
        }
      },
      "required": [
        "elements"
      ],
      "type": "object"
    },
    "RequestLoginToken": {
      "properties": {
        "TempCode": {
          "description": "Request a temporary authentication code be sent to your email even if email based two factor authentication is not enabled for your account",
          "type": "boolean"
        },
        "password": {
          "description": "Password",
          "type": "string"
        },
        "user": {
          "description": "User id",
          "type": "string"
        }
      },
      "required": [
        "password",
        "user"
      ]
    },
    "ResetPasswordBody": {
      "properties": {
        "confirmPassword": {
          "description": "confirmPassword",
          "type": "string"
        },
        "id": {
          "description": "Reset Password Identifier",
          "type": "string"
        },
        "password": {
          "description": "password",
          "type": "string"
        },
        "tfaApp": {
          "description": "Use application based two factor authentication",
          "type": "boolean"
        },
        "tfaEmail": {
          "description": "Use email based two factor authentication",
          "type": "boolean"
        }
      },
      "required": [
        "confirmPassword",
        "id",
        "password",
        "tfaApp",
        "tfaEmail"
      ],
      "type": "object"
    },
    "ResetPasswordToken": {
      "properties": {
        "token": {
          "description": "Token for the reset password request",
          "type": "string"
        }
      },
      "required": [
        "token"
      ]
    },
    "RestRequestTimeStatsDetails": {
      "description": "Details of one rest request sent to the appliance's specific resource through web socket or portal web socket",
      "properties": {
        "avgRestRequestTime": {
          "description": "Nonsense",
          "type": "integer"
        },
        "channel": {
          "description": "Nonsense",
          "type": "integer"
        },
        "maxRestRequestTime": {
          "description": "Nonsense",
          "type": "integer"
        },
        "method": {
          "description": "Nonsense",
          "type": "string"
        },
        "minRestRequestTime": {
          "description": "Nonsense",
          "type": "integer"
        },
        "nePk": {
          "description": "Nonsense",
          "type": "string"
        },
        "queryTime": {
          "description": "The time spent for this request to return, if this is a timeout request this value is 0",
          "type": "integer"
        },
        "resourceUrl": {
          "description": "The whole resource string of the request",
          "type": "string"
        },
        "timedout": {
          "description": "To indicate whether it is a timeout request",
          "type": "boolean"
        },
        "timeouts": {
          "description": "Nonsense",
          "type": "integer"
        },
        "timestamp": {
          "description": "The epoch time when the request returned",
          "type": "integer"
        },
        "totalRequests": {
          "description": "Nonsense",
          "type": "integer"
        }
      },
      "required": [
        "avgRestRequestTime",
        "channel",
        "maxRestRequestTime",
        "method",
        "minRestRequestTime",
        "nePk",
        "queryTime",
        "resourceUrl",
        "timedout",
        "timeouts",
        "timestamp",
        "totalRequests"
      ],
      "type": "object"
    },
    "RestRequestTimeStatsSummary": {
      "description": "Summary of rest requests sent to the appliance's specific resource through web socket or portal web socket",
      "properties": {
        "avgRestRequestTime": {
          "description": "The average time spent for the requests to return, and the timeout requests are not taken into account",
          "type": "integer"
        },
        "channel": {
          "description": "Through what web socket the requests were sent, 2 -- portal web socket, 1 -- direct web socket",
          "type": "integer"
        },
        "maxRestRequestTime": {
          "description": "The maximum time spent for the requests to return, and the timeout requests are not taken into account",
          "type": "integer"
        },
        "method": {
          "description": "Request method like GET/POST/PUT/DELETE",
          "type": "string"
        },
        "minRestRequestTime": {
          "description": "The minimum time spent for the requests to return, and the timeout requests are not taken into account",
          "type": "integer"
        },
        "nePk": {
          "description": "The nePk of the appliance",
          "type": "string"
        },
        "queryTime": {
          "description": "Nonsense",
          "type": "integer"
        },
        "resourceBase": {
          "description": "The base resource of the request",
          "type": "string"
        },
        "timedout": {
          "description": "Nonsense",
          "type": "boolean"
        },
        "timeouts": {
          "description": "The count of the timeout requests",
          "type": "integer"
        },
        "timestamp": {
          "description": "Nonsense",
          "type": "integer"
        },
        "totalRequests": {
          "description": "The count of requests sent to this appliance's this resource",
          "type": "integer"
        }
      },
      "required": [
        "avgRestRequestTime",
        "channel",
        "maxRestRequestTime",
        "method",
        "minRestRequestTime",
        "nePk",
        "queryTime",
        "resourceBase",
        "timedout",
        "timeouts",
        "timestamp",
        "totalRequests"
      ],
      "type": "object"
    },
    "ResyncAppliancePost": {
      "properties": {
        "ids": {
          "description": "Array of appliance keys, for eg: ['0.NE','1.NE']",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "ids"
      ],
      "type": "object"
    },
    "Role": {
      "description": "Role Definition",
      "properties": {
        "menuTypeItems": {
          "description": "It should contain at least one menuId. It should not be empty or null",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "net_read": {
          "description": "assign true value to grant read-write level access",
          "type": "boolean"
        }
      },
      "required": [
        "menuTypeItems",
        "net_read"
      ],
      "type": "object"
    },
    "RoleMap": {
      "description": "roleName to roleDefinition mapping pairs",
      "properties": {
        "<rolename>": {
          "$ref": "#/definitions/Role"
        }
      },
      "required": [
        "<rolename>"
      ],
      "type": "object"
    },
    "SMTP": {
      "properties": {
        "emailAuthentication": {
          "description": "boolean values for emailAuthentication",
          "type": "boolean"
        },
        "emailSender": {
          "description": "E-mail address used to send E-mails",
          "type": "string"
        },
        "emailSsl": {
          "description": "Enable or disable Enable SSL ",
          "type": "boolean"
        },
        "password": {
          "description": "E-mail server password",
          "type": "string"
        },
        "requireEmailVerification": {
          "description": "Verification required before sending email",
          "type": "boolean"
        },
        "server": {
          "description": "Address of the E-mail server",
          "type": "string"
        },
        "smtpPort": {
          "description": "SMTP server port",
          "type": "integer"
        },
        "userID": {
          "description": "ID",
          "type": "string"
        }
      },
      "required": [
        "emailAuthentication",
        "emailSender",
        "emailSsl",
        "password",
        "requireEmailVerification",
        "server",
        "smtpPort",
        "userID"
      ]
    },
    "SMTPInfo": {
      "properties": {
        "smtp": {
          "$ref": "#/definitions/SMTP",
          "description": "Object containing values of SMPT user name, password, email server address etc..., "
        }
      },
      "required": [
        "smtp"
      ]
    },
    "SMTPTest": {
      "properties": {
        "emailRecepients": {
          "description": "Test email address ",
          "type": "string"
        },
        "smtp": {
          "$ref": "#/definitions/SMTP",
          "description": "Object containing values of SMPT user name, password, email server address etc..., "
        }
      },
      "required": [
        "emailRecepients",
        "smtp"
      ]
    },
    "SaasSummary": {
      "properties": {
        "enable": {
          "type": "boolean"
        },
        "expire": {
          "type": "integer"
        }
      },
      "required": [
        "enable",
        "expire"
      ],
      "type": "object"
    },
    "SampleLabelSet": {
      "properties": {
        "1": {
          "$ref": "#/definitions/InterfaceLabel"
        },
        "2": {
          "$ref": "#/definitions/InterfaceLabel"
        }
      }
    },
    "SampleServiceSet": {
      "properties": {
        "service_1": {
          "$ref": "#/definitions/Service"
        },
        "service_2": {
          "$ref": "#/definitions/Service"
        }
      }
    },
    "SampleThirdPartyServiceSet": {
      "properties": {
        "<service_id>": {
          "$ref": "#/definitions/ThirdPartyService"
        }
      }
    },
    "SaveChangesPostBody": {
      "properties": {
        "ids": {
          "description": "an array of neIds, neId is the device key assigned by Orchestrator, usually look like '0.NE'.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "ids"
      ],
      "type": "object"
    },
    "SaveUpdateUserBody": {
      "properties": {
        "createDisplayTime": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "isTwoFactorEmail": {
          "type": "boolean"
        },
        "isTwoFactorTime": {
          "type": "boolean"
        },
        "lastName": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "repeatPassword": {
          "type": "string"
        },
        "role": {
          "description": "'Admin Manager' for admin role, 'Network Monitor' for monitor role",
          "type": "string"
        },
        "status": {
          "description": "Takes values 'Active' or 'Inactive'",
          "type": "string"
        },
        "userPk": {
          "description": "Primary key of the user object. Leave it empty if you are creating new user",
          "type": "string"
        },
        "username": {
          "type": "string"
        }
      },
      "required": [
        "createDisplayTime",
        "email",
        "firstName",
        "isTwoFactorEmail",
        "isTwoFactorTime",
        "lastName",
        "password",
        "phone",
        "repeatPassword",
        "role",
        "status",
        "userPk",
        "username"
      ],
      "type": "object"
    },
    "ScheduleTimezoneConfiguration": {
      "properties": {
        "defaultTimezone": {
          "description": "An array of email addresses to send the discovery (discovered, approved and denied EdgeConnects) email to.",
          "type": "string"
        }
      }
    },
    "ScheduledJob2Get": {
      "description": "Describes all the fields in a scheduled job.",
      "properties": {
        "config": {
          "description": "Job configuration",
          "type": "string"
        },
        "cron": {
          "$ref": "#/definitions/cronInfo"
        },
        "currentlyRunning": {
          "description": "Indicates if the job is currently running",
          "type": "boolean"
        },
        "description": {
          "description": "Job description",
          "type": "string"
        },
        "group": {
          "description": "Job group the job belongs to. (name, group) form the key for a job in Quartz scheduler",
          "type": "string"
        },
        "id": {
          "description": "Every job is uniquely identified using this primary key",
          "type": "integer"
        },
        "jobCategory": {
          "description": "Identifies the type of job. 1=TestJob, 2=Orchestrator Report, 3=Orchestrator Backup, 4=Appliance Reboot/Shutdown, 5 = Appliance QOS Scheduling, 6 = IPsec Pre-shared Key Rotation",
          "type": "string"
        },
        "jobType": {
          "description": "1=User defined job and 2=System job",
          "type": "integer"
        },
        "name": {
          "description": "Job name, unique identifier for a job in Quartz scheduler",
          "type": "string"
        },
        "nextFireTime": {
          "description": "Indicates the next time the job will fire in epoch sec",
          "type": "integer"
        },
        "prevFireTime": {
          "description": "Indicates the previous time the job fired in epoch sec",
          "type": "integer"
        },
        "runNow": {
          "description": "Indicates if the job is a 'run now' job. If runNow = false, the job is scheduled to run at a specific time",
          "type": "boolean"
        },
        "schedule": {
          "description": "Schedule of this job",
          "type": "string"
        }
      },
      "required": [
        "config",
        "cron",
        "currentlyRunning",
        "description",
        "group",
        "id",
        "jobCategory",
        "jobType",
        "name",
        "nextFireTime",
        "prevFireTime",
        "runNow",
        "schedule"
      ],
      "type": "object"
    },
    "ScheduledJob2Post": {
      "description": "New job fields",
      "properties": {
        "config": {
          "description": "Job configuration",
          "type": "string"
        },
        "description": {
          "description": "Job description",
          "type": "string"
        },
        "jobCategory": {
          "description": "Identifies the type of job. 1=TestJob, 2=Orchestrator Report, 3=Orchestrator Backup, 4 - Appliance Reboot/Shutdown, 5 = Appliance QOS Scheduling, 6 = IPsec Pre-shared Key Rotation",
          "type": "string"
        },
        "schedule": {
          "description": "Schedule of this job",
          "type": "string"
        },
        "targetAppliance": {
          "$ref": "#/definitions/targetAppliance"
        }
      },
      "required": [
        "config",
        "description",
        "jobCategory",
        "schedule"
      ],
      "type": "object"
    },
    "ScheduledJobsList": {
      "items": {
        "$ref": "#/definitions/ScheduledJobItem"
      },
      "type": "object"
    },
    "SecMapPriorities": {
      "properties": {
        "<priorityNumber>": {
          "$ref": "#/definitions/SecMapPriority"
        }
      },
      "type": "object"
    },
    "SecMapPriority": {
      "properties": {
        "comment": {
          "type": "string"
        },
        "gms_marked": {
          "description": "For internal use. Flag to determine if this rule was created by Orchestrator.",
          "type": "boolean"
        },
        "match": {
          "description": "Object containing rules to match traffic.",
          "type": "object"
        },
        "misc": {
          "description": "Object to hold miscellaneous field like rule, logging, logging priority, etc.",
          "type": "object"
        },
        "self": {},
        "set": {
          "description": "Object to hold set action eg: action: allow/deny",
          "type": "object"
        }
      },
      "type": "object"
    },
    "SecurityMap": {
      "properties": {
        "prio": {
          "$ref": "#/definitions/SecMapPriorities"
        }
      },
      "type": "object"
    },
    "SecurityMaps": {
      "properties": {
        "map1": {
          "$ref": "#/definitions/SecurityMapsObj"
        }
      },
      "type": "object"
    },
    "SecurityMapsObj": {
      "properties": {
        "<zoneFromId_zoneToId>": {
          "$ref": "#/definitions/SecurityMap"
        }
      },
      "type": "object"
    },
    "SecurityPolicyAggregateStats": {
      "properties": {
        "HOSTNAME": {
          "description": "The host name of the appliance to which the data belong, if groupByNE was set false, this field means nothing",
          "type": "string"
        },
        "IP": {
          "description": "The IP address of the appliance to which the data belong, if groupByNE was set false, this field means nothing",
          "type": "string"
        },
        "MAX_TIMESTAMP": {
          "description": "The maximum timestamp of the stats data of this appliance to aggregate",
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "description": "The minimum timestamp of the stats data of this appliance to aggregate",
          "type": "integer"
        },
        "flows_allowed": {
          "description": "The number allowed flows",
          "type": "integer"
        },
        "flows_dropped": {
          "description": "The number dropped flows",
          "type": "integer"
        },
        "fromZone": {
          "description": "The ID of the source zone of this zone pair",
          "type": "string"
        },
        "nePk": {
          "description": "The internal ID of the appliance to which the data belong, if groupByNE was set false, this field means nothing",
          "type": "string"
        },
        "policy_drop_bytes": {
          "description": "The number dropped bytes because of policy configuration",
          "type": "integer"
        },
        "policy_drop_pkts": {
          "description": "The number dropped packets because of policy configuration",
          "type": "integer"
        },
        "routing_drop_bytes": {
          "description": "The number dropped bytes because of routing",
          "type": "integer"
        },
        "routing_drop_pkts": {
          "description": "The number dropped packets because of routing",
          "type": "integer"
        },
        "rx_bytes": {
          "description": "The number inbound bytes into the destination zone, please mind that the acknowledge traffic would also be included",
          "type": "integer"
        },
        "rx_pkts": {
          "description": "The number inbound packets into the destination zone, please mind that the acknowledge traffic would also be included",
          "type": "integer"
        },
        "toZone": {
          "description": "The ID of the destination zone of this zone pair",
          "type": "string"
        },
        "tx_bytes": {
          "description": "The number outbound bytes",
          "type": "integer"
        },
        "tx_pkts": {
          "description": "The number outbound packets",
          "type": "integer"
        }
      },
      "required": [
        "HOSTNAME",
        "IP",
        "MAX_TIMESTAMP",
        "MIN_TIMESTAMP",
        "flows_allowed",
        "flows_dropped",
        "fromZone",
        "nePk",
        "policy_drop_bytes",
        "policy_drop_pkts",
        "routing_drop_bytes",
        "routing_drop_pkts",
        "rx_bytes",
        "rx_pkts",
        "toZone",
        "tx_bytes",
        "tx_pkts"
      ]
    },
    "SecurityPolicyTimeSeries": {
      "properties": {
        "column_def": {
          "description": "These names correspond to each stats field in the array of stats.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "data": {
          "description": "An array that contains the stats data of specific security policy of current appliance",
          "items": {
            "$ref": "#/definitions/SecurityPolicyTimeSeriesData",
            "description": "An array that contains the stats data of a certain timestamp"
          },
          "type": "array"
        }
      },
      "required": [
        "column_def",
        "data"
      ]
    },
    "SecurityPolicyTimeSeriesData": {
      "description": "The stats data of a certain timestamp.",
      "items": {
        "type": "object"
      },
      "type": "array"
    },
    "Service": {
      "properties": {
        "name": {
          "description": "The name of the service",
          "type": "string"
        }
      }
    },
    "ServiceIdToSaasId": {
      "properties": {
        "country": {
          "type": "string"
        },
        "countryCode": {
          "type": "string"
        },
        "displayName": {
          "description": "Combination of country, org, saasAppName. Used to display this entry in the UI.",
          "type": "string"
        },
        "org": {
          "type": "string"
        },
        "saasAppName": {
          "type": "string"
        },
        "saasId": {
          "type": "integer"
        }
      }
    },
    "ServiceIdToSaasIdCountGet": {
      "properties": {
        "count": {
          "type": "number"
        }
      }
    },
    "ServiceIdToSaasIdCountriesGet": {
      "properties": {
        "country": {
          "description": "Array representing service details  [serviceId, saasId, country, countryCode, org, saasAppName, displayName, priority]",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "ServiceIdToSaasIdGet": {
      "properties": {
        "serviceId": {
          "description": "Array representing service details  [serviceId, saasId, country, countryCode, org, saasAppName, displayName, priority]",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "Session": {
      "properties": {
        "gid": {
          "description": "gid of the user",
          "type": "integer"
        },
        "idle_time": {
          "description": "Idle time of the user",
          "type": "string"
        },
        "login_time": {
          "description": "User login time",
          "type": "string"
        },
        "port": {
          "description": "The value is web by default",
          "type": "string"
        },
        "remote_host": {
          "description": "Remote host IP address",
          "type": "string"
        },
        "username": {
          "description": "Logged in user name",
          "type": "string"
        }
      },
      "required": [
        "gid",
        "idle_time",
        "login_time",
        "port",
        "remote_host",
        "username"
      ],
      "type": "object"
    },
    "SessionGetItem": {
      "properties": {
        "lastInteractionTime": {
          "type": "integer"
        },
        "loggedInTime": {
          "type": "integer"
        },
        "role": {
          "type": "string"
        },
        "userName": {
          "type": "string"
        },
        "webClient": {
          "type": "boolean"
        }
      },
      "required": [
        "lastInteractionTime",
        "loggedInTime",
        "userName",
        "webClient"
      ],
      "type": "object"
    },
    "SessionMap": {
      "properties": {
        "<a number of from 1>": {
          "$ref": "#/definitions/Session",
          "description": "Order of session number"
        }
      },
      "required": [
        "<a number of from 1>"
      ],
      "type": "object"
    },
    "SeverityConfig": {
      "properties": {
        "65536": {
          "description": "\"Critical\"",
          "type": "string"
        }
      },
      "required": [
        "65536"
      ],
      "type": "object"
    },
    "ShaperTimeSeriesStatsData": {
      "description": "An array that contains the stats data of a certain timestamp.",
      "items": {},
      "properties": {
        "DIRECTION": {
          "description": "Traffic class value",
          "type": "integer"
        },
        "TIMESTAMP": {
          "description": "Timestamp in EPOCH time, all timestamp fields are in EPOCH time",
          "type": "integer"
        },
        "TRAFFIC_CLASS": {
          "description": "Traffic class value",
          "type": "integer"
        },
        "otherDrops": {
          "description": "Other drops",
          "type": "integer"
        },
        "qosDrops": {
          "description": "QOS drops",
          "type": "integer"
        },
        "shapedBytes": {
          "description": "Shaped Bytes",
          "type": "integer"
        },
        "shapedPkts": {
          "description": "Shaped Packets",
          "type": "integer"
        },
        "totalBytes": {
          "description": "Total Bytes",
          "type": "integer"
        },
        "totalWait": {
          "description": "Total wait",
          "type": "integer"
        },
        "waitCount": {
          "description": "Wait count",
          "type": "integer"
        }
      },
      "type": "array"
    },
    "ShaperTimeSeriesStatsDataMultiAppliances": {
      "properties": {
        "<nePk/IP>": {
          "items": {
            "$ref": "#/definitions/ShaperTimeSeriesStatsData"
          },
          "type": "array"
        }
      }
    },
    "ShaperTimeSeriesStatsMultiAppliances": {
      "properties": {
        "column_def": {
          "description": "These names correspond to each stats field in the array of stats.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "data": {
          "$ref": "#/definitions/ShaperTimeSeriesStatsDataMultiAppliances"
        }
      }
    },
    "SingleNextHop": {
      "properties": {
        "comment": {
          "description": "A comment associated with the subnet entry",
          "type": "string"
        },
        "dir": {
          "description": "A tag to specify a generic route property eg: direction. Currently supported enums are [ANY, FROM_LAN, FROM_WAN]",
          "type": "string"
        },
        "metric": {
          "description": "A metric value between 1 and 100. Lower values have higher priority ",
          "type": "integer"
        }
      },
      "required": [
        "metric"
      ]
    },
    "SingleSubnet": {
      "properties": {
        "advert": {
          "description": "Advertize this subnet to other Silverpeak appliances",
          "type": "boolean"
        },
        "advert_bgp": {
          "description": "flag to enable/disable capability to advertise learned subnet routes to bgp ",
          "type": "boolean"
        },
        "exclude": {
          "description": "Use this to exclude advertizement of a sub-subnet from a bigger advertized subnet",
          "type": "boolean"
        },
        "nhop": {
          "$ref": "#/definitions/nextHop",
          "description": "Information for a configured nextHops."
        }
      },
      "required": [
        "nhop"
      ]
    },
    "SnmpAccess": {
      "properties": {
        "rocommunity": {
          "description": "SNMP read-only community string",
          "type": "string"
        }
      },
      "required": [
        "rocommunity"
      ],
      "type": "object"
    },
    "SnmpAdmin": {
      "properties": {
        "auth_key": {
          "description": "Hashed authentication password",
          "type": "string"
        },
        "enable": {
          "description": "Is admin user enabled as SNMP v3 user",
          "type": "boolean"
        },
        "hash_type": {
          "description": "Hashing algorithm used for encrypting authentication password",
          "type": "string"
        },
        "privacy_key": {
          "description": "Hashed privacy password",
          "type": "string"
        },
        "privacy_type": {
          "description": "Hashing algorithm used for encrypting privacy password",
          "type": "string"
        },
        "self": {
          "description": "admin user, only admin user is available as an SNMP v3 user",
          "type": "string"
        }
      },
      "required": [
        "auth_key",
        "enable",
        "hash_type",
        "privacy_key",
        "privacy_type",
        "self"
      ],
      "type": "object"
    },
    "SnmpItem": {
      "properties": {
        "access": {
          "$ref": "#/definitions/SnmpAccess",
          "description": "SNMP Access community string information"
        },
        "auto_launch": {
          "description": "Is SNMP Agent enabled at system start up",
          "type": "boolean"
        },
        "listen": {
          "$ref": "#/definitions/SnmpListen",
          "description": "SNMP agent enable state"
        },
        "syscontact": {
          "description": "SNMP MIB II object 'sysContact' value",
          "type": "string"
        },
        "sysdescr": {
          "description": "SNMP MIB II object 'sysDescr' value",
          "type": "string"
        },
        "syslocation": {
          "description": "SNMP MIB II object 'sysLocation' value",
          "type": "string"
        },
        "traps": {
          "$ref": "#/definitions/SnmpTraps",
          "description": "SNMP Trap enable state and access information"
        },
        "v3": {
          "$ref": "#/definitions/SnmpV3UserInfo",
          "description": "SNMP v3 user information"
        }
      },
      "required": [
        "access",
        "auto_launch",
        "listen",
        "syscontact",
        "sysdescr",
        "syslocation",
        "traps",
        "v3"
      ],
      "type": "object"
    },
    "SnmpListen": {
      "properties": {
        "enable": {
          "description": "Is SNMP agent listening at SNMP port (161)",
          "type": "boolean"
        }
      },
      "required": [
        "enable"
      ],
      "type": "object"
    },
    "SnmpTraps": {
      "properties": {
        "enable": {
          "description": "Is SNMP trap event enabled",
          "type": "boolean"
        },
        "trap_community": {
          "description": "Community string for SNMP trap event",
          "type": "string"
        }
      },
      "required": [
        "enable",
        "trap_community"
      ],
      "type": "object"
    },
    "SnmpUser": {
      "properties": {
        "admin": {
          "$ref": "#/definitions/SnmpAdmin"
        }
      },
      "required": [
        "admin"
      ],
      "type": "object"
    },
    "SnmpV3UserInfo": {
      "properties": {
        "users": {
          "$ref": "#/definitions/SnmpUser"
        }
      },
      "required": [
        "users"
      ],
      "type": "object"
    },
    "SourceNePkToDestNePkPhysicalTunnelsMap": {
      "properties": {
        "nePk": {
          "$ref": "#/definitions/DestNepkToPhysicalTunnelsMap"
        }
      },
      "type": "object"
    },
    "SourceNePkToDestNePkTunnelsMap": {
      "properties": {
        "nePk": {
          "$ref": "#/definitions/DestNepkToTunnelsMap"
        }
      },
      "type": "object"
    },
    "SpPortalAccountLicenseFeature": {
      "description": "Portal account license feature information",
      "properties": {
        "displayName": {
          "type": "string"
        },
        "expire": {
          "type": "number"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "SpPortalAccountLicenseType": {
      "description": "Portal account type information",
      "properties": {
        "displayName": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "SpPortalApplianceToLicenseMap": {
      "properties": {
        "applianceId": {
          "description": "Portal mongo object id for the appliance",
          "type": "string"
        },
        "licenseId": {
          "description": "Portal mongo object id for the ecsp license",
          "type": "string"
        }
      },
      "required": [
        "applianceId",
        "licenseId"
      ],
      "type": "object"
    },
    "SpPortalConfig": {
      "description": "Portal registration information",
      "properties": {
        "host": {
          "type": "string"
        },
        "port": {
          "type": "number"
        },
        "registration": {
          "$ref": "#/definitions/SpPortalConfigRegistration"
        }
      },
      "type": "object"
    },
    "SpPortalConfigRegistration": {
      "properties": {
        "account": {
          "type": "string"
        },
        "accountId": {
          "type": "string"
        },
        "group": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "oldKey": {
          "type": "string"
        },
        "site": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "SpPortalConnectivityGet": {
      "properties": {
        "portal": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "SpPortalECSPLicense": {
      "description": "EC-SP license details",
      "properties": {
        "_id": {
          "type": "string"
        },
        "account": {
          "type": "string"
        },
        "appliance": {
          "type": "string"
        },
        "bandwidth": {
          "type": "number"
        },
        "boostBandwidth": {
          "type": "number"
        },
        "desc": {
          "type": "string"
        },
        "endDate": {
          "type": "number"
        },
        "name": {
          "type": "string"
        },
        "numOverlays": {
          "type": "number"
        },
        "quantity": {
          "type": "number"
        },
        "salesforceId": {
          "type": "string"
        },
        "salesforceSerial": {
          "type": "string"
        },
        "startDate": {
          "type": "number"
        },
        "subAccount": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "SpPortalECSPLicenseAssign": {
      "properties": {
        "licenses": {
          "items": {
            "$ref": "#/definitions/SpPortalApplianceToLicenseMap"
          },
          "type": "array"
        }
      },
      "required": [
        "licenses"
      ],
      "type": "object"
    },
    "SpPortalECSPLicenseUnassign": {
      "properties": {
        "licenses": {
          "items": {
            "$ref": "#/definitions/SpPortalLicenseCollection"
          },
          "type": "array"
        }
      },
      "required": [
        "licenses"
      ],
      "type": "object"
    },
    "SpPortalLicenseCollection": {
      "properties": {
        "licenseId": {
          "description": "Portal mongo object id for the ecsp license",
          "type": "string"
        }
      },
      "required": [
        "licenseId"
      ],
      "type": "object"
    },
    "SpPortalService": {
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "inProgress": {
          "type": "boolean"
        },
        "state": {
          "$ref": "#/definitions/SpPortalServiceState"
        }
      },
      "type": "object"
    },
    "SpPortalServiceState": {
      "properties": {
        "fail": {
          "description": "Number of failed runs since Orchestrator service start.",
          "type": "number"
        },
        "lastFail": {
          "description": "Timestamp of last failed run.",
          "type": "number"
        },
        "lastOk": {
          "description": "Timestamp of last successful run.",
          "type": "number"
        },
        "ok": {
          "description": "Number of successful runs since Orchestrator service start.",
          "type": "number"
        },
        "pollFailInterval": {
          "description": "Polling schedule after failure in minutes.",
          "type": "number"
        },
        "pollInterval": {
          "description": "Polling schedule in minutes.",
          "type": "number"
        },
        "tickCount": {
          "description": "Number of minutes remaining until next execution.",
          "type": "number"
        }
      },
      "type": "object"
    },
    "SpPortalStatusGetResponse": {
      "description": "Collection of GeoLocationObject indexed by ip address value",
      "properties": {
        "<serviceName>": {
          "$ref": "#/definitions/SpPortalService"
        }
      },
      "type": "object"
    },
    "StateObj": {
      "properties": {
        "neighbor": {
          "$ref": "#/definitions/NeighborStateInfo"
        },
        "summary": {
          "$ref": "#/definitions/BgpStateSummary"
        }
      },
      "type": "object"
    },
    "StatsConfig": {
      "properties": {
        "app": {
          "$ref": "#/definitions/StatsOfOneType"
        },
        "dns": {
          "$ref": "#/definitions/StatsOfOneType"
        },
        "flows_csv_enable": {
          "description": "Need some description here....",
          "type": "boolean"
        },
        "ip": {
          "$ref": "#/definitions/StatsOfOneType"
        },
        "minuteRetention": {
          "description": "The setting of how many minutes of minute stats this appliance will keep",
          "type": "integer"
        },
        "port": {
          "$ref": "#/definitions/StatsOfOneType"
        },
        "verticalRetention": {
          "description": "The setting of how many days of vertical stats this appliance will keep",
          "type": "integer"
        }
      },
      "required": [
        "app",
        "dns",
        "flows_csv_enable",
        "ip",
        "minuteRetention",
        "port",
        "verticalRetention"
      ],
      "type": "object"
    },
    "StatsOfAppliances": {
      "properties": {
        "appliance-name": {
          "$ref": "#/definitions/appliance-Entity"
        }
      },
      "required": [
        "appliance-name"
      ]
    },
    "StatsOfOneType": {
      "properties": {
        "evict_enable": {
          "description": "Need some description here....",
          "type": "boolean"
        },
        "max_items": {
          "description": "-1 indicates that appliance controls the number of entries",
          "type": "integer"
        }
      },
      "required": [
        "evict_enable",
        "max_items"
      ],
      "type": "object"
    },
    "Subnet": {
      "properties": {
        "advertized": {
          "description": "No-not advertised, Yes-advertised",
          "type": "string"
        },
        "application": {
          "description": "Cloud Application name",
          "type": "string"
        },
        "domain": {
          "description": "Comma separated list of domains",
          "type": "string"
        },
        "ip_addr": {
          "description": "Reachable IP Address of this subnet",
          "type": "string"
        },
        "nat_action": {
          "type": "number"
        },
        "ping_method": {
          "description": "Protocol used to ping this IP (TCP/UDP)",
          "type": "string"
        },
        "ping_port": {
          "description": "Port used to ping (80/443)",
          "type": "string"
        },
        "priority": {
          "type": "number"
        },
        "rtt": {
          "description": "Calculated RTT value for this ip in ms. 9999 if its not reachable",
          "type": "number"
        },
        "saas_id": {
          "type": "string"
        },
        "subnet": {
          "description": "Cloud Application subnet value",
          "type": "string"
        },
        "subnet_action": {
          "type": "number"
        },
        "threshold": {
          "description": "RTT threshold value in ms. RTTs above this are advertised",
          "type": "number"
        }
      }
    },
    "SubnetKeyVal": {
      "properties": {
        "x.x.x.x/x": {
          "$ref": "#/definitions/SingleSubnet",
          "description": "Information for a single configured subnet"
        },
        "y.y.y.y/y": {
          "$ref": "#/definitions/SingleSubnet",
          "description": "Information for a single configured subnet"
        }
      }
    },
    "Subnets": {
      "properties": {
        "count": {
          "description": "The number of the subnets.",
          "type": "integer"
        },
        "entries": {
          "description": "Each element of this array is one object describing a subnet's detail information, and the minimum number of the elements is 0",
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "max": {
          "description": "The max number of the subnets this appliance can have.",
          "type": "integer"
        }
      },
      "required": [
        "count",
        "entries",
        "max"
      ],
      "type": "object"
    },
    "SubnetsPost": {
      "properties": {
        "data": {
          "$ref": "#/definitions/SubnetsPostData",
          "description": "Subnets data"
        },
        "options": {
          "$ref": "#/definitions/SubnetsPostOptions",
          "description": "Subnets options"
        }
      },
      "type": "object"
    },
    "SubnetsPostData": {
      "properties": {
        "prefix": {
          "$ref": "#/definitions/SubnetKeyVal",
          "description": "A hashmap of subnets with key: x.x.x.x/x"
        }
      }
    },
    "SubnetsPostOptions": {
      "properties": {
        "auto_subnet": {
          "$ref": "#/definitions/AutoSubnet",
          "description": "Subnet settings"
        }
      },
      "type": "object"
    },
    "SubnetsSystemJson": {
      "properties": {
        "auto_subnet": {
          "$ref": "#/definitions/AutoSubnet",
          "description": "Subnet settings"
        }
      },
      "type": "object"
    },
    "Subscription": {
      "properties": {
        "cloud": {
          "description": "Zscaler Cloud. e.g. 'admin.zscalerthree.net'",
          "type": "string"
        },
        "domain": {
          "description": "Domain to use for VPN credentials",
          "type": "string"
        },
        "partnerKey": {
          "description": "Zscaler Third Party Key for SilverPeak.",
          "type": "string"
        },
        "password": {
          "description": "Zscaler Third Party Admin User Password. Required for the first time or if you want to change password",
          "type": "string"
        },
        "username": {
          "description": "Zscaler Third Party Admin Username. e.g. 'adminuser@company.com'",
          "type": "string"
        }
      },
      "required": [
        "cloud",
        "domain",
        "partnerKey",
        "username"
      ],
      "type": "object"
    },
    "TACACSConfig": {
      "properties": {
        "server": {
          "$ref": "#/definitions/TACACSConfigMap",
          "description": "TACACS server settings"
        }
      },
      "required": [
        "server"
      ]
    },
    "TACACSConfigElement": {
      "properties": {
        "address": {
          "description": "IP Address of TACACS server",
          "type": "string"
        },
        "auth-port": {
          "description": "Port used by TACACS server",
          "type": "integer"
        },
        "auth-type": {
          "description": "Authentication type used by TACACS server",
          "type": "string"
        },
        "enable": {
          "description": "To enable/disable TACACS server",
          "type": "boolean"
        },
        "key": {
          "description": "Shared key used for TACACS authentication requests",
          "type": "string"
        },
        "retransmit": {
          "description": "Number of retransmit limits for TACACS server",
          "type": "integer"
        },
        "self": {
          "description": "Order of TACACS Servers",
          "type": "integer"
        },
        "timeout": {
          "description": "timeout in seconds for authentication requests",
          "type": "integer"
        }
      },
      "required": [
        "address",
        "auth-port",
        "auth-type",
        "enable",
        "key",
        "retransmit",
        "self",
        "timeout"
      ]
    },
    "TACACSConfigMap": {
      "description": "You can add a maximum of three TACACS servers.",
      "properties": {
        "<a number from 1 to 3>": {
          "$ref": "#/definitions/TACACSConfigElement",
          "description": "Order of TACACS server"
        }
      },
      "required": [
        "<a number from 1 to 3>"
      ]
    },
    "TCTunnelsThreshold": {
      "properties": {
        "fastfail": {
          "type": "number"
        }
      },
      "type": "object"
    },
    "TcaDataInfo": {
      "properties": {
        "UI": {
          "$ref": "#/definitions/TcaUIInfo"
        },
        "allow_disable": {
          "description": "Need description here",
          "type": "boolean"
        },
        "allow_falling": {
          "description": "Need description here",
          "type": "boolean"
        },
        "allow_rising": {
          "description": "Need description here",
          "type": "boolean"
        },
        "dft": {
          "$ref": "#/definitions/DftData"
        },
        "threshold_max": {
          "description": "Need description here",
          "type": "integer"
        },
        "threshold_min": {
          "description": "Need description here",
          "type": "integer"
        }
      },
      "required": [
        "UI",
        "allow_disable",
        "allow_falling",
        "allow_rising",
        "dft",
        "threshold_max",
        "threshold_min"
      ],
      "type": "object"
    },
    "TcaInfo": {
      "properties": {
        "file-system-utilization": {
          "$ref": "#/definitions/TcaDataInfo",
          "description": "tca id"
        },
        "lan-side-rx-throughput": {
          "$ref": "#/definitions/TcaDataInfo",
          "description": "tca id"
        },
        "latency": {
          "$ref": "#/definitions/TcaDataInfo",
          "description": "tca id"
        },
        "loss-post-fec": {
          "$ref": "#/definitions/TcaDataInfo",
          "description": "tca id"
        },
        "loss-pre-fec": {
          "$ref": "#/definitions/TcaDataInfo",
          "description": "tca id"
        },
        "oop-post-poc": {
          "$ref": "#/definitions/TcaDataInfo",
          "description": "tca id"
        },
        "oop-pre-poc": {
          "$ref": "#/definitions/TcaDataInfo",
          "description": "tca id"
        },
        "optimized-flows": {
          "$ref": "#/definitions/TcaDataInfo",
          "description": "tca id"
        },
        "reduction": {
          "$ref": "#/definitions/TcaDataInfo",
          "description": "tca id"
        },
        "total-flows": {
          "$ref": "#/definitions/TcaDataInfo",
          "description": "tca id"
        },
        "utilization": {
          "$ref": "#/definitions/TcaDataInfo",
          "description": "tca id"
        },
        "wan-side-tx-throughput": {
          "$ref": "#/definitions/TcaDataInfo",
          "description": "tca id"
        }
      },
      "required": [
        "file-system-utilization",
        "lan-side-rx-throughput",
        "latency",
        "loss-post-fec",
        "loss-pre-fec",
        "oop-post-poc",
        "oop-pre-poc",
        "optimized-flows",
        "reduction",
        "total-flows",
        "utilization",
        "wan-side-tx-throughput"
      ],
      "type": "object"
    },
    "TcaUIInfo": {
      "properties": {
        "allow_config": {
          "description": "Need description here",
          "type": "boolean"
        },
        "descr": {
          "description": "Need description here",
          "type": "string"
        },
        "inst_bname": {
          "$ref": "#/definitions/InstBNameData",
          "description": "While the tca id is one of file-system-utilization, lan-side-rx-throughput, optimized-flows, wan-side-tx-throughput and total-flows, inst_bname will not be exsit."
        },
        "units": {
          "description": "Need description here",
          "type": "string"
        }
      },
      "required": [
        "allow_config",
        "descr",
        "units"
      ],
      "type": "object"
    },
    "TcpdumpStatus": {
      "properties": {
        "active": {
          "description": "Boolean value indicating whether packet capture process is running",
          "type": "boolean"
        },
        "lastOneDone": {
          "description": "Boolean value indication whether packet capture is already finish but still remains in post run processing stage",
          "type": "boolean"
        },
        "progress": {
          "description": "Progress info of current packet capture, percentage",
          "format": "double",
          "type": "number"
        }
      },
      "required": [
        "active",
        "lastOneDone",
        "progress"
      ],
      "type": "object"
    },
    "TemplateApplyResponse": {
      "properties": {
        "groupName": {
          "description": "Name of the template group",
          "type": "string"
        },
        "nePk": {
          "description": "Appliance ID",
          "type": "string"
        },
        "status": {
          "$ref": "#/definitions/TemplateApplyStatusResponse",
          "description": "Template application status"
        },
        "templateName": {
          "description": "Name of the template",
          "type": "string"
        }
      },
      "required": [
        "groupName",
        "nePk",
        "status",
        "templateName"
      ],
      "type": "object"
    },
    "TemplateApplyStatusResponse": {
      "properties": {
        "message": {
          "type": "string"
        },
        "statusCode": {
          "type": "integer"
        }
      },
      "required": [
        "message",
        "statusCode"
      ],
      "type": "object"
    },
    "TemplateCreateBody": {
      "properties": {
        "name": {
          "type": "string"
        },
        "templates": {
          "description": "An array of the templates you want to create/update",
          "items": {
            "$ref": "#/definitions/TemplatePOST"
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "templates"
      ],
      "type": "object"
    },
    "TemplateGroupPriorities": {
      "description": "Map of appliance IDs to template group names associated with them",
      "properties": {
        "priorities": {
          "description": "Names of the template groups associated with this appliance",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "TemplateGroupsItem": {
      "description": "Template group data",
      "properties": {
        "name": {
          "description": "Name of the template group",
          "type": "string"
        },
        "selectedTemplates": {
          "description": "All selected template(s) data in the template group",
          "items": {
            "type": "object"
          },
          "type": "array"
        },
        "templates": {
          "description": "All templates data in the template group",
          "items": {
            "type": "object"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "TemplateHistoryItem": {
      "properties": {
        "appliedOn": {
          "type": "integer"
        },
        "nePk": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "statusMessage": {
          "type": "string"
        },
        "templateGroup": {
          "type": "string"
        },
        "templateName": {
          "type": "string"
        },
        "user": {
          "type": "string"
        }
      },
      "required": [
        "appliedOn",
        "nePk",
        "status",
        "statusMessage",
        "templateGroup",
        "templateName",
        "user"
      ],
      "type": "object"
    },
    "TemplateItem": {
      "properties": {
        "buildVersion": {
          "type": "string"
        },
        "isselected": {
          "type": "boolean"
        },
        "lastSaved": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "valObject": {
          "type": "object"
        },
        "value": {
          "type": "object"
        }
      },
      "required": [
        "buildVersion",
        "isselected",
        "lastSaved",
        "name",
        "path",
        "valObject",
        "value"
      ],
      "type": "object"
    },
    "TemplatePOST": {
      "properties": {
        "name": {
          "description": "The name of the template. See the default template group for all the names of the templates",
          "type": "string"
        },
        "valObject": {
          "description": "The template data to configure.",
          "type": "object"
        }
      }
    },
    "ThirdPartyLicenses": {
      "items": {
        "type": "object"
      },
      "type": "array"
    },
    "ThirdPartyService": {
      "properties": {
        "enabled": {
          "description": "Service is enabled/used",
          "type": "boolean"
        },
        "img": {
          "description": "Path to the third party icon image",
          "type": "string"
        },
        "name": {
          "description": "The display name of the service. Pass through tunnel will use a dynamically generated service/peer name",
          "type": "string"
        },
        "peerName": {
          "description": "Service peer name(wildcard)",
          "type": "string"
        }
      }
    },
    "ThirdPartyTunnelConfigData": {
      "properties": {
        "admin": {
          "description": "Admin state of the tunnel - takes two values: 'up' or 'down'.",
          "type": "string"
        },
        "auto_mtu": {
          "description": "Determines if the tunnel should have auto MTU detection.",
          "type": "boolean"
        },
        "bound_tun": {
          "$ref": "#/definitions/BoundTunnels"
        },
        "ctrl_pkt": {
          "$ref": "#/definitions/FecSettings"
        },
        "destination": {
          "description": "Destination IP address.",
          "type": "string"
        },
        "gre_proto": {
          "description": "GRE protocol in the GRE header",
          "type": "integer"
        },
        "id2": {
          "description": "id of overlay 1-7",
          "type": "integer"
        },
        "ipsec_arc_window": {
          "description": "IPSec ARC Window - not configurable.",
          "type": "string"
        },
        "ipsec_enable": {
          "description": "A quick shortcut for knowing if tunnel mode is IPSec. You can get the same information using mode property.",
          "type": "boolean"
        },
        "max_bw": {
          "description": "If the tunnel max bandwidth is manually configured, use this field and set max_bw_auto to false. Units Kbps.",
          "type": "integer"
        },
        "max_bw_auto": {
          "description": "If the tunnel max bandwidth needs to be set to auto, this field must be true.",
          "type": "boolean"
        },
        "min_bw": {
          "description": "Tunnel minimum bandwidth",
          "type": "integer"
        },
        "mode": {
          "description": "Tunnel mode: it can be one of 'gre', 'udp', 'ipsec'",
          "type": "string"
        },
        "mtu": {
          "description": "Tunnel MTU. If 'auto_mtu' is false, user must set a specific tunnel mtu value",
          "type": "integer"
        },
        "options": {
          "description": "Not used",
          "type": "integer"
        },
        "pkt": {
          "$ref": "#/definitions/FecSettings"
        },
        "self": {
          "description": "The value is the same as the tunnel name.",
          "type": "string"
        },
        "source": {
          "description": "Source IP address of the tunnel.",
          "type": "string"
        },
        "tag_name": {
          "description": "name of overlay",
          "type": "string"
        },
        "threshold": {
          "$ref": "#/definitions/TunnelHealthFailureCount"
        },
        "type": {
          "description": "Not used",
          "type": "string"
        },
        "udp_dest_port": {
          "description": "If the tunnel is of type 'udp', the udp port to use.",
          "type": "integer"
        },
        "udp_flows": {
          "description": "If tunnel mode is udp, this field determines how many different udp flows are used to distribute tunnel traffic",
          "type": "integer"
        }
      },
      "required": [
        "admin",
        "auto_mtu",
        "bound_tun",
        "destination",
        "gre_proto",
        "id2",
        "ipsec_arc_window",
        "ipsec_enable",
        "max_bw",
        "max_bw_auto",
        "min_bw",
        "mode",
        "mtu",
        "self",
        "source",
        "tag_name",
        "udp_flows"
      ],
      "type": "object"
    },
    "ThirdPartyTunnelsConfigAndStates": {
      "properties": {
        "<tunnel name>": {
          "$ref": "#/definitions/ThirdPartyTunnelConfigData",
          "description": "Need description here"
        },
        "allTunnelState": {
          "$ref": "#/definitions/AllStates",
          "description": "Need description here"
        }
      },
      "required": [
        "<tunnel name>",
        "allTunnelState"
      ],
      "type": "object"
    },
    "Tier": {
      "properties": {
        "count": {
          "type": "integer"
        },
        "display": {
          "type": "string"
        }
      },
      "required": [
        "count",
        "display"
      ],
      "type": "object"
    },
    "TierSummary": {
      "properties": {
        "<tier>": {
          "$ref": "#/definitions/Tier"
        }
      },
      "required": [
        "<tier>"
      ],
      "type": "object"
    },
    "TimeSeriesBoostStats": {
      "properties": {
        "column_def": {
          "description": "These names correspond to each stats field in the array of stats.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "data": {
          "description": "An array that contains the stats data of specific tunnel of current appliance",
          "items": {
            "$ref": "#/definitions/TimeSeriesBoostStatsData",
            "description": "An array that contains the stats data of a certain timestamp"
          },
          "type": "array"
        }
      },
      "required": [
        "column_def",
        "data"
      ]
    },
    "TimeSeriesBoostStatsData": {
      "description": "An array that contains the stats data of a certain timestamp",
      "items": {},
      "properties": {
        "MAX_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual starting boundary of data time range",
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual ending boundary of data time range",
          "type": "integer"
        },
        "boost": {
          "description": "Insufficient Boost",
          "type": "integer"
        },
        "boost_bytes": {
          "description": "Number of packets LAN side transmitted",
          "type": "integer"
        },
        "configured": {
          "description": "System configured boost",
          "type": "integer"
        },
        "nePk": {
          "description": "Internal ID of the appliance",
          "type": "string"
        },
        "seconds_not_boosted": {
          "description": "Seconds not boosted in selected time range",
          "type": "integer"
        }
      },
      "type": "array"
    },
    "TimeSeriesDrcStats": {
      "properties": {
        "column_def": {
          "description": "These names correspond to each stats field in the array of stats.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "data": {
          "description": "An array that contains the stats data of specific tunnel of current appliance",
          "items": {
            "$ref": "#/definitions/TimeSeriesDrcStatsItems",
            "description": "An array that contains the stats data of a certain timestamp"
          },
          "type": "array"
        }
      },
      "required": [
        "column_def",
        "data"
      ]
    },
    "TimeSeriesDrcStatsDataMultiAppliances": {
      "properties": {
        "<nePk/IP>": {
          "description": "An array that contains the stats data of current appliance",
          "items": {
            "$ref": "#/definitions/TimeSeriesDrcStatsItems",
            "description": "An array that contains the stats data of a certain timestamp"
          },
          "type": "array"
        }
      },
      "required": [
        "<nePk/IP>"
      ]
    },
    "TimeSeriesDrcStatsItems": {
      "properties": {
        "ERC_MAX_RX": {
          "description": "ERC max received",
          "type": "integer"
        },
        "ERC_MAX_RX_TS": {
          "description": "ERC max received timestamp",
          "type": "integer"
        },
        "ERC_MAX_TX": {
          "description": "ERC max transmitted",
          "type": "integer"
        },
        "ERC_MAX_TX_TS": {
          "description": "ERC max transmitted timestamp",
          "type": "integer"
        },
        "ERC_MIN_RX": {
          "description": "ERC min received",
          "type": "integer"
        },
        "ERC_MIN_RX_TS": {
          "description": "ERC min received timestamp",
          "type": "integer"
        },
        "ERC_MIN_TX": {
          "description": "ERC min transmitted",
          "type": "integer"
        },
        "ERC_MIN_TX_TS": {
          "description": "ERC min transmitted timestamp",
          "type": "integer"
        },
        "TIMESTAMP": {
          "description": "Timestamp in EPOCH time, all timestamp fields are in EPOCH time",
          "type": "integer"
        },
        "TUNNEL": {
          "description": "Tunnel",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "TimeSeriesDrcStatsMultiAppliances": {
      "properties": {
        "column_def": {
          "description": "These names correspond to each stats field in the array of stats.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "data": {
          "$ref": "#/definitions/TimeSeriesDrcStatsDataMultiAppliances",
          "description": "An array that contains the stats data of all appliances"
        }
      },
      "required": [
        "column_def",
        "data"
      ]
    },
    "TimeSeriesMOSStats": {
      "properties": {
        "column_def": {
          "description": "These names correspond to each stats field in the array of stats.",
          "items": {
            "$ref": "#/definitions/TimeSeriesMOSStatsColumnDef"
          },
          "type": "array"
        },
        "data": {
          "description": "An array that contains the stats data of specific tunnel of current appliance",
          "items": {
            "$ref": "#/definitions/TimeSeriesMOSStatsData",
            "description": "An array that contains the stats data of a certain timestamp"
          },
          "type": "array"
        }
      },
      "required": [
        "column_def",
        "data"
      ]
    },
    "TimeSeriesMOSStatsColumnDef": {
      "properties": {
        "min_mos": {
          "$ref": "#/definitions/decimal",
          "description": "Min. Mean Opinion Score"
        },
        "min_mos_ts": {
          "description": "Min. Mean Opinion Score timestamp",
          "type": "integer"
        },
        "mos": {
          "$ref": "#/definitions/decimal",
          "description": "Mean Opinion Score"
        },
        "time": {
          "description": "Time stamp",
          "type": "integer"
        },
        "tunnel": {
          "description": "Tunnel",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TimeSeriesMOSStatsData": {
      "description": "An array that contains the stats data of a certain timestamp",
      "items": {},
      "type": "array"
    },
    "TimeSeriesStats": {
      "properties": {
        "column_def": {
          "description": "These names correspond to each stats field in the array of stats.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "data": {
          "items": {
            "$ref": "#/definitions/TimeSeriesStatsData"
          },
          "type": "array"
        }
      }
    },
    "TimeSeriesStatsAppliance": {
      "properties": {
        "column_def": {
          "description": "These names correspond to each stats field in the array of stats.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "data": {
          "$ref": "#/definitions/TimeSeriesStatsDataAppliance"
        }
      }
    },
    "TimeSeriesStatsData": {
      "description": "An array that contains the stats data of a certain timestamp.",
      "items": {},
      "properties": {
        "BW_PCT_UTIL_AVG": {
          "description": "Average bandwidth utilization percentage",
          "type": "integer"
        },
        "BW_PCT_UTIL_MAX": {
          "description": "Peak bandwidth utilization percentage",
          "type": "integer"
        },
        "BW_PCT_UTIL_MAX_TS": {
          "description": "Timestamp of when peak bandwidth utilization percentage occurred",
          "type": "integer"
        },
        "COMP_L2W": {
          "description": "LAN to WAN compression",
          "type": "integer"
        },
        "COMP_L2WMAX": {
          "description": "Peak LAN to WAN compression for one second interval",
          "type": "integer"
        },
        "COMP_L2WMAX_TS": {
          "description": "Timestamp of when peak LAN to WAN compression occurred",
          "type": "integer"
        },
        "COMP_NOOHEAD_L2W": {
          "description": "LAN to WAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_L2WMAX": {
          "description": "Peak LAN to WAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_L2WMAX_TS": {
          "description": "Timestamp of when peak LAN to WAN compression without protocol headers occurred",
          "type": "integer"
        },
        "COMP_NOOHEAD_W2L": {
          "description": "WAN to LAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_W2LMAX": {
          "description": "Peak WAN to LAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_W2LMAX_TS": {
          "description": "Timestamp of when peak WAN to LAN compression without protocol headers occurred",
          "type": "integer"
        },
        "COMP_W2L": {
          "description": "WAN to LAN compression",
          "type": "integer"
        },
        "COMP_W2LMAX": {
          "description": "Peak WAN to LAN compression for one second interval",
          "type": "integer"
        },
        "COMP_W2LMAX_TS": {
          "description": "Timestamp of when peak WAN to LAN compression occurred",
          "type": "integer"
        },
        "CREATED": {
          "description": "Number of created flows",
          "type": "integer"
        },
        "CREATED_MAX": {
          "description": "Peak number of created flows",
          "type": "integer"
        },
        "CREATED_MAX_TS": {
          "description": "Timestamp of when peak number of created flows occurred",
          "type": "integer"
        },
        "DELETED": {
          "description": "Number of deleted flows",
          "type": "integer"
        },
        "DELETED_MAX": {
          "description": "Peak number of deleted flows",
          "type": "integer"
        },
        "DELETED_MAX_TS": {
          "description": "Timestamp of when peak number of deleted flows occurred",
          "type": "integer"
        },
        "LATENCY_AVG": {
          "description": "Average latency",
          "type": "integer"
        },
        "LATENCY_MAX": {
          "description": "Peak latency",
          "type": "integer"
        },
        "LATENCY_MAX_TS": {
          "description": "Timestamp of when peak latency occurred",
          "type": "integer"
        },
        "LATENCY_MIN": {
          "description": "Lowest latency",
          "type": "integer"
        },
        "LATENCY_MIN_FROM_PEAK": {
          "description": "Different between lowest latency and peak latency",
          "type": "integer"
        },
        "LATENCY_MIN_TS": {
          "description": "Timestamp of when lowest latency occurred",
          "type": "integer"
        },
        "LRX_BYTES": {
          "description": "Number of bytes LAN side received",
          "type": "integer"
        },
        "LRX_BYTES_MAX": {
          "description": "Peak number of bytes LAN side received in one second",
          "type": "integer"
        },
        "LRX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes LAN side received",
          "type": "integer"
        },
        "LRX_PKTS": {
          "description": "Number of packets LAN side received",
          "type": "integer"
        },
        "LRX_PKTS_MAX": {
          "description": "Peak number of packets LAN side received in one second",
          "type": "integer"
        },
        "LRX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets LAN side received",
          "type": "integer"
        },
        "LTX_BYTES": {
          "description": "Number of bytes LAN side transmitted",
          "type": "integer"
        },
        "LTX_BYTES_MAX": {
          "description": "Peak number of bytes LAN side transmitted in one second",
          "type": "integer"
        },
        "LTX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes LAN side transmitted",
          "type": "integer"
        },
        "LTX_PKTS": {
          "description": "Number of packets LAN side transmitted",
          "type": "integer"
        },
        "LTX_PKTS_MAX": {
          "description": "Peak number of packets LAN side transmitted in one second",
          "type": "integer"
        },
        "LTX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets LAN side transmitted",
          "type": "integer"
        },
        "NON_TCP_FLOWS": {
          "description": "Number of non-TCP flows",
          "type": "integer"
        },
        "NON_TCP_FLOWS_MAX": {
          "description": "Peak number of non-TCP flows",
          "type": "integer"
        },
        "NON_TCP_FLOWS_MAX_TS": {
          "description": "Timestamp of when peak number of non-TCP flows occurred",
          "type": "integer"
        },
        "OHEAD_WRX_BYTES": {
          "description": "Number of bytes of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_BYTES_MAX": {
          "description": "Peak number of bytes of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_HDR_BYTES": {
          "description": "Number of header bytes of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_HDR_BYTES_MAX": {
          "description": "Peak number of header bytes of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_HDR_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of header bytes of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_PKTS": {
          "description": "Number of packets of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_PKTS_MAX": {
          "description": "Peak number of packets of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WTX_BYTES": {
          "description": "Number of bytes of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_BYTES_MAX": {
          "description": "Peak number of bytes of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_HDR_BYTES": {
          "description": "Number of header bytes of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_HDR_BYTES_MAX": {
          "description": "Peak number of header bytes of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_HDR_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of header bytes of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_PKTS": {
          "description": "Number of packets of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_PKTS_MAX": {
          "description": "Peak number of packets of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "POST_LOSS": {
          "description": "Number of packets loss after correction",
          "type": "integer"
        },
        "POST_LOSS_MAX": {
          "description": "Peak number of packets loss after correction",
          "type": "integer"
        },
        "POST_LOSS_MAX_TS": {
          "description": "Timestamp of when peak number of packets loss occurred after correction ",
          "type": "integer"
        },
        "POST_PCT_LOSS": {
          "description": "Percentage of packets loss after correction",
          "type": "integer"
        },
        "POST_PCT_LOSS_MAX": {
          "description": "Peak number of percentage of packets loss after correction",
          "type": "integer"
        },
        "POST_PCT_LOSS_MAX_TS": {
          "description": "Timestamp of when peak number of percentage of packets loss occurred after correction",
          "type": "integer"
        },
        "POST_PCT_POC": {
          "description": "Percentage of out of order packets after correction",
          "type": "integer"
        },
        "POST_PCT_POCMAX": {
          "description": "Peak number of percentage of packets out of order after correction",
          "type": "integer"
        },
        "POST_PCT_POCMAX_TS": {
          "description": "Timestamp of when peak number of percentage of packets out of order occurred after correction",
          "type": "integer"
        },
        "POST_POC": {
          "description": "Number of packets out of order after correction",
          "type": "integer"
        },
        "POST_POCMAX": {
          "description": "Peak number of packets out of order after correction",
          "type": "integer"
        },
        "POST_POCMAX_TS": {
          "description": "Timestamp of when peak number of packets out of order occurred after correction",
          "type": "integer"
        },
        "PRE_LOSS": {
          "description": "Number of packets loss before correction",
          "type": "integer"
        },
        "PRE_LOSS_MAX": {
          "description": "Peak number of packets loss before correction",
          "type": "integer"
        },
        "PRE_LOSS_MAX_TS": {
          "description": "Timestamp of when peak number of packets loss occurred before correction ",
          "type": "integer"
        },
        "PRE_PCT_LOSS": {
          "description": "Percentage of packets loss before correction",
          "type": "integer"
        },
        "PRE_PCT_LOSS_MAX": {
          "description": "Peak number of percentage of packets loss before correction",
          "type": "integer"
        },
        "PRE_PCT_LOSS_MAX_TS": {
          "description": "Timestamp of when peak number of percentage of packets loss occurred before correction",
          "type": "integer"
        },
        "PRE_PCT_POC": {
          "description": "Percentage of out of order packets before correction",
          "type": "integer"
        },
        "PRE_PCT_POCMAX": {
          "description": "Peak number of percentage of packets out of order before correction",
          "type": "integer"
        },
        "PRE_PCT_POCMAX_TS": {
          "description": "Timestamp of when peak number of percentage of packets out of order occurred before correction",
          "type": "integer"
        },
        "PRE_POC": {
          "description": "Number of packets out of order before correction",
          "type": "integer"
        },
        "PRE_POCMAX": {
          "description": "Peak number of packets out of order before correction",
          "type": "integer"
        },
        "PRE_POCMAX_TS": {
          "description": "Timestamp of when peak number of packets out of order  occurred before correction",
          "type": "integer"
        },
        "TCP_ACC_FLOWS": {
          "description": "Number of TCP unaccelerated flows",
          "type": "integer"
        },
        "TCP_ACC_FLOWS_MAX": {
          "description": "Peak number of TCP unaccelerated flows",
          "type": "integer"
        },
        "TCP_ACC_FLOWS_MAX_TS": {
          "description": "Timestamp of when peak number of TCP unaccelerated flows occurred",
          "type": "integer"
        },
        "TCP_FLOWS": {
          "description": "Number of TCP accelerated flows",
          "type": "integer"
        },
        "TCP_FLOWS_MAX": {
          "description": "Peak number of TCP accelerated flows",
          "type": "integer"
        },
        "TCP_FLOWS_MAX_TS": {
          "description": "Timestamp of when peak number of TCP accelerated flows occurred",
          "type": "integer"
        },
        "TIMESTAMP": {
          "description": "Timestamp in EPOCH time, all timestamp fields are in EPOCH time",
          "type": "integer"
        },
        "WRX_BYTES": {
          "description": "Number of bytes WAN side received",
          "type": "integer"
        },
        "WRX_BYTES_MAX": {
          "description": "Peak number of bytes WAN side received in one second",
          "type": "integer"
        },
        "WRX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes WAN side received",
          "type": "integer"
        },
        "WRX_PKTS": {
          "description": "Number of packets WAN side received",
          "type": "integer"
        },
        "WRX_PKTS_MAX": {
          "description": "Peak number of packets WAN side received in one second",
          "type": "integer"
        },
        "WRX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets WAN side received",
          "type": "integer"
        },
        "WTX_BYTES": {
          "description": "Number of bytes WAN side transmitted",
          "type": "integer"
        },
        "WTX_BYTES_MAX": {
          "description": "Peak number of bytes WAN side transmitted in one second",
          "type": "integer"
        },
        "WTX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes WAN side transmitted",
          "type": "integer"
        },
        "WTX_PKTS": {
          "description": "Number of packets WAN side transmitted",
          "type": "integer"
        },
        "WTX_PKTS_MAX": {
          "description": "Peak number of packets WAN side transmitted in one second",
          "type": "integer"
        },
        "WTX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets WAN side transmitted",
          "type": "integer"
        }
      },
      "type": "array"
    },
    "TimeSeriesStatsDataAppliance": {
      "properties": {
        "<nePk/IP>": {
          "items": {
            "$ref": "#/definitions/TimeSeriesStatsItems"
          },
          "type": "array"
        }
      }
    },
    "TimeSeriesStatsDataMultiAppliances": {
      "properties": {
        "<nePk/IP>": {
          "items": {
            "$ref": "#/definitions/TimeSeriesStatsData"
          },
          "type": "array"
        }
      }
    },
    "TimeSeriesStatsDataMultiAppliances2": {
      "properties": {
        "APPNAME": {
          "description": "Application name",
          "type": "string"
        },
        "LRX_BYTES": {
          "description": "Number of bytes LAN side received",
          "type": "integer"
        },
        "LRX_PKTS": {
          "description": "Number of packets LAN side received",
          "type": "integer"
        },
        "LTX_BYTES": {
          "description": "Number of bytes LAN side transmitted",
          "type": "integer"
        },
        "LTX_PKTS": {
          "description": "Number of packets LAN side transmitted",
          "type": "integer"
        },
        "TIMESTAMP": {
          "description": "Timestamp in EPOCH time, all timestamp fields are in EPOCH time",
          "type": "integer"
        },
        "WRX_BYTES": {
          "description": "Number of bytes WAN side received",
          "type": "integer"
        },
        "WRX_PKTS": {
          "description": "Number of packets WAN side received",
          "type": "integer"
        },
        "WTX_BYTES": {
          "description": "Number of bytes WAN side transmitted",
          "type": "integer"
        },
        "WTX_PKTS": {
          "description": "Number of packets WAN side transmitted",
          "type": "integer"
        },
        "nePk": {
          "description": "Internal ID of the appliance",
          "type": "string"
        }
      }
    },
    "TimeSeriesStatsItems": {
      "description": "An array that contains the stats data of a certain timestamp.",
      "items": {},
      "properties": {
        "BW_PCT_UTIL_AVG": {
          "description": "Average bandwidth utilization percentage",
          "type": "integer"
        },
        "BW_PCT_UTIL_MAX": {
          "description": "Peak bandwidth utilization percentage",
          "type": "integer"
        },
        "BW_PCT_UTIL_MAX_TS": {
          "description": "Timestamp of when peak bandwidth utilization percentage occurred",
          "type": "integer"
        },
        "COMP_L2W": {
          "description": "LAN to WAN compression",
          "type": "integer"
        },
        "COMP_L2WMAX": {
          "description": "Peak LAN to WAN compression for one second interval",
          "type": "integer"
        },
        "COMP_L2WMAX_TS": {
          "description": "Timestamp of when peak LAN to WAN compression occurred",
          "type": "integer"
        },
        "COMP_NOOHEAD_L2W": {
          "description": "LAN to WAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_L2WMAX": {
          "description": "Peak LAN to WAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_L2WMAX_TS": {
          "description": "Timestamp of when peak LAN to WAN compression without protocol headers occurred",
          "type": "integer"
        },
        "COMP_NOOHEAD_W2L": {
          "description": "WAN to LAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_W2LMAX": {
          "description": "Peak WAN to LAN compression without protocol headers",
          "type": "integer"
        },
        "COMP_NOOHEAD_W2LMAX_TS": {
          "description": "Timestamp of when peak WAN to LAN compression without protocol headers occurred",
          "type": "integer"
        },
        "COMP_W2L": {
          "description": "WAN to LAN compression",
          "type": "integer"
        },
        "COMP_W2LMAX": {
          "description": "Peak WAN to LAN compression for one second interval",
          "type": "integer"
        },
        "COMP_W2LMAX_TS": {
          "description": "Timestamp of when peak WAN to LAN compression occurred",
          "type": "integer"
        },
        "CREATED": {
          "description": "Number of created flows",
          "type": "integer"
        },
        "CREATED_MAX": {
          "description": "Peak number of created flows",
          "type": "integer"
        },
        "CREATED_MAX_TS": {
          "description": "Timestamp of when peak number of created flows occurred",
          "type": "integer"
        },
        "DELETED": {
          "description": "Number of deleted flows",
          "type": "integer"
        },
        "DELETED_MAX": {
          "description": "Peak number of deleted flows",
          "type": "integer"
        },
        "DELETED_MAX_TS": {
          "description": "Timestamp of when peak number of deleted flows occurred",
          "type": "integer"
        },
        "LATENCY_AVG": {
          "description": "Average latency",
          "type": "integer"
        },
        "LATENCY_MAX": {
          "description": "Peak latency",
          "type": "integer"
        },
        "LATENCY_MAX_TS": {
          "description": "Timestamp of when peak latency occurred",
          "type": "integer"
        },
        "LATENCY_MIN": {
          "description": "Lowest latency",
          "type": "integer"
        },
        "LATENCY_MIN_FROM_PEAK": {
          "description": "Different between lowest latency and peak latency",
          "type": "integer"
        },
        "LATENCY_MIN_TS": {
          "description": "Timestamp of when lowest latency occurred",
          "type": "integer"
        },
        "LRX_BYTES": {
          "description": "Number of bytes LAN side received",
          "type": "integer"
        },
        "LRX_BYTES_MAX": {
          "description": "Peak number of bytes LAN side received in one second",
          "type": "integer"
        },
        "LRX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes LAN side received",
          "type": "integer"
        },
        "LRX_PKTS": {
          "description": "Number of packets LAN side received",
          "type": "integer"
        },
        "LRX_PKTS_MAX": {
          "description": "Peak number of packets LAN side received in one second",
          "type": "integer"
        },
        "LRX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets LAN side received",
          "type": "integer"
        },
        "LTX_BYTES": {
          "description": "Number of bytes LAN side transmitted",
          "type": "integer"
        },
        "LTX_BYTES_MAX": {
          "description": "Peak number of bytes LAN side transmitted in one second",
          "type": "integer"
        },
        "LTX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes LAN side transmitted",
          "type": "integer"
        },
        "LTX_PKTS": {
          "description": "Number of packets LAN side transmitted",
          "type": "integer"
        },
        "LTX_PKTS_MAX": {
          "description": "Peak number of packets LAN side transmitted in one second",
          "type": "integer"
        },
        "LTX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets LAN side transmitted",
          "type": "integer"
        },
        "NON_TCP_FLOWS": {
          "description": "Number of non-TCP flows",
          "type": "integer"
        },
        "NON_TCP_FLOWS_MAX": {
          "description": "Peak number of non-TCP flows",
          "type": "integer"
        },
        "NON_TCP_FLOWS_MAX_TS": {
          "description": "Timestamp of when peak number of non-TCP flows occurred",
          "type": "integer"
        },
        "OHEAD_WRX_BYTES": {
          "description": "Number of bytes of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_BYTES_MAX": {
          "description": "Peak number of bytes of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_HDR_BYTES": {
          "description": "Number of header bytes of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_HDR_BYTES_MAX": {
          "description": "Peak number of header bytes of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_HDR_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of header bytes of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_PKTS": {
          "description": "Number of packets of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_PKTS_MAX": {
          "description": "Peak number of packets of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WRX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets of protocol headers WAN side received",
          "type": "integer"
        },
        "OHEAD_WTX_BYTES": {
          "description": "Number of bytes of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_BYTES_MAX": {
          "description": "Peak number of bytes of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_HDR_BYTES": {
          "description": "Number of header bytes of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_HDR_BYTES_MAX": {
          "description": "Peak number of header bytes of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_HDR_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of header bytes of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_PKTS": {
          "description": "Number of packets of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_PKTS_MAX": {
          "description": "Peak number of packets of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "OHEAD_WTX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets of protocol headers WAN side transmitted",
          "type": "integer"
        },
        "POST_LOSS": {
          "description": "Number of packets loss after correction",
          "type": "integer"
        },
        "POST_LOSS_MAX": {
          "description": "Peak number of packets loss after correction",
          "type": "integer"
        },
        "POST_LOSS_MAX_TS": {
          "description": "Timestamp of when peak number of packets loss occurred after correction ",
          "type": "integer"
        },
        "POST_PCT_LOSS": {
          "description": "Percentage of packets loss after correction",
          "type": "integer"
        },
        "POST_PCT_LOSS_MAX": {
          "description": "Peak number of percentage of packets loss after correction",
          "type": "integer"
        },
        "POST_PCT_LOSS_MAX_TS": {
          "description": "Timestamp of when peak number of percentage of packets loss occurred after correction",
          "type": "integer"
        },
        "POST_PCT_POC": {
          "description": "Percentage of out of order packets after correction",
          "type": "integer"
        },
        "POST_PCT_POCMAX": {
          "description": "Peak number of percentage of packets out of order after correction",
          "type": "integer"
        },
        "POST_PCT_POCMAX_TS": {
          "description": "Timestamp of when peak number of percentage of packets out of order occurred after correction",
          "type": "integer"
        },
        "POST_POC": {
          "description": "Number of packets out of order after correction",
          "type": "integer"
        },
        "POST_POCMAX": {
          "description": "Peak number of packets out of order after correction",
          "type": "integer"
        },
        "POST_POCMAX_TS": {
          "description": "Timestamp of when peak number of packets out of order occurred after correction",
          "type": "integer"
        },
        "PRE_LOSS": {
          "description": "Number of packets loss before correction",
          "type": "integer"
        },
        "PRE_LOSS_MAX": {
          "description": "Peak number of packets loss before correction",
          "type": "integer"
        },
        "PRE_LOSS_MAX_TS": {
          "description": "Timestamp of when peak number of packets loss occurred before correction ",
          "type": "integer"
        },
        "PRE_PCT_LOSS": {
          "description": "Percentage of packets loss before correction",
          "type": "integer"
        },
        "PRE_PCT_LOSS_MAX": {
          "description": "Peak number of percentage of packets loss before correction",
          "type": "integer"
        },
        "PRE_PCT_LOSS_MAX_TS": {
          "description": "Timestamp of when peak number of percentage of packets loss occurred before correction",
          "type": "integer"
        },
        "PRE_PCT_POC": {
          "description": "Percentage of out of order packets before correction",
          "type": "integer"
        },
        "PRE_PCT_POCMAX": {
          "description": "Peak number of percentage of packets out of order before correction",
          "type": "integer"
        },
        "PRE_PCT_POCMAX_TS": {
          "description": "Timestamp of when peak number of percentage of packets out of order occurred before correction",
          "type": "integer"
        },
        "PRE_POC": {
          "description": "Number of packets out of order before correction",
          "type": "integer"
        },
        "PRE_POCMAX": {
          "description": "Peak number of packets out of order before correction",
          "type": "integer"
        },
        "PRE_POCMAX_TS": {
          "description": "Timestamp of when peak number of packets out of order  occurred before correction",
          "type": "integer"
        },
        "TCP_ACC_FLOWS": {
          "description": "Number of TCP unaccelerated flows",
          "type": "integer"
        },
        "TCP_ACC_FLOWS_MAX": {
          "description": "Peak number of TCP unaccelerated flows",
          "type": "integer"
        },
        "TCP_ACC_FLOWS_MAX_TS": {
          "description": "Timestamp of when peak number of TCP unaccelerated flows occurred",
          "type": "integer"
        },
        "TCP_FLOWS": {
          "description": "Number of TCP accelerated flows",
          "type": "integer"
        },
        "TCP_FLOWS_MAX": {
          "description": "Peak number of TCP accelerated flows",
          "type": "integer"
        },
        "TCP_FLOWS_MAX_TS": {
          "description": "Timestamp of when peak number of TCP accelerated flows occurred",
          "type": "integer"
        },
        "TIMESTAMP": {
          "description": "Timestamp in EPOCH time, all timestamp fields are in EPOCH time",
          "type": "integer"
        },
        "TRAFFIC_TYPE": {
          "description": "Integer value indicating the traffic type these stats belong to. 1: Optimized Traffic, 2: Pass-through Shaped, 3: Pass-through Unshaped, 4: All Traffic",
          "type": "integer"
        },
        "WRX_BYTES": {
          "description": "Number of bytes WAN side received",
          "type": "integer"
        },
        "WRX_BYTES_MAX": {
          "description": "Peak number of bytes WAN side received in one second",
          "type": "integer"
        },
        "WRX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes WAN side received",
          "type": "integer"
        },
        "WRX_PKTS": {
          "description": "Number of packets WAN side received",
          "type": "integer"
        },
        "WRX_PKTS_MAX": {
          "description": "Peak number of packets WAN side received in one second",
          "type": "integer"
        },
        "WRX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets WAN side received",
          "type": "integer"
        },
        "WTX_BYTES": {
          "description": "Number of bytes WAN side transmitted",
          "type": "integer"
        },
        "WTX_BYTES_MAX": {
          "description": "Peak number of bytes WAN side transmitted in one second",
          "type": "integer"
        },
        "WTX_BYTES_MAX_TS": {
          "description": "Timestamp of when peak number of bytes WAN side transmitted",
          "type": "integer"
        },
        "WTX_PKTS": {
          "description": "Number of packets WAN side transmitted",
          "type": "integer"
        },
        "WTX_PKTS_MAX": {
          "description": "Peak number of packets WAN side transmitted in one second",
          "type": "integer"
        },
        "WTX_PKTS_MAX_TS": {
          "description": "Timestamp of when peak number of packets WAN side transmitted",
          "type": "integer"
        }
      },
      "type": "array"
    },
    "TimeSeriesStatsMultiAppliances": {
      "properties": {
        "column_def": {
          "description": "These names correspond to each stats field in the array of stats.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "data": {
          "$ref": "#/definitions/TimeSeriesStatsDataMultiAppliances"
        }
      }
    },
    "TimeSeriesStatsMultiAppliances2": {
      "properties": {
        "data": {
          "items": {
            "$ref": "#/definitions/TimeSeriesStatsDataMultiAppliances2"
          },
          "type": "array"
        }
      }
    },
    "TimeSeriesStatsOneAppliance": {
      "properties": {
        "column_def": {
          "description": "These names correspond to each stats field in the array of stats.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "data": {
          "items": {
            "$ref": "#/definitions/TimeSeriesStatsItems"
          },
          "type": "array"
        }
      }
    },
    "TopologyConfiguration": {
      "properties": {
        "key": {
          "$ref": "#/definitions/PreferenceResponse",
          "description": "The topology configuration will be stored under the key 'default' or the user's username (depending on if you sent the request with a username or not. "
        }
      }
    },
    "TopologySaveMapRequest": {
      "properties": {
        "default": {
          "$ref": "#/definitions/MapSave",
          "description": "The key should always be 'default', because the map image is stored under default only."
        }
      }
    },
    "TopologySaveRequest": {
      "properties": {
        "username": {
          "$ref": "#/definitions/PreferenceSave",
          "description": "The username is should match the username passed in the URL of the request."
        }
      }
    },
    "TracertState": {
      "description": "Need description here",
      "type": "object"
    },
    "TrafficClassAggregateStats": {
      "properties": {
        "<Traffic Type>": {
          "$ref": "#/definitions/TrafficClassAggregateStatsTrafficClassLevelObject"
        }
      },
      "required": [
        "<Traffic Type>"
      ]
    },
    "TrafficClassAggregateStatsApplianceLevelObject": {
      "properties": {
        "<nePk/IP>": {
          "$ref": "#/definitions/TrafficClassAggregateStatsBase"
        }
      },
      "required": [
        "<nePk/IP>"
      ]
    },
    "TrafficClassAggregateStatsBase": {
      "properties": {
        "HOSTNAME": {
          "description": "Hostname of the appliance",
          "type": "string"
        },
        "IP": {
          "description": "Management IP address of appliance",
          "type": "string"
        },
        "MAX_COMP_L2W": {
          "description": "Integer value of maximum LAN to WAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_L2WMAX": {
          "description": "Integer value of maximum peak LAN to WAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_L2W": {
          "description": "Integer value of maximum LAN to WAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_L2WMAX": {
          "description": "Integer value of maximum peak LAN to WAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_W2L": {
          "description": "Integer value of maximum WAN to LAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_W2LMAX": {
          "description": "Integer value of maximum peak WAN to LAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_W2L": {
          "description": "Integer value of maximum WAN to LAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_W2LMAX": {
          "description": "Integer value of maximum peak WAN to LAN compression rate",
          "type": "integer"
        },
        "MAX_LRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes LAN side received",
          "type": "integer"
        },
        "MAX_LRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets LAN side received",
          "type": "integer"
        },
        "MAX_LTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes LAN side transmitted",
          "type": "integer"
        },
        "MAX_LTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets LAN side transmitted",
          "type": "integer"
        },
        "MAX_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual starting boundary of data time range",
          "type": "integer"
        },
        "MAX_WRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes WAN side received",
          "type": "integer"
        },
        "MAX_WRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets WAN side received",
          "type": "integer"
        },
        "MAX_WTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes WAN side transmitted",
          "type": "integer"
        },
        "MAX_WTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets WAN side transmitted",
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual ending boundary of data time range",
          "type": "integer"
        },
        "SUM_LRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side received",
          "type": "integer"
        },
        "SUM_LRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_WRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side received",
          "type": "integer"
        },
        "SUM_WRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side received",
          "type": "integer"
        },
        "SUM_WTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side transmitted",
          "type": "integer"
        },
        "SUM_WTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side transmitted",
          "type": "integer"
        },
        "TRAFFIC_CLASS": {
          "description": "Integer value of traffic class to which these stats belong to",
          "type": "integer"
        },
        "TRAFFIC_TYPE": {
          "description": "Integer value indicating the traffic type these stats belong to. 1: Optimized Traffic, 2: Pass-through Shaped, 3: Pass-through Unshaped, 4: All Traffic",
          "type": "integer"
        },
        "nePk": {
          "description": "Internal ID of appliance",
          "type": "string"
        }
      },
      "required": [
        "HOSTNAME",
        "IP",
        "MAX_COMP_L2W",
        "MAX_COMP_L2WMAX",
        "MAX_COMP_NOOHEAD_L2W",
        "MAX_COMP_NOOHEAD_L2WMAX",
        "MAX_COMP_NOOHEAD_W2L",
        "MAX_COMP_NOOHEAD_W2LMAX",
        "MAX_COMP_W2L",
        "MAX_COMP_W2LMAX",
        "MAX_LRX_BYTES_MAX",
        "MAX_LRX_PKTS_MAX",
        "MAX_LTX_BYTES_MAX",
        "MAX_LTX_PKTS_MAX",
        "MAX_TIMESTAMP",
        "MAX_WRX_BYTES_MAX",
        "MAX_WRX_PKTS_MAX",
        "MAX_WTX_BYTES_MAX",
        "MAX_WTX_PKTS_MAX",
        "MIN_TIMESTAMP",
        "SUM_LRX_BYTES",
        "SUM_LRX_PKTS",
        "SUM_LTX_BYTES",
        "SUM_LTX_PKTS",
        "SUM_WRX_BYTES",
        "SUM_WRX_PKTS",
        "SUM_WTX_BYTES",
        "SUM_WTX_PKTS",
        "TRAFFIC_CLASS",
        "TRAFFIC_TYPE",
        "nePk"
      ]
    },
    "TrafficClassAggregateStatsTrafficClassLevelObject": {
      "properties": {
        "<Traffic Class>": {
          "$ref": "#/definitions/TrafficClassAggregateStatsApplianceLevelObject"
        }
      },
      "required": [
        "<Traffic Class>"
      ]
    },
    "TunnelAggregateDrcStatsBase": {
      "properties": {
        "AVG_ERC_MAX_RX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "AVG_ERC_MAX_RX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "AVG_ERC_MAX_TX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "AVG_ERC_MAX_TX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "AVG_ERC_MIN_RX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "AVG_ERC_MIN_RX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "AVG_ERC_MIN_TX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "AVG_ERC_MIN_TX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MAX_ERC_MAX_RX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MAX_ERC_MAX_RX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MAX_ERC_MAX_TX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MAX_ERC_MAX_TX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MAX_ERC_MIN_RX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MAX_ERC_MIN_RX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MAX_ERC_MIN_TX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MAX_ERC_MIN_TX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MAX_TIMESTAMP": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MIN_ERC_MAX_RX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MIN_ERC_MAX_RX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MIN_ERC_MAX_TX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MIN_ERC_MAX_TX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MIN_ERC_MIN_RX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MIN_ERC_MIN_RX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MIN_ERC_MIN_TX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MIN_ERC_MIN_TX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "description": "Need description here...",
          "type": "integer"
        },
        "PEAK_THROUGHPUT": {
          "description": "Need description here...",
          "type": "integer"
        },
        "SUM_ERC_MAX_RX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "SUM_ERC_MAX_RX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "SUM_ERC_MAX_TX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "SUM_ERC_MAX_TX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "SUM_ERC_MIN_RX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "SUM_ERC_MIN_RX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "SUM_ERC_MIN_TX": {
          "description": "Need description here...",
          "type": "integer"
        },
        "SUM_ERC_MIN_TX_TS": {
          "description": "Need description here...",
          "type": "integer"
        },
        "TUNNEL": {
          "description": "The name of this tunnel",
          "type": "string"
        },
        "isPassThrough": {
          "description": "Need description here...",
          "type": "boolean"
        },
        "nePk": {
          "description": "The id of this appliance in Orchestrator",
          "type": "string"
        }
      },
      "required": [
        "AVG_ERC_MAX_RX",
        "AVG_ERC_MAX_RX_TS",
        "AVG_ERC_MAX_TX",
        "AVG_ERC_MAX_TX_TS",
        "AVG_ERC_MIN_RX",
        "AVG_ERC_MIN_RX_TS",
        "AVG_ERC_MIN_TX",
        "AVG_ERC_MIN_TX_TS",
        "MAX_ERC_MAX_RX",
        "MAX_ERC_MAX_RX_TS",
        "MAX_ERC_MAX_TX",
        "MAX_ERC_MAX_TX_TS",
        "MAX_ERC_MIN_RX",
        "MAX_ERC_MIN_RX_TS",
        "MAX_ERC_MIN_TX",
        "MAX_ERC_MIN_TX_TS",
        "MAX_TIMESTAMP",
        "MIN_ERC_MAX_RX",
        "MIN_ERC_MAX_RX_TS",
        "MIN_ERC_MAX_TX",
        "MIN_ERC_MAX_TX_TS",
        "MIN_ERC_MIN_RX",
        "MIN_ERC_MIN_RX_TS",
        "MIN_ERC_MIN_TX",
        "MIN_ERC_MIN_TX_TS",
        "MIN_TIMESTAMP",
        "PEAK_THROUGHPUT",
        "SUM_ERC_MAX_RX",
        "SUM_ERC_MAX_RX_TS",
        "SUM_ERC_MAX_TX",
        "SUM_ERC_MAX_TX_TS",
        "SUM_ERC_MIN_RX",
        "SUM_ERC_MIN_RX_TS",
        "SUM_ERC_MIN_TX",
        "SUM_ERC_MIN_TX_TS",
        "TUNNEL",
        "isPassThrough",
        "nePk"
      ]
    },
    "TunnelAggregateStats": {
      "properties": {
        "<tunnelName>": {
          "$ref": "#/definitions/TunnelAggregateStatsApplianceLevelObject"
        }
      },
      "required": [
        "<tunnelName>"
      ]
    },
    "TunnelAggregateStatsApplianceLevelObject": {
      "properties": {
        "<nePk/IP>": {
          "$ref": "#/definitions/TunnelAggregateStatsBase"
        }
      },
      "required": [
        "<nePk/IP>"
      ]
    },
    "TunnelAggregateStatsBase": {
      "properties": {
        "AVG_BW_PCT_UTIL_AVG": {
          "description": "Integer value of average bandwidth utilization percentage",
          "type": "integer"
        },
        "AVG_LATENCY_AVG": {
          "description": "Integer value of average latency, unit is millisecond",
          "type": "integer"
        },
        "HOSTNAME": {
          "description": "Hostname of the appliance",
          "type": "string"
        },
        "IP": {
          "description": "Management IP address of appliance",
          "type": "string"
        },
        "LATENCY_MIN_FROM_PEAK": {
          "description": "Integer value of the second peak latency",
          "type": "integer"
        },
        "MAX_BW_PCT_UTIL_MAX": {
          "description": "Integer value of maximum peak bandwidth utilization percentage",
          "type": "integer"
        },
        "MAX_COMP_L2W": {
          "description": "Integer value of maximum LAN to WAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_L2WMAX": {
          "description": "Integer value of maximum peak LAN to WAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_L2W": {
          "description": "Integer value of maximum LAN to WAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_L2WMAX": {
          "description": "Integer value of maximum peak LAN to WAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_W2L": {
          "description": "Integer value of maximum WAN to LAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_NOOHEAD_W2LMAX": {
          "description": "Integer value of maximum peak WAN to LAN compression rate without overhead",
          "type": "integer"
        },
        "MAX_COMP_W2L": {
          "description": "Integer value of maximum WAN to LAN compression rate",
          "type": "integer"
        },
        "MAX_COMP_W2LMAX": {
          "description": "Integer value of maximum peak WAN to LAN compression rate",
          "type": "integer"
        },
        "MAX_CREATED_MAX": {
          "description": "Integer value of maximum peak number of created flows",
          "type": "integer"
        },
        "MAX_DELETED_MAX": {
          "description": "Integer value of maximum peak number of deleted flows",
          "type": "integer"
        },
        "MAX_LATENCY_MAX": {
          "description": "Integer value of maximum highest latency, unit is millisecond",
          "type": "integer"
        },
        "MAX_LRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes LAN side received",
          "type": "integer"
        },
        "MAX_LRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets LAN side received",
          "type": "integer"
        },
        "MAX_LTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes LAN side transmitted",
          "type": "integer"
        },
        "MAX_LTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets LAN side transmitted",
          "type": "integer"
        },
        "MAX_NON_TCP_FLOWS_MAX": {
          "description": "Integer value of maximum peak number of TCP flows",
          "type": "integer"
        },
        "MAX_OHEAD_WRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of maximum peak number of bytes WAN side received with overhead",
          "type": "integer"
        },
        "MAX_OHEAD_WRX_HDR_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of maximum peak number of header bytes WAN side received with overhead",
          "type": "integer"
        },
        "MAX_OHEAD_WRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of maximum peak number of packets WAN side received with overhead",
          "type": "integer"
        },
        "MAX_OHEAD_WTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of maximum peak number of bytes WAN side transmitted with overhead",
          "type": "integer"
        },
        "MAX_OHEAD_WTX_HDR_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of maximum peak number of header bytes WAN side transmitted with overhead",
          "type": "integer"
        },
        "MAX_OHEAD_WTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of maximum peak number of packets WAN side transmitted with overhead",
          "type": "integer"
        },
        "MAX_POST_LOSS_MAX": {
          "description": "Integer value of maximum peak post-corrected packets loss",
          "type": "integer"
        },
        "MAX_POST_PCT_LOSS": {
          "description": "Integer value of maximum post-corrected packets loss percentage",
          "type": "integer"
        },
        "MAX_POST_PCT_LOSS_MAX": {
          "description": "Integer value of maximum peak post-corrected packets loss",
          "type": "integer"
        },
        "MAX_POST_POCMAX": {
          "description": "Integer value of maximum peak post-POC packets loss",
          "type": "integer"
        },
        "MAX_PRE_LOSS_MAX": {
          "description": "Integer value of maximum peak pre-corrected packets loss",
          "type": "integer"
        },
        "MAX_PRE_PCT_LOSS": {
          "description": "Integer value of maximum pre-corrected packets loss percentage",
          "type": "integer"
        },
        "MAX_PRE_PCT_LOSS_MAX": {
          "description": "Integer value of maximum peak pre-corrected packets loss",
          "type": "integer"
        },
        "MAX_PRE_PCT_POC": {
          "description": "Integer value of maximum pre-POC packets loss percentage",
          "type": "integer"
        },
        "MAX_PRE_PCT_POCMAX": {
          "description": "Integer value of maximum peak pre-POC packets loss percentage",
          "type": "integer"
        },
        "MAX_PRE_POCMAX": {
          "description": "Integer value of maximum peak pre-POC packets loss",
          "type": "integer"
        },
        "MAX_TCP_ACC_FLOWS_MAX": {
          "description": "Integer value of maximum peak number of TCP flows",
          "type": "integer"
        },
        "MAX_TCP_FLOWS_MAX": {
          "description": "Integer value of maximum peak number of TCP flows",
          "type": "integer"
        },
        "MAX_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual starting boundary of data time range",
          "type": "integer"
        },
        "MAX_WRX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes WAN side received",
          "type": "integer"
        },
        "MAX_WRX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets WAN side received",
          "type": "integer"
        },
        "MAX_WTX_BYTES_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of bytes WAN side transmitted",
          "type": "integer"
        },
        "MAX_WTX_PKTS_MAX": {
          "description": "Long(Signed 64 bits) value of peak number of packets WAN side transmitted",
          "type": "integer"
        },
        "MIN_LATENCY_MIN": {
          "description": "Integer value of minimum lowest latency, unit is millisecond",
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "description": "Long(Signed 64 bits) value of EPOCH time indicating actual ending boundary of data time range",
          "type": "integer"
        },
        "POST_PCT_POCMAX": {
          "description": "Integer value of maximum peak post-POC packets loss percentage",
          "type": "integer"
        },
        "SUM_CREATED": {
          "description": "Integer value of total number of created flows",
          "type": "integer"
        },
        "SUM_DELETED": {
          "description": "Integer value of total number of deleted flows",
          "type": "integer"
        },
        "SUM_LRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side received",
          "type": "integer"
        },
        "SUM_LRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes LAN side transmitted",
          "type": "integer"
        },
        "SUM_LTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets LAN side transmitted",
          "type": "integer"
        },
        "SUM_NON_TCP_FLOWS": {
          "description": "Integer value of total number of non-TCP flows",
          "type": "integer"
        },
        "SUM_OHEAD_WRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side received with overhead",
          "type": "integer"
        },
        "SUM_OHEAD_WRX_HDR_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of header bytes WAN side received with overhead",
          "type": "integer"
        },
        "SUM_OHEAD_WRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side received with overhead",
          "type": "integer"
        },
        "SUM_OHEAD_WTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side transmitted with overhead",
          "type": "integer"
        },
        "SUM_OHEAD_WTX_HDR_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of header bytes WAN side transmitted with overhead",
          "type": "integer"
        },
        "SUM_OHEAD_WTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side transmitted with overhead",
          "type": "integer"
        },
        "SUM_POST_LOSS": {
          "description": "Integer value of total number of post-corrected packets loss",
          "type": "integer"
        },
        "SUM_POST_PCT_POC": {
          "description": "Integer value of maximum post-POC packets loss percentage",
          "type": "integer"
        },
        "SUM_POST_POC": {
          "description": "Integer value of total number of post-POC packets loss",
          "type": "integer"
        },
        "SUM_PRE_LOSS": {
          "description": "Integer value of total number of pre-corrected packets loss",
          "type": "integer"
        },
        "SUM_PRE_POC": {
          "description": "Integer value of total number of pre-POC packets loss",
          "type": "integer"
        },
        "SUM_TCP_ACC_FLOWS": {
          "description": "Integer value of total number of TCP accelerated flows",
          "type": "integer"
        },
        "SUM_TCP_FLOWS": {
          "description": "Integer value of total number of TCP flows",
          "type": "integer"
        },
        "SUM_WRX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side received",
          "type": "integer"
        },
        "SUM_WRX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side received",
          "type": "integer"
        },
        "SUM_WTX_BYTES": {
          "description": "Long(Signed 64 bits) value of total number of bytes WAN side transmitted",
          "type": "integer"
        },
        "SUM_WTX_PKTS": {
          "description": "Long(Signed 64 bits) value of total number of packets WAN side transmitted",
          "type": "integer"
        },
        "nePk": {
          "description": "Internal ID of appliance",
          "type": "string"
        }
      },
      "required": [
        "AVG_BW_PCT_UTIL_AVG",
        "AVG_LATENCY_AVG",
        "HOSTNAME",
        "IP",
        "LATENCY_MIN_FROM_PEAK",
        "MAX_BW_PCT_UTIL_MAX",
        "MAX_COMP_L2W",
        "MAX_COMP_L2WMAX",
        "MAX_COMP_NOOHEAD_L2W",
        "MAX_COMP_NOOHEAD_L2WMAX",
        "MAX_COMP_NOOHEAD_W2L",
        "MAX_COMP_NOOHEAD_W2LMAX",
        "MAX_COMP_W2L",
        "MAX_COMP_W2LMAX",
        "MAX_CREATED_MAX",
        "MAX_DELETED_MAX",
        "MAX_LATENCY_MAX",
        "MAX_LRX_BYTES_MAX",
        "MAX_LRX_PKTS_MAX",
        "MAX_LTX_BYTES_MAX",
        "MAX_LTX_PKTS_MAX",
        "MAX_NON_TCP_FLOWS_MAX",
        "MAX_OHEAD_WRX_BYTES_MAX",
        "MAX_OHEAD_WRX_HDR_BYTES_MAX",
        "MAX_OHEAD_WRX_PKTS_MAX",
        "MAX_OHEAD_WTX_BYTES_MAX",
        "MAX_OHEAD_WTX_HDR_BYTES_MAX",
        "MAX_OHEAD_WTX_PKTS_MAX",
        "MAX_POST_LOSS_MAX",
        "MAX_POST_PCT_LOSS",
        "MAX_POST_PCT_LOSS_MAX",
        "MAX_POST_POCMAX",
        "MAX_PRE_LOSS_MAX",
        "MAX_PRE_PCT_LOSS",
        "MAX_PRE_PCT_LOSS_MAX",
        "MAX_PRE_PCT_POC",
        "MAX_PRE_PCT_POCMAX",
        "MAX_PRE_POCMAX",
        "MAX_TCP_ACC_FLOWS_MAX",
        "MAX_TCP_FLOWS_MAX",
        "MAX_TIMESTAMP",
        "MAX_WRX_BYTES_MAX",
        "MAX_WRX_PKTS_MAX",
        "MAX_WTX_BYTES_MAX",
        "MAX_WTX_PKTS_MAX",
        "MIN_LATENCY_MIN",
        "MIN_TIMESTAMP",
        "POST_PCT_POCMAX",
        "SUM_CREATED",
        "SUM_DELETED",
        "SUM_LRX_BYTES",
        "SUM_LRX_PKTS",
        "SUM_LTX_BYTES",
        "SUM_LTX_PKTS",
        "SUM_NON_TCP_FLOWS",
        "SUM_OHEAD_WRX_BYTES",
        "SUM_OHEAD_WRX_HDR_BYTES",
        "SUM_OHEAD_WRX_PKTS",
        "SUM_OHEAD_WTX_BYTES",
        "SUM_OHEAD_WTX_HDR_BYTES",
        "SUM_OHEAD_WTX_PKTS",
        "SUM_POST_LOSS",
        "SUM_POST_PCT_POC",
        "SUM_POST_POC",
        "SUM_PRE_LOSS",
        "SUM_PRE_POC",
        "SUM_TCP_ACC_FLOWS",
        "SUM_TCP_FLOWS",
        "SUM_WRX_BYTES",
        "SUM_WRX_PKTS",
        "SUM_WTX_BYTES",
        "SUM_WTX_PKTS",
        "nePk"
      ]
    },
    "TunnelConfigData": {
      "properties": {
        "admin": {
          "description": "Admin state of the tunnel - takes two values: 'up' or 'down'.",
          "type": "string"
        },
        "auto_mtu": {
          "description": "Determines if the tunnel should have auto MTU detection.",
          "type": "boolean"
        },
        "ctrl_pkt": {
          "$ref": "#/definitions/FecSettings"
        },
        "destination": {
          "description": "Destination IP address.",
          "type": "string"
        },
        "gre_proto": {
          "description": "GRE protocol in the GRE header",
          "type": "integer"
        },
        "ipsec_arc_window": {
          "description": "IPSec ARC Window - not configurable.",
          "type": "string"
        },
        "ipsec_enable": {
          "description": "A quick shortcut for knowing if tunnel mode is IPSec. You can get the same information using mode property.",
          "type": "boolean"
        },
        "max_bw": {
          "description": "If the tunnel max bandwidth is manually configured, use this field and set max_bw_auto to false. Units Kbps.",
          "type": "integer"
        },
        "max_bw_auto": {
          "description": "If the tunnel max bandwidth needs to be set to auto, this field must be true.",
          "type": "boolean"
        },
        "min_bw": {
          "description": "Tunnel minimum bandwidth",
          "type": "integer"
        },
        "mode": {
          "description": "Tunnel mode: it can be one of 'gre', 'udp', 'ipsec'",
          "type": "string"
        },
        "mtu": {
          "description": "Tunnel MTU. If 'auto_mtu' is false, user must set a specific tunnel mtu value",
          "type": "integer"
        },
        "options": {
          "description": "Not used",
          "type": "integer"
        },
        "pkt": {
          "$ref": "#/definitions/FecSettings"
        },
        "self": {
          "description": "The value is the same as the tunnel name.",
          "type": "string"
        },
        "source": {
          "description": "Source IP address of the tunnel.",
          "type": "string"
        },
        "threshold": {
          "$ref": "#/definitions/TunnelHealthFailureCount"
        },
        "type": {
          "description": "Not used",
          "type": "string"
        },
        "udp_dest_port": {
          "description": "If the tunnel is of type 'udp', the udp port to use.",
          "type": "integer"
        },
        "udp_flows": {
          "description": "If tunnel mode is udp, this field determines how many different udp flows are used to distribute tunnel traffic",
          "type": "integer"
        }
      },
      "required": [
        "admin",
        "auto_mtu",
        "destination",
        "gre_proto",
        "ipsec_arc_window",
        "ipsec_enable",
        "max_bw",
        "max_bw_auto",
        "min_bw",
        "mode",
        "mtu",
        "self",
        "source",
        "udp_flows"
      ],
      "type": "object"
    },
    "TunnelCountMap": {
      "properties": {
        "totalTunnelCount": {
          "description": "Total tunnel count",
          "type": "integer"
        }
      },
      "required": [
        "totalTunnelCount"
      ],
      "type": "object"
    },
    "TunnelExceptionEntry": {
      "properties": {
        "appliance_id_1": {
          "description": "Id of appliance",
          "type": "string"
        },
        "appliance_id_2": {
          "description": "Id of appliance",
          "type": "string"
        },
        "description": {
          "description": "Description of this tunnel exception",
          "type": "string"
        },
        "id": {
          "description": "ID of tunnel exception entry",
          "type": "integer"
        },
        "interface_label_1": {
          "description": "Interface label name",
          "type": "string"
        },
        "interface_label_2": {
          "description": "Interface label name",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TunnelGroupApplianceAssociation": {
      "properties": {
        "1": {
          "description": "An array of appliance IDs (nePks) of appliances belonging to the tunnel group with ID 1.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "TunnelGroupApplianceAssociations": {
      "properties": {
        "1": {
          "description": "An array of appliance IDs (nePks) of appliances belonging to the tunnel group with ID 1.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "2": {
          "description": "An array of appliance IDs (nePks) of appliances belonging to the tunnel group with ID 2.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "TunnelGroupArrayResponse": {
      "items": {
        "$ref": "#/definitions/TunnelGroupConfig"
      },
      "type": "array"
    },
    "TunnelGroupConfig": {
      "properties": {
        "crossConnect": {
          "description": "Whether or not to cross connect the WAN ports.",
          "type": "boolean"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "topology": {
          "$ref": "#/definitions/OverlayTopology",
          "description": "Topology configuration for this overlay"
        },
        "useAllAvailableInterfaces": {
          "description": "Use all the available interfaces found on the appliances",
          "type": "boolean"
        },
        "wanPorts": {
          "description": "An array of WAN label ids  to use as the primary WAN ports this overlay.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "TunnelGroupPropertiesGet": {
      "properties": {
        "enable": {
          "description": "Whether or not the tunnel group manager is enabled",
          "type": "boolean"
        },
        "tunnelGroupPaused": {
          "description": "The current state of whether or not the tunnel group manager is paused",
          "type": "boolean"
        }
      }
    },
    "TunnelGroupPropertiesSet": {
      "properties": {
        "enable": {
          "description": "Enable or disable the tunnel group manager",
          "type": "boolean"
        }
      }
    },
    "TunnelHealthFailureCount": {
      "properties": {
        "dbw_aimd": {
          "description": "Obsolete",
          "type": "boolean"
        },
        "dbw_rserc": {
          "description": "Obsolete",
          "type": "boolean"
        },
        "retry_count": {
          "description": "How many packets which are sent once per second should be missed before a tunnel is declared down",
          "type": "integer"
        }
      }
    },
    "TunnelPolicyDetail": {
      "properties": {
        "condition": {
          "description": "If the links in this policy detail matches the condition (1-green, 2-up), use these links, if not move on to the next policy detail.",
          "example": 1,
          "type": "integer"
        },
        "links": {
          "description": "An array of strings that specify which ports to use (ex: ['MPLS', 'MPLS-Internet'])",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "TunnelSetting": {
      "properties": {
        "admin": {
          "description": "admin status",
          "type": "string"
        },
        "authenticationAlgorithm": {
          "description": "IPsec authentication algorithm",
          "type": "string"
        },
        "autoMaxBandwidthEnabled": {
          "description": "auto max bandwidth",
          "type": "boolean"
        },
        "dhgroup": {
          "description": "Diffie-Hellman Group",
          "type": "string"
        },
        "dpdDelay": {
          "description": "Dead Peer Detection delay time in seconds",
          "type": "number"
        },
        "dpdRetry": {
          "description": "Dead Peer Detection Retry Count",
          "type": "number"
        },
        "encryptionAlgorithm": {
          "description": "IPsec encryption algorithm",
          "type": "string"
        },
        "exchangeMode": {
          "description": "IKE Phase 1 Mode",
          "type": "string"
        },
        "idStr": {
          "description": "IKE Identifier string",
          "type": "string"
        },
        "idType": {
          "description": "IKE Identifier type",
          "type": "string"
        },
        "ikeAuthenticationAlgorithm": {
          "description": "IKE authentication algorithm",
          "type": "string"
        },
        "ikeEncryptionAlgorithm": {
          "description": "IKE encryption algorithm",
          "type": "string"
        },
        "ikeLifetime": {
          "description": "IKE Lifetime",
          "type": "number"
        },
        "ipsecAntiReplayWindow": {
          "description": "IPsec Anti-replay Window",
          "type": "string"
        },
        "lifebytes": {
          "description": "IPsec Lifetime in megabytes",
          "type": "number"
        },
        "lifetime": {
          "description": "IPsec Lifetime in minutes",
          "type": "number"
        },
        "mode": {
          "description": "Pass through tunnel mode",
          "type": "string"
        },
        "natMode": {
          "description": "nat mode",
          "type": "string"
        },
        "pfs": {
          "description": "Perfect Forward Secrecy Group (disabled)",
          "type": "boolean"
        },
        "pfsgroup": {
          "description": "Perfect Forward Secrecy Group",
          "type": "string"
        },
        "presharedKey": {
          "description": "pre-shared key",
          "type": "string"
        }
      },
      "required": [
        "admin",
        "authenticationAlgorithm",
        "autoMaxBandwidthEnabled",
        "dhgroup",
        "dpdDelay",
        "dpdRetry",
        "encryptionAlgorithm",
        "exchangeMode",
        "ikeAuthenticationAlgorithm",
        "ikeEncryptionAlgorithm",
        "ikeLifetime",
        "ipsecAntiReplayWindow",
        "lifebytes",
        "lifetime",
        "mode",
        "natMode",
        "pfs",
        "pfsgroup"
      ],
      "type": "object"
    },
    "TunnelState": {
      "properties": {
        "auto_mtu": {
          "description": "Determines if the tunnel should have auto MTU detection.",
          "type": "integer"
        },
        "config_bin": {
          "description": "Need description here",
          "type": "string"
        },
        "cur_max_bw": {
          "description": "current max bandwidth",
          "type": "string"
        },
        "cur_min_bw": {
          "description": "current min bandwidth",
          "type": "string"
        },
        "cur_mtu": {
          "description": "current mtu",
          "type": "string"
        },
        "cur_set_max_bw": {
          "description": "current setted max bandwidth",
          "type": "string"
        },
        "details": {
          "description": "Need description here",
          "type": "string"
        },
        "encap": {
          "description": "Need description here",
          "type": "string"
        },
        "encap_brief": {
          "description": "Need description here",
          "type": "string"
        },
        "ipsec_debug": {
          "description": "Need description here",
          "type": "string"
        },
        "ipsec_health": {
          "description": "Need description here",
          "type": "string"
        },
        "ipsec_sas": {
          "description": "Need description here",
          "type": "string"
        },
        "ipsec_stats": {
          "description": "Need description here",
          "type": "string"
        },
        "num_ipsec_sas": {
          "description": "Need description here",
          "type": "string"
        },
        "oper": {
          "description": "Need description here",
          "type": "string"
        },
        "pkt": {
          "$ref": "#/definitions/KPTState"
        },
        "qos_stats": {
          "description": "Need description here",
          "type": "string"
        },
        "quiescence": {
          "description": "Need description here",
          "type": "boolean"
        },
        "refunk": {
          "description": "Need description here",
          "type": "boolean"
        },
        "rem_sys_bw": {
          "description": "Need description here",
          "type": "string"
        },
        "remote_id": {
          "description": "Need description here",
          "type": "integer"
        },
        "self": {
          "description": "The value is a tunnel name. It is the same as parent node key - tunnel name",
          "type": "string"
        },
        "state_bin": {
          "description": "Need description here",
          "type": "string"
        },
        "uptime": {
          "description": "Tunnel up time in milliseconds",
          "type": "integer"
        }
      },
      "required": [
        "auto_mtu",
        "config_bin",
        "cur_max_bw",
        "cur_min_bw",
        "cur_mtu",
        "cur_set_max_bw",
        "details",
        "encap",
        "encap_brief",
        "ipsec_debug",
        "ipsec_health",
        "ipsec_sas",
        "ipsec_stats",
        "num_ipsec_sas",
        "oper",
        "qos_stats",
        "quiescence",
        "refunk",
        "rem_sys_bw",
        "remote_id",
        "self",
        "state_bin",
        "uptime"
      ],
      "type": "object"
    },
    "TunnelTcaDataInfo": {
      "properties": {
        "UI": {
          "$ref": "#/definitions/TcaUIInfo"
        },
        "allow_disable": {
          "description": "Need description here",
          "type": "boolean"
        },
        "allow_falling": {
          "description": "Need description here",
          "type": "boolean"
        },
        "allow_rising": {
          "description": "Need description here",
          "type": "boolean"
        },
        "dft": {
          "$ref": "#/definitions/DftData"
        },
        "threshold_max": {
          "description": "Need description here",
          "type": "integer"
        },
        "threshold_min": {
          "description": "Need description here",
          "type": "integer"
        },
        "wc": {
          "$ref": "#/definitions/WCData",
          "description": "'wc' will keep all the modified tca configuration, that means if the tca has been modified and is not the same as dft, the 'wc' will be exsit, otherwise there is no 'wc' property."
        }
      },
      "required": [
        "UI",
        "allow_disable",
        "allow_falling",
        "allow_rising",
        "dft",
        "threshold_max",
        "threshold_min"
      ],
      "type": "object"
    },
    "TunnelTcaInfo": {
      "properties": {
        "latency": {
          "$ref": "#/definitions/TunnelTcaDataInfo",
          "description": "tca id"
        },
        "loss-post-fec": {
          "$ref": "#/definitions/TunnelTcaDataInfo",
          "description": "tca id"
        },
        "loss-pre-fec": {
          "$ref": "#/definitions/TunnelTcaDataInfo",
          "description": "tca id"
        },
        "oop-post-poc": {
          "$ref": "#/definitions/TunnelTcaDataInfo",
          "description": "tca id"
        },
        "oop-pre-poc": {
          "$ref": "#/definitions/TunnelTcaDataInfo",
          "description": "tca id"
        },
        "reduction": {
          "$ref": "#/definitions/TunnelTcaDataInfo",
          "description": "tca id"
        },
        "utilization": {
          "$ref": "#/definitions/TunnelTcaDataInfo",
          "description": "tca id"
        }
      },
      "required": [
        "latency",
        "loss-post-fec",
        "loss-pre-fec",
        "oop-post-poc",
        "oop-pre-poc",
        "reduction",
        "utilization"
      ],
      "type": "object"
    },
    "TunnelThreshold2": {
      "properties": {
        "fastfail": {
          "description": "The fastfail threshold",
          "type": "number"
        },
        "retry_count": {
          "type": "number"
        }
      }
    },
    "Tunnels": {
      "properties": {
        "<nePk>": {
          "$ref": "#/definitions/ApplianceTunnels",
          "description": "the tunnels between this appliance and other appliances"
        }
      },
      "required": [
        "<nePk>"
      ],
      "type": "object"
    },
    "TunnelsBetweenResultTunnel": {
      "properties": {
        "alias": {
          "description": "The tunnel alias",
          "type": "string"
        },
        "destNePk": {
          "description": "The destination nePk",
          "type": "string"
        },
        "destTunnelAlias": {
          "description": "The opposite tunnel alias",
          "type": "string"
        },
        "destTunnelId": {
          "description": "The opposite tunnel Id on the other appliance",
          "type": "string"
        },
        "id": {
          "description": "The tunnel ID",
          "type": "string"
        },
        "isBondedTunnel": {
          "description": "Whether or not this tunnel is a bonded tunnel",
          "type": "boolean"
        },
        "isPassThrough": {
          "description": "Whether or not this tunnel is pass through",
          "type": "boolean"
        },
        "nePk": {
          "description": "The source nePk of the tunnel",
          "type": "string"
        },
        "overlayId": {
          "description": "If this tunnel is a bonded tunnel, this is the overlayId for the overlay it belongs to",
          "type": "number"
        }
      }
    },
    "TunnelsConfigAndStates": {
      "properties": {
        "<tunnel name>": {
          "$ref": "#/definitions/TunnelConfigData",
          "description": "Need description here"
        },
        "allTunnelState": {
          "$ref": "#/definitions/AllStates",
          "description": "Need description here"
        },
        "default": {
          "$ref": "#/definitions/TunnelsConfigAndStatesDefault",
          "description": "Need description here"
        },
        "pass-through": {
          "$ref": "#/definitions/TunnelsConfigAndStatesDefault",
          "description": "Need description here"
        },
        "pass-through-unshaped": {
          "$ref": "#/definitions/TunnelsConfigAndStatesDefault",
          "description": "Need description here"
        }
      },
      "required": [
        "<tunnel name>",
        "allTunnelState",
        "default",
        "pass-through",
        "pass-through-unshaped"
      ],
      "type": "object"
    },
    "TunnelsConfigAndStatesDefault": {
      "properties": {
        "admin": {
          "description": "Need description here",
          "type": "string"
        },
        "auto_mtu": {
          "description": "Determines if the tunnel should have auto MTU detection",
          "type": "boolean"
        },
        "ctrl_pkt": {
          "$ref": "#/definitions/TunnelsConfigAndStatesDefaultCtrl_pkt",
          "description": "Need description here"
        },
        "cur_max_bw": {
          "description": "current maximum bandwidth",
          "type": "integer"
        },
        "destination": {
          "description": "Need description here",
          "type": "string"
        },
        "gre_proto": {
          "description": "Need description here",
          "type": "integer"
        },
        "id2": {
          "description": "Need description here",
          "type": "integer"
        },
        "ipsec_arc_window": {
          "description": "Need description here",
          "type": "string"
        },
        "ipsec_enable": {
          "description": "Need description here",
          "type": "boolean"
        },
        "isRediscoveringMTU": {
          "description": "Need description here",
          "type": "boolean"
        },
        "max_bw": {
          "description": "Tunnel maximum bandwidth",
          "type": "integer"
        },
        "max_bw_auto": {
          "description": "whether to automatically set maximum tunnel bandwidth",
          "type": "boolean"
        },
        "min_bw": {
          "description": "Tunnel minimum bandwidth",
          "type": "integer"
        },
        "mode": {
          "description": "Need description here",
          "type": "string"
        },
        "mtu": {
          "description": "Tunnel MTU. If 'auto_mtu' is false, user must set a specific tunnel mtu value",
          "type": "integer"
        },
        "options": {
          "description": "Need description here",
          "type": "integer"
        },
        "pkt": {
          "$ref": "#/definitions/TunnelsConfigAndStatesDefaultPkt",
          "description": "Need description here"
        },
        "self": {
          "description": "The value is a tunnel name. It is the same as parent node key - tunnel name",
          "type": "string"
        },
        "source": {
          "description": "Need description here",
          "type": "string"
        },
        "status": {
          "description": "Need description here",
          "type": "string"
        },
        "tag_name": {
          "description": "Need description here",
          "type": "string"
        },
        "threshold": {
          "$ref": "#/definitions/TunnelsConfigAndStatesDefaultThreshold",
          "description": "Need description here"
        },
        "type": {
          "description": "Need description here",
          "type": "string"
        },
        "udp_dest_port": {
          "description": "Need description here",
          "type": "integer"
        },
        "udp_flows": {
          "description": "Need description here",
          "type": "integer"
        },
        "uptime": {
          "description": "Tunnel up time in milliseconds",
          "type": "integer"
        }
      },
      "required": [
        "admin",
        "auto_mtu",
        "ctrl_pkt",
        "cur_max_bw",
        "destination",
        "gre_proto",
        "id2",
        "ipsec_arc_window",
        "ipsec_enable",
        "isRediscoveringMTU",
        "max_bw",
        "max_bw_auto",
        "min_bw",
        "mode",
        "mtu",
        "options",
        "pkt",
        "self",
        "source",
        "status",
        "tag_name",
        "threshold",
        "type",
        "udp_dest_port",
        "udp_flows",
        "uptime"
      ],
      "type": "object"
    },
    "TunnelsConfigAndStatesDefaultCtrl_pkt": {
      "properties": {
        "dscp": {
          "description": "description",
          "type": "string"
        }
      },
      "required": [
        "dscp"
      ],
      "type": "object"
    },
    "TunnelsConfigAndStatesDefaultPkt": {
      "properties": {
        "fec_enable_str": {
          "description": "Need description here",
          "type": "string"
        },
        "fec_reset_intvl": {
          "description": "Need description here",
          "type": "integer"
        },
        "frag_enable": {
          "description": "Need description here",
          "type": "boolean"
        },
        "reorder_wait": {
          "description": "Need description here",
          "type": "integer"
        }
      },
      "required": [
        "fec_enable_str",
        "fec_reset_intvl",
        "frag_enable",
        "reorder_wait"
      ],
      "type": "object"
    },
    "TunnelsConfigAndStatesDefaultThreshold": {
      "properties": {
        "dbw_aimd": {
          "description": "Need description here",
          "type": "boolean"
        },
        "dbw_rserc": {
          "description": "Need description here",
          "type": "boolean"
        },
        "retry_count": {
          "description": "how many packets which are sent once per second should be missed before a tunnel is declared down",
          "type": "integer"
        }
      },
      "required": [
        "dbw_aimd",
        "dbw_rserc",
        "retry_count"
      ],
      "type": "object"
    },
    "TunnelsDeploymentInfo": {
      "properties": {
        "nePk": {
          "$ref": "#/definitions/TunnelsDeploymentInfoObj"
        }
      },
      "type": "object"
    },
    "TunnelsDeploymentInfoObj": {
      "properties": {
        "lanInterfaces": {
          "description": "List of lan interfaces for this appliance",
          "items": {
            "$ref": "#/definitions/InterfacePropertiesObj"
          },
          "type": "array"
        },
        "mode": {
          "description": "Deployment mode of appliance eg: INLINE_ROUTER, ROUTER, BRIDGE, SERVER",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TunnelsOverlayInfo": {
      "properties": {
        "0": {
          "$ref": "#/definitions/SourceNePkToDestNePkPhysicalTunnelsMap",
          "description": "All the physical tunnels in Orchestrator."
        },
        "1-7": {
          "$ref": "#/definitions/SourceNePkToDestNePkTunnelsMap",
          "description": "All the bonded tunnels in a particular overlay. The key is the overlay ID."
        },
        "all": {
          "$ref": "#/definitions/SourceNePkToDestNePkTunnelsMap",
          "description": "All physical and bonded tunnels in the Orchestrator."
        }
      },
      "type": "object"
    },
    "UpgradeAppliancesResponse": {
      "properties": {
        "clientKey": {
          "description": "The client key of appliances upgrade background task.",
          "type": "string"
        }
      },
      "required": [
        "clientKey"
      ],
      "type": "object"
    },
    "UploadToSp": {
      "properties": {
        "caseDesc": {
          "description": "The case description",
          "type": "string"
        },
        "caseKey": {
          "description": "The case number",
          "type": "string"
        },
        "fileName": {
          "description": "The name of the file",
          "type": "string"
        }
      },
      "type": "object"
    },
    "User": {
      "properties": {
        "enable": {
          "description": "Whether a user account is active or inactive",
          "type": "boolean"
        },
        "gid": {
          "description": "Role ID: admin(0), monitor(1001)",
          "type": "integer"
        },
        "password": {
          "description": "Password of the user account",
          "type": "string"
        },
        "self": {
          "description": "Username",
          "type": "string"
        }
      },
      "required": [
        "enable",
        "gid",
        "password",
        "self"
      ],
      "type": "object"
    },
    "UserAccount": {
      "properties": {
        "sessions": {
          "$ref": "#/definitions/SessionMap",
          "description": "Map of sessions keyed by session number"
        },
        "users": {
          "$ref": "#/definitions/UserMap",
          "description": "Map of users keyed by username"
        }
      },
      "required": [
        "sessions",
        "users"
      ],
      "type": "object"
    },
    "UserApps": {
      "properties": {
        "<appName&Type>": {
          "description": "one user application's related appliances information",
          "items": {
            "$ref": "#/definitions/BuiltinAppItem"
          },
          "type": "array"
        }
      },
      "required": [
        "<appName&Type>"
      ],
      "type": "object"
    },
    "UserMap": {
      "properties": {
        "<username>": {
          "$ref": "#/definitions/User",
          "description": "Order of username"
        }
      },
      "type": "object"
    },
    "UserSessionInfo": {
      "properties": {
        "configData": {
          "$ref": "#/definitions/sessionDetail",
          "description": "could be any type of json object/array"
        },
        "resourceBase": {
          "description": "name of the main resource",
          "type": "string"
        },
        "resourceKey": {
          "description": "name of the sub-resource. this is optional",
          "type": "string"
        },
        "version": {
          "description": "id",
          "type": "integer"
        }
      },
      "required": [
        "configData",
        "resourceBase"
      ],
      "type": "object"
    },
    "UsersGetItem": {
      "properties": {
        "createTime": {
          "type": "integer"
        },
        "email": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "isTwoFactorEmail": {
          "type": "boolean"
        },
        "isTwoFactorTime": {
          "type": "boolean"
        },
        "lastName": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "role": {
          "type": "string"
        },
        "salt": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "userPk": {
          "type": "string"
        },
        "username": {
          "type": "string"
        }
      },
      "required": [
        "createTime",
        "email",
        "firstName",
        "isTwoFactorEmail",
        "isTwoFactorTime",
        "lastName",
        "password",
        "phone",
        "role",
        "salt",
        "status",
        "userPk",
        "username"
      ],
      "type": "object"
    },
    "VRRP_GET": {
      "properties": {
        "adv_timer": {
          "description": "Time interval between advertisements. Default is 1 second. Must be between 1-255",
          "type": "integer"
        },
        "auth": {
          "description": "Authentication string. Maximum 8 characters",
          "type": "string"
        },
        "desc": {
          "description": "Description string. Maximum 64 characters",
          "type": "string"
        },
        "enable": {
          "description": "Enable/Disable the VRRP instance, valid options are 'Up' or 'Down'",
          "type": "string"
        },
        "groupId": {
          "description": "Identifier assigned to the two peers. Depending on the deployment, the group can consist of an appliance and a router (or L3 switch), or two appliances. Must be between 1-255",
          "type": "integer"
        },
        "holddown": {
          "description": "Default is 10. Must be between 1-255",
          "type": "integer"
        },
        "interface": {
          "description": "Name of interface that VRRP is using for peering. Eg. wan0",
          "type": "string"
        },
        "master_transitions": {
          "description": "Number of times the VRRP instance went from Master to Backup and vice versa. A high number of transitions indicates a problematic VRRP configuration or environment. If this is the case, check the configuration of all local appliances and routers, and review the log files",
          "type": "integer"
        },
        "masterip": {
          "description": "Current VRRP Master's Interface or local IP address",
          "type": "string"
        },
        "mode": {
          "description": "There are three options for the VRRP instance - Backup : Instance is in VRRP backup state. Init : Instance is initializing, it's disabled, or the interface is down. Master : Instance is the current VRRP master",
          "type": "string"
        },
        "pkt_trace": {
          "description": "Default is false",
          "type": "boolean"
        },
        "preempt": {
          "description": "If true the appliance with the highest priority comes back online and again assumes primary responsibility. Default is true",
          "type": "boolean"
        },
        "priority": {
          "description": "The greater the number, the higher the priority. The appliance with the higher priority is the VRRP Master. Must be between 1-254",
          "type": "integer"
        },
        "uptime": {
          "description": "Time elapsed since the VRRP instance entered the state it's in. Sample format: 0 days 11 hrs 49 mins 41 secs",
          "type": "string"
        },
        "vipaddr": {
          "description": "Must be valid ip address and not match any of the existing interface ips on the appliance",
          "type": "string"
        },
        "vipowner": {
          "description": "A Silver Peak appliance cannot use one of its own IP addresses as the VRRP IP, so this will always be false",
          "type": "boolean"
        },
        "vmac": {
          "description": "MAC Address that the VRRP instance is using. On an NX Appliance, this is in 00-00-5E-00-01-{VRID} format. On virtual appliances, the VRRP instance uses the interface's assigned MAC Address (for example, the MAC address that the hypervisor assigned to wan0)",
          "type": "string"
        }
      },
      "required": [
        "adv_timer",
        "auth",
        "desc",
        "enable",
        "groupId",
        "holddown",
        "interface",
        "master_transitions",
        "masterip",
        "mode",
        "pkt_trace",
        "preempt",
        "priority",
        "uptime",
        "vipaddr",
        "vipowner",
        "vmac"
      ],
      "type": "object"
    },
    "VXLicenseItem": {
      "properties": {
        "applianceId": {
          "type": "string"
        },
        "hostname": {
          "type": "string"
        },
        "licenseExpirationDate": {
          "type": "integer"
        },
        "licenseStartDate": {
          "type": "integer"
        },
        "licenseType": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "saasEnabled": {
          "type": "boolean"
        },
        "serialNum": {
          "type": "string"
        }
      },
      "required": [
        "applianceId",
        "hostname",
        "licenseExpirationDate",
        "licenseStartDate",
        "licenseType",
        "model",
        "saasEnabled",
        "serialNum"
      ],
      "type": "object"
    },
    "VersionInfo": {
      "properties": {
        "current": {
          "description": "Current installed version of gsm",
          "type": "string"
        },
        "installed": {
          "description": "list of 3 available orchestrator version",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "VxoaHostname": {
      "properties": {
        "hostname": {
          "description": "The hostname you want to apply to the appliance",
          "type": "string"
        }
      }
    },
    "WCCPGroupLevelState": {
      "properties": {
        "51": {
          "$ref": "#/definitions/WccpGroupState"
        },
        "52": {
          "$ref": "#/definitions/WccpGroupState"
        }
      },
      "required": [
        "51",
        "52"
      ]
    },
    "WCCPSystemLevelState": {
      "properties": {
        "debug_all": {
          "description": "all debug information for WCCP",
          "type": "string"
        },
        "debug_global": {
          "description": "global debug information for WCCP",
          "type": "string"
        },
        "is_alive": {
          "description": "is alive information for WCCP",
          "type": "string"
        },
        "proto_ver": {
          "description": "prototype version information for WCCP",
          "type": "string"
        }
      },
      "required": [
        "debug_all",
        "debug_global",
        "is_alive",
        "proto_ver"
      ]
    },
    "WCData": {
      "properties": {
        "<tunnel name>": {
          "$ref": "#/definitions/WcObject",
          "description": "name of a tunnel on this appliance."
        }
      },
      "required": [
        "<tunnel name>"
      ],
      "type": "object"
    },
    "WanLabelSettings": {
      "properties": {
        "admin": {
          "description": "admin up or down",
          "type": "string"
        },
        "authenticationAlgorithm": {
          "description": "IPsec authentication algorithm",
          "type": "string"
        },
        "autoMaxBandwidthEnabled": {
          "description": "Automatically use max bandwidth",
          "type": "boolean"
        },
        "autoMtu": {
          "description": "Auto Mtu",
          "type": "boolean"
        },
        "dhgroup": {
          "description": "IKE Diffie-Hellman Group",
          "type": "string"
        },
        "dpdDelay": {
          "description": "IKE Dead Peer Detection Delay time",
          "type": "number"
        },
        "dpdRetry": {
          "description": "IKE Dead Peer Detection Retry Count",
          "type": "number"
        },
        "dscp": {
          "description": "Differentiated Services Code Point",
          "type": "string"
        },
        "encryptionAlgorithm": {
          "description": "IPsec encryption algorithm",
          "type": "string"
        },
        "exchangeMode": {
          "description": "IKE Phase 1 Mode",
          "type": "string"
        },
        "fastfailWaitBase": {
          "description": "Fastfail Wait-time Base Offset",
          "type": "number"
        },
        "fastfailWaitRtt": {
          "description": "Fastfail RTT Multiplication Factor",
          "type": "number"
        },
        "fecMaxRatio": {
          "description": "Fec Maximum Ratio, set this the same as selectedFecVal",
          "type": "number"
        },
        "fecMinRatio": {
          "description": "Fec Minimum Ratio, set this to 0",
          "type": "number"
        },
        "idStr": {
          "description": "IKE Identifier string",
          "type": "string"
        },
        "idType": {
          "description": "IKE Identifier type",
          "type": "string"
        },
        "ikeAuthenticationAlgorithm": {
          "description": "IKE Authentication Algorithm",
          "type": "string"
        },
        "ikeEncryptionAlgorithm": {
          "description": "IKE Encryption Algorithm",
          "type": "string"
        },
        "ikeLifetime": {
          "description": "IKE Lifetime",
          "type": "number"
        },
        "ipsecAntiReplayWindow": {
          "description": "IPsec anti replay window",
          "type": "string"
        },
        "jitter": {
          "description": "Jitter",
          "type": "number"
        },
        "latency": {
          "description": "Latency",
          "type": "number"
        },
        "lifebytes": {
          "description": "IPsec Lifetime in megabytes",
          "type": "number"
        },
        "lifetime": {
          "description": "IPsec Lifetime in minutes",
          "type": "number"
        },
        "lossVal": {
          "description": "Loss",
          "type": "number"
        },
        "mode": {
          "description": "Tunnel mode - ipsec, udp, or gre",
          "type": "string"
        },
        "mtu": {
          "description": "Mtu",
          "type": "number"
        },
        "pfs": {
          "description": "Perfect Forward Secrecy Group Enabled",
          "type": "boolean"
        },
        "pfsgroup": {
          "description": "Perfect Forward Secrecy Group number",
          "type": "string"
        },
        "reorderWait": {
          "description": "Reorder Wait time",
          "type": "number"
        },
        "retryCount": {
          "description": "retry count in seconds",
          "type": "number"
        },
        "selectedFastfail": {
          "description": "Fastfail Enabled (1: enable, 2: continue, 3: disable)",
          "type": "number"
        },
        "selectedFec": {
          "description": "Fec",
          "type": "string"
        },
        "udpDestinationPort": {
          "description": "Receiver's port that will receive udp packets",
          "type": "number"
        },
        "udpFlows": {
          "description": "Max udp flows",
          "type": "number"
        }
      },
      "required": [
        "admin",
        "authenticationAlgorithm",
        "autoMaxBandwidthEnabled",
        "autoMtu",
        "dhgroup",
        "dpdDelay",
        "dpdRetry",
        "dscp",
        "encryptionAlgorithm",
        "exchangeMode",
        "fastfailWaitBase",
        "fastfailWaitRtt",
        "fecMaxRatio",
        "fecMinRatio",
        "idStr",
        "idType",
        "ikeAuthenticationAlgorithm",
        "ikeEncryptionAlgorithm",
        "ikeLifetime",
        "ipsecAntiReplayWindow",
        "jitter",
        "latency",
        "lifebytes",
        "lifetime",
        "lossVal",
        "mode",
        "mtu",
        "pfs",
        "pfsgroup",
        "reorderWait",
        "retryCount",
        "selectedFastfail",
        "selectedFec",
        "udpDestinationPort",
        "udpFlows"
      ],
      "type": "object"
    },
    "WanNextHopHealthGet": {
      "properties": {
        "enable": {
          "description": "Enable or disable health check",
          "type": "boolean"
        },
        "hold_down_count": {
          "description": "Hold down count",
          "type": "integer"
        },
        "interval": {
          "description": "Interval",
          "type": "integer"
        },
        "retry_count": {
          "description": "Retry count",
          "type": "integer"
        }
      },
      "required": [
        "enable",
        "hold_down_count",
        "interval",
        "retry_count"
      ],
      "type": "object"
    },
    "WcObject": {
      "properties": {
        "enable": {
          "description": "Need description here",
          "type": "boolean"
        },
        "falling": {
          "$ref": "#/definitions/ChangedObject"
        },
        "rising": {
          "$ref": "#/definitions/ChangedObject"
        },
        "self": {
          "description": "The value should be the same as its parent node tunnel name.",
          "type": "string"
        }
      },
      "required": [
        "enable",
        "falling",
        "rising",
        "self"
      ],
      "type": "object"
    },
    "WccpConfigServiceGroups": {
      "properties": {
        "51": {
          "$ref": "#/definitions/WccpGroup"
        },
        "52": {
          "$ref": "#/definitions/WccpGroup"
        }
      },
      "required": [
        "51",
        "52"
      ]
    },
    "WccpConfigSystem": {
      "properties": {
        "enable": {
          "type": "boolean"
        },
        "mcast_ttl": {
          "type": "integer"
        }
      }
    },
    "WccpGroup": {
      "properties": {
        "assign_detail": {
          "description": "WCCP service group assignment detail",
          "type": "string"
        },
        "assign_method": {
          "description": "Assignment Method",
          "type": "string"
        },
        "compatibility": {
          "description": "WCCP service group compatibility mode. Valid values: ios, nexus",
          "type": "string"
        },
        "encap": {
          "description": "WCCP service group forwarding method",
          "type": "string"
        },
        "force_l2_return": {
          "description": "WCCP service group force l2 return",
          "type": "boolean"
        },
        "hash_dst_ip": {
          "description": "WCCP service group hash destination ip",
          "type": "boolean"
        },
        "hash_dst_port": {
          "description": "WCCP service group hash destination port",
          "type": "boolean"
        },
        "hash_src_ip": {
          "description": "WCCP service group hash source ip",
          "type": "boolean"
        },
        "hash_src_port": {
          "description": "WCCP service group hash source port",
          "type": "boolean"
        },
        "interface": {
          "description": "WCCP service group interface.",
          "type": "string"
        },
        "mask_dst_ip": {
          "description": "WCCP service group mask destination ip",
          "type": "integer"
        },
        "mask_dst_port": {
          "description": "WCCP service group mask destination port",
          "type": "integer"
        },
        "mask_src_ip": {
          "description": "WCCP service group mask source ip",
          "type": "integer"
        },
        "mask_src_port": {
          "description": "WCCP service group mask source port",
          "type": "integer"
        },
        "password": {
          "description": "WCCP service group password",
          "type": "string"
        },
        "priority": {
          "description": "WCCP service group priority. Valid range: [0, 255].",
          "type": "integer"
        },
        "protocol": {
          "description": "WCCP service group protocol",
          "type": "string"
        },
        "router": {
          "description": "WCCP service group router information.",
          "properties": {
            "1": {
              "properties": {
                "ipaddr": {
                  "description": "WCCP service group router IP address.",
                  "type": "string"
                },
                "self": {
                  "type": "integer"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "self": {
          "description": "Integer value of service group Id",
          "type": "integer"
        },
        "weight": {
          "description": "WCCP service group weight",
          "type": "integer"
        }
      }
    },
    "WccpGroupState": {
      "properties": {
        "app_id": {
          "type": "string"
        },
        "assignment": {
          "description": "assignment information for the WCCP service group",
          "type": "string"
        },
        "debug": {
          "description": "debug information for the WCCP service group",
          "type": "string"
        },
        "num_appliances": {
          "description": "number of appliances for the WCCP service group",
          "type": "integer"
        },
        "num_routers": {
          "description": "number of routers for the WCCP service group",
          "type": "integer"
        },
        "oper": {
          "description": "operational status for the WCCP service group",
          "type": "string"
        },
        "self": {
          "description": "integer value of the group Id",
          "type": "integer"
        },
        "uptime": {
          "description": "uptime for the WCCP service group",
          "type": "integer"
        }
      }
    },
    "WccpState": {
      "properties": {
        "group": {
          "$ref": "#/definitions/WCCPGroupLevelState",
          "description": "group level state for WCCP"
        },
        "system": {
          "$ref": "#/definitions/WCCPSystemLevelState",
          "description": "system level state for WCCP"
        }
      },
      "required": [
        "group",
        "system"
      ]
    },
    "WizardData": {
      "properties": {
        "applianceExtraInfo": {
          "$ref": "#/definitions/ApplianceExtraInfo"
        },
        "applianceImage": {
          "type": "string",
          "description": "Upgrade the appliance before applying the wizard using this image. Appliance image object comes from /release or /vxoaImages"
        },
        "approve": {
          "$ref": "#/definitions/EmptyObject",
          "description": "Approve the appliance for EC licensing"
        },
        "coordinates": {
          "$ref": "#/definitions/GRNodeUpdatePostBody"
        },
        "deployment": {
          "$ref": "#/definitions/DeploymentPut"
        },
        "ecLicense": {
          "description": "ID of the EC-Term license to apply to this appliance (if using EC-Term)",
          "type": "string"
        },
        "hostname": {
          "type": "string"
        },
        "labels": {
          "$ref": "#/definitions/EmptyObject"
        },
        "overlayRegion": {
          "type": "string"
        },
        "overlays": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "password": {
          "$ref": "#/definitions/ApplianceChangePasswordPost"
        },
        "subnets": {
          "$ref": "#/definitions/SubnetsPost"
        },
        "templates": {
          "description": "Array of template group names",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "Zone": {
      "properties": {
        "name": {
          "description": "Zone name",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "Zones": {
      "properties": {
        "<zoneId>": {
          "$ref": "#/definitions/Zone"
        }
      },
      "type": "object"
    },
    "ZscalerVpnLocationExceptionConfig": {
      "properties": {
        "endpointException": {
          "description": "user configured tunnel ZEN override data",
          "type": "string"
        },
        "endpointExceptionTimestamp": {
          "description": "user configured ZEN override data last update time",
          "type": "number"
        },
        "fqdn": {
          "description": "discovered endpoint",
          "type": "string"
        },
        "nepk": {
          "description": "appliance nepk",
          "type": "string"
        },
        "presharedKey": {
          "description": "encrypted pre-shared key",
          "type": "string"
        },
        "vpnLocation": {
          "description": "Vpn and location data",
          "type": "string"
        },
        "vpnLocationTimestamp": {
          "description": "vpn and location last update time",
          "type": "number"
        }
      },
      "required": [
        "endpointException",
        "endpointExceptionTimestamp",
        "fqdn",
        "nepk",
        "presharedKey",
        "vpnLocation",
        "vpnLocationTimestamp"
      ],
      "type": "object"
    },
    "aaaConfig": {
      "description": "Details of default user and order of authorization",
      "properties": {
        "auth_method": {
          "$ref": "#/definitions/AuthConfigMap"
        },
        "author": {
          "$ref": "#/definitions/AuthorConfigElement"
        }
      },
      "required": [
        "auth_method",
        "author"
      ]
    },
    "accessConfigMap": {
      "description": "appliance access group name to value map ",
      "properties": {
        "<applianceAccessGroupName>": {
          "$ref": "#/definitions/applianceAccess",
          "description": "appliance access group name"
        }
      },
      "required": [
        "<applianceAccessGroupName>"
      ],
      "type": "object"
    },
    "activeSessionsItems": {
      "properties": {
        "idle_time": {
          "type": "integer"
        },
        "login_time": {
          "type": "integer"
        },
        "remote_host": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "username": {
          "type": "string"
        }
      },
      "required": [
        "idle_time",
        "login_time",
        "remote_host",
        "type",
        "username"
      ],
      "type": "object"
    },
    "alarmDebounceConfig": {
      "properties": {
        "duration": {
          "description": "Alarm email delay duration in seconds.",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "alarmSummary": {
      "description": "Need description here",
      "properties": {
        "num_critical": {
          "description": "Need description here",
          "type": "integer"
        },
        "num_equipment_outstanding": {
          "description": "Need description here",
          "type": "integer"
        },
        "num_major": {
          "description": "Need description here",
          "type": "integer"
        },
        "num_minor": {
          "description": "Need description here",
          "type": "integer"
        },
        "num_outstanding": {
          "description": "Need description here",
          "type": "integer"
        },
        "num_software_outstanding": {
          "description": "Need description here",
          "type": "integer"
        },
        "num_tca_outstanding": {
          "description": "Need description here",
          "type": "integer"
        },
        "num_traffic_class_outstanding": {
          "description": "Need description here",
          "type": "integer"
        },
        "num_tunnel_outstanding": {
          "description": "Need description here",
          "type": "integer"
        },
        "num_warning": {
          "description": "Need description here",
          "type": "integer"
        }
      },
      "required": [
        "num_critical",
        "num_equipment_outstanding",
        "num_major",
        "num_minor",
        "num_outstanding",
        "num_software_outstanding",
        "num_tca_outstanding",
        "num_traffic_class_outstanding",
        "num_tunnel_outstanding",
        "num_warning"
      ],
      "type": "object"
    },
    "allApplianceAccessConfigs": {
      "description": "Multiple pairs of applianceAccessGroupName to value",
      "properties": {
        "<applianceAccessGroupName1>": {
          "$ref": "#/definitions/applianceAccess",
          "description": "appliances"
        },
        "<applianceAccessGroupName2>": {
          "$ref": "#/definitions/applianceAccess",
          "description": "appliances"
        }
      },
      "type": "object"
    },
    "appGroupTmp": {
      "type": "object"
    },
    "appObj": {
      "properties": {
        "apps": {
          "items": {
            "description": "an array of sorted application names",
            "type": "string"
          },
          "type": "array"
        },
        "parentGroup": {
          "items": {
            "description": "Not required. an array of sorted parent groups",
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "appObject": {
      "properties": {
        "appName": {
          "type": "string"
        }
      },
      "required": [
        "appName"
      ],
      "type": "object"
    },
    "appTagsBody": {
      "properties": {
        "<userDefinedGroupName>": {
          "$ref": "#/definitions/appObj"
        }
      },
      "type": "object"
    },
    "appliance-Entity": {
      "properties": {
        "appName": {
          "items": {
            "$ref": "#/definitions/ApplicationTrendsItem"
          },
          "type": "array"
        }
      },
      "required": [
        "appName"
      ],
      "type": "object"
    },
    "appliance-Item": {
      "properties": {
        "blank": {
          "description": "whether health info was collected in that hour",
          "type": "boolean"
        },
        "configChange": {
          "description": "whether config change occurred",
          "type": "boolean"
        },
        "reboot": {
          "description": "whether reboot occurred",
          "type": "boolean"
        },
        "status": {
          "enum": [
            "HEALTHY",
            "WARNING",
            "MINOR",
            "MAJOR",
            "CRITICAL"
          ],
          "type": "string"
        },
        "time": {
          "description": "starting hour boundary",
          "type": "integer"
        }
      },
      "required": [
        "blank",
        "configChange",
        "reboot",
        "status",
        "time"
      ],
      "type": "object"
    },
    "applianceAccess": {
      "description": "One array should be empty",
      "properties": {
        "applianceGroups": {
          "description": "list of accessible Group_Ids",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "applianceRegions": {
          "description": "list of accessible Region_Ids",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "applianceGroups",
        "applianceRegions"
      ],
      "type": "object"
    },
    "applianceIP": {
      "properties": {
        "behindNAT": {
          "description": "Determines if this interface is connected to a Network Address Translation device (only applicable to WAN interfaces). Valid values are 'auto', 'none', ''. 'auto' means interface is behind a NAT device. 'none' or '' mean interface is NOT behind a NAT device",
          "type": "string"
        },
        "brifs": {
          "$ref": "#/definitions/brifs",
          "description": "Bridge interface configurations"
        },
        "comment": {
          "description": "User comments",
          "type": "string"
        },
        "dhcp": {
          "description": "Determines if DHCP is enabled for this interface (only applicable for WAN side main interface IPs in inline router mode)",
          "type": "boolean"
        },
        "dhcpd": {
          "$ref": "#/definitions/dhcpd",
          "description": "Interface DHCP (server/relay) configuration (only applicable to LAN interfaces in inline router mode)"
        },
        "harden": {
          "description": "Determines if this interface has firewall configured (only applicable for WAN side main/VLAN interfaces in router mode). Valid values are 0:Allow All, 1:Hardened, 2:Stateful, 3:Stateful+SNAT",
          "type": "number"
        },
        "ip": {
          "description": "Appliance interface IP address",
          "type": "string"
        },
        "label": {
          "description": "Interface label assigned to this interface.",
          "type": "string"
        },
        "lanSide": {
          "description": "Determines if this interface is on LAN side.",
          "type": "boolean"
        },
        "mask": {
          "description": "IP address network mask",
          "type": "integer"
        },
        "maxBW": {
          "$ref": "#/definitions/maxBW",
          "description": "Maximum inbound/outbound bandwidth for this interface in Kbps (only applicable to WAN interfaces)"
        },
        "subif": {
          "description": "Sub-interface ID",
          "type": "string"
        },
        "vlan": {
          "description": "VLAN ID",
          "type": "string"
        },
        "wanNexthop": {
          "description": "Next hop IP address",
          "type": "string"
        },
        "wanSide": {
          "description": "Determines if this interface is on WAN side.",
          "type": "boolean"
        },
        "zone": {
          "description": "Zone id assigned to this interface. 0 if no zone assigned",
          "type": "number"
        }
      },
      "required": [
        "ip",
        "mask",
        "subif",
        "wanNexthop"
      ]
    },
    "applianceInfoObj": {
      "properties": {
        "group": {
          "type": "string"
        },
        "hostname": {
          "type": "string"
        },
        "ip": {
          "type": "string"
        },
        "isLicenseRequired": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "portalLicenseType": {
          "type": "string"
        },
        "reachabilityStatus": {
          "description": "Whether or not the appliance is reachable to Orchestrator. 1 - Reachable, 2 - Unreachable, 0 - Status not available yet",
          "type": "number"
        },
        "serial": {
          "type": "string"
        },
        "site": {
          "type": "string"
        },
        "softwareVersion": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "applicationGet": {
      "items": {},
      "properties": {
        "appType": {
          "description": "Type of application it can be either built-in or user-defined",
          "type": "string"
        },
        "applicationName": {
          "description": "Name of the application",
          "type": "string"
        }
      },
      "type": "array"
    },
    "applicationGroups": {
      "properties": {
        "citrix": {
          "$ref": "#/definitions/citrixInfo"
        },
        "encrypted": {
          "type": "object"
        },
        "interactive": {
          "type": "object"
        },
        "real-time": {
          "type": "object"
        },
        "replication": {
          "$ref": "#/definitions/replicationInfo"
        }
      },
      "type": "object"
    },
    "auth": {
      "properties": {
        "Unique key that identify the cert": {
          "$ref": "#/definitions/sslCACertId",
          "description": "You can get this unique ID as part of response in validation api"
        }
      },
      "type": "object"
    },
    "auto_subnet": {
      "properties": {
        "add_local": {
          "description": "Enable automatic advertising local subnets. <b>Note</b>: Only applicable for appliances whose version is less than 8.1.4.",
          "type": "boolean"
        },
        "add_local_lan": {
          "description": "Enable automatic advertising local subnets for LAN interfaces only. <b>Note</b>: Only applicable for appliances whose version is greater than or equal to 8.1.4.",
          "type": "boolean"
        },
        "add_local_metric": {
          "description": "Metric assigned to subnets of interfaces on this appliance",
          "type": "integer"
        },
        "add_local_wan": {
          "description": "Enable automatic advertising local subnets for WAN interfaces only. <b>Note</b>: Only applicable for appliances whose version is greater than or equal to 8.1.4.",
          "type": "boolean"
        },
        "local_ospf_filter": {
          "description": "Filter for locally learned OSPF routes",
          "type": "integer"
        },
        "redist_bgp": {
          "description": "Enable redistribution of learned BGP routes via subnet sharing",
          "type": "boolean"
        },
        "redist_ospf": {
          "description": "Enable redistribution of learned OSPF routes via subnet sharing",
          "type": "boolean"
        },
        "redist_ospf_filter": {
          "description": "Filter for OSPF routes redistributed to subnet sharing",
          "type": "integer"
        },
        "redist_ospf_metric": {
          "description": "Add metric to OSPF routes to be redistributed to subnet sharing",
          "type": "integer"
        },
        "self": {
          "description": "Flag to enable and disable subnet sharing",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "avcMode": {
      "properties": {
        "avc": {
          "description": " 'mixed', it means that there are both old appliances(below 8.1.6 version) and new appliances(8.1.6 and above) in Orch.; 'all', it means that all of appliances in Orch are new(8.1.6 and above).'none', it means that all of appliances in Orch are old(below 8.1.6 version)",
          "type": "string"
        }
      },
      "required": [
        "avc"
      ],
      "type": "object"
    },
    "brifConfig": {
      "properties": {
        "comment": {
          "description": "User comments",
          "type": "string"
        },
        "harden": {
          "description": "Firewall configuration for bridge interface. Valid values are 0:Allow All, 1:Hardened, 2:Stateful, 3:Stateful+SNAT ",
          "type": "string"
        },
        "label": {
          "description": "Bridge lan/wan side interface label",
          "type": "string"
        },
        "lanSide": {
          "description": "This bridge interface is on LAN side",
          "type": "boolean"
        },
        "wanSide": {
          "description": "This bridge interface is on WAN side",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "brifs": {
      "properties": {
        "(ifname)": {
          "$ref": "#/definitions/brifConfig",
          "description": "Bridge interface configuration for ifname"
        }
      }
    },
    "broadcastCliBody": {
      "properties": {
        "cmdList": {
          "description": "Commands to be executed in a list format",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "neList": {
          "description": "List of Device key Ids assigned by Orchestrator, usually look like '0.NE'",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "cmdList",
        "neList"
      ],
      "type": "object"
    },
    "bw": {
      "description": "System bandwidth",
      "properties": {
        "if_rx_target": {
          "description": "Target bandwidth enabled",
          "type": "boolean"
        }
      },
      "required": [
        "if_rx_target"
      ],
      "type": "object"
    },
    "bypassBody": {
      "properties": {
        "enable": {
          "description": "bypass flag",
          "type": "boolean"
        },
        "neList": {
          "description": "List of Device key Ids assigned by Orchestrator, usually look like '0.NE'",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "enable",
        "neList"
      ],
      "type": "object"
    },
    "bypassGetBody": {
      "properties": {
        "bypass_actual": {
          "description": "Tells whether it is actually currently in bypass mode",
          "type": "boolean"
        },
        "bypass_config": {
          "description": "Tells whether it is currently configured to be in bypass mode",
          "type": "boolean"
        },
        "status": {
          "description": "Tells whether it is actually currently in bypass or normal mode by text.",
          "enum": [
            "Normal",
            "BYPASS"
          ],
          "type": "string"
        }
      },
      "required": [
        "bypass_actual",
        "bypass_config",
        "status"
      ],
      "type": "object"
    },
    "certKeyValidation": {
      "properties": {
        "certificateData": {
          "type": "string"
        },
        "intermediateCertFileContent": {
          "type": "string"
        },
        "keyData": {
          "type": "string"
        }
      },
      "required": [
        "certificateData",
        "keyData"
      ],
      "type": "object"
    },
    "checkApplianceReachabilityUsingWSResponse": {
      "description": "Appliance reachability information",
      "properties": {
        "directWS": {
          "$ref": "#/definitions/CheckApplianceReachability"
        },
        "portalWS": {
          "$ref": "#/definitions/CheckApplianceReachability"
        }
      },
      "type": "object"
    },
    "citrixInfo": {
      "properties": {
        "citrix-bcast": {
          "type": "string"
        },
        "citrix-cgp": {
          "type": "string"
        },
        "citrix-ica": {
          "type": "string"
        },
        "citrix-ima": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "cloudAppsConfig": {
      "properties": {
        "application": {
          "$ref": "#/definitions/CloudAppCollection",
          "description": "Collection of CloudApp objects indexed by saas id"
        },
        "enable": {
          "description": "Flag to enable/disable SaaS Optimization",
          "type": "boolean"
        },
        "num_pings": {
          "description": "Number of ping requests per ip address when averaging out RTT values",
          "type": "number"
        },
        "ping_src_intf": {
          "description": "Ping to the specified interface. Format for labels: side/interfaceId. E.g. lan/7",
          "type": "string"
        },
        "rtt_interval": {
          "description": "How often to run RTT re-calculation (in seconds)",
          "type": "number"
        },
        "user_modifed": {
          "description": "Flag to tell if configuration has been modified by user (used internally)",
          "type": "boolean"
        }
      }
    },
    "cloudAppsMonitor": {
      "properties": {
        "domains": {
          "items": {
            "$ref": "#/definitions/Domain"
          },
          "type": "array"
        },
        "subnets": {
          "items": {
            "$ref": "#/definitions/Subnet"
          },
          "type": "array"
        }
      }
    },
    "compound": {
      "properties": {
        "confidence": {
          "description": "minimum 0, maximum 100",
          "type": "number"
        },
        "description": {
          "type": "string"
        },
        "disabled": {
          "type": "boolean"
        },
        "dscp": {
          "description": "DSCP. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "dst_dns": {
          "description": "destination dns. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "dst_geo": {
          "description": "destination geo location. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "dst_ip": {
          "description": "destination ip(IPv4) with subnet or range, e.g '1.1.1.1/32' or '1.1.1.1-222' or '1.1.1.1/32, 1.1.1.1-222'. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "dst_port": {
          "description": "destination port number or range, e.g '12345' or '123-456' or '33,44,55-66'. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "dst_service": {
          "description": "destination service (saas app name or organization). Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "either_dns": {
          "description": "either dns. If you specified the 'src_dns' or 'dst_dns', please leave this empty. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "either_geo": {
          "description": "either geo location. If you specified the 'src_geo' or 'dst_geo', please leave this empty. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "either_ip": {
          "description": "either ip(IPv4) with subnet or range, e.g '1.1.1.1/32' or '1.1.1.1-222' or '1.1.1.1/32, 1.1.1.1-222'. If you specified the 'src_ip' or 'dst_ip', please leave this empty. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "either_port": {
          "description": "either src or destination port number or range, e.g '12345' or '123-456' or '33,44,55-66'. If you specified the 'src_port' or 'dst_port', please leave this empty. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "either_service": {
          "description": "either service (saas app name or organization). If you specified the 'src_service' or 'dst_service', please leave this empty. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "id": {
          "description": "Record id. id > 50000 is the record from portal modified by user. Please use the get api to find id",
          "type": "number"
        },
        "name": {
          "description": "application name",
          "type": "string"
        },
        "protocol": {
          "description": "protocol, e.g 'tcp'. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "src_dns": {
          "description": "src dns. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "src_geo": {
          "description": "src geo location. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "src_ip": {
          "description": "src ip(IPv4) with subnet or range, e.g '1.1.1.1/32' or '1.1.1.1-222' or '1.1.1.1/32, 1.1.1.1-222'. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "src_port": {
          "description": "src port number or range, e.g '12345' or '123-456' or '33,44,55-66'. Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "src_service": {
          "description": "src service (saas app name or organization). Leave this empty if you don't want to config this field",
          "type": "string"
        },
        "vlan": {
          "description": "interface. Leave this empty if you don't want to config this field",
          "type": "string"
        }
      },
      "required": [
        "confidence",
        "description",
        "disabled",
        "dscp",
        "dst_dns",
        "dst_geo",
        "dst_ip",
        "dst_port",
        "dst_service",
        "either_dns",
        "either_geo",
        "either_ip",
        "either_port",
        "either_service",
        "id",
        "name",
        "protocol",
        "src_dns",
        "src_geo",
        "src_ip",
        "src_port",
        "src_service",
        "vlan"
      ],
      "type": "object"
    },
    "compoundObj": {
      "properties": {
        "confidence": {
          "description": "minimum 0, maximum 100",
          "type": "number"
        },
        "description": {
          "type": "string"
        },
        "disabled": {
          "type": "boolean"
        },
        "dscp": {
          "description": "DSCP",
          "type": "string"
        },
        "dst_dns": {
          "description": "destination dns",
          "type": "string"
        },
        "dst_geo": {
          "description": "destination geo location",
          "type": "string"
        },
        "dst_ip": {
          "description": "destination ip(IPv4)",
          "type": "string"
        },
        "dst_port": {
          "description": "destination port number or range",
          "type": "string"
        },
        "dst_service": {
          "description": "destination service (saas app name or organization)",
          "type": "string"
        },
        "either_dns": {
          "description": "either dns",
          "type": "string"
        },
        "either_geo": {
          "description": "either geo location",
          "type": "string"
        },
        "either_ip": {
          "description": "either ip(IPv4)",
          "type": "string"
        },
        "either_port": {
          "description": "either src or destination port number or range",
          "type": "string"
        },
        "either_service": {
          "description": "either service (saas app name or organization)",
          "type": "string"
        },
        "id": {
          "type": "number"
        },
        "name": {
          "description": "application name",
          "type": "string"
        },
        "protocol": {
          "description": "protocol",
          "type": "string"
        },
        "src_dns": {
          "description": "src dns",
          "type": "string"
        },
        "src_geo": {
          "description": "src geo location",
          "type": "string"
        },
        "src_ip": {
          "description": "src ip(IPv4)",
          "type": "string"
        },
        "src_port": {
          "description": "src port number or range",
          "type": "string"
        },
        "src_service": {
          "description": "src service (saas app name or organization)",
          "type": "string"
        },
        "vlan": {
          "description": "interface",
          "type": "string"
        }
      },
      "required": [
        "confidence",
        "description",
        "disabled",
        "dscp",
        "dst_dns",
        "dst_geo",
        "dst_ip",
        "dst_port",
        "dst_service",
        "either_dns",
        "either_geo",
        "either_ip",
        "either_port",
        "either_service",
        "id",
        "name",
        "protocol",
        "src_dns",
        "src_geo",
        "src_ip",
        "src_port",
        "src_service",
        "vlan"
      ],
      "type": "object"
    },
    "compoundTmp": {
      "properties": {
        "id#": {
          "$ref": "#/definitions/compoundObj"
        }
      },
      "required": [
        "id#"
      ],
      "type": "object"
    },
    "configCertIdInfo": {
      "properties": {
        "cert": {
          "description": "Certificate information",
          "type": "string"
        },
        "key": {
          "description": "Key information",
          "type": "string"
        },
        "self": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "configHostInfo": {
      "properties": {
        "Unique key that identify the cert": {
          "$ref": "#/definitions/configCertIdInfo"
        }
      },
      "type": "object"
    },
    "configInfo": {
      "properties": {
        "host": {
          "$ref": "#/definitions/configHostInfo"
        }
      },
      "type": "object"
    },
    "createPreconfig": {
      "properties": {
        "autoApply": {
          "description": "Automatically apply this preconfiguration to the matched appliance when Orchestrator discovers it",
          "type": "boolean"
        },
        "comment": {
          "description": "User provided comment for the preconfiguration",
          "type": "string"
        },
        "configData": {
          "description": "Base64 encoded preconfiguration YAML string",
          "type": "string"
        },
        "name": {
          "description": "Name of preconfiguration",
          "type": "string"
        },
        "serialNum": {
          "description": "Serial number to match on",
          "type": "string"
        },
        "tag": {
          "description": "Tag to match on",
          "type": "string"
        }
      }
    },
    "createPreconfigResponse": {
      "properties": {
        "id": {
          "description": "ID of preconfiguration",
          "type": "string"
        }
      }
    },
    "cronInfo": {
      "description": "Provides the cron expression for the job schedule",
      "properties": {
        "cronExpression": {
          "description": "Cron expression representing job schedule",
          "type": "string"
        },
        "recurrenceDefinedAsCron": {
          "description": "Indicates if the job recurrence can be defined as a cron expression",
          "type": "boolean"
        },
        "recurringSchedule": {
          "description": "Indicates if the job is a recurring job",
          "type": "boolean"
        }
      },
      "required": [
        "cronExpression",
        "recurrenceDefinedAsCron",
        "recurringSchedule"
      ],
      "type": "object"
    },
    "dhcpConfig": {
      "properties": {
        "dhcpFoSetting": {
          "$ref": "#/definitions/failoverConfig",
          "description": "List of dhcp failover settings configured on the interfaces"
        },
        "mode": {
          "description": "Default DHCP mode setting per appliance interface, options are ['server', 'relay', 'none')",
          "type": "string"
        },
        "relayConfig": {
          "$ref": "#/definitions/dhcpRelayConfig",
          "description": "DHCP relay global settings"
        },
        "serverConfig": {
          "$ref": "#/definitions/dhcpServerConfig",
          "description": "DHCP server global settings"
        }
      },
      "type": "object"
    },
    "dhcpFailover": {
      "description": "List of dhcp failover settings configured on the interfaces",
      "properties": {
        "(ifname)": {
          "$ref": "#/definitions/failoverConfig",
          "description": "Configuration for dhcp failover per interface"
        }
      }
    },
    "dhcpHost": {
      "properties": {
        "ip": {
          "description": "IP Address of the host device",
          "type": "string"
        },
        "mac": {
          "description": "MAC Address of the host device",
          "type": "string"
        }
      }
    },
    "dhcpHosts": {
      "properties": {
        "(hostName)": {
          "$ref": "#/definitions/dhcpHost",
          "description": "Object containing MAC address and IP address for the hostName"
        }
      }
    },
    "dhcpOptions": {
      "properties": {
        "(dhcpOptionId)": {
          "description": "Field containing the string value for the DHCP Option",
          "type": "string"
        }
      }
    },
    "dhcpRelay": {
      "properties": {
        "dhcpserver": {
          "description": "Array of destination DHCP server IP addresses",
          "items": {
            "description": "Destination DHCP server IP address",
            "type": "string"
          },
          "type": "array"
        },
        "option82": {
          "description": "Determine whether option 82 is enabled",
          "type": "boolean"
        },
        "option82_policy": {
          "description": "Enum to determine option 82 policy used if option 82 is enabled. Valid values are 'append', 'replace', 'forward', 'discard'",
          "type": "string"
        }
      },
      "type": "object"
    },
    "dhcpRelayConfig": {
      "properties": {
        "destDhcpServer": {
          "description": "Destination DHCP server ip(s), separate multiple ips with comma",
          "type": "string"
        },
        "opt82": {
          "type": "boolean"
        },
        "opt82Policy": {
          "description": "Options are ['append', 'replace', 'forward', 'discard']. Defaults to 'append'",
          "type": "string"
        }
      },
      "type": "object"
    },
    "dhcpReservation": {
      "properties": {
        "ifName": {
          "description": "LAN side interface name on appliance, for eg: lan0",
          "type": "string"
        },
        "mask": {
          "description": "Mask value of DHCP pool reservation",
          "type": "number"
        },
        "neId": {
          "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
          "type": "string"
        },
        "startIp": {
          "description": "Start IP address for DHCP pool reservation",
          "type": "string"
        }
      },
      "type": "object"
    },
    "dhcpReservationGms": {
      "properties": {
        "ifName": {
          "description": "LAN side interface name on appliance, for eg: lan0",
          "type": "string"
        },
        "ip": {
          "description": "Subnet address",
          "type": "string"
        },
        "mask": {
          "description": "Subnet mask",
          "type": "number"
        },
        "neId": {
          "description": "Unique key assigned by Orchestrator to each appliance, for eg: '0.NE'",
          "type": "string"
        },
        "source": {
          "description": "Enum to donate if reservation has been pushed to appliance. 0: Appliance, 1: Orchestrator",
          "type": "string"
        }
      },
      "type": "object"
    },
    "dhcpServer": {
      "properties": {
        "host": {
          "$ref": "#/definitions/dhcpHosts",
          "description": "Object containing list of hosts with static IP reservations"
        },
        "defaultLease": {
          "description": "Default lease time in seconds",
          "type": "number"
        },
        "dns": {
          "description": "DNS server(s) IP Address",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "failover": {
          "description": "Determine if appliance enable DHCP failover",
          "type": "boolean"
        },
        "gw": {
          "description": "Gateway IP Address",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ipEnd": {
          "description": "IP within the DHCP server subnet till where IPs can be allocated",
          "type": "string"
        },
        "ipStart": {
          "description": "IP within the DHCP server subnet from where to start allocating IPs",
          "type": "string"
        },
        "maxLease": {
          "description": "Maximum lease time in seconds",
          "type": "number"
        },
        "netbios": {
          "description": "NetBIOS name server(s) IP Address",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "netbiosNodeType": {
          "description": "Enum denoting the type of NetBIOS server. Valid values are 'B', 'P', 'M', 'H'",
          "type": "string"
        },
        "ntpd": {
          "description": "NTP server(s) IP Address",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "options": {
          "$ref": "#/definitions/dhcpOptions",
          "description": "Object containing dynamic DHCP options"
        },
        "prefix": {
          "description": "DHCP server subnet and mask value eg: 10.3.171.0/24",
          "type": "string"
        }
      }
    },
    "dhcpServerConfig": {
      "properties": {
        "applianceReservations": {
          "description": "Collection of subnets that have been reserved in the DHCP pool from appliance (this list is built from the data that Orchestrator fetches from the appliance)",
          "items": {
            "$ref": "#/definitions/dhcpReservation"
          },
          "type": "array"
        },
        "blockMask": {
          "description": "Subnet mask of the DHCP pool",
          "type": "string"
        },
        "blockStartIp": {
          "description": "Subnet ip of the DHCP pool",
          "type": "string"
        },
        "defaultGateway": {
          "description": "Default gateway ip",
          "type": "string"
        },
        "defaultGatewayEnabled": {
          "description": "Pre fill default gateway from the poll?",
          "type": "boolean"
        },
        "defaultLease": {
          "description": "In seconds",
          "type": "number"
        },
        "defaultSubnetMask": {
          "description": "Default subnet mask for a reservation block per interface",
          "type": "string"
        },
        "dnsServers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "endIp": {
          "description": "End Ip within the reservation subnet. (subnet end - end offset)",
          "type": "string"
        },
        "endOffset": {
          "description": "Number of reserved ips at the end of subnet.",
          "type": "number"
        },
        "failover": {
          "description": "Determine if appliance enable DHCP failover",
          "type": "boolean"
        },
        "localReservations": {
          "description": "Collection of subnets that have been reserved in the DHCP pool locally on the orchestrator (this list is built from the Deployment Profiles on Orchestrator)",
          "items": {
            "$ref": "#/definitions/dhcpReservation"
          },
          "type": "array"
        },
        "maxLease": {
          "description": "In seconds",
          "type": "number"
        },
        "netBiosNodeType": {
          "description": "Enum with options ['B', 'P', 'M', 'H']. Defaults to 'B'",
          "type": "string"
        },
        "netBiosServers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ntpServers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "reservations": {
          "description": "Collection of subnets that have been reserved in the DHCP pool",
          "items": {
            "$ref": "#/definitions/dhcpReservation"
          },
          "type": "array"
        },
        "startIp": {
          "description": "Start Ip within the reservation subnet (subnet start + start offset)",
          "type": "string"
        },
        "startOffset": {
          "description": "Number of reserved ips at the beginning of subnet.",
          "type": "number"
        }
      },
      "type": "object"
    },
    "dhcpd": {
      "properties": {
        "relay": {
          "$ref": "#/definitions/dhcpRelay",
          "description": "DHCP relay related configuration"
        },
        "server": {
          "$ref": "#/definitions/dhcpServer",
          "description": "DHCP server related configuration"
        },
        "type": {
          "description": "Enum to determine if this LAN interface is acting like a DHCP server, relay or none. Valid values are 'server', 'relay', 'none'",
          "type": "string"
        }
      },
      "type": "object"
    },
    "dhcpdFailoverState": {
      "description": "DHCP server lease report of failover state record",
      "properties": {
        "failoverstate": {
          "description": "Interface name",
          "type": "string"
        },
        "mclt": {
          "description": "Maximum client lead time",
          "type": "integer"
        },
        "mystate": {
          "description": "Primary server state",
          "type": "string"
        },
        "mytime": {
          "description": "Primary server last communication time (UTC epoch in seconds)",
          "type": "string"
        },
        "partnerstate": {
          "description": "Peer server state",
          "type": "string"
        },
        "partnertime": {
          "description": "Peer server last communication time (UTC epoch in seconds)",
          "type": "string"
        }
      },
      "type": "object"
    },
    "dhcpdFailoverStates": {
      "description": "DHCP server lease report of failover state records",
      "properties": {
        "<failoverstate>": {
          "$ref": "#/definitions/dhcpdFailoverState"
        }
      }
    },
    "dhcpdLease": {
      "description": "DHCP server lease record",
      "properties": {
        "cltt": {
          "description": "client's last transaction time",
          "type": "integer"
        },
        "ends": {
          "description": "leased end time (UTC epoch in seconds)",
          "type": "integer"
        },
        "lease": {
          "description": "leased IP address",
          "type": "string"
        },
        "mac": {
          "description": "client hardware address",
          "type": "string"
        },
        "nextState": {
          "description": "next lease state",
          "type": "string"
        },
        "starts": {
          "description": "leased start time (UTC epoch in seconds)",
          "type": "integer"
        },
        "state": {
          "description": "current lease state",
          "type": "string"
        },
        "tstp": {
          "description": "the time the peer has been told the lease expires",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "dhcpdLeases": {
      "description": "DHCP server lease records",
      "properties": {
        "<leaseIpAddress>": {
          "$ref": "#/definitions/dhcpdLease"
        }
      }
    },
    "disabledAlarmsConfig": {
      "properties": {
        "alarmTypeIds": {
          "description": "List of alarm type ids.",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "applianceIds": {
          "description": "List of appliance ids.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "alarmTypeIds",
        "applianceIds"
      ],
      "type": "object"
    },
    "disabledAlarmsConfigRequest": {
      "properties": {
        "action": {
          "description": "'ENABLE' or 'DISABLE' are possible values. Field can not be empty or null.",
          "type": "string"
        },
        "alarmTypeIds": {
          "description": "List of alarm type ids. Value can not be null.",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "applianceIds": {
          "description": "List of appliance ids. Value can not be null.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "action",
        "alarmTypeIds",
        "applianceIds"
      ],
      "type": "object"
    },
    "dns": {
      "properties": {
        "enable": {
          "description": "Enable DNS lookup",
          "type": "boolean"
        },
        "ipaddr": {
          "description": "DNS IP address",
          "type": "string"
        }
      },
      "required": [
        "enable"
      ],
      "type": "object"
    },
    "dnsConfig": {
      "properties": {
        "description": {
          "type": "string"
        },
        "disabled": {
          "type": "boolean"
        },
        "domain": {
          "description": "Domain name, no slash",
          "type": "string"
        },
        "name": {
          "description": "application name",
          "type": "string"
        },
        "priority": {
          "description": "minimum 0, maximum 100",
          "type": "number"
        }
      },
      "required": [
        "description",
        "disabled",
        "domain",
        "name",
        "priority"
      ],
      "type": "object"
    },
    "dnsInfo": {
      "properties": {
        "dns": {
          "type": "string"
        }
      }
    },
    "dpRoute": {
      "description": "Datapath IP route entries",
      "properties": {
        "intf": {
          "description": "Interface name for this route entry, auto or bvi0/bvi1/VLAN for bridge mode",
          "type": "string"
        },
        "metric": {
          "description": "Routing metric value, lower values have higher priority",
          "type": "integer"
        },
        "nexthop": {
          "description": "Next hop IP address for this route entry",
          "type": "string"
        },
        "prefix": {
          "description": "Subnetwork prefix, for example, 2.2.2.0/24",
          "type": "string"
        },
        "type": {
          "description": "Route entry type, gw is the only option for now",
          "type": "string"
        }
      },
      "required": [
        "intf",
        "metric",
        "nexthop",
        "prefix",
        "type"
      ]
    },
    "dpc": {
      "description": "DPC",
      "properties": {
        "tunfail": {
          "description": "DPC tunnel failover behavior",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ecBoost": {
      "properties": {
        "bandwidth": {
          "description": "Boost bandwidth request in kbps",
          "type": "integer"
        },
        "enable": {
          "description": "enable or disable boost license request",
          "type": "boolean"
        }
      }
    },
    "ecLicense": {
      "properties": {
        "ecBoost": {
          "description": "Is EC Boost license enabled",
          "type": "boolean"
        },
        "ecBoostBW": {
          "description": "Boost bandwidth in Kbps",
          "type": "integer"
        },
        "ecMini": {
          "description": "Is EC Mini license enabled",
          "type": "boolean"
        },
        "ecPlus": {
          "description": "Is EC Plus license enabled",
          "type": "boolean"
        },
        "ecTier": {
          "description": "EC Tier license name",
          "type": "string"
        },
        "ecTierBW": {
          "description": "EC Tier bandwidth in Kbps",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "ecMini": {
      "properties": {
        "enable": {
          "description": "enable or disable mini license request",
          "type": "boolean"
        }
      }
    },
    "ecPlus": {
      "properties": {
        "enable": {
          "description": "enable or disable plus license request",
          "type": "boolean"
        }
      }
    },
    "ecTier": {
      "properties": {
        "bandwidth": {
          "description": "Tier bandwidth request in kbps",
          "type": "integer"
        },
        "display": {
          "description": "Display name for tier license request",
          "type": "string"
        }
      }
    },
    "emptySaveChangesPostBody": {
      "type": "object"
    },
    "excess_flow": {
      "description": "Excess flow",
      "properties": {
        "dscp_marking": {
          "description": "Excess flow DSCP marking",
          "type": "boolean"
        },
        "policy": {
          "description": "Excess flow policy",
          "type": "string"
        }
      },
      "type": "object"
    },
    "failoverConfig": {
      "properties": {
        "load_bal_max": {
          "description": "Defines a threshold to compare with the secs field of the client's DHCP packet in order to override load balancing.",
          "type": "number"
        },
        "max_resp_delay": {
          "description": "Tells the DHCP server how many seconds may pass without receiving a message from its failover peer before it assumes that connection has failed.",
          "type": "number"
        },
        "max_unack_updates": {
          "description": "Tells the remote DHCP server how many BNDUPD messages it can send before it receives a BNDACK from the local system.",
          "type": "number"
        },
        "mclt": {
          "description": "Define the Maximum Client Lead Time.",
          "type": "number"
        },
        "my_ip": {
          "description": "Define the address that the server should listen for connections from its failover peer",
          "type": "string"
        },
        "my_port": {
          "description": "Defines which TCP port the server should listen for connections from its failover peer.",
          "type": "number"
        },
        "peer_ip": {
          "description": "Define which server it should connect to reach its failover peer.",
          "type": "string"
        },
        "peer_port": {
          "description": "Define which TCP port to connect to its failover peer for failover messages.",
          "type": "number"
        },
        "role": {
          "description": "Specify if the server is the primary or secondary.",
          "enum": [
            "primary",
            "secondary"
          ],
          "type": "string"
        },
        "split": {
          "description": "Specify the split between the primary and secondary",
          "type": "number"
        }
      },
      "required": [
        "my_ip",
        "peer_ip",
        "role"
      ]
    },
    "fetchingParam": {
      "description": "The sequence id(s) of the log item, input can be a single number or a range. Eg.[\"1\", \"3\", \"100-200\"]",
      "properties": {
        "id": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "logType": {
          "description": "The type of log",
          "type": "integer"
        }
      },
      "required": [
        "id",
        "logType"
      ],
      "type": "object"
    },
    "fileNameObj": {
      "properties": {
        "fileName": {
          "description": "File name",
          "type": "string"
        }
      },
      "type": "object"
    },
    "fileNames": {
      "properties": {
        "backgroundImage": {
          "$ref": "#/definitions/fileNameObj"
        }
      },
      "type": "object"
    },
    "idrc": {
      "properties": {
        "param_delta": {
          "description": "Parameter delta for IDRC",
          "type": "number"
        },
        "param_g": {
          "description": "Parameter g for IDRC",
          "type": "number"
        },
        "param_m": {
          "description": "Parameter m for IDRC",
          "type": "number"
        },
        "param_y": {
          "description": "Parameter y for IDRC",
          "type": "number"
        }
      },
      "type": "object"
    },
    "ifLabel": {
      "properties": {
        "id": {
          "description": "Unique label ID",
          "type": "number"
        },
        "name": {
          "description": "Label name eg: Voice, Data, MPLS...",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ifLabels": {
      "properties": {
        "lan": {
          "description": "Available LAN interface labels",
          "items": {
            "$ref": "#/definitions/ifLabel"
          },
          "type": "array"
        },
        "wan": {
          "description": "Available WAN interface labels",
          "items": {
            "$ref": "#/definitions/ifLabel"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "interfaceEnableModel": {
      "properties": {
        "enable": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "interfaceModel": {
      "properties": {
        "<interface>": {
          "$ref": "#/definitions/interfaceEnableModel"
        }
      },
      "type": "object"
    },
    "interfaceStateObj": {
      "properties": {
        "activeNeighbors": {
          "description": "All neighbors count",
          "type": "integer"
        },
        "admin_status": {
          "description": "Admin status",
          "type": "string"
        },
        "area": {
          "description": "Area",
          "type": "string"
        },
        "bkup_desig_rtr": {
          "description": "Backup Designated Router address",
          "type": "string"
        },
        "dead_interval": {
          "description": "Dead interval(in Seconds)",
          "type": "integer"
        },
        "desig_rtr": {
          "description": "Designated Router address",
          "type": "string"
        },
        "hello_interval": {
          "description": "Hello interval in seconds",
          "type": "integer"
        },
        "if_max_bandwidth": {
          "description": "interface max bandwidth in bps",
          "type": "integer"
        },
        "ifname": {
          "description": "interface name",
          "type": "string"
        },
        "interface_state": {
          "description": "interface state",
          "type": "string"
        },
        "ip_addr": {
          "description": "IP address",
          "type": "string"
        },
        "lsa_refresh_intvl": {
          "description": "LSA Refresh Interval in seconds",
          "type": "integer"
        },
        "ospf_if_type": {
          "description": "OSPF interface type",
          "type": "string"
        },
        "rtr_priority": {
          "description": "Router priority",
          "type": "integer"
        },
        "totalNeighbors": {
          "description": "All neighbors count",
          "type": "integer"
        },
        "transmit_delay": {
          "description": "Transmit delay in seconds",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "ipIntelligence": {
      "properties": {
        "country": {
          "type": "string"
        },
        "country_code": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "ip_end": {
          "description": "Ending IPv4 address in 32-bit integer format",
          "format": "int64",
          "type": "integer"
        },
        "ip_start": {
          "description": "Starting IPv4 address in 32-bit integer format",
          "format": "int64",
          "type": "integer"
        },
        "name": {
          "description": "application name",
          "type": "string"
        },
        "org": {
          "type": "string"
        },
        "priority": {
          "description": "minimum 0, maximum 100",
          "type": "number"
        }
      },
      "required": [
        "country",
        "country_code",
        "description",
        "name",
        "org",
        "priority"
      ],
      "type": "object"
    },
    "loopbackConfig": {
      "properties": {
        "<interface>": {
          "$ref": "#/definitions/loopbackConfigDetail"
        }
      },
      "type": "object"
    },
    "loopbackConfigDetail": {
      "properties": {
        "admin": {
          "description": "admin status",
          "type": "boolean"
        },
        "ipaddr": {
          "description": "Interface IP",
          "type": "string"
        },
        "label": {
          "description": "label id",
          "type": "string"
        },
        "nmask": {
          "description": "mask",
          "type": "number"
        },
        "zone": {
          "description": "zone id",
          "type": "number"
        }
      },
      "required": [
        "admin",
        "ipaddr",
        "label",
        "nmask",
        "zone"
      ],
      "type": "object"
    },
    "matchPreconfig": {
      "properties": {
        "serial": {
          "description": "Serial number to match on",
          "type": "string"
        },
        "tag": {
          "description": "Tag to match on",
          "type": "string"
        }
      }
    },
    "maxBW": {
      "properties": {
        "inbound": {
          "description": "Maximum inbound (WAN to LAN) bandwidth for this interface in Kbps",
          "type": "number"
        },
        "outbound": {
          "description": "Maximum outbound (LAN to WAN) bandwidth for this interface in Kbps",
          "type": "number"
        }
      },
      "required": [
        "outbound"
      ],
      "type": "object"
    },
    "menuType": {
      "properties": {
        "menuTypeName": {
          "$ref": "#/definitions/menuTypeConfig",
          "description": "The name of the menu type configuration."
        }
      },
      "required": [
        "menuTypeName"
      ]
    },
    "menuTypeConfig": {
      "properties": {
        "defaultMenuType": {
          "description": "Whether this is a default menu type ",
          "type": "boolean"
        },
        "menuTypeItems": {
          "description": "The checked menu item ids",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "users": {
          "description": "The user names configured for this menu type",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "defaultMenuType",
        "menuTypeItems",
        "users"
      ],
      "type": "object"
    },
    "meterFlow": {
      "properties": {
        "description": {
          "type": "string"
        },
        "disabled": {
          "type": "boolean"
        },
        "flowType": {
          "description": "flow type, e.g. MF",
          "type": "string"
        },
        "mid": {
          "description": "id, starting from 1",
          "type": "number"
        },
        "name": {
          "description": "application name",
          "type": "string"
        },
        "priority": {
          "description": "minimum 0, maximum 100",
          "type": "number"
        }
      },
      "required": [
        "description",
        "disabled",
        "flowType",
        "mid",
        "name",
        "priority"
      ],
      "type": "object"
    },
    "meterFlowTmp": {
      "properties": {
        "flowType": {
          "items": {
            "$ref": "#/definitions/MeterFlowObj"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "mgmtIf": {
      "properties": {
        "dhcp": {
          "description": "Is DHCP on or off on this management interface",
          "type": "boolean"
        },
        "ip": {
          "description": "Management interface IP address",
          "type": "string"
        },
        "mask": {
          "description": "Management interface network mask",
          "type": "number"
        },
        "nexthop": {
          "description": "Management interface gateway IP address",
          "type": "string"
        }
      }
    },
    "mgmtIfData": {
      "properties": {
        "(ifName)": {
          "$ref": "#/definitions/mgmtIf",
          "description": "Management interface properties"
        }
      }
    },
    "modeIf": {
      "description": "Deployment mode interface configuration",
      "properties": {
        "applianceIPs": {
          "description": "Deployment interface IP addresses assignment",
          "items": {
            "$ref": "#/definitions/applianceIP"
          },
          "type": "array"
        },
        "devNum": {
          "description": "Deployment interface type - rtr1/rtr2, bdg1/bdg2",
          "type": "string"
        },
        "ifName": {
          "description": "Deployment interface name - wan0/lan0 for router mode, bvi0/bvi1 for bridge mode",
          "type": "string"
        }
      },
      "required": [
        "applianceIPs",
        "devNum",
        "ifName"
      ]
    },
    "multicastConfigModel": {
      "properties": {
        "igmp": {
          "$ref": "#/definitions/interfaceModel",
          "description": "interfaces with igmp enable/disable"
        },
        "pim": {
          "$ref": "#/definitions/interfaceModel",
          "description": "interfaces with pim enable/disable"
        },
        "rp": {
          "description": "rendezvous point IP (IPv4)",
          "type": "string"
        }
      },
      "required": [
        "igmp",
        "pim",
        "rp"
      ],
      "type": "object"
    },
    "multicastEnableModel": {
      "properties": {
        "enable": {
          "description": "enable or disable multicast",
          "type": "boolean"
        }
      },
      "required": [
        "enable"
      ],
      "type": "object"
    },
    "multicastInterfaceState": {
      "properties": {
        "DRIP": {
          "description": "designated router IP",
          "type": "string"
        },
        "DRPriority": {
          "description": "designated router priority",
          "type": "string"
        },
        "generationID": {
          "description": "generation id",
          "type": "string"
        },
        "interface": {
          "description": "Interface",
          "type": "string"
        },
        "interfaceIP": {
          "description": "Interface IP",
          "type": "string"
        }
      },
      "required": [
        "DRIP",
        "DRPriority",
        "generationID",
        "interface",
        "interfaceIP"
      ],
      "type": "object"
    },
    "multicastNeighborState": {
      "properties": {
        "interface": {
          "description": "Interface",
          "type": "string"
        },
        "neighborDRPriority": {
          "description": "neighbor designated router priority",
          "type": "string"
        },
        "neighborGenerationID": {
          "description": "neighbor generation id",
          "type": "string"
        },
        "neighborIP": {
          "description": "neighbor IP",
          "type": "string"
        }
      },
      "required": [
        "interface",
        "neighborDRPriority",
        "neighborGenerationID",
        "neighborIP"
      ],
      "type": "object"
    },
    "multicastRouteState": {
      "properties": {
        "group": {
          "description": "group",
          "type": "string"
        },
        "inIntf": {
          "description": "incoming interface",
          "type": "string"
        },
        "outIntfList": {
          "description": "outgoing interfaces",
          "type": "string"
        },
        "source": {
          "description": "source IP",
          "type": "string"
        }
      },
      "required": [
        "group",
        "inIntf",
        "outIntfList",
        "source"
      ],
      "type": "object"
    },
    "neighborState": {
      "properties": {
        "asn": {
          "description": "Autonomous System Number of the neighbor",
          "type": "integer"
        },
        "last_err": {
          "description": "last error code",
          "type": "integer"
        },
        "last_err_subcode": {
          "description": "Last Subnet Error Code",
          "type": "integer"
        },
        "local_ip": {
          "description": "Local Ip address of the neighbor",
          "type": "string"
        },
        "peer_caps": {
          "type": "string"
        },
        "peer_ip": {
          "description": "Ip address of the neighbor",
          "type": "string"
        },
        "peer_state": {
          "description": "state of the neighbor session ",
          "type": "integer"
        },
        "peer_state_str": {
          "description": "Router ip address",
          "type": "string"
        },
        "rcvd_last_err": {
          "description": "Last received error code",
          "type": "integer"
        },
        "rcvd_last_err_subcode": {
          "description": "Last received subnet error code",
          "type": "integer"
        },
        "rcvd_last_err_time": {
          "$ref": "#/definitions/timestamp",
          "description": "Last received error time"
        },
        "rcvd_pfxs": {
          "description": "Number of routes received from neighbor",
          "type": "integer"
        },
        "rcvd_updates": {
          "description": "Number of updates received from neighbor",
          "type": "integer"
        },
        "rtr_id": {
          "description": "Router ip address",
          "type": "string"
        },
        "sent_last_err": {
          "description": "Last error code send by neighbor",
          "type": "integer"
        },
        "sent_last_err_subcode": {
          "description": "Last subnet error code send by neighbor",
          "type": "integer"
        },
        "sent_last_err_time": {
          "description": "Last sent error time",
          "type": "integer"
        },
        "sent_pfxs": {
          "description": "Number of routes send by neighbor",
          "type": "integer"
        },
        "sent_updates": {
          "description": "Number of updates send by neighbor",
          "type": "integer"
        },
        "time_established": {
          "description": "bgp session established time",
          "type": "integer"
        },
        "time_last_update": {
          "description": "last updated received time",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "neighborStateObj": {
      "properties": {
        "admin_status": {
          "description": "admin status",
          "type": "string"
        },
        "area": {
          "description": "Area of the neighbors",
          "type": "string"
        },
        "dead_time": {
          "description": "Dead time",
          "type": "integer"
        },
        "desig_rtr_state": {
          "description": "Designated router state",
          "type": "string"
        },
        "hello_suppressed": {
          "description": "flag to indicate whether hello suppressed or not",
          "type": "boolean"
        },
        "interfaceName": {
          "description": "interface name",
          "type": "string"
        },
        "ip_addr": {
          "description": "Neighbor Ip",
          "type": "string"
        },
        "local_if_addr": {
          "description": "local interface address",
          "type": "string"
        },
        "neighbor_state": {
          "description": "Neighbor state",
          "type": "string"
        },
        "oper_status": {
          "description": "Operation status",
          "type": "string"
        },
        "priority": {
          "description": "priority",
          "type": "integer"
        },
        "router_id": {
          "description": "Router ID",
          "type": "string"
        }
      },
      "type": "object"
    },
    "neighborsState": {
      "properties": {
        "0": {
          "$ref": "#/definitions/neighborState",
          "description": "state information of the first neighbor"
        },
        "1": {
          "$ref": "#/definitions/neighborState",
          "description": "state information of the second neighbor"
        }
      },
      "type": "object"
    },
    "nepkToPassThroughTunnelsMap": {
      "description": "A map of appliances (nePk) to an objects of tunnels",
      "properties": {
        "passThroughTunnelId": {
          "$ref": "#/definitions/passThroughTunnelIdMap"
        }
      },
      "type": "object"
    },
    "networkRoleAndSiteGet": {
      "properties": {
        "IP": {
          "description": "Need description here",
          "type": "string"
        },
        "applianceId": {
          "description": "Need description here",
          "type": "integer"
        },
        "bypass": {
          "description": "Need description here",
          "type": "boolean"
        },
        "groupId": {
          "description": "Need description here",
          "type": "string"
        },
        "hardwareRevision": {
          "description": "Need description here",
          "type": "string"
        },
        "hasUnsavedChanges": {
          "description": "Need description here",
          "type": "boolean"
        },
        "hostName": {
          "description": "Need description here",
          "type": "string"
        },
        "id": {
          "description": "Need description here",
          "type": "string"
        },
        "ip": {
          "description": "Need description here",
          "type": "string"
        },
        "mode": {
          "description": "Need description here",
          "type": "string"
        },
        "model": {
          "description": "Need description here",
          "type": "string"
        },
        "nePk": {
          "description": "Need description here",
          "type": "string"
        },
        "networkRole": {
          "description": "Need description here",
          "type": "string"
        },
        "password": {
          "type": "string",
          "description": "Need description here"
        },
        "rebootRequired": {
          "description": "Need description here",
          "type": "boolean"
        },
        "serial": {
          "description": "Need description here",
          "type": "string"
        },
        "site": {
          "description": "Need description here",
          "type": "string"
        },
        "sitePriority": {
          "description": "Need description here",
          "type": "integer"
        },
        "softwareVersion": {
          "description": "Need description here",
          "type": "string"
        },
        "startupTime": {
          "type": "string",
          "description": "Need description here"
        },
        "state": {
          "description": "Need description here",
          "type": "integer"
        },
        "systemBandwidth": {
          "description": "Need description here",
          "type": "integer"
        },
        "userName": {
          "description": "Need description here",
          "type": "string"
        },
        "uuid": {
          "description": "Need description here",
          "type": "string"
        },
        "webProtocol": {
          "description": "Need description here",
          "type": "string"
        },
        "webProtocolType": {
          "description": "Need description here",
          "type": "integer"
        }
      },
      "required": [
        "IP",
        "applianceId",
        "bypass",
        "groupId",
        "hardwareRevision",
        "hasUnsavedChanges",
        "hostName",
        "id",
        "ip",
        "mode",
        "model",
        "nePk",
        "networkRole",
        "password",
        "rebootRequired",
        "serial",
        "site",
        "sitePriority",
        "softwareVersion",
        "startupTime",
        "state",
        "systemBandwidth",
        "userName",
        "uuid",
        "webProtocol",
        "webProtocolType"
      ],
      "type": "object"
    },
    "networkRulesPostBody": {
      "properties": {
        "id": {
          "description": "Need description here",
          "type": "string"
        },
        "networkRole": {
          "description": "Need description here",
          "enum": [
            0,
            1,
            2
          ],
          "type": "integer"
        },
        "site": {
          "description": "Need description here",
          "type": "string"
        },
        "sitePriority": {
          "description": "Need description here",
          "type": "integer"
        }
      },
      "required": [
        "id",
        "networkRole",
        "site",
        "sitePriority"
      ],
      "type": "object"
    },
    "nextHop": {
      "properties": {
        "x.x.x.x": {
          "$ref": "#/definitions/SingleNextHop",
          "description": "Information for a single configured nexthop."
        }
      }
    },
    "onePreconfig": {
      "properties": {
        "autoApply": {
          "description": "Automatically apply this preconfiguration to the matched appliance when Orchestrator discovers it",
          "type": "boolean"
        },
        "comment": {
          "description": "User provided comment for the preconfiguration",
          "type": "string"
        },
        "completionStatus": {
          "description": "Whether the apply was successful or not, only look at this if taskStatus == 2",
          "type": "boolean"
        },
        "configData": {
          "description": "Base64 encoded preconfiguration YAML string",
          "type": "string"
        },
        "createdtime": {
          "description": "Time when preconfiguration was created in epoch milliseconds",
          "format": "int64",
          "type": "integer"
        },
        "discoveredId": {
          "description": "Discovered appliance ID that preconfig was last applied to (the id of appliances in the discovered tab are different than when the appliance is approved)",
          "type": "string"
        },
        "endtime": {
          "description": "End time of last apply in epoch milliseconds",
          "format": "int64",
          "type": "integer"
        },
        "guid": {
          "description": "ID of the log created in actionlog when the preconfiguration was applied",
          "type": "string"
        },
        "id": {
          "description": "Id of the preconfiguration, used to reference this preconfiguration in the other APIs",
          "type": "integer"
        },
        "modifiedtime": {
          "description": "Time when preconfiguration was last modified in epoch milliseconds",
          "format": "int64",
          "type": "integer"
        },
        "name": {
          "description": "Name of preconfiguration",
          "type": "string"
        },
        "nepk": {
          "description": "Appliance ID that preconfig was last applied to",
          "type": "string"
        },
        "result": {
          "items": {
            "$ref": "#/definitions/resultItem"
          },
          "type": "array"
        },
        "serialNum": {
          "description": "Serial number to match on",
          "type": "string"
        },
        "starttime": {
          "description": "Start time of last apply in epoch milliseconds",
          "format": "int64",
          "type": "integer"
        },
        "tag": {
          "description": "Tag to match on",
          "type": "string"
        },
        "taskStatus": {
          "description": "The current status of the preconfig apply. 0: Not Started, 1: In Progress, 2: Finished",
          "format": "int64",
          "type": "integer"
        }
      }
    },
    "passThroughTunnelIdMap": {
      "properties": {
        "adminStatus": {
          "type": "string"
        },
        "alias": {
          "type": "string"
        },
        "destIpAddress": {
          "type": "string"
        },
        "destNePk": {
          "type": "string"
        },
        "destTunnelAlias": {
          "type": "string"
        },
        "destTunnelId": {
          "type": "string"
        },
        "fecRatio": {
          "type": "integer"
        },
        "fecStatus": {
          "type": "string"
        },
        "gmsMarked": {
          "type": "boolean"
        },
        "id": {
          "type": "string"
        },
        "ipsec_enabled": {
          "type": "boolean"
        },
        "max_bw": {
          "type": "integer"
        },
        "max_bw_auto": {
          "type": "boolean"
        },
        "mode": {
          "type": "string"
        },
        "operStatus": {
          "type": "string"
        },
        "parallelTunnelId": {
          "type": "integer"
        },
        "peerName": {
          "type": "string"
        },
        "sourceIpAddress": {
          "type": "string"
        },
        "srcNePk": {
          "type": "string"
        },
        "tag": {
          "type": "string"
        },
        "tunnelThreshold": {
          "properties": {
            "fastfail": {
              "type": "integer"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "passThroughTunnelsInfo": {
      "properties": {
        "nePk": {
          "$ref": "#/definitions/nepkToPassThroughTunnelsMap"
        }
      },
      "type": "object"
    },
    "peerName": {
      "properties": {
        "peer_weight": {
          "description": "Peer weight",
          "type": "integer"
        },
        "self": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "peerlist": {
      "properties": {
        "<peerName>": {
          "$ref": "#/definitions/peerName"
        }
      },
      "type": "object"
    },
    "portProfilesApplianceIP": {
      "properties": {
        "behindNAT": {
          "description": "Determines if this interface is connected to a Network Address Translation device (only applicable to WAN interfaces). Valid values are 'auto', 'none', ''. 'auto' means interface is behind a NAT device. 'none' or '' mean interface is NOT behind a NAT device",
          "type": "string"
        },
        "brifs": {
          "$ref": "#/definitions/brifs",
          "description": "Bridge interface configurations"
        },
        "comment": {
          "description": "User comments",
          "type": "string"
        },
        "dhcp": {
          "description": "Determines if DHCP is enabled for this interface (only applicable for WAN side main interface IPs in inline router mode).",
          "type": "boolean"
        },
        "dhcpd": {
          "$ref": "#/definitions/dhcpd",
          "description": "Interface DHCP (server/relay) configuration (only applicable to LAN interfaces in inline router mode)"
        },
        "harden": {
          "description": "Determines if this interface has firewall configured (only applicable for WAN side main/VLAN interfaces in router mode). Valid values are 0:Allow All, 1:Hardened, 2:Stateful, 3:Stateful+SNAT",
          "type": "string"
        },
        "ip": {
          "description": "Appliance interface IP address",
          "type": "string"
        },
        "label": {
          "description": "Determines which interface label name is assigned to this interface. If empty that means no label is assigned.",
          "type": "string"
        },
        "lanSide": {
          "description": "Determines if this interface is on LAN side.",
          "type": "boolean"
        },
        "mask": {
          "description": "IP address network mask",
          "type": "integer"
        },
        "maxBW": {
          "$ref": "#/definitions/maxBW",
          "description": "Maximum inbound/outbound bandwidth for this interface in Kbps (only applicable to WAN interfaces)"
        },
        "subif": {
          "description": "Sub-interface ID",
          "type": "string"
        },
        "vlan": {
          "description": "VLAN ID",
          "type": "string"
        },
        "wanNexthop": {
          "description": "Next hop IP address",
          "type": "string"
        },
        "wanSide": {
          "description": "Determines if this interface is on WAN side.",
          "type": "boolean"
        },
        "zone": {
          "description": "Zone id assigned to this interface. 0 if no zone assigned",
          "type": "number"
        }
      },
      "required": [
        "ip",
        "mask",
        "subif",
        "wanNexthop"
      ]
    },
    "portProfilesConfig": {
      "properties": {
        "dhcpFailover": {
          "items": {
            "$ref": "#/definitions/portProfilesDhcpFailover"
          },
          "type": "object"
        },
        "dpRoutes": {
          "items": {
            "$ref": "#/definitions/portProfilesDpRoute"
          },
          "type": "array"
        },
        "modeIfs": {
          "items": {
            "$ref": "#/definitions/portProfilesModeIf"
          },
          "type": "array"
        },
        "sysConfig": {
          "$ref": "#/definitions/portProfilesSysConfig",
          "description": "Appliance's system configuration"
        }
      },
      "type": "object"
    },
    "portProfilesDhcpFailover": {
      "description": "List of dhcp failover settings configured on the interfaces",
      "properties": {
        "(ifname)": {
          "$ref": "#/definitions/portProfilesFailoverConfig",
          "description": "Configuration for dhcp failover per interface"
        }
      }
    },
    "portProfilesDpRoute": {
      "description": "Datapath IP route entries",
      "properties": {
        "intf": {
          "description": "Interface name for this route entry, auto or bvi0/bvi1/VLAN for bridge mode",
          "type": "string"
        },
        "metric": {
          "description": "Routing metric value, lower values have higher priority",
          "type": "integer"
        },
        "nexthop": {
          "description": "Next hop IP address for this route entry",
          "type": "string"
        },
        "prefix": {
          "description": "Subnetwork prefix, for example, 2.2.2.0/24",
          "type": "string"
        },
        "type": {
          "description": "Route entry type, gw is the only option for now",
          "type": "string"
        }
      },
      "required": [
        "intf",
        "metric",
        "nexthop",
        "prefix",
        "type"
      ]
    },
    "portProfilesEcLicense": {
      "properties": {
        "(licenseType)": {
          "description": "This key is dynamic based on the EC license type (fx, ecsp etc). Contains additional details based on license type.",
          "type": "object"
        },
        "ecBoost": {
          "description": "Is EC Boost license enabled",
          "type": "boolean"
        },
        "ecBoostBW": {
          "description": "Boost bandwidth in Kbps",
          "type": "integer"
        },
        "ecMini": {
          "description": "Is EC Mini license enabled",
          "type": "boolean"
        },
        "ecPlus": {
          "description": "Is EC Plus license enabled",
          "type": "boolean"
        },
        "ecTier": {
          "description": "EC Tier license name",
          "type": "string"
        },
        "ecTierBW": {
          "description": "EC Tier bandwidth in Kbps",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "portProfilesFailoverConfig": {
      "properties": {
        "load_bal_max": {
          "description": "Defines a threshold to compare with the secs field of the client's DHCP packet in order to override load balancing.",
          "type": "number"
        },
        "max_resp_delay": {
          "description": "Tells the DHCP server how many seconds may pass without receiving a message from its failover peer before it assumes that connection has failed.",
          "type": "number"
        },
        "max_unack_updates": {
          "description": "Tells the remote DHCP server how many BNDUPD messages it can send before it receives a BNDACK from the local system.",
          "type": "number"
        },
        "mclt": {
          "description": "Define the Maximum Client Lead Time.",
          "type": "number"
        },
        "my_ip": {
          "description": "Define the address that the server should listen for connections from its failover peer",
          "type": "string"
        },
        "my_port": {
          "description": "Defines which TCP port the server should listen for connections from its failover peer.",
          "type": "number"
        },
        "peer_ip": {
          "description": "Define which server it should connect to reach its failover peer.",
          "type": "string"
        },
        "peer_port": {
          "description": "Define which TCP port to connect to its failover peer for failover messages.",
          "type": "number"
        },
        "role": {
          "description": "Specify if the server is the primary or secondary.",
          "enum": [
            "primary",
            "secondary"
          ],
          "type": "string"
        },
        "split": {
          "description": "Specify the split between the primary and secondary",
          "type": "number"
        }
      },
      "required": [
        "my_ip",
        "peer_ip",
        "role"
      ]
    },
    "portProfilesGet": {
      "properties": {
        "config": {
          "$ref": "#/definitions/portProfilesConfig"
        },
        "id": {
          "description": "System generated unique identifier for the Deployment Profile",
          "type": "string"
        },
        "name": {
          "description": "Deployment Profile template name",
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "type": "object"
    },
    "portProfilesLabelInUseGetResp": {
      "description": "If label is in use in a profile and list of profiles its in use.",
      "properties": {
        "inUse": {
          "description": "Boolean to donate if label is in use",
          "type": "boolean"
        },
        "portProfileIds": {
          "description": "Array of unique profile ids which are using this label",
          "items": {
            "description": "Unique profile id which is using this label",
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "inUse"
      ]
    },
    "portProfilesModeIf": {
      "description": "Deployment mode interface configuration",
      "properties": {
        "applianceIPs": {
          "description": "Deployment interface IP addresses assignment",
          "items": {
            "$ref": "#/definitions/portProfilesApplianceIP"
          },
          "type": "array"
        },
        "devNum": {
          "description": "Deployment interface type - rtr1/rtr2, bdg1/bdg2, for UI use, not needed in POST",
          "type": "string"
        },
        "ifName": {
          "description": "Deployment interface name - wan0/lan0 for router mode, bvi0/bvi1 for bridge mode",
          "type": "string"
        }
      },
      "required": [
        "applianceIPs",
        "ifName"
      ]
    },
    "portProfilesPost": {
      "properties": {
        "config": {
          "$ref": "#/definitions/portProfilesConfig"
        },
        "id": {
          "description": "System generated unique identifier for the Deployment Profile, leave empty or null when creating new Deployment Profile template",
          "type": "string"
        },
        "name": {
          "description": "Deployment Profile template name",
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "type": "object"
    },
    "portProfilesSysConfig": {
      "description": "Appliance's system configuration",
      "properties": {
        "bonding": {
          "description": "Use interface bonding (only valid for models with 2 LAN interfaces and 2 WAN interfaces)",
          "type": "boolean"
        },
        "haIf": {
          "description": "Name of the interface used to build 'internal' High Availability (HA) VLAN interfaces using which two appliances in a HA configuration can communicate with each other",
          "type": "string"
        },
        "inline": {
          "description": "Inline router mode (only valid for router mode). This is the recommended mode.",
          "type": "boolean"
        },
        "licence": {
          "$ref": "#/definitions/portProfilesEcLicense",
          "description": "Appliance EC license information (only valid for EC models)"
        },
        "maxBW": {
          "description": "System maximum bandwidth in Kbps",
          "type": "integer"
        },
        "maxInBW": {
          "description": "System maximum inbound bandwidth in Kbps (to enable inbound shaping make sure maxInBWEnabled is set to true)",
          "type": "integer"
        },
        "maxInBWEnabled": {
          "description": "Enable inbound bandwidth shaping (if this is true, you must specify maxInBW)",
          "type": "boolean"
        },
        "mode": {
          "description": "System deployment mode",
          "enum": [
            "bridge",
            "router"
          ],
          "type": "string"
        },
        "propagateLinkDown": {
          "description": "Propagate link down state: this is valid in bridge mode only. If it is true, if either LAN or WAN side interface of the bridge is down, the system brings down the other interface automatically",
          "type": "boolean"
        },
        "singleBridge": {
          "description": "Single 4-port flat bridge configuration (only valid for 4-port models)",
          "type": "boolean"
        },
        "tenG": {
          "description": "Use 10Gbps interfaces (only valid for models with 10Gbps interfaces)",
          "type": "boolean"
        },
        "useMgmt0": {
          "description": "Use mgmt0 interface as a datapath interface as well. (only valid under router mode)",
          "type": "boolean"
        },
        "zones": {
          "items": {
            "$ref": "#/definitions/fwZone",
            "description": "Available Zones"
          },
          "type": "array"
        }
      },
      "required": [
        "bonding",
        "inline",
        "maxBW",
        "mode",
        "propagateLinkDown",
        "singleBridge",
        "tenG",
        "useMgmt0"
      ]
    },
    "portProtocol": {
      "properties": {
        "description": {
          "type": "string"
        },
        "disabled": {
          "type": "boolean"
        },
        "name": {
          "description": "application name",
          "type": "string"
        },
        "port": {
          "description": "Port number, user 0 for IP Protocol application",
          "type": "number"
        },
        "priority": {
          "description": "minimum 0, maximum 100",
          "type": "number"
        },
        "protocol": {
          "description": "Protocol number, user 6 for TCP Port application , 17 for UDP Port application",
          "type": "number"
        }
      },
      "required": [
        "description",
        "disabled",
        "name",
        "port",
        "priority",
        "protocol"
      ],
      "type": "object"
    },
    "preconfigApplyStatus": {
      "properties": {
        "completionStatus": {
          "description": "Whether the apply was successful or not, only look at this if taskStatus == 2",
          "type": "boolean"
        },
        "endtime": {
          "description": "End time of last apply in epoch milliseconds",
          "format": "int64",
          "type": "integer"
        },
        "guid": {
          "description": "ID of the log created in actionlog when the preconfiguration was applied",
          "type": "string"
        },
        "id": {
          "description": "Id of the preconfiguration, used to reference this preconfiguration in the other APIs",
          "type": "integer"
        },
        "result": {
          "items": {
            "$ref": "#/definitions/resultItem"
          },
          "type": "array"
        },
        "starttime": {
          "description": "Start time of last apply in epoch milliseconds",
          "format": "int64",
          "type": "integer"
        },
        "taskStatus": {
          "description": "The current status of the preconfig apply. 0: Not Started, 1: In Progress, 2: Finished",
          "format": "int64",
          "type": "integer"
        }
      }
    },
    "priority": {
      "properties": {
        "1": {
          "$ref": "#/definitions/LabelDetails",
          "description": "id for priority"
        },
        "2": {
          "$ref": "#/definitions/LabelDetails",
          "description": "id for priority"
        }
      },
      "required": [
        "1",
        "2"
      ]
    },
    "replicationInfo": {
      "properties": {
        "app_assure_replication": {
          "type": "string"
        },
        "app_assure_svr_backup": {
          "type": "string"
        },
        "netvault_replication": {
          "type": "string"
        },
        "vsphere_replication_ini": {
          "type": "string"
        },
        "vsphere_replication_ong": {
          "type": "string"
        },
        "zerto_mgmt": {
          "type": "string"
        },
        "zerto_replication": {
          "type": "string"
        }
      }
    },
    "restApiConfig": {
      "properties": {
        "communicateWithApplianceViaPortal": {
          "description": "the control value of connecting VXOA via portal web socket, true means allow connecting VXOA via portal web socket, false means disallow",
          "type": "boolean"
        }
      },
      "required": [
        "communicateWithApplianceViaPortal"
      ],
      "type": "object"
    },
    "resultItem": {
      "properties": {
        "completionStatus": {
          "description": "Whether the apply was successful or not, only look at this if taskStatus == 2",
          "type": "boolean"
        },
        "data": {
          "description": "String or Json for the data that was used by this task",
          "type": "string"
        },
        "name": {
          "description": "Name of the task",
          "type": "string"
        },
        "nePk": {
          "description": "Appliance ID task is applying to",
          "type": "string"
        },
        "result": {
          "description": "Status/result string information of the task",
          "type": "string"
        },
        "taskStatus": {
          "description": "The current status of the preconfig apply. 0: Not Started, 1: In Progress, 2: Finished",
          "format": "int64",
          "type": "integer"
        }
      }
    },
    "saMapObject": {
      "properties": {
        "entries": {
          "description": "Data of may entries",
          "items": {
            "$ref": "#/definitions/MapEntryObject"
          },
          "type": "array"
        },
        "mapName": {
          "description": "The name of map",
          "type": "string"
        },
        "numOfEntries": {
          "description": "Number of map entries in the current map",
          "type": "string"
        },
        "state": {
          "description": "Map state, sa map is always active",
          "type": "string"
        }
      }
    },
    "saas": {
      "properties": {
        "addresses": {
          "description": "Array of subnets associated with this cloud application.",
          "items": {
            "$ref": "#/definitions/CloudAppSubnet"
          },
          "type": "array"
        },
        "application": {
          "description": "Name of cloud application",
          "type": "string"
        },
        "domains": {
          "description": "Array of domain names associated with this cloud application.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "enabled": {
          "description": "For internal use",
          "type": "boolean"
        },
        "ports": {
          "description": "Array of ports associated with this cloud application",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "processedAt": {
          "description": "For internal use",
          "type": "string"
        },
        "saasId": {
          "description": "Unique identifier for cloud application",
          "type": "number"
        },
        "threshold": {
          "description": "Default RTT threshold value from portal",
          "type": "number"
        }
      }
    },
    "saasTmp": {
      "properties": {
        "id#": {
          "$ref": "#/definitions/CloudApp"
        }
      },
      "required": [
        "id#"
      ],
      "type": "object"
    },
    "searchWildcard": {
      "properties": {
        "limit": {
          "description": "default is 30",
          "type": "number"
        },
        "pattern": {
          "type": "string"
        }
      },
      "required": [
        "pattern"
      ],
      "type": "object"
    },
    "serverMode": {
      "properties": {
        "in_max_bw": {
          "description": "Server inbound max bandwidth (kbps)",
          "type": "integer"
        },
        "out_max_bw": {
          "description": "Server outbound max bandwidth (kbps)",
          "type": "integer"
        },
        "target_in_thres": {
          "description": "Interface max link threshold",
          "type": "number"
        },
        "target_out_thres": {
          "description": "Interface max link threshold",
          "type": "number"
        }
      },
      "type": "object"
    },
    "serviceIdToSaasIdSaasAppGet": {
      "properties": {
        "saasAppName": {
          "description": "Array representing saas applications",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "sessionDetail": {
      "properties": {
        "autoLogout": {
          "type": "integer"
        },
        "maxSession": {
          "type": "integer"
        }
      },
      "required": [
        "autoLogout"
      ],
      "type": "object"
    },
    "shaperInbound": {
      "properties": {
        "wan": {
          "$ref": "#/definitions/wan",
          "description": "Shaper interface"
        }
      },
      "type": "object"
    },
    "spPortalAccountKeyChangeCountResp": {
      "properties": {
        "count": {
          "description": "Number of times account key has been changed for this account. 0 if it's never been changed.",
          "type": "number"
        }
      },
      "required": [
        "count"
      ],
      "type": "object"
    },
    "spPortalAccountKeyChangeStatusResp": {
      "properties": {
        "committedToPortalTimestamp": {
          "description": "Latest epoch time in milliseconds when old account key was delete from Portal. Null if current account key change has not been committed to Portal.",
          "type": "number"
        },
        "generateTimestamp": {
          "description": "Latest epoch time in milliseconds when new account key was generated. Null if account key has never been changed.",
          "type": "number"
        }
      },
      "required": [
        "committedToPortalTimestamp",
        "generateTimestamp"
      ],
      "type": "object"
    },
    "spPortalAccountKeyGeneratePutResp": {
      "properties": {
        "accountKey": {
          "description": "Current account key",
          "type": "string"
        },
        "oldAccountKey": {
          "description": "Old account key",
          "type": "string"
        }
      },
      "required": [
        "accountKey",
        "oldAccountKey"
      ],
      "type": "object"
    },
    "spPortalCreateCaseWithPortal": {
      "properties": {
        "caseDesc": {
          "description": "Description",
          "type": "string"
        },
        "caseEmail": {
          "description": "Contact email address. If Orchestrator is not registered to Portal, a valid Silver Peak support account email address is required in order to create a case.",
          "type": "string"
        },
        "caseName": {
          "description": "Contact name",
          "type": "string"
        },
        "casePhone": {
          "description": "Contact phone number",
          "type": "string"
        },
        "casePrio": {
          "description": "Priority. Accepted values: \"P1 - Urgent\", \"P2 - High\", \"P3 - Normal\", \"P4 - Low\"",
          "type": "string"
        },
        "caseSubject": {
          "description": "Subject",
          "type": "string"
        },
        "orchSerialNum": {
          "description": "Serial number for Orchestrator or appliance. NOTE: For Orchestrators, leave this field empty (\"\"). For appliances, enter the nePk (E.g. \"0.NE\"). The corresponding serial number will then be retrieved based on these inputs",
          "type": "string"
        }
      },
      "required": [
        "caseDesc",
        "caseEmail",
        "caseName",
        "casePhone",
        "casePrio",
        "caseSubject",
        "orchSerialNum"
      ],
      "type": "object"
    },
    "sslCACertId": {
      "properties": {
        "builtin": {
          "type": "string"
        },
        "id": {
          "description": "Unique key that identify the cert",
          "type": "string"
        },
        "issuer": {
          "description": "Information regarding the CA that issued the certificate",
          "type": "string"
        },
        "key_type": {
          "type": "string"
        },
        "method": {
          "type": "string"
        },
        "pretty": {
          "type": "string"
        },
        "self": {
          "type": "string"
        },
        "serial": {
          "description": "The unique serial number that the issuing certification authority assigns to the certificate",
          "type": "string"
        },
        "subject": {
          "description": "The name of the individual, computer, device, to whom the certificate is issued",
          "type": "string"
        },
        "valid_from": {
          "description": "The beginning date for the period in which the certificate is valid",
          "type": "string"
        },
        "valid_to": {
          "description": "The final date for the period in which the certificate is valid",
          "type": "string"
        },
        "verified": {
          "description": "Whether certificate is verified or not",
          "type": "string"
        }
      },
      "type": "object"
    },
    "sslCACertValidation": {
      "properties": {
        "certificateData": {
          "type": "string"
        },
        "isPFX": {
          "type": "boolean"
        },
        "isSslCACert": {
          "type": "boolean"
        },
        "passPhrase": {
          "type": "string"
        },
        "password": {
          "type": "string"
        }
      },
      "required": [
        "certificateData",
        "isSslCACert"
      ],
      "type": "object"
    },
    "sslCACertsGet": {
      "properties": {
        "auth": {
          "$ref": "#/definitions/auth"
        }
      },
      "type": "object"
    },
    "sslCertGetInfoPost": {
      "properties": {
        "certificateData": {
          "type": "string"
        },
        "isPFX": {
          "type": "boolean"
        },
        "isSslCACert": {
          "type": "boolean"
        },
        "keyData": {
          "type": "string"
        },
        "passPhrase": {
          "type": "string"
        },
        "password": {
          "type": "string"
        }
      },
      "required": [
        "isPFX",
        "isSslCACert"
      ],
      "type": "object"
    },
    "sslCertGetTextPost": {
      "properties": {
        "certificateData": {
          "type": "string"
        },
        "isPFX": {
          "type": "boolean"
        },
        "password": {
          "type": "string"
        }
      },
      "required": [
        "certificateData"
      ],
      "type": "object"
    },
    "sslCertId": {
      "properties": {
        "builtin": {
          "type": "string"
        },
        "id": {
          "description": "Unique key that identify the cert",
          "type": "string"
        },
        "issuer": {
          "description": "Information regarding the CA that issued the certificate",
          "type": "string"
        },
        "key_type": {
          "type": "string"
        },
        "method": {
          "type": "string"
        },
        "pretty": {
          "type": "string"
        },
        "self": {
          "type": "string"
        },
        "serial": {
          "description": "The unique serial number that the issuing certification authority assigns to the certificate",
          "type": "string"
        },
        "subject": {
          "description": "The name of the individual, computer, device, to whom the certificate is issued",
          "type": "string"
        },
        "valid_from": {
          "description": "The beginning date for the period in which the certificate is valid",
          "type": "string"
        },
        "valid_to": {
          "description": "The final date for the period in which the certificate is valid",
          "type": "string"
        },
        "verified": {
          "description": "Whether certificate is verified or not",
          "type": "string"
        }
      },
      "type": "object"
    },
    "sslCertSigningInfo": {
      "properties": {
        "Unique key that identify the cert": {
          "$ref": "#/definitions/sslCertId",
          "description": "You can get this unique ID as part of response in validation api"
        }
      },
      "type": "object"
    },
    "sslCertsGet": {
      "properties": {
        "config": {
          "$ref": "#/definitions/configInfo"
        },
        "state": {
          "$ref": "#/definitions/stateInfo"
        }
      },
      "type": "object"
    },
    "sslSubstituteCertConfig": {
      "properties": {
        "builtin_signing": {
          "type": "boolean"
        },
        "cert-substitution": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "sslSubstituteCertEnable": {
      "properties": {
        "config": {
          "$ref": "#/definitions/sslSubstituteCertConfig"
        }
      },
      "type": "object"
    },
    "sslSubstituteCertGet": {
      "properties": {
        "enable": {
          "$ref": "#/definitions/sslSubstituteCertEnable"
        },
        "sslcert": {
          "$ref": "#/definitions/sslSubstituteCertInfo"
        }
      },
      "type": "object"
    },
    "sslSubstituteCertInfo": {
      "properties": {
        "signing": {
          "$ref": "#/definitions/sslCertSigningInfo"
        }
      },
      "type": "object"
    },
    "sslSubstituteCertValidation": {
      "properties": {
        "certificateData": {
          "description": "Certificate data",
          "type": "string"
        },
        "isPFX": {
          "description": "To specify whether certificate containing the private key or not",
          "type": "boolean"
        },
        "isSslCACert": {
          "type": "boolean"
        },
        "passPhrase": {
          "description": "Passphrase for the certificate",
          "type": "string"
        },
        "password": {
          "description": "Password for the certificate",
          "type": "string"
        }
      },
      "required": [
        "certificateData",
        "isPFX",
        "isSslCACert"
      ],
      "type": "object"
    },
    "stateCertIdInfo": {
      "properties": {
        "builtin": {
          "type": "string"
        },
        "id": {
          "description": "Unique key that identify the cert",
          "type": "string"
        },
        "issuer": {
          "description": "Information regarding the CA that issued the certificate",
          "type": "string"
        },
        "key_type": {
          "type": "string"
        },
        "method": {
          "type": "string"
        },
        "pretty": {
          "type": "string"
        },
        "self": {
          "type": "string"
        },
        "serial": {
          "description": "The unique serial number that the issuing certification authority assigns to the certificate",
          "type": "string"
        },
        "subject": {
          "description": "The name of the individual, computer, device, or CA to whom the certificate is issued.",
          "type": "string"
        },
        "valid_from": {
          "description": "The beginning date for the period in which the certificate is valid",
          "type": "string"
        },
        "valid_to": {
          "description": "The final date for the period in which the certificate is valid",
          "type": "string"
        },
        "verified": {
          "description": "Whether certificate is verified or not",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "stateHostInfo": {
      "properties": {
        "Unique key that identify the cert": {
          "$ref": "#/definitions/stateCertIdInfo"
        }
      },
      "type": "object"
    },
    "stateInfo": {
      "properties": {
        "host": {
          "$ref": "#/definitions/stateHostInfo"
        }
      },
      "type": "object"
    },
    "statsCollection": {
      "properties": {
        "Application": {
          "type": "boolean"
        },
        "Dns": {
          "type": "boolean"
        },
        "Drc": {
          "type": "boolean"
        },
        "Drops": {
          "type": "boolean"
        },
        "Dscp": {
          "type": "boolean"
        },
        "Flow": {
          "type": "boolean"
        },
        "Interface": {
          "type": "boolean"
        },
        "Jitter": {
          "type": "boolean"
        },
        "Port": {
          "type": "boolean"
        },
        "Shaper": {
          "type": "boolean"
        },
        "TopTalkers": {
          "type": "boolean"
        },
        "Tunnel": {
          "type": "boolean"
        }
      }
    },
    "sysConfig": {
      "description": "Appliance's system configuration",
      "properties": {
        "bonding": {
          "description": "Use interface bonding (only valid for models with 2 LAN interfaces and 2 WAN interfaces)",
          "type": "boolean"
        },
        "haIf": {
          "description": "Name of the interface used to build 'internal' High Availability (HA) VLAN interfaces using which two appliances in a HA configuration can communicate with each other",
          "type": "string"
        },
        "ifLabels": {
          "$ref": "#/definitions/ifLabels"
        },
        "inline": {
          "description": "Inline router mode (only valid for router mode). This is the recommended mode.",
          "type": "boolean"
        },
        "licence": {
          "$ref": "#/definitions/ecLicense",
          "description": "Appliance EC license information (only valid for EC Enterprise and Metered models)"
        },
        "maxBW": {
          "description": "System maximum outbound bandwidth in Kbps",
          "type": "integer"
        },
        "maxInBW": {
          "description": "System maximum inbound bandwidth in Kbps (to enable inbound shaping make sure maxInBWEnabled is set to true)",
          "type": "integer"
        },
        "maxInBWEnabled": {
          "description": "Enable inbound bandwidth shaping (if this is true, you must specify maxInBW)",
          "type": "boolean"
        },
        "mode": {
          "description": "System deployment mode",
          "enum": [
            "bridge",
            "router"
          ],
          "type": "string"
        },
        "propagateLinkDown": {
          "description": "Propagate link down state: this is valid in bridge mode only. If it is true, if either LAN or WAN side interface of the bridge is down, the system brings down the other interface automatically",
          "type": "boolean"
        },
        "singleBridge": {
          "description": "Single 4-port flat bridge configuration (only valid for 4-port models)",
          "type": "boolean"
        },
        "tenG": {
          "description": "Use 10Gbps interfaces (only valid for models with 10Gbps interfaces)",
          "type": "boolean"
        },
        "useMgmt0": {
          "description": "Use mgmt0 interface as a datapath interface as well. (only valid under router mode)",
          "type": "boolean"
        },
        "zones": {
          "items": {
            "$ref": "#/definitions/fwZone",
            "description": "Available Zones"
          },
          "type": "array"
        }
      },
      "required": [
        "bonding",
        "inline",
        "maxBW",
        "mode",
        "propagateLinkDown",
        "singleBridge",
        "tenG",
        "useMgmt0"
      ]
    },
    "sysConfigIfState": {
      "properties": {
        "bonding": {
          "description": "Need description here.",
          "type": "boolean"
        },
        "mode": {
          "description": "The appliance's deployment mode.",
          "type": "string"
        },
        "submode": {
          "description": "The appliance's deployment submode.",
          "type": "string"
        }
      },
      "required": [
        "bonding",
        "mode",
        "submode"
      ],
      "type": "object"
    },
    "targetAppliance": {
      "properties": {
        "groupPks": {
          "description": "comma separated list of groupPk (primary key of group). Job will be run on every appliance in the group",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "nePks": {
          "description": "comma separated list of nepk (primary key of appliance)",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "techSupportStatus": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "textCustomizationItem": {
      "properties": {
        "custom": {
          "description": "Text content",
          "type": "string"
        },
        "useDefault": {
          "description": "Use default brand",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "textCustomizationItems": {
      "properties": {
        "footer": {
          "$ref": "#/definitions/textCustomizationItem"
        }
      },
      "type": "object"
    },
    "tmpHashCode": {
      "properties": {
        "hashVal": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "tmpTimeStamp": {
      "properties": {
        "lastUpdateTime": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "topTalkersAggregateStatsFields": {
      "properties": {
        "CALC_DNS": {
          "type": "string"
        },
        "COUNT": {
          "type": "integer"
        },
        "COUNTRY": {
          "type": "string"
        },
        "DNS": {
          "type": "string"
        },
        "FLOWS_CREATED": {
          "type": "integer"
        },
        "FLOWS_DELETED": {
          "type": "integer"
        },
        "FLOW_COUNT": {
          "type": "integer"
        },
        "HOSTNAME": {
          "type": "string"
        },
        "IPADDR": {
          "type": "string"
        },
        "IS_SOURCE": {
          "type": "integer"
        },
        "LANRX_BYTES": {
          "type": "integer"
        },
        "LANRX_PKTS": {
          "type": "integer"
        },
        "LANTX_BYTES": {
          "type": "integer"
        },
        "LANTX_PKTS": {
          "type": "integer"
        },
        "MAX_TIME": {
          "type": "integer"
        },
        "MIN_TIME": {
          "type": "integer"
        },
        "NEPK": {
          "type": "string"
        },
        "NE_IPADDR": {
          "type": "string"
        },
        "SERVICE_ID": {
          "type": "integer"
        },
        "SPLIT_TYPE": {
          "type": "integer"
        },
        "WANRX_BYTES": {
          "type": "integer"
        },
        "WANRX_PKTS": {
          "type": "integer"
        },
        "WANTX_BYTES": {
          "type": "integer"
        },
        "WANTX_PKTS": {
          "type": "integer"
        }
      }
    },
    "trafficBehaviorAggregateStatsFields": {
      "properties": {
        "BEHAVIORAL_CATEGORY": {
          "description": "Applications are classified by the behavior of the traffic. This field indicates the behavior it was classified as",
          "type": "string"
        },
        "HOSTNAME": {
          "description": "Hostname of the appliance",
          "type": "string"
        },
        "MAX_TIMESTAMP": {
          "description": "Start time ( epoch time in seconds ) of time range that stats are requested for",
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "description": "End time ( epoch time in seconds ) of time range that stats are requested for",
          "type": "integer"
        },
        "SUM_FLOWS_COUNT": {
          "description": "Number of flows that were classified under this behavior during the time range specified",
          "type": "integer"
        },
        "SUM_FLOWS_CREATED": {
          "description": "Number of flows created that were classified under this behavior during the time range specified",
          "type": "integer"
        },
        "SUM_FLOWS_DELETED": {
          "description": "Number of flows deleted that were classified under this behavior during the time range specified",
          "type": "integer"
        },
        "SUM_LRX_BYTES": {
          "description": "Total number of bytes received on the LAN side",
          "type": "integer"
        },
        "SUM_LRX_PKTS": {
          "description": "Total number of packets received on the LAN side",
          "type": "integer"
        },
        "SUM_LTX_BYTES": {
          "description": "Total number of bytes transmitted on the LAN side",
          "type": "integer"
        },
        "SUM_LTX_PKTS": {
          "description": "Total number of packets transmitted on the LAN side",
          "type": "integer"
        },
        "SUM_WRX_BYTES": {
          "description": "Total number of bytes received on the WAN side",
          "type": "integer"
        },
        "SUM_WRX_PKTS": {
          "description": "Total number of packets received on the WAN side",
          "type": "integer"
        },
        "SUM_WTX_BYTES": {
          "description": "Total number of bytes transmitted on the WAN side",
          "type": "integer"
        },
        "SUM_WTX_PKTS": {
          "description": "Total number of packets transmitted on the WAN side",
          "type": "integer"
        },
        "nePk": {
          "description": "Internal ID of appliance",
          "type": "string"
        }
      },
      "required": [
        "BEHAVIORAL_CATEGORY",
        "HOSTNAME",
        "MAX_TIMESTAMP",
        "MIN_TIMESTAMP",
        "SUM_FLOWS_COUNT",
        "SUM_FLOWS_CREATED",
        "SUM_FLOWS_DELETED",
        "SUM_LRX_BYTES",
        "SUM_LRX_PKTS",
        "SUM_LTX_BYTES",
        "SUM_LTX_PKTS",
        "SUM_WRX_BYTES",
        "SUM_WRX_PKTS",
        "SUM_WTX_BYTES",
        "SUM_WTX_PKTS",
        "nePk"
      ]
    },
    "trafficBehaviorStatsFields": {
      "properties": {
        "APPNAME": {
          "description": "Application that was classified as of a particular behavior.",
          "type": "string"
        },
        "BEHAVIORAL_CATEGORY": {
          "description": "Applications are classified by the behavior of the traffic. This field indicates the behavior it was classified as.",
          "type": "string"
        },
        "FLOWS_COUNT": {
          "description": "Number of flows that were classified under this behavior during the time range specified.",
          "type": "integer"
        },
        "FLOWS_CREATED": {
          "description": "Number of flows created that were classified under this behavior during the time range specified.",
          "type": "integer"
        },
        "FLOWS_DELETED": {
          "description": "Number of flows deleted that were classified under this behavior during the time range specified.",
          "type": "integer"
        },
        "HOSTNAME": {
          "description": "Hostname of the appliance.",
          "type": "string"
        },
        "LRX_BYTES": {
          "description": "Number of bytes received on the LAN side.",
          "type": "integer"
        },
        "LRX_PKTS": {
          "description": "Number of packets received on the LAN side.",
          "type": "integer"
        },
        "LTX_BYTES": {
          "description": "Number of bytes transmitted on the LAN side.",
          "type": "integer"
        },
        "LTX_PKTS": {
          "description": "Number of packets transmitted on the LAN side.",
          "type": "integer"
        },
        "MAX_TIMESTAMP": {
          "description": "Start time ( epoch time in seconds ) of time range that stats are requested for.",
          "type": "integer"
        },
        "MIN_TIMESTAMP": {
          "description": "End time ( epoch time in seconds ) of time range that stats are requested for.",
          "type": "integer"
        },
        "WRX_BYTES": {
          "description": "Number of bytes received on the WAN side.",
          "type": "integer"
        },
        "WRX_PKTS": {
          "description": "Number of packets received on the WAN side.",
          "type": "integer"
        },
        "WTX_BYTES": {
          "description": "Number of bytes transmitted on the WAN side.",
          "type": "integer"
        },
        "WTX_PKTS": {
          "description": "Number of packets transmitted on the WAN side.",
          "type": "integer"
        },
        "nePk": {
          "description": "Internal ID of appliance.",
          "type": "string"
        }
      },
      "required": [
        "APPNAME",
        "BEHAVIORAL_CATEGORY",
        "FLOWS_COUNT",
        "FLOWS_CREATED",
        "FLOWS_DELETED",
        "HOSTNAME",
        "LRX_BYTES",
        "LRX_PKTS",
        "LTX_BYTES",
        "LTX_PKTS",
        "MAX_TIMESTAMP",
        "MIN_TIMESTAMP",
        "WRX_BYTES",
        "WRX_PKTS",
        "WTX_BYTES",
        "WTX_PKTS",
        "nePk"
      ]
    },
    "trafficBehaviorTmp": {
      "properties": {
        "TB_CONFIG": {
          "description": "traffic behavior configuration key value pairs",
          "type": "object"
        },
        "TB_NAME": {
          "description": "an array of traffic behavior names, e.g Voice, Video conferencing, Video Streaming, Bulk Data, Interactive, Idle or Undetermined",
          "type": "object"
        }
      },
      "required": [
        "TB_CONFIG",
        "TB_NAME"
      ],
      "type": "object"
    },
    "trafficClass": {
      "properties": {
        "<traffic_class_id>": {
          "$ref": "#/definitions/trafficClassId",
          "description": "Traffic class ID"
        }
      },
      "type": "object"
    },
    "trafficClassId": {
      "properties": {
        "excess": {
          "description": "Traffic class excess weight",
          "type": "integer"
        },
        "flow_limit": {
          "description": "Traffic class flow rate limit",
          "type": "integer"
        },
        "max_bw": {
          "description": "Traffic class max bandwidth %",
          "type": "number"
        },
        "max_bw_abs": {
          "description": "Traffic class max bandwidth (kbps)",
          "type": "integer"
        },
        "max_wait": {
          "description": "Traffic class max wait",
          "type": "integer"
        },
        "min_bw": {
          "description": "Traffic class min bandwidth %",
          "type": "number"
        },
        "min_bw_abs": {
          "description": "Traffic class min bandwidth (kbps)",
          "type": "integer"
        },
        "priority": {
          "description": "Traffic class priority",
          "type": "integer"
        },
        "self": {
          "description": "Traffic class ID. It is the same as the parent node key \"trafficClassId\"",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "typeIdAlarmInfoMap": {
      "properties": {
        "65536": {
          "description": "{\"description\" : \"\", \"severity\" : \"\"}",
          "type": "object"
        }
      },
      "required": [
        "65536"
      ],
      "type": "object"
    },
    "updateConfig": {
      "properties": {
        "defaultMenuType": {
          "description": "Whether this is a default menu type",
          "type": "boolean"
        },
        "users": {
          "description": "The user names configured for this menu type",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "defaultMenuType",
        "users"
      ],
      "type": "object"
    },
    "updateMenuType": {
      "properties": {
        "menuTypeName": {
          "$ref": "#/definitions/updateConfig",
          "description": "The name of the menu type configuration."
        }
      },
      "required": [
        "menuTypeName"
      ]
    },
    "userAccessCustomization": {
      "properties": {
        "asset": {
          "description": "appliance access group / asset name. Required if roles value is not provided",
          "type": "string"
        },
        "roles": {
          "description": "Comma separated list of roles. Required if asset value is not provided",
          "type": "string"
        },
        "username": {
          "description": "username",
          "type": "string"
        }
      },
      "required": [
        "username"
      ],
      "type": "object"
    },
    "userAuthType": {
      "properties": {
        "authType": {
          "description": "Current user's authentication type",
          "type": "string"
        },
        "user": {
          "description": "Current user",
          "type": "string"
        }
      },
      "required": [
        "authType",
        "user"
      ]
    },
    "userDefinedConfig": {
      "properties": {
        "<priorityId>": {
          "$ref": "#/definitions/userDefinedConfigInfo"
        }
      },
      "type": "object"
    },
    "userDefinedConfigInfo": {
      "properties": {
        "dscp": {
          "description": "Differentiated services code point",
          "type": "string"
        },
        "dst_ip_range": {
          "description": "Destination IP address",
          "type": "string"
        },
        "dst_port_range": {
          "description": "Destination port range",
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "ipver": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "proto": {
          "description": "Protocol",
          "type": "string"
        },
        "self": {
          "type": "integer"
        },
        "src_ip_range": {
          "description": "Source ip range",
          "type": "string"
        },
        "src_port_range": {
          "description": "Source port range",
          "type": "string"
        },
        "vlan": {
          "description": "virtual local area network ",
          "type": "string"
        }
      },
      "type": "object"
    },
    "versionName": {
      "properties": {
        "switchToVersion": {
          "description": "name of the version to be switched",
          "type": "string"
        }
      }
    },
    "vifs": {
      "description": "List of virtual interface names configured on this appliance",
      "properties": {
        "pppoe": {
          "description": "List of PPPoE interface names configured on this appliance",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "vtiConfig": {
      "properties": {
        "<interface>": {
          "$ref": "#/definitions/vtiConfigDetail"
        }
      },
      "type": "object"
    },
    "vtiConfigDetail": {
      "properties": {
        "admin": {
          "description": "admin status",
          "type": "boolean"
        },
        "ipaddr": {
          "description": "Interface IP",
          "type": "string"
        },
        "label": {
          "description": "label id",
          "type": "string"
        },
        "nmask": {
          "description": "mask",
          "type": "number"
        },
        "side": {
          "description": "'lan' or 'wan'",
          "type": "string"
        },
        "tunnel": {
          "description": "Third party passthrough tunnel alias",
          "type": "string"
        },
        "zone": {
          "description": "zone id",
          "type": "number"
        }
      },
      "required": [
        "admin",
        "ipaddr",
        "label",
        "nmask",
        "side",
        "tunnel",
        "zone"
      ],
      "type": "object"
    },
    "vxoaObject": {
      "properties": {
        "applianceName": {
          "description": "application name",
          "type": "string"
        },
        "nePkId": {
          "description": "appliance ID",
          "type": "string"
        }
      },
      "required": [
        "applianceName",
        "nePkId"
      ],
      "type": "object"
    },
    "wan": {
      "properties": {
        "accuracy": {
          "description": "Shaper accuracy (usec)",
          "type": "integer"
        },
        "dyn_bw_enable": {
          "description": "Enable/disable dynamic bandwidth for inbound shaper",
          "type": "boolean"
        },
        "enable": {
          "description": "Enable/disable inbound shaper",
          "type": "boolean"
        },
        "max_bw": {
          "description": "Shaper max bandwidth (kbps)",
          "type": "integer"
        },
        "self": {
          "description": "Shaper interface name. It is the same as the parent node key \"wan\"",
          "type": "string"
        },
        "traffic-class": {
          "$ref": "#/definitions/trafficClass",
          "description": "Traffic class"
        }
      },
      "type": "object"
    },
    "zscalerPauseOrchestration": {
      "properties": {
        "paused": {
          "description": "boolean flag to set pause zscaler orchestration",
          "type": "boolean"
        }
      },
      "required": [
        "paused"
      ],
      "type": "object"
    }
  }
}