{
  "openapi": "3.0.0",
  "info": {
    "title": "AS Group Configuration API",
    "description": "# Overview\nThe AS Group Configuration API provides programmatic access to configuration of AS Groups:\n\n* **AS Group**: ASNs can be logically grouped into an AS group.",
    "contact": {
      "name": "Kentik API Engineering",
      "url": "https://github.com/kentik/api-schema-public"
    },
    "version": "v202212"
  },
  "servers": [
    {
      "url": "https://grpc.api.kentik.com",
      "variables": {}
    }
  ],
  "paths": {
    "/as_group/v202212/as_group": {
      "get": {
        "tags": [
          "ASGroupService"
        ],
        "summary": "ListASGroups",
        "description": "Returns list of configured AS groups.",
        "operationId": "ListASGroups",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListASGroupsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "ASGroupService"
        ],
        "summary": "CreateASGroup",
        "description": "Create configuration for a new AS group. Returns the newly created configuration.",
        "operationId": "CreateASGroup",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateASGroupRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateASGroupResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/as_group/v202212/as_group/{asGroup.id}": {
      "put": {
        "tags": [
          "ASGroupService"
        ],
        "summary": "UpdateASGroup",
        "description": "Replaces configuration of a AS group with attributes in the request. Returns the updated configuration.",
        "operationId": "UpdateASGroup",
        "parameters": [
          {
            "name": "asGroup.id",
            "in": "path",
            "description": "System generated unique identifier",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateASGroupRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateASGroupResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "get": {
        "tags": [
          "ASGroupService"
        ],
        "summary": "GetASGroup",
        "description": "Returns configuration of a AS group specified by ID.",
        "operationId": "GetASGroup",
        "parameters": [
          {
            "name": "asGroup.id",
            "in": "path",
            "description": "ID of the requested AS group",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetASGroupResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "delete": {
        "tags": [
          "ASGroupService"
        ],
        "summary": "DeleteASGroup",
        "description": "Deletes configuration of a AS group with specific ID.",
        "operationId": "DeleteASGroup",
        "parameters": [
          {
            "name": "asGroup.id",
            "in": "path",
            "description": "ID of the AS group to be deleted",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/bgp_monitoring/v202210/monitors": {
      "get": {
        "tags": [
          "BgpMonitoringAdminService"
        ],
        "summary": "ListMonitors",
        "description": "Returns list of all BGP monitors present in the account.",
        "operationId": "ListMonitors",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListMonitorsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "BgpMonitoringAdminService"
        ],
        "summary": "CreateMonitor",
        "description": "Creates new BGP Monitor and if successful returns its configuration.",
        "operationId": "CreateMonitor",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMonitorRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateMonitorResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/bgp_monitoring/v202210/monitors/{id}": {
      "get": {
        "tags": [
          "BgpMonitoringAdminService"
        ],
        "summary": "GetMonitor",
        "description": "Returns configuration of existing BGP monitor with specific ID.",
        "operationId": "GetMonitor",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the BGP monitor to be retrieved",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetMonitorResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "delete": {
        "tags": [
          "BgpMonitoringAdminService"
        ],
        "summary": "DeleteMonitor",
        "description": "Delete BGP monitor with with specific ID.",
        "operationId": "DeleteMonitor",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the BGP monitor to be deleted",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "put": {
        "tags": [
          "BgpMonitoringAdminService"
        ],
        "summary": "UpdateMonitor",
        "description": "Updates configuration of BGP monitor with specific ID and returns updated  configuration.",
        "operationId": "UpdateMonitor",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "System generated unique identifier",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMonitorRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateMonitorResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/bgp_monitoring/v202210/monitors/{id}/status": {
      "put": {
        "tags": [
          "BgpMonitoringAdminService"
        ],
        "summary": "SetMonitorStatus",
        "description": "Sets administrative status of BGP monitor with specific ID.",
        "operationId": "SetMonitorStatus",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the BGP monitor whose status is to be modified",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetMonitorStatusRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/bgp_monitoring/v202210/metrics": {
      "post": {
        "tags": [
          "BgpMonitoringDataService"
        ],
        "summary": "GetMetricsForTarget",
        "description": "Retrieve metric data for single BGP prefix and time interval.",
        "operationId": "GetMetricsForTarget",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetMetricsForTargetRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetMetricsForTargetResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/bgp_monitoring/v202210/routes": {
      "post": {
        "tags": [
          "BgpMonitoringDataService"
        ],
        "summary": "GetRoutesForTarget",
        "description": "Retrieve snapshot of route information for single BGP prefix at specific time.",
        "operationId": "GetRoutesForTarget",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetRoutesForTargetRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetRoutesForTargetResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/capacity_plan/v202212/capacity_plan": {
      "get": {
        "tags": [
          "CapacityPlanService"
        ],
        "summary": "ListCapacityPlans",
        "description": "Returns list of capacity plans.",
        "operationId": "ListCapacityPlans",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCapacityPlansResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/capacity_plan/v202212/capacity_plan/summary": {
      "get": {
        "tags": [
          "CapacityPlanService"
        ],
        "summary": "ListCapacitySummaries",
        "description": "Returns list of capacity summaries.",
        "operationId": "ListCapacitySummaries",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCapacitySummariesResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/capacity_plan/v202212/capacity_plan/{id}": {
      "get": {
        "tags": [
          "CapacityPlanService"
        ],
        "summary": "GetCapacityPlan",
        "description": "Returns capacity plan specified by ID.",
        "operationId": "GetCapacityPlan",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the requested capacity plan",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCapacityPlanResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/capacity_plan/v202212/capacity_plan/{id}/summary": {
      "get": {
        "tags": [
          "CapacityPlanService"
        ],
        "summary": "GetCapacitySummary",
        "description": "Returns capacity plan summary specified by ID.",
        "operationId": "GetCapacitySummary",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the requested capacity plan summary",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCapacitySummaryResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/cloud_export/v202210/exports": {
      "get": {
        "tags": [
          "CloudExportAdminService"
        ],
        "summary": "ListCloudExports",
        "description": "Returns a list of all cloud exports in the account.",
        "operationId": "ListCloudExports",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCloudExportsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "CloudExportAdminService"
        ],
        "summary": "CreateCloudExport",
        "description": "Create new cloud export based on configuration in the request.",
        "operationId": "CreateCloudExport",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCloudExportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCloudExportResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/cloud_export/v202210/exports/{export.id}": {
      "put": {
        "tags": [
          "CloudExportAdminService"
        ],
        "summary": "UpdateCloudExport",
        "description": "Replace complete configuration of a cloud export with data in the request.",
        "operationId": "UpdateCloudExport",
        "parameters": [
          {
            "name": "export.id",
            "in": "path",
            "description": "Unique identifier of the instance",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCloudExportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateCloudExportResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "get": {
        "tags": [
          "CloudExportAdminService"
        ],
        "summary": "GetCloudExport",
        "description": "Returns configuration and status of cloud export with specified ID.",
        "operationId": "GetCloudExport",
        "parameters": [
          {
            "name": "export.id",
            "in": "path",
            "description": "ID of the cloud export to be retrieved.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCloudExportResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "delete": {
        "tags": [
          "CloudExportAdminService"
        ],
        "summary": "DeleteCloudExport",
        "description": "Delete cloud export with specified ID.",
        "operationId": "DeleteCloudExport",
        "parameters": [
          {
            "name": "export.id",
            "in": "path",
            "description": "ID of the cloud export to be deleted.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/interface/v202108alpha1/interfaces": {
      "get": {
        "tags": [
          "InterfaceService"
        ],
        "summary": "ListInterface",
        "description": "Return list of interfaces matches search critera.",
        "operationId": "ListInterface",
        "parameters": [
          {
            "name": "filters.text",
            "in": "query",
            "description": "Search text match in interface description and alias.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters.deviceIds",
            "in": "query",
            "description": "Search by device ID.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "filters.connectivityTypes",
            "in": "query",
            "description": "Search by type of interface connectivity.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/v202108alpha1ConnectivityType"
              }
            }
          },
          {
            "name": "filters.networkBoundaries",
            "in": "query",
            "description": "Search by type of network boundary.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/v202108alpha1NetworkBoundary"
              }
            }
          },
          {
            "name": "filters.providers",
            "in": "query",
            "description": "Search by provider.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "filters.snmpSpeeds",
            "in": "query",
            "description": "SNMP speed in Mbps.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "filters.ipTypes",
            "in": "query",
            "description": "Search by ip address.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/v202108alpha1IpFilter"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202108alpha1ListInterfaceResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "InterfaceService"
        ],
        "summary": "InterfaceCreate",
        "description": "Create a interface from request. returns created.",
        "operationId": "InterfaceCreate",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/v202108alpha1CreateInterfaceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202108alpha1CreateInterfaceResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/interface/v202108alpha1/interfaces/{id}": {
      "get": {
        "tags": [
          "InterfaceService"
        ],
        "summary": "InterfaceGet",
        "description": "Returns information about a interface specified with ID.",
        "operationId": "InterfaceGet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of interface.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202108alpha1GetInterfaceResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "delete": {
        "tags": [
          "InterfaceService"
        ],
        "summary": "InterfaceDelete",
        "description": "Deletes the interface specified with id.",
        "operationId": "InterfaceDelete",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of interface.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "put": {
        "tags": [
          "InterfaceService"
        ],
        "summary": "InterfaceUpdate",
        "description": "Replaces the entire interface attributes specified with id.",
        "operationId": "InterfaceUpdate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of interface.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/v202108alpha1UpdateInterfaceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202108alpha1UpdateInterfaceResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/interface/v202108alpha1/manual_classify": {
      "post": {
        "tags": [
          "InterfaceService"
        ],
        "summary": "ManualClassify",
        "description": "Manually set interface(s) classification.",
        "operationId": "ManualClassify",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/v202108alpha1ManualClassifyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202108alpha1ManualClassifyResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/kmi/v202212/market/{marketId}/network/{asn}/{type}": {
      "post": {
        "tags": [
          "KmiService"
        ],
        "summary": "GetASNDetails",
        "description": "Returns metadata and list of customers, providers, and peers for an Autonomous System.",
        "operationId": "GetASNDetails",
        "parameters": [
          {
            "name": "marketId",
            "in": "path",
            "description": "Unique Geo Market identifier (as provided by the ListMarkets RPC)",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "asn",
            "in": "path",
            "description": "Autonomous System Number (ASN)",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "Type of the requested ASN ('all', 'customer', 'provider', 'peer'). Defaults to 'all'.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetASNDetailsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetASNDetailsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/kmi/v202212/market/{marketId}/rankings/{rankType}": {
      "post": {
        "tags": [
          "KmiService"
        ],
        "summary": "GetRankings",
        "description": "Returns list of KMI rankings.",
        "operationId": "GetRankings",
        "parameters": [
          {
            "name": "marketId",
            "in": "path",
            "description": "Unique Geo Market identifier (as provided by the ListMarkets RPC)",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rankType",
            "in": "path",
            "description": "Type of the requested ranking ('customer_base', 'customer_base_retail', 'customer_base_wholesome', 'customer_base_backbone', 'customer_growth', 'peering_base'). Defaults to 'customer_base'.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetRankingsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetRankingsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/kmi/v202212/markets": {
      "get": {
        "tags": [
          "KmiService"
        ],
        "summary": "ListMarkets",
        "description": "Returns list of geo markets for KMI.",
        "operationId": "ListMarkets",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListMarketsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/label/v202210/labels": {
      "get": {
        "tags": [
          "LabelService"
        ],
        "summary": "ListLabels",
        "description": "Returns list of all labels configured in the account.",
        "operationId": "ListLabels",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLabelsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "LabelService"
        ],
        "summary": "CreateLabel",
        "description": "Creates a new label based on data in the request.",
        "operationId": "CreateLabel",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLabelRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateLabelResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/label/v202210/labels/{id}": {
      "delete": {
        "tags": [
          "LabelService"
        ],
        "summary": "DeleteLabel",
        "description": "Deletes label with specified with id.",
        "operationId": "DeleteLabel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the label to be deleted",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "LabelService"
        ],
        "summary": "UpdateLabel",
        "description": "Updates configuration of a label.",
        "operationId": "UpdateLabel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique system assigned identifier of the label",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLabelRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateLabelResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/mkp/v202102alpha1/packages": {
      "get": {
        "tags": [
          "PackageService"
        ],
        "summary": "PackageList",
        "description": "Returns a list of MKP packages.",
        "operationId": "PackageList",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202102alpha1ListPackageResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "PackageService"
        ],
        "summary": "PackageCreate",
        "description": "Create package from request. returns created package.",
        "operationId": "PackageCreate",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/v202102alpha1CreatePackageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202102alpha1CreatePackageResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/mkp/v202102alpha1/packages/{id}": {
      "get": {
        "tags": [
          "PackageService"
        ],
        "summary": "PackageGet",
        "description": "Returns information about package specified with ID.",
        "operationId": "PackageGet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202102alpha1GetPackageResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "delete": {
        "tags": [
          "PackageService"
        ],
        "summary": "PackageDelete",
        "description": "Deletes the package specified with id.",
        "operationId": "PackageDelete",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "put": {
        "tags": [
          "PackageService"
        ],
        "summary": "PackageUpdate",
        "description": "Replaces the entire package attributes specified with id.",
        "operationId": "PackageUpdate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/v202102alpha1UpdatePackageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202102alpha1UpdatePackageResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "patch": {
        "tags": [
          "PackageService"
        ],
        "summary": "PackagePatch",
        "description": "Partially Updates the attributes of package specified with id and mask fields.",
        "operationId": "PackagePatch",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/v202102alpha1PatchPackageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202102alpha1PatchPackageResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/mkp/v202102alpha1/tenants": {
      "get": {
        "tags": [
          "TenantService"
        ],
        "summary": "TenantList",
        "description": "Returns a list of MKP tenants.",
        "operationId": "TenantList",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202102alpha1ListTenantResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "TenantService"
        ],
        "summary": "TenantCreate",
        "description": "Create tenant from request. returns created tenant.",
        "operationId": "TenantCreate",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/v202102alpha1CreateTenantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202102alpha1CreateTenantResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/mkp/v202102alpha1/tenants/{id}": {
      "get": {
        "tags": [
          "TenantService"
        ],
        "summary": "TenantGet",
        "description": "Returns information about package specified with ID.",
        "operationId": "TenantGet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202102alpha1GetTenantResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "delete": {
        "tags": [
          "TenantService"
        ],
        "summary": "TenantDelete",
        "description": "Deletes the tenant specified with id.",
        "operationId": "TenantDelete",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "put": {
        "tags": [
          "TenantService"
        ],
        "summary": "TenantUpdate",
        "description": "Replaces the entire tenant attributes specified with id.",
        "operationId": "TenantUpdate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/v202102alpha1UpdateTenantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202102alpha1UpdateTenantResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "patch": {
        "tags": [
          "TenantService"
        ],
        "summary": "TenantPatch",
        "description": "Partially Updates the attributes of tenant specified with id and mask fields.",
        "operationId": "TenantPatch",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/v202102alpha1PatchTenantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202102alpha1PatchTenantResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/network_class/v202109alpha1/network_class": {
      "get": {
        "tags": [
          "NetworkClassService"
        ],
        "summary": "NetworkClassGet",
        "description": "Returns information about a network classification for the company.",
        "operationId": "NetworkClassGet",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202109alpha1GetNetworkClassResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "NetworkClassService"
        ],
        "summary": "NetworkClassUpdate",
        "description": "Replaces the entire network classification attributes for the company.",
        "operationId": "NetworkClassUpdate",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/v202109alpha1UpdateNetworkClassRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v202109alpha1UpdateNetworkClassResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/notification_channel/v202210/notification_channels": {
      "get": {
        "tags": [
          "NotificationChannelService"
        ],
        "summary": "ListNotificationChannels",
        "description": "Returns list of all configured notification channels.",
        "operationId": "ListNotificationChannels",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListNotificationChannelsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/notification_channel/v202210/notification_channels/search": {
      "post": {
        "tags": [
          "NotificationChannelService"
        ],
        "summary": "SearchNotificationChannels",
        "description": "Returns list of all notification channels matching request criteria. Match criteria are treated as a logical AND, i.e. all provided criteria must match in order for an entry to be included in the response.",
        "operationId": "SearchNotificationChannels",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchNotificationChannelsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchNotificationChannelsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/notification_channel/v202210/notification_channels/{id}": {
      "get": {
        "tags": [
          "NotificationChannelService"
        ],
        "summary": "GetNotificationChannel",
        "description": "Returns information about a notification channel with specific ID.",
        "operationId": "GetNotificationChannel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Request channel ID.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetNotificationChannelResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/site/v202211/site_markets": {
      "get": {
        "tags": [
          "SiteService"
        ],
        "summary": "ListSiteMarkets",
        "description": "Returns list of configured site markets.",
        "operationId": "ListSiteMarkets",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSiteMarketsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "SiteService"
        ],
        "summary": "CreateSiteMarket",
        "description": "Create configuration for a new site market. Returns the newly created configuration.",
        "operationId": "CreateSiteMarket",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSiteMarketRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSiteMarketResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/site/v202211/site_markets/{id}": {
      "get": {
        "tags": [
          "SiteService"
        ],
        "summary": "GetSiteMarket",
        "description": "Returns configuration of a site market specified by ID.",
        "operationId": "GetSiteMarket",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the requested site market",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSiteMarketResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "delete": {
        "tags": [
          "SiteService"
        ],
        "summary": "DeleteSiteMarket",
        "description": "Deletes configuration of a site market with specific ID.",
        "operationId": "DeleteSiteMarket",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the site market to be deleted",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "put": {
        "tags": [
          "SiteService"
        ],
        "summary": "UpdateSiteMarket",
        "description": "Replaces configuration of a site market with attributes in the request. Returns the updated configuration.",
        "operationId": "UpdateSiteMarket",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "System generated unique identifier",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSiteMarketRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateSiteMarketResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/site/v202211/sites": {
      "get": {
        "tags": [
          "SiteService"
        ],
        "summary": "ListSites",
        "description": "Returns list of configured sites.",
        "operationId": "ListSites",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSitesResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "SiteService"
        ],
        "summary": "CreateSite",
        "description": "Create configuration for a new site. Returns the newly created configuration.",
        "operationId": "CreateSite",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSiteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSiteResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/site/v202211/sites/{id}": {
      "get": {
        "tags": [
          "SiteService"
        ],
        "summary": "GetSite",
        "description": "Returns configuration of a site specified by ID.",
        "operationId": "GetSite",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the requested site",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSiteResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "delete": {
        "tags": [
          "SiteService"
        ],
        "summary": "DeleteSite",
        "description": "Deletes configuration of a site with specific ID.",
        "operationId": "DeleteSite",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the site to be deleted",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "put": {
        "tags": [
          "SiteService"
        ],
        "summary": "UpdateSite",
        "description": "Replaces configuration of a site with attributes in the request. Returns the updated configuration.",
        "operationId": "UpdateSite",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "System generated unique identifier",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSiteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateSiteResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/synthetics/v202202/results": {
      "post": {
        "tags": [
          "SyntheticsDataService"
        ],
        "summary": "GetResultsForTests",
        "description": "Returns probe results for a set of tests for specified period of time.",
        "operationId": "GetResultsForTests",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetResultsForTestsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetResultsForTestsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/synthetics/v202202/trace": {
      "post": {
        "tags": [
          "SyntheticsDataService"
        ],
        "summary": "GetTraceForTest",
        "description": "Get network trace data for a specific synthetic test. The test must have traceroute task configured.",
        "operationId": "GetTraceForTest",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetTraceForTestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetTraceForTestResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/synthetics/v202202/agents": {
      "get": {
        "tags": [
          "SyntheticsAdminService"
        ],
        "summary": "ListAgents",
        "description": "Returns list of all synthetic agents available in the account.",
        "operationId": "ListAgents",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListAgentsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/synthetics/v202202/agents/{agent.id}": {
      "put": {
        "tags": [
          "SyntheticsAdminService"
        ],
        "summary": "UpdateAgent",
        "description": "Update configuration of a synthetic agent.",
        "operationId": "UpdateAgent",
        "parameters": [
          {
            "name": "agent.id",
            "in": "path",
            "description": "Unique identifier of the agent",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAgentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateAgentResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "get": {
        "tags": [
          "SyntheticsAdminService"
        ],
        "summary": "GetAgent",
        "description": "Returns information about the requested synthetic agent.",
        "operationId": "GetAgent",
        "parameters": [
          {
            "name": "agent.id",
            "in": "path",
            "description": "ID of the requested agent",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAgentResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "delete": {
        "tags": [
          "SyntheticsAdminService"
        ],
        "summary": "DeleteAgent",
        "description": "Deletes the requested agent. The deleted agent is removed from configuration of all tests.",
        "operationId": "DeleteAgent",
        "parameters": [
          {
            "name": "agent.id",
            "in": "path",
            "description": "ID of the agent to be deleted",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/synthetics/v202202/tests": {
      "get": {
        "tags": [
          "SyntheticsAdminService"
        ],
        "summary": "ListTests",
        "description": "Returns a list of all configured active and paused synthetic tests.",
        "operationId": "ListTests",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTestsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "SyntheticsAdminService"
        ],
        "summary": "CreateTest",
        "description": "Create synthetic test based on configuration provided in the request.",
        "operationId": "CreateTest",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateTestResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/synthetics/v202202/tests/{id}": {
      "get": {
        "tags": [
          "SyntheticsAdminService"
        ],
        "summary": "GetTest",
        "description": "Returns configuration and status for the requested synthetic test.",
        "operationId": "GetTest",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of requested test",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetTestResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "delete": {
        "tags": [
          "SyntheticsAdminService"
        ],
        "summary": "DeleteTest",
        "description": "Deletes the synthetics test. All accumulated results for the test cease to be accessible.",
        "operationId": "DeleteTest",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the test to be deleted",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "put": {
        "tags": [
          "SyntheticsAdminService"
        ],
        "summary": "UpdateTest",
        "description": "Updates configuration of a synthetic test.",
        "operationId": "UpdateTest",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique ID of the test",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateTestResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/synthetics/v202202/tests/{id}/status": {
      "put": {
        "tags": [
          "SyntheticsAdminService"
        ],
        "summary": "SetTestStatus",
        "description": "Update status of a synthetic test",
        "operationId": "SetTestStatus",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the test which status is to be modified",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetTestStatusRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/user/v202211/users": {
      "get": {
        "tags": [
          "UserService"
        ],
        "summary": "ListUsers",
        "description": "Returns a list of all user accounts in the company.",
        "operationId": "ListUsers",
        "parameters": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListUsersResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "UserService"
        ],
        "summary": "CreateUser",
        "description": "Creates new user account based on attributes in the request. Returns attributes of the newly created account.",
        "operationId": "CreateUser",
        "parameters": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateUserResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/user/v202211/users/{id}": {
      "get": {
        "tags": [
          "UserService"
        ],
        "summary": "GetUser",
        "description": "Returns attributes of a user account specified by ID.",
        "operationId": "GetUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the requested user",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetUserResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "delete": {
        "tags": [
          "UserService"
        ],
        "summary": "DeleteUser",
        "description": "Deletes user account specified by ID.",
        "operationId": "DeleteUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the the user account to be deleted",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "put": {
        "tags": [
          "UserService"
        ],
        "summary": "UpdateUser",
        "description": "Replaces all attributes of a user account specified by ID with attributes in the request. Returns updated attributes.",
        "operationId": "UpdateUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "System generated unique identifier",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateUserResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/user/v202211/users/{id}/reset_active_sessions": {
      "put": {
        "tags": [
          "UserService"
        ],
        "summary": "ResetActiveSessions",
        "description": "Resets active sessions for a user specified by ID.",
        "operationId": "ResetActiveSessions",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the the user whose sessions should be reset",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/user/v202211/users/{id}/reset_api_token": {
      "put": {
        "tags": [
          "UserService"
        ],
        "summary": "ResetApiToken",
        "description": "Resets API token for a user specified by ID.",
        "operationId": "ResetApiToken",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the the user whose API token should be reset",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpcStatus"
                }
              }
            }
          }
        },
        "deprecated": false
      }
    }
  },
  "components": {
    "schemas": {
      "protobufAny": {
        "title": "protobufAny",
        "type": "object",
        "properties": {
          "typeUrl": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "rpcStatus": {
        "title": "rpcStatus",
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/protobufAny"
            },
            "description": ""
          }
        }
      },
      "ASGroupConcise": {
        "title": "ASGroupConcise",
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "System generated unique identifier",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "User selected unique name"
          },
          "asn": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of ASNs"
          },
          "createdDate": {
            "type": "string",
            "description": "Creation timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          },
          "updatedDate": {
            "type": "string",
            "description": "Last modification timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          }
        }
      },
      "ASGroupDetailed": {
        "title": "ASGroupDetailed",
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "System generated unique identifier",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "User selected unique name"
          },
          "asn": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutonomousSystem"
            },
            "description": "List of ASNs"
          },
          "createdDate": {
            "type": "string",
            "description": "Creation timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          },
          "updatedDate": {
            "type": "string",
            "description": "Last modification timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          }
        }
      },
      "AutonomousSystem": {
        "title": "AutonomousSystem",
        "type": "object",
        "properties": {
          "asn": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "CreateASGroupRequest": {
        "title": "CreateASGroupRequest",
        "required": [
          "asGroup"
        ],
        "type": "object",
        "properties": {
          "asGroup": {
            "$ref": "#/components/schemas/ASGroupConcise"
          }
        }
      },
      "CreateASGroupResponse": {
        "title": "CreateASGroupResponse",
        "type": "object",
        "properties": {
          "asGroup": {
            "$ref": "#/components/schemas/ASGroupDetailed"
          }
        }
      },
      "GetASGroupResponse": {
        "title": "GetASGroupResponse",
        "type": "object",
        "properties": {
          "asGroup": {
            "$ref": "#/components/schemas/ASGroupDetailed"
          }
        }
      },
      "ListASGroupsResponse": {
        "title": "ListASGroupsResponse",
        "type": "object",
        "properties": {
          "asGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ASGroupDetailed"
            },
            "description": "List of configurations of requested AS groups"
          },
          "invalidCount": {
            "type": "integer",
            "description": "Number of invalid entries encountered while collecting data",
            "format": "int64"
          }
        }
      },
      "UpdateASGroupRequest": {
        "title": "UpdateASGroupRequest",
        "required": [
          "asGroup"
        ],
        "type": "object",
        "properties": {
          "asGroup": {
            "$ref": "#/components/schemas/ASGroupConcise"
          }
        }
      },
      "UpdateASGroupResponse": {
        "title": "UpdateASGroupResponse",
        "type": "object",
        "properties": {
          "asGroup": {
            "$ref": "#/components/schemas/ASGroupDetailed"
          }
        }
      },
      "BgpHealthSettings": {
        "title": "BgpHealthSettings",
        "type": "object",
        "properties": {
          "reachabilityWarning": {
            "type": "number",
            "description": "Threshold (in percents) for triggering warning level alert"
          },
          "reachabilityCritical": {
            "type": "number",
            "description": "Threshold (in percents) for triggering critical level alert"
          }
        }
      },
      "BgpMetric": {
        "title": "BgpMetric",
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "string",
            "description": "UTC time of the observation",
            "format": "date-time",
            "readOnly": true
          },
          "nlri": {
            "$ref": "#/components/schemas/Nlri"
          },
          "reachability": {
            "type": "number",
            "description": "Percentage of vantage points reporting the prefix reachable",
            "readOnly": true
          },
          "pathChanges": {
            "type": "integer",
            "description": "Number of AS path changes for the prefix across all vantage points in the queried time interval",
            "format": "int64",
            "readOnly": true
          }
        }
      },
      "BgpMetricType": {
        "title": "BgpMetricType",
        "enum": [
          "BGP_METRIC_TYPE_UNSPECIFIED",
          "BGP_METRIC_TYPE_REACHABILITY",
          "BGP_METRIC_TYPE_PATH_CHANGES"
        ],
        "type": "string",
        "description": "- BGP_METRIC_TYPE_UNSPECIFIED: Invalid value.\n - BGP_METRIC_TYPE_REACHABILITY: Reachability metric in percents\n - BGP_METRIC_TYPE_PATH_CHANGES: Number of path changes over time interval"
      },
      "BgpMonitor": {
        "title": "BgpMonitor",
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "System generated unique identifier",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "User selected name of the monitor"
          },
          "status": {
            "$ref": "#/components/schemas/BgpMonitorStatus"
          },
          "settings": {
            "$ref": "#/components/schemas/BgpMonitorSettings"
          },
          "cdate": {
            "type": "string",
            "description": "Creation timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          },
          "edate": {
            "type": "string",
            "description": "Last modification timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserInfo"
          },
          "lastUpdatedBy": {
            "$ref": "#/components/schemas/UserInfo"
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": ""
          }
        }
      },
      "BgpMonitorSettings": {
        "title": "BgpMonitorSettings",
        "required": [
          "targets"
        ],
        "type": "object",
        "properties": {
          "allowedAsns": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "List of ASNs that are valid originators of monitored prefixes"
          },
          "targets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Nlri"
            },
            "description": "List of prefixes to monitor"
          },
          "checkRpki": {
            "type": "boolean",
            "description": "Enable verification of validity of advertisements of monitored prefixes with respect to RPKI"
          },
          "includeCoveredPrefixes": {
            "type": "boolean",
            "description": "Include advertised subnets (sub-prefixes) of monitored prefixes"
          },
          "healthSettings": {
            "$ref": "#/components/schemas/BgpHealthSettings"
          },
          "notificationChannels": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of IDs of notification channels for delivery of alerts"
          },
          "notes": {
            "type": "string",
            "description": "Free form notes documenting the monitor"
          },
          "allowedUpstreams": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "List of ASNs that are expected to propagate monitored prefixes"
          }
        }
      },
      "BgpMonitorStatus": {
        "title": "BgpMonitorStatus",
        "enum": [
          "BGP_MONITOR_STATUS_UNSPECIFIED",
          "BGP_MONITOR_STATUS_ACTIVE",
          "BGP_MONITOR_STATUS_PAUSED",
          "BGP_MONITOR_STATUS_DELETED"
        ],
        "type": "string",
        "description": "- BGP_MONITOR_STATUS_UNSPECIFIED: Invalid value.\n - BGP_MONITOR_STATUS_ACTIVE: Monitor is active.\n - BGP_MONITOR_STATUS_PAUSED: Monitor is paused.\n - BGP_MONITOR_STATUS_DELETED: Monitor is deleted. Not user settable"
      },
      "CreateMonitorRequest": {
        "title": "CreateMonitorRequest",
        "required": [
          "monitor"
        ],
        "type": "object",
        "properties": {
          "monitor": {
            "$ref": "#/components/schemas/BgpMonitor"
          }
        }
      },
      "CreateMonitorResponse": {
        "title": "CreateMonitorResponse",
        "type": "object",
        "properties": {
          "monitor": {
            "$ref": "#/components/schemas/BgpMonitor"
          }
        }
      },
      "GetMetricsForTargetRequest": {
        "title": "GetMetricsForTargetRequest",
        "required": [
          "startTime",
          "endTime",
          "target",
          "metrics"
        ],
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "description": "UTC timestamp of the beginning of queried interval",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "UTC timestamp of the end of queried interval",
            "format": "date-time"
          },
          "target": {
            "$ref": "#/components/schemas/Nlri"
          },
          "includeCovered": {
            "type": "boolean",
            "description": "Return metrics for subnets (sub-prefixes) of the target prefix (default: false)"
          },
          "metrics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BgpMetricType"
            },
            "description": "List of one or more BGP metric types to return"
          }
        }
      },
      "GetMetricsForTargetResponse": {
        "title": "GetMetricsForTargetResponse",
        "type": "object",
        "properties": {
          "metrics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BgpMetric"
            },
            "description": "List of observations (metric values)",
            "readOnly": true
          }
        }
      },
      "GetMonitorResponse": {
        "title": "GetMonitorResponse",
        "type": "object",
        "properties": {
          "monitor": {
            "$ref": "#/components/schemas/BgpMonitor"
          }
        }
      },
      "GetRoutesForTargetRequest": {
        "title": "GetRoutesForTargetRequest",
        "required": [
          "time",
          "target"
        ],
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "description": "Reference UTC time for the route information snapshot",
            "format": "date-time"
          },
          "target": {
            "$ref": "#/components/schemas/Nlri"
          },
          "includeCovered": {
            "type": "boolean",
            "description": "Return routes for subnets (sub-prefixes) of the target prefix (default: false)"
          },
          "checkRpki": {
            "type": "boolean",
            "description": "Return information about validity of prefix advertisements with respect to RPKI (default: false)"
          }
        }
      },
      "GetRoutesForTargetResponse": {
        "title": "GetRoutesForTargetResponse",
        "type": "object",
        "properties": {
          "routes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteInfo"
            },
            "description": "List of routes",
            "readOnly": true
          },
          "asNames": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "look-aside map AS names keyed by ASNs",
            "readOnly": true
          }
        }
      },
      "ListMonitorsResponse": {
        "title": "ListMonitorsResponse",
        "type": "object",
        "properties": {
          "monitors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BgpMonitor"
            },
            "description": "List of BGP monitors configured in the account",
            "readOnly": true
          },
          "invalidCount": {
            "type": "integer",
            "description": "Number of invalid objects (should be always zero)",
            "format": "int64",
            "readOnly": true
          }
        }
      },
      "Nlri": {
        "title": "Nlri",
        "required": [
          "afi",
          "safi",
          "prefix"
        ],
        "type": "object",
        "properties": {
          "afi": {
            "$ref": "#/components/schemas/Afi"
          },
          "safi": {
            "$ref": "#/components/schemas/Safi"
          },
          "prefix": {
            "type": "string",
            "description": "Actual prefix data (format depends on AFI)"
          }
        }
      },
      "RouteInfo": {
        "title": "RouteInfo",
        "type": "object",
        "properties": {
          "nlri": {
            "$ref": "#/components/schemas/Nlri"
          },
          "originAsn": {
            "type": "integer",
            "description": "The autonomous system number originating the NLRI",
            "format": "int64",
            "readOnly": true
          },
          "asPath": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "AS path observed at the vantage point for the NLRI"
          },
          "vantagePoint": {
            "$ref": "#/components/schemas/VantagePoint"
          },
          "rpkiStatus": {
            "$ref": "#/components/schemas/RpkiStatus"
          },
          "nexthop": {
            "type": "string",
            "description": "IP address of the first route hop from the vantage point toward the target",
            "readOnly": true
          }
        }
      },
      "SetMonitorStatusRequest": {
        "title": "SetMonitorStatusRequest",
        "required": [
          "id",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of the BGP monitor whose status is to be modified"
          },
          "status": {
            "$ref": "#/components/schemas/BgpMonitorStatus"
          }
        }
      },
      "UpdateMonitorRequest": {
        "title": "UpdateMonitorRequest",
        "required": [
          "monitor"
        ],
        "type": "object",
        "properties": {
          "monitor": {
            "$ref": "#/components/schemas/BgpMonitor"
          }
        }
      },
      "UpdateMonitorResponse": {
        "title": "UpdateMonitorResponse",
        "type": "object",
        "properties": {
          "monitor": {
            "$ref": "#/components/schemas/BgpMonitor"
          }
        }
      },
      "Afi": {
        "title": "Afi",
        "enum": [
          "AFI_UNSPECIFIED",
          "AFI_IP4",
          "AFI_IP6"
        ],
        "type": "string"
      },
      "RpkiStatus": {
        "title": "RpkiStatus",
        "enum": [
          "RPKI_STATUS_UNSPECIFIED",
          "RPKI_STATUS_NOT_FOUND",
          "RPKI_STATUS_EXPLICIT_INVALID",
          "RPKI_STATUS_INVALID_PREFIX",
          "RPKI_STATUS_INVALID",
          "RPKI_STATUS_VALID",
          "RPKI_STATUS_ERROR"
        ],
        "type": "string",
        "description": "- RPKI_STATUS_UNSPECIFIED: Invalid value.\n - RPKI_STATUS_NOT_FOUND: No matching ROAs found for the prefix.\n - RPKI_STATUS_EXPLICIT_INVALID: Explicitly invalid prefix matching ROA\n - RPKI_STATUS_INVALID_PREFIX: Prefix format not suitable for validation\n - RPKI_STATUS_INVALID: Prefix origin does not match any matching ROA\n - RPKI_STATUS_VALID: Prefix origin matches an ROA\n - RPKI_STATUS_ERROR: Error during validation"
      },
      "Safi": {
        "title": "Safi",
        "enum": [
          "SAFI_UNSPECIFIED",
          "SAFI_UNICAST",
          "SAFI_MPLS",
          "SAFI_L3VPN"
        ],
        "type": "string"
      },
      "UserInfo": {
        "title": "UserInfo",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique system generated ID",
            "readOnly": true
          },
          "email": {
            "type": "string",
            "description": "E-mail address of the user",
            "readOnly": true
          },
          "fullName": {
            "type": "string",
            "description": "Full name of the user",
            "readOnly": true
          }
        }
      },
      "VantagePoint": {
        "title": "VantagePoint",
        "type": "object",
        "properties": {
          "dataset": {
            "type": "string",
            "description": "Name of the collector data set",
            "readOnly": true
          },
          "collector": {
            "type": "string",
            "description": "Name of the collector",
            "readOnly": true
          },
          "peerAsn": {
            "type": "integer",
            "description": "ASN of the peer from which the collector receives BGP data",
            "format": "int64",
            "readOnly": true
          },
          "peerIp": {
            "type": "string",
            "description": "IP address of the peer from which the collector receives BGP data",
            "readOnly": true
          }
        }
      },
      "InterfaceDetail": {
        "title": "InterfaceDetail",
        "type": "object",
        "properties": {
          "deviceName": {
            "type": "string",
            "description": "Device name",
            "readOnly": true
          },
          "intfName": {
            "type": "string",
            "description": "Interface name",
            "readOnly": true
          },
          "intfDescription": {
            "type": "string",
            "description": "Interface description",
            "readOnly": true
          },
          "intfCapacity": {
            "type": "string",
            "description": "Interface capacity",
            "readOnly": true
          },
          "networkBoundary": {
            "type": "string",
            "description": "Network boundary",
            "readOnly": true
          },
          "connType": {
            "type": "string",
            "description": "Connectivity type",
            "readOnly": true
          },
          "provider": {
            "type": "string",
            "description": "Provider",
            "readOnly": true
          },
          "utilStatus": {
            "type": "string",
            "description": "Utilization status",
            "readOnly": true
          },
          "utilOutMbps": {
            "type": "string",
            "description": "Utilization out mbps",
            "readOnly": true
          },
          "utilOutPct": {
            "type": "string",
            "description": "Utilization out percentage",
            "readOnly": true
          },
          "utilInMbps": {
            "type": "string",
            "description": "Utilization in mbps",
            "readOnly": true
          },
          "utilInPct": {
            "type": "string",
            "description": "Utilization in percentage",
            "readOnly": true
          },
          "runoutStatus": {
            "type": "string",
            "description": "Runout status",
            "readOnly": true
          },
          "runoutInDate": {
            "type": "string",
            "description": "Runout in date",
            "readOnly": true
          },
          "runoutInVariation": {
            "type": "string",
            "description": "Runout in variation",
            "readOnly": true
          },
          "runoutOutDate": {
            "type": "string",
            "description": "Runout out date",
            "readOnly": true
          },
          "runoutOutVariation": {
            "type": "string",
            "description": "Runout out variation",
            "readOnly": true
          }
        }
      },
      "InterfacesDetail": {
        "title": "InterfacesDetail",
        "type": "object",
        "properties": {
          "totalCount": {
            "type": "integer",
            "description": "Total number of interfaces",
            "format": "int64",
            "readOnly": true
          },
          "totalCapacityBps": {
            "type": "string",
            "description": "Total capacity in bps",
            "readOnly": true
          },
          "healthy": {
            "$ref": "#/components/schemas/StatusDetail"
          },
          "warning": {
            "$ref": "#/components/schemas/StatusDetail"
          },
          "critical": {
            "$ref": "#/components/schemas/StatusDetail"
          }
        }
      },
      "RunoutConfig": {
        "title": "RunoutConfig",
        "type": "object",
        "properties": {
          "strategy": {
            "type": "string",
            "description": "Strategy for runout",
            "readOnly": true
          },
          "warnQty": {
            "type": "integer",
            "description": "Warning quantity for runout",
            "format": "int64",
            "readOnly": true
          },
          "critQty": {
            "type": "integer",
            "description": "Critical quantity for runout",
            "format": "int64",
            "readOnly": true
          }
        }
      },
      "UtilConfig": {
        "title": "UtilConfig",
        "type": "object",
        "properties": {
          "aggregate": {
            "type": "string",
            "description": "Aggregate for utilization",
            "readOnly": true
          },
          "warnPct": {
            "type": "integer",
            "description": "Warning percentage for utilization",
            "format": "int64",
            "readOnly": true
          },
          "critPct": {
            "type": "integer",
            "description": "Critical percentage for utilization",
            "format": "int64",
            "readOnly": true
          }
        }
      },
      "StatusDetail": {
        "title": "StatusDetail",
        "type": "object",
        "properties": {
          "bps": {
            "type": "string",
            "description": "Bandwidth in bps",
            "readOnly": true
          },
          "count": {
            "type": "integer",
            "description": "Number of interfaces",
            "format": "int64",
            "readOnly": true
          }
        }
      },
      "RunoutStatus": {
        "title": "RunoutStatus",
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "Status of runout",
            "readOnly": true
          },
          "earliestDate": {
            "type": "string",
            "description": "Earliest runout date",
            "readOnly": true
          }
        }
      },
      "UtilStatus": {
        "title": "UtilStatus",
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "Status of utilization",
            "readOnly": true
          },
          "highestPct": {
            "type": "integer",
            "description": "Highest utilization percentage",
            "format": "int64",
            "readOnly": true
          }
        }
      },
      "CapacityPlan": {
        "title": "CapacityPlan",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of capacity plan",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Name of capacity plan",
            "readOnly": true
          },
          "description": {
            "type": "string",
            "description": "Description of capacity plan",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of capacity plan",
            "readOnly": true
          },
          "interfaces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InterfaceDetail"
            },
            "description": "List of interfaces",
            "readOnly": true
          },
          "config": {
            "$ref": "#/components/schemas/Config"
          },
          "summaryStatus": {
            "$ref": "#/components/schemas/SummaryStatus"
          }
        }
      },
      "CapacitySummary": {
        "title": "CapacitySummary",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of capacity plan",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Name of capacity plan",
            "readOnly": true
          },
          "description": {
            "type": "string",
            "description": "Description of capacity plan",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of capacity plan",
            "readOnly": true
          },
          "interfaces": {
            "$ref": "#/components/schemas/InterfacesDetail"
          },
          "config": {
            "$ref": "#/components/schemas/Config"
          },
          "summaryStatus": {
            "$ref": "#/components/schemas/SummaryStatus"
          }
        }
      },
      "Config": {
        "title": "Config",
        "type": "object",
        "properties": {
          "runout": {
            "$ref": "#/components/schemas/RunoutConfig"
          },
          "utilization": {
            "$ref": "#/components/schemas/UtilConfig"
          }
        }
      },
      "GetCapacityPlanResponse": {
        "title": "GetCapacityPlanResponse",
        "type": "object",
        "properties": {
          "capacity": {
            "$ref": "#/components/schemas/CapacityPlan"
          }
        }
      },
      "GetCapacitySummaryResponse": {
        "title": "GetCapacitySummaryResponse",
        "type": "object",
        "properties": {
          "capacity": {
            "$ref": "#/components/schemas/CapacitySummary"
          }
        }
      },
      "ListCapacityPlansResponse": {
        "title": "ListCapacityPlansResponse",
        "type": "object",
        "properties": {
          "capacity": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CapacityPlan"
            },
            "description": "List of capacity plans"
          },
          "invalidCount": {
            "type": "integer",
            "description": "Number of invalid entries encountered while collecting data",
            "format": "int64"
          }
        }
      },
      "ListCapacitySummariesResponse": {
        "title": "ListCapacitySummariesResponse",
        "type": "object",
        "properties": {
          "capacity": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CapacitySummary"
            },
            "description": "List of capacity plan summaries"
          },
          "invalidCount": {
            "type": "integer",
            "description": "Number of invalid entries encountered while collecting data",
            "format": "int64"
          }
        }
      },
      "SummaryStatus": {
        "title": "SummaryStatus",
        "type": "object",
        "properties": {
          "runout": {
            "$ref": "#/components/schemas/RunoutStatus"
          },
          "utilization": {
            "$ref": "#/components/schemas/UtilStatus"
          }
        }
      },
      "AwsProperties": {
        "title": "AwsProperties",
        "required": [
          "iamRoleArn",
          "region"
        ],
        "type": "object",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "Name of S3 bucket from which flow logs are to be exported."
          },
          "iamRoleArn": {
            "type": "string",
            "description": "ARN of the IAM role granted access to the S3 bucket and describe API end-points."
          },
          "region": {
            "type": "string",
            "description": "Name of AWS region from which to export flow logs."
          },
          "deleteAfterRead": {
            "type": "boolean",
            "description": "Delete from logs from the S3 bucket after export (default false)."
          },
          "metadataOnly": {
            "type": "boolean",
            "description": "Import only metadata without any flows (default false)."
          }
        }
      },
      "AzureProperties": {
        "title": "AzureProperties",
        "required": [
          "location",
          "resourceGroup",
          "storageAccount",
          "subscriptionId"
        ],
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "Azure region/location from which to export flow logs."
          },
          "resourceGroup": {
            "type": "string",
            "description": "Resource group containing the NSG generating flow logs."
          },
          "storageAccount": {
            "type": "string",
            "description": "Storage account from which flow logs are to be extracted."
          },
          "subscriptionId": {
            "type": "string",
            "description": "ID of Azure account from which flows logs are to be exported."
          },
          "securityPrincipalEnabled": {
            "type": "boolean",
            "description": "Indication whether security principal for the Kentik flow export application has been authorized."
          }
        }
      },
      "CloudExport": {
        "title": "CloudExport",
        "required": [
          "enabled",
          "name",
          "planId",
          "cloudProvider"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the instance",
            "readOnly": true
          },
          "type": {
            "$ref": "#/components/schemas/CloudExportType"
          },
          "enabled": {
            "type": "boolean",
            "description": "Attribute controlling whether the instance is active"
          },
          "name": {
            "type": "string",
            "description": "User selected name of the instance"
          },
          "description": {
            "type": "string",
            "description": "Description of the instance"
          },
          "planId": {
            "type": "string",
            "description": "Identifier of the billing plan for the instance"
          },
          "cloudProvider": {
            "$ref": "#/components/schemas/CloudProvider"
          },
          "aws": {
            "$ref": "#/components/schemas/AwsProperties"
          },
          "azure": {
            "$ref": "#/components/schemas/AzureProperties"
          },
          "gce": {
            "$ref": "#/components/schemas/GceProperties"
          },
          "ibm": {
            "$ref": "#/components/schemas/IbmProperties"
          },
          "currentStatus": {
            "$ref": "#/components/schemas/CloudExportStatus"
          },
          "cdate": {
            "type": "string",
            "description": "Creation timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          },
          "edate": {
            "type": "string",
            "description": "Last modification timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          }
        }
      },
      "CloudExportStatus": {
        "title": "CloudExportStatus",
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "Status of the export task.",
            "readOnly": true
          },
          "errorMessage": {
            "type": "string",
            "description": "Text of the last error message (empty if status is OK).",
            "readOnly": true
          },
          "flowFound": {
            "type": "boolean",
            "description": "Indication whether any flow data were exported.",
            "readOnly": true
          },
          "apiAccess": {
            "type": "boolean",
            "description": "Indication whether the export process is able to access cloud API.",
            "readOnly": true
          },
          "storageAccountAccess": {
            "type": "boolean",
            "description": "Indication whether the export process is able to access storage account containing flow logs.",
            "readOnly": true
          }
        }
      },
      "CloudExportType": {
        "title": "CloudExportType",
        "enum": [
          "CLOUD_EXPORT_TYPE_UNSPECIFIED",
          "CLOUD_EXPORT_TYPE_KENTIK_MANAGED",
          "CLOUD_EXPORT_TYPE_CUSTOMER_MANAGED"
        ],
        "type": "string",
        "description": "- CLOUD_EXPORT_TYPE_UNSPECIFIED: Invalid value.\n - CLOUD_EXPORT_TYPE_KENTIK_MANAGED: Cloud export process is managed by Kentik\n - CLOUD_EXPORT_TYPE_CUSTOMER_MANAGED: Cloud export process is managed by customer"
      },
      "CloudProvider": {
        "title": "CloudProvider",
        "enum": [
          "CLOUD_PROVIDER_UNSPECIFIED",
          "CLOUD_PROVIDER_AWS",
          "CLOUD_PROVIDER_AZURE",
          "CLOUD_PROVIDER_GCE",
          "CLOUD_PROVIDER_IBM"
        ],
        "type": "string",
        "description": "- CLOUD_PROVIDER_UNSPECIFIED: Invalid value.\n - CLOUD_PROVIDER_AWS: Amazon Web Services\n - CLOUD_PROVIDER_AZURE: Microsoft Azure\n - CLOUD_PROVIDER_GCE: Google Cloud\n - CLOUD_PROVIDER_IBM: IBM Cloud"
      },
      "CreateCloudExportRequest": {
        "title": "CreateCloudExportRequest",
        "type": "object",
        "properties": {
          "export": {
            "$ref": "#/components/schemas/CloudExport"
          }
        }
      },
      "CreateCloudExportResponse": {
        "title": "CreateCloudExportResponse",
        "type": "object",
        "properties": {
          "export": {
            "$ref": "#/components/schemas/CloudExport"
          }
        }
      },
      "GceProperties": {
        "title": "GceProperties",
        "required": [
          "project",
          "subscription"
        ],
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "description": "Name of the project from which to export flow logs."
          },
          "subscription": {
            "type": "string",
            "description": "GCP Pub/Sub subscription providing flow logs."
          }
        }
      },
      "GetCloudExportResponse": {
        "title": "GetCloudExportResponse",
        "type": "object",
        "properties": {
          "export": {
            "$ref": "#/components/schemas/CloudExport"
          }
        }
      },
      "IbmProperties": {
        "title": "IbmProperties",
        "type": "object",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "Storage bucket from which flow logs are to be extracted."
          }
        }
      },
      "ListCloudExportsResponse": {
        "title": "ListCloudExportsResponse",
        "type": "object",
        "properties": {
          "exports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CloudExport"
            },
            "description": "List of cloud export objects."
          },
          "invalidExportsCount": {
            "type": "integer",
            "description": "Number of objects with invalid data (which are not returned in the response).",
            "format": "int64"
          }
        }
      },
      "UpdateCloudExportRequest": {
        "title": "UpdateCloudExportRequest",
        "type": "object",
        "properties": {
          "export": {
            "$ref": "#/components/schemas/CloudExport"
          }
        }
      },
      "UpdateCloudExportResponse": {
        "title": "UpdateCloudExportResponse",
        "type": "object",
        "properties": {
          "export": {
            "$ref": "#/components/schemas/CloudExport"
          }
        }
      },
      "v202108alpha1ConnectivityType": {
        "title": "v202108alpha1ConnectivityType",
        "enum": [
          "CONNECTIVITY_TYPE_UNSPECIFIED",
          "CONNECTIVITY_TYPE_AGGREGATION_INTERCONNECT",
          "CONNECTIVITY_TYPE_AVAILABLE",
          "CONNECTIVITY_TYPE_BACKBONE",
          "CONNECTIVITY_TYPE_CLOUD_INTERCONNECT",
          "CONNECTIVITY_TYPE_CUSTOMER",
          "CONNECTIVITY_TYPE_DATACENTER_FABRIC",
          "CONNECTIVITY_TYPE_DATACENTER_INTERCONNECT",
          "CONNECTIVITY_TYPE_EMBEDDED_CACHE",
          "CONNECTIVITY_TYPE_FREE_PNI",
          "CONNECTIVITY_TYPE_HOST",
          "CONNECTIVITY_TYPE_IX",
          "CONNECTIVITY_TYPE_OTHER",
          "CONNECTIVITY_TYPE_PAID_PNI",
          "CONNECTIVITY_TYPE_RESERVED",
          "CONNECTIVITY_TYPE_TRANSIT",
          "CONNECTIVITY_TYPE_VIRTUAL_CROSS_CONNECT"
        ],
        "type": "string"
      },
      "v202108alpha1CreateInterfaceRequest": {
        "title": "v202108alpha1CreateInterfaceRequest",
        "type": "object",
        "properties": {
          "interface": {
            "$ref": "#/components/schemas/v202108alpha1Interface"
          }
        }
      },
      "v202108alpha1CreateInterfaceResponse": {
        "title": "v202108alpha1CreateInterfaceResponse",
        "type": "object",
        "properties": {
          "interface": {
            "$ref": "#/components/schemas/v202108alpha1Interface"
          }
        }
      },
      "v202108alpha1GetInterfaceResponse": {
        "title": "v202108alpha1GetInterfaceResponse",
        "type": "object",
        "properties": {
          "interface": {
            "$ref": "#/components/schemas/v202108alpha1Interface"
          }
        }
      },
      "v202108alpha1Interface": {
        "title": "v202108alpha1Interface",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of interface."
          },
          "deviceId": {
            "type": "string",
            "description": "ID of device with this interface."
          },
          "snmpId": {
            "type": "string",
            "description": "SNMP ID."
          },
          "snmpSpeed": {
            "type": "integer",
            "description": "Network speed in Mbps.",
            "format": "int32"
          },
          "snmpType": {
            "type": "integer",
            "description": "Snmp Type.",
            "format": "int32"
          },
          "snmpAlias": {
            "type": "string",
            "description": "Interface alias."
          },
          "interfaceIp": {
            "type": "string",
            "description": "IP of interface."
          },
          "interfaceDescription": {
            "type": "string",
            "description": "Readable string description of interface."
          },
          "cdate": {
            "type": "string",
            "description": "Create timestamp.",
            "format": "date-time"
          },
          "edate": {
            "type": "string",
            "description": "Update Timestamp.",
            "format": "date-time"
          },
          "interfaceIpNetmask": {
            "type": "string",
            "description": "Subnet mask."
          },
          "connectivityType": {
            "$ref": "#/components/schemas/v202108alpha1ConnectivityType"
          },
          "networkBoundary": {
            "$ref": "#/components/schemas/v202108alpha1NetworkBoundary"
          },
          "topNexthopAsns": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Top asn hops."
          },
          "provider": {
            "type": "string",
            "description": "Network provider."
          }
        }
      },
      "v202108alpha1InterfaceFilter": {
        "title": "v202108alpha1InterfaceFilter",
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Search text match in interface description and alias."
          },
          "deviceIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Search by device ID."
          },
          "connectivityTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v202108alpha1ConnectivityType"
            },
            "description": "Search by type of interface connectivity."
          },
          "networkBoundaries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v202108alpha1NetworkBoundary"
            },
            "description": "Search by type of network boundary."
          },
          "providers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": ""
          },
          "snmpSpeeds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": ""
          },
          "ipTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v202108alpha1IpFilter"
            },
            "description": "Search by ip address."
          }
        },
        "description": "Supports multiple search criteria. Fields are combined to AND statements to perform search."
      },
      "v202108alpha1IpFilter": {
        "title": "v202108alpha1IpFilter",
        "enum": [
          "IP_FILTER_UNSPECIFIED",
          "IP_FILTER_PRIVATE",
          "IP_FILTER_PUBLIC",
          "IP_FILTER_UNSET"
        ],
        "type": "string"
      },
      "v202108alpha1ListInterfaceResponse": {
        "title": "v202108alpha1ListInterfaceResponse",
        "type": "object",
        "properties": {
          "interfaces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v202108alpha1Interface"
            },
            "description": ""
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "invalidCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "v202108alpha1ManualClassifyRequest": {
        "title": "v202108alpha1ManualClassifyRequest",
        "type": "object",
        "properties": {
          "interfaceIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Interface ids to set the properties."
          },
          "connectivityType": {
            "$ref": "#/components/schemas/v202108alpha1ConnectivityType"
          },
          "networkBoundary": {
            "$ref": "#/components/schemas/v202108alpha1NetworkBoundary"
          },
          "provider": {
            "type": "string",
            "description": "Network provider."
          }
        },
        "description": "Set connection type, network boundary, and provider of interface id(s) specified."
      },
      "v202108alpha1ManualClassifyResponse": {
        "title": "v202108alpha1ManualClassifyResponse",
        "type": "object",
        "properties": {
          "deviceIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": ""
          }
        }
      },
      "v202108alpha1NetworkBoundary": {
        "title": "v202108alpha1NetworkBoundary",
        "enum": [
          "NETWORK_BOUNDARY_UNSPECIFIED",
          "NETWORK_BOUNDARY_AUTO",
          "NETWORK_BOUNDARY_INTERNAL",
          "NETWORK_BOUNDARY_EXTERNAL",
          "NETWORK_BOUNDARY_NONE"
        ],
        "type": "string"
      },
      "v202108alpha1UpdateInterfaceRequest": {
        "title": "v202108alpha1UpdateInterfaceRequest",
        "type": "object",
        "properties": {
          "interface": {
            "$ref": "#/components/schemas/v202108alpha1Interface"
          }
        }
      },
      "v202108alpha1UpdateInterfaceResponse": {
        "title": "v202108alpha1UpdateInterfaceResponse",
        "type": "object",
        "properties": {
          "interface": {
            "$ref": "#/components/schemas/v202108alpha1Interface"
          }
        }
      },
      "ASNDetails": {
        "title": "ASNDetails",
        "type": "object",
        "properties": {
          "asn": {
            "type": "integer",
            "description": "Autonomous System Number (ASN)",
            "format": "int64",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Name of the Autonomous System",
            "readOnly": true
          },
          "countryName": {
            "type": "string",
            "description": "Country Name of the Autonomous System",
            "readOnly": true
          },
          "customers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerProvider"
            },
            "description": "List of Customers",
            "readOnly": true
          },
          "providers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerProvider"
            },
            "description": "List of Providers",
            "readOnly": true
          },
          "peers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Peer"
            },
            "description": "List of Peers",
            "readOnly": true
          }
        }
      },
      "CustomerProvider": {
        "title": "CustomerProvider",
        "type": "object",
        "properties": {
          "asn": {
            "type": "integer",
            "description": "Autonomous System Number (ASN)",
            "format": "int64",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Name of the Autonomous System",
            "readOnly": true
          },
          "score": {
            "type": "integer",
            "description": "Score of the Autonomous System",
            "format": "int64",
            "readOnly": true
          },
          "singlehomedCustomer": {
            "type": "boolean",
            "description": "Singlehomed customer (only one upstream provider to the internet)",
            "readOnly": true
          },
          "mutualCustomer": {
            "type": "boolean",
            "description": "Mutual customer",
            "readOnly": true
          },
          "mutualProvider": {
            "type": "boolean",
            "description": "Mutual provider",
            "readOnly": true
          }
        }
      },
      "GetASNDetailsRequest": {
        "title": "GetASNDetailsRequest",
        "required": [
          "marketId",
          "asn"
        ],
        "type": "object",
        "properties": {
          "marketId": {
            "type": "string",
            "description": "Unique Geo Market identifier (as provided by the ListMarkets RPC)"
          },
          "asn": {
            "type": "string",
            "description": "Autonomous System Number (ASN)"
          },
          "ip": {
            "type": "string",
            "description": "IP Address Family ('v4' or 'v6'). Defaults to 'v4'."
          },
          "type": {
            "type": "string",
            "description": "Type of the requested ASN ('all', 'customer', 'provider', 'peer'). Defaults to 'all'."
          },
          "mutualProvider": {
            "type": "string",
            "description": "Filter by mutual provider ('all', 'only', 'exclude'). Defaults to 'all'."
          },
          "mutualCustomer": {
            "type": "string",
            "description": "Filter by mutual customer ('all', 'only', 'exclude'). Defaults to 'all'."
          },
          "singlehomedCustomer": {
            "type": "string",
            "description": "Filter by singlehomed customer ('all', 'only', 'exclude'). Defaults to 'all'."
          }
        }
      },
      "GetASNDetailsResponse": {
        "title": "GetASNDetailsResponse",
        "type": "object",
        "properties": {
          "asnDetails": {
            "$ref": "#/components/schemas/ASNDetails"
          }
        }
      },
      "GetRankingsRequest": {
        "title": "GetRankingsRequest",
        "required": [
          "marketId"
        ],
        "type": "object",
        "properties": {
          "marketId": {
            "type": "string",
            "description": "Unique Geo Market identifier (as provided by the ListMarkets RPC)"
          },
          "rankType": {
            "type": "string",
            "description": "Type of the requested ranking ('customer_base', 'customer_base_retail', 'customer_base_wholesome', 'customer_base_backbone', 'customer_growth', 'peering_base'). Defaults to 'customer_base'."
          },
          "ip": {
            "type": "string",
            "description": "IP Address Family ('v4' or 'v6') of requested ranking. Defaults to 'v4'."
          },
          "limit": {
            "type": "integer",
            "description": "Maximum number of entries returned. (Default: 600).",
            "format": "int64"
          }
        }
      },
      "GetRankingsResponse": {
        "title": "GetRankingsResponse",
        "type": "object",
        "properties": {
          "rankings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ranking"
            },
            "description": "List of rankings"
          },
          "invalidCount": {
            "type": "integer",
            "description": "Number of invalid entries encountered while collecting data",
            "format": "int64"
          }
        }
      },
      "ListMarketsResponse": {
        "title": "ListMarketsResponse",
        "type": "object",
        "properties": {
          "markets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Market"
            },
            "description": "Markets",
            "readOnly": true
          }
        }
      },
      "Market": {
        "title": "Market",
        "type": "object",
        "properties": {
          "marketId": {
            "type": "string",
            "description": "Unique Geo Market identifier",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Geo Market Name",
            "readOnly": true
          }
        }
      },
      "Peer": {
        "title": "Peer",
        "type": "object",
        "properties": {
          "asn": {
            "type": "integer",
            "description": "Autonomous System Number (ASN)",
            "format": "int64",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Name of the Autonomous System",
            "readOnly": true
          },
          "pfxCount": {
            "type": "integer",
            "description": "Prefix Count (number of distinct IP address blocks announced by AS)",
            "format": "int64",
            "readOnly": true
          }
        }
      },
      "Ranking": {
        "title": "Ranking",
        "type": "object",
        "properties": {
          "asn": {
            "type": "integer",
            "description": "Autonomous System Number (ASN)",
            "format": "int64",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Name of the Autonomous System",
            "readOnly": true
          },
          "rank": {
            "type": "integer",
            "description": "Rank of the Autonomous System",
            "format": "int64",
            "readOnly": true
          },
          "rankChange": {
            "type": "integer",
            "description": "Rank Change of the Autonomous System",
            "format": "int64",
            "readOnly": true
          },
          "score": {
            "type": "integer",
            "description": "Score of the Autonomous System",
            "format": "int64",
            "readOnly": true
          },
          "scoreChange": {
            "type": "integer",
            "description": "Score Change of the Autonomous System",
            "format": "int64",
            "readOnly": true
          }
        }
      },
      "Label": {
        "title": "Label",
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique system assigned identifier of the label",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Label text visible in listing of configuration of objects to which it has been applied"
          },
          "description": {
            "type": "string",
            "description": "Optional description of the label, visible only in API responses"
          },
          "color": {
            "type": "string",
            "description": "[Hexadecimal code of the color](https://www.color-hex.com/) of the label text background in the portal"
          },
          "cdate": {
            "type": "string",
            "description": "Creation timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          },
          "edate": {
            "type": "string",
            "description": "Last modification timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          }
        }
      },
      "CreateLabelRequest": {
        "title": "CreateLabelRequest",
        "required": [
          "label"
        ],
        "type": "object",
        "properties": {
          "label": {
            "$ref": "#/components/schemas/Label"
          }
        }
      },
      "CreateLabelResponse": {
        "title": "CreateLabelResponse",
        "type": "object",
        "properties": {
          "label": {
            "$ref": "#/components/schemas/Label"
          }
        }
      },
      "ListLabelsResponse": {
        "title": "ListLabelsResponse",
        "type": "object",
        "properties": {
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Label"
            },
            "description": "List of configured labels",
            "readOnly": true
          },
          "invalidCount": {
            "type": "integer",
            "description": "Number of invalid entries encountered while collecting data (should be always 0)",
            "format": "int32"
          }
        }
      },
      "UpdateLabelRequest": {
        "title": "UpdateLabelRequest",
        "required": [
          "label"
        ],
        "type": "object",
        "properties": {
          "label": {
            "$ref": "#/components/schemas/Label"
          }
        }
      },
      "UpdateLabelResponse": {
        "title": "UpdateLabelResponse",
        "type": "object",
        "properties": {
          "label": {
            "$ref": "#/components/schemas/Label"
          }
        }
      },
      "AssetReport": {
        "title": "AssetReport",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      },
      "v202102alpha1Activate": {
        "title": "v202102alpha1Activate",
        "type": "object",
        "properties": {
          "times": {
            "type": "integer",
            "format": "int64"
          },
          "operator": {
            "type": "string"
          },
          "timeUnit": {
            "type": "string"
          },
          "timeWindow": {
            "type": "integer",
            "format": "int64"
          },
          "gracePeriod": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "AlertPolicy": {
        "title": "AlertPolicy",
        "type": "object",
        "properties": {
          "saved": {
            "type": "boolean"
          },
          "policyId": {
            "type": "string"
          },
          "thresholds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlertThreshold"
            },
            "description": ""
          },
          "primaryMetric": {
            "type": "string"
          },
          "secondaryMetrics": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": ""
          },
          "isTemplate": {
            "type": "boolean"
          },
          "subpolicyId": {
            "type": "string"
          }
        }
      },
      "v202102alpha1Asset": {
        "title": "v202102alpha1Asset",
        "type": "object",
        "properties": {
          "reports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssetReport"
            },
            "description": ""
          },
          "defaultReport": {
            "$ref": "#/components/schemas/AssetReport"
          }
        }
      },
      "v202102alpha1Condition": {
        "title": "v202102alpha1Condition",
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "value": {
            "type": "integer",
            "format": "int64"
          },
          "metric": {
            "type": "string"
          },
          "operator": {
            "type": "string"
          },
          "valueType": {
            "type": "string"
          },
          "valueSelect": {
            "type": "string"
          }
        }
      },
      "v202102alpha1CreatePackageRequest": {
        "title": "v202102alpha1CreatePackageRequest",
        "type": "object",
        "properties": {
          "package": {
            "$ref": "#/components/schemas/PackageTemplatedefinition"
          }
        }
      },
      "v202102alpha1CreatePackageResponse": {
        "title": "v202102alpha1CreatePackageResponse",
        "type": "object",
        "properties": {
          "package": {
            "$ref": "#/components/schemas/PackageTemplatedefinition"
          }
        }
      },
      "v202102alpha1CreateTenantRequest": {
        "title": "v202102alpha1CreateTenantRequest",
        "type": "object",
        "properties": {
          "tenant": {
            "$ref": "#/components/schemas/v202102alpha1Tenant"
          }
        }
      },
      "v202102alpha1CreateTenantResponse": {
        "title": "v202102alpha1CreateTenantResponse",
        "type": "object",
        "properties": {
          "tenant": {
            "$ref": "#/components/schemas/v202102alpha1Tenant"
          }
        }
      },
      "v202102alpha1CustomDimension": {
        "title": "v202102alpha1CustomDimension",
        "type": "object",
        "properties": {
          "dimension": {
            "type": "string"
          },
          "populator": {
            "type": "string"
          }
        }
      },
      "v202102alpha1Device": {
        "title": "v202102alpha1Device",
        "type": "object",
        "properties": {
          "allDevices": {
            "type": "boolean"
          },
          "deviceTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": ""
          },
          "deviceLabels": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": ""
          },
          "deviceSites": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": ""
          },
          "deviceName": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": ""
          }
        }
      },
      "v202102alpha1Filter": {
        "title": "v202102alpha1Filter",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "named": {
            "type": "boolean"
          },
          "connector": {
            "type": "string"
          },
          "not": {
            "type": "boolean"
          },
          "autoAdded": {
            "type": "string"
          },
          "savedFilters": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": ""
          },
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v202102alpha1FilterField"
            },
            "description": ""
          },
          "filterGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v202102alpha1Filter"
            },
            "description": ""
          },
          "metric": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": ""
          }
        }
      },
      "v202102alpha1FilterField": {
        "title": "v202102alpha1FilterField",
        "type": "object",
        "properties": {
          "filterField": {
            "type": "string"
          },
          "operator": {
            "type": "string"
          },
          "filterValue": {
            "type": "string"
          }
        }
      },
      "v202102alpha1GetPackageResponse": {
        "title": "v202102alpha1GetPackageResponse",
        "type": "object",
        "properties": {
          "package": {
            "$ref": "#/components/schemas/PackageTemplatedefinition"
          }
        }
      },
      "v202102alpha1GetTenantResponse": {
        "title": "v202102alpha1GetTenantResponse",
        "type": "object",
        "properties": {
          "tenant": {
            "$ref": "#/components/schemas/v202102alpha1Tenant"
          }
        }
      },
      "v202102alpha1ListPackageResponse": {
        "title": "v202102alpha1ListPackageResponse",
        "type": "object",
        "properties": {
          "packages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PackageTemplatedefinition"
            },
            "description": ""
          },
          "invalidCount": {
            "type": "integer",
            "description": "The number of invalid packages, for troubleshooting. Should be zero.",
            "format": "int64"
          }
        }
      },
      "v202102alpha1ListTenantResponse": {
        "title": "v202102alpha1ListTenantResponse",
        "type": "object",
        "properties": {
          "tenants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v202102alpha1Tenant"
            },
            "description": ""
          },
          "invalidCount": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "v202102alpha1Mitigation": {
        "title": "v202102alpha1Mitigation",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "companyId": {
            "type": "string"
          },
          "pairingId": {
            "type": "string"
          },
          "thresholdId": {
            "type": "string"
          },
          "isMethodOverridable": {
            "type": "boolean"
          },
          "mitigationApplyType": {
            "type": "string"
          },
          "mitigationClearType": {
            "type": "string"
          },
          "mitigationApplyTimer": {
            "type": "integer",
            "format": "int64"
          },
          "mitigationClearTimer": {
            "type": "integer",
            "format": "int64"
          },
          "isPlatformOverridable": {
            "type": "boolean"
          },
          "cdate": {
            "type": "string"
          },
          "edate": {
            "type": "string"
          }
        }
      },
      "v202102alpha1NotificationChannel": {
        "title": "v202102alpha1NotificationChannel",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "PackageTemplatedefinition": {
        "title": "PackageTemplatedefinition",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "companyId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "alerts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlertPolicy"
            },
            "description": ""
          },
          "assets": {
            "$ref": "#/components/schemas/v202102alpha1Asset"
          },
          "isDefault": {
            "type": "boolean"
          },
          "tenants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantsreferencingthisPackagetemplate"
            },
            "description": ""
          }
        }
      },
      "v202102alpha1PatchPackageRequest": {
        "title": "v202102alpha1PatchPackageRequest",
        "type": "object",
        "properties": {
          "package": {
            "$ref": "#/components/schemas/PackageTemplatedefinition"
          },
          "mask": {
            "type": "string"
          }
        }
      },
      "v202102alpha1PatchPackageResponse": {
        "title": "v202102alpha1PatchPackageResponse",
        "type": "object",
        "properties": {
          "package": {
            "$ref": "#/components/schemas/PackageTemplatedefinition"
          }
        }
      },
      "v202102alpha1PatchTenantRequest": {
        "title": "v202102alpha1PatchTenantRequest",
        "type": "object",
        "properties": {
          "tenant": {
            "$ref": "#/components/schemas/v202102alpha1Tenant"
          },
          "mask": {
            "type": "string"
          }
        }
      },
      "v202102alpha1PatchTenantResponse": {
        "title": "v202102alpha1PatchTenantResponse",
        "type": "object",
        "properties": {
          "tenant": {
            "$ref": "#/components/schemas/v202102alpha1Tenant"
          }
        }
      },
      "v202102alpha1Tenant": {
        "title": "v202102alpha1Tenant",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "companyId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "alerts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlertPolicy"
            },
            "description": ""
          },
          "assets": {
            "$ref": "#/components/schemas/v202102alpha1Asset"
          },
          "asn": {
            "type": "string"
          },
          "cidr": {
            "type": "string"
          },
          "customDimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v202102alpha1CustomDimension"
            },
            "description": ""
          },
          "devices": {
            "$ref": "#/components/schemas/v202102alpha1Device"
          },
          "filters": {
            "$ref": "#/components/schemas/v202102alpha1Filter"
          },
          "interfaceName": {
            "type": "string"
          },
          "snmpAlias": {
            "type": "string"
          },
          "packages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PackageTemplatedefinition"
            },
            "description": ""
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v202102alpha1User"
            },
            "description": ""
          },
          "templateId": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "TenantsreferencingthisPackagetemplate": {
        "title": "TenantsreferencingthisPackagetemplate",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "pivotTemplateId": {
            "type": "string"
          },
          "pivotUserGroupId": {
            "type": "string"
          }
        }
      },
      "AlertThreshold": {
        "title": "AlertThreshold",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "activate": {
            "$ref": "#/components/schemas/v202102alpha1Activate"
          },
          "severity": {
            "type": "string"
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v202102alpha1Condition"
            },
            "description": ""
          },
          "mitigations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v202102alpha1Mitigation"
            },
            "description": ""
          },
          "notificationChannels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v202102alpha1NotificationChannel"
            },
            "description": ""
          },
          "thresholdAckRequired": {
            "type": "boolean"
          },
          "enableTenantNotifications": {
            "type": "boolean"
          },
          "receiveLandlordNotifications": {
            "type": "boolean"
          }
        }
      },
      "v202102alpha1UpdatePackageRequest": {
        "title": "v202102alpha1UpdatePackageRequest",
        "type": "object",
        "properties": {
          "package": {
            "$ref": "#/components/schemas/PackageTemplatedefinition"
          }
        }
      },
      "v202102alpha1UpdatePackageResponse": {
        "title": "v202102alpha1UpdatePackageResponse",
        "type": "object",
        "properties": {
          "package": {
            "$ref": "#/components/schemas/PackageTemplatedefinition"
          }
        }
      },
      "v202102alpha1UpdateTenantRequest": {
        "title": "v202102alpha1UpdateTenantRequest",
        "type": "object",
        "properties": {
          "tenant": {
            "$ref": "#/components/schemas/v202102alpha1Tenant"
          }
        }
      },
      "v202102alpha1UpdateTenantResponse": {
        "title": "v202102alpha1UpdateTenantResponse",
        "type": "object",
        "properties": {
          "tenant": {
            "$ref": "#/components/schemas/v202102alpha1Tenant"
          }
        }
      },
      "v202102alpha1User": {
        "title": "v202102alpha1User",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "companyId": {
            "type": "string"
          },
          "userEmail": {
            "type": "string"
          },
          "userName": {
            "type": "string"
          },
          "userFullName": {
            "type": "string"
          },
          "userGroupId": {
            "type": "string"
          },
          "lastLogin": {
            "type": "string"
          },
          "permissionOverrides": {
            "type": "boolean"
          },
          "role": {
            "type": "string"
          },
          "userLevel": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "v202109alpha1CloudSubnet": {
        "title": "v202109alpha1CloudSubnet",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/v202109alpha1CloudType"
          },
          "subnets": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": ""
          }
        }
      },
      "v202109alpha1CloudType": {
        "title": "v202109alpha1CloudType",
        "enum": [
          "CLOUD_TYPE_UNSPECIFIED",
          "CLOUD_TYPE_AWS",
          "CLOUD_TYPE_AZURE",
          "CLOUD_TYPE_GCE",
          "CLOUD_TYPE_IBM"
        ],
        "type": "string"
      },
      "v202109alpha1GetNetworkClassResponse": {
        "title": "v202109alpha1GetNetworkClassResponse",
        "type": "object",
        "properties": {
          "networkClass": {
            "$ref": "#/components/schemas/v202109alpha1NetworkClass"
          }
        }
      },
      "v202109alpha1NetworkClass": {
        "title": "v202109alpha1NetworkClass",
        "type": "object",
        "properties": {
          "internalAsns": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": ""
          },
          "internalIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": ""
          },
          "usePrivateAsns": {
            "type": "boolean"
          },
          "usePrivateSubnets": {
            "type": "boolean"
          },
          "cloudSubnets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v202109alpha1CloudSubnet"
            },
            "description": "Cloud provider and subnet info."
          }
        }
      },
      "v202109alpha1UpdateNetworkClassRequest": {
        "title": "v202109alpha1UpdateNetworkClassRequest",
        "type": "object",
        "properties": {
          "networkClass": {
            "$ref": "#/components/schemas/v202109alpha1NetworkClass"
          }
        }
      },
      "v202109alpha1UpdateNetworkClassResponse": {
        "title": "v202109alpha1UpdateNetworkClassResponse",
        "type": "object",
        "properties": {
          "networkClass": {
            "$ref": "#/components/schemas/v202109alpha1NetworkClass"
          }
        }
      },
      "ChannelType": {
        "title": "ChannelType",
        "enum": [
          "CHANNEL_TYPE_UNSPECIFIED",
          "CHANNEL_TYPE_XMATTERS",
          "CHANNEL_TYPE_SLACK",
          "CHANNEL_TYPE_SERVICENOW",
          "CHANNEL_TYPE_SYSLOG",
          "CHANNEL_TYPE_OPSGENIE",
          "CHANNEL_TYPE_CUSTOM_WEBHOOK",
          "CHANNEL_TYPE_SPLUNK",
          "CHANNEL_TYPE_MSTEAMS",
          "CHANNEL_TYPE_JSON",
          "CHANNEL_TYPE_EMAIL",
          "CHANNEL_TYPE_VICTOROPS",
          "CHANNEL_TYPE_PAGERDUTY"
        ],
        "type": "string",
        "description": "- CHANNEL_TYPE_UNSPECIFIED: Invalid value.\n - CHANNEL_TYPE_XMATTERS: XMATTERS platform\n - CHANNEL_TYPE_SLACK: Slack channel\n - CHANNEL_TYPE_SERVICENOW: ServiceNow platform\n - CHANNEL_TYPE_SYSLOG: Syslog server\n - CHANNEL_TYPE_OPSGENIE: Atlassian Opsgenie\n - CHANNEL_TYPE_CUSTOM_WEBHOOK: Custom REST webhook\n - CHANNEL_TYPE_SPLUNK: Splunk platform\n - CHANNEL_TYPE_MSTEAMS: Microsoft Teams channel\n - CHANNEL_TYPE_JSON: webhook with JSON payload\n - CHANNEL_TYPE_EMAIL: E-mail\n - CHANNEL_TYPE_VICTOROPS: Splunk On-Call (formerly VictorOps)\n - CHANNEL_TYPE_PAGERDUTY: Pagerduty platform"
      },
      "GetNotificationChannelResponse": {
        "title": "GetNotificationChannelResponse",
        "type": "object",
        "properties": {
          "notificationChannel": {
            "$ref": "#/components/schemas/NotificationChannel"
          }
        }
      },
      "ListNotificationChannelsResponse": {
        "title": "ListNotificationChannelsResponse",
        "type": "object",
        "properties": {
          "notificationChannels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationChannel"
            },
            "description": "List of notification channels",
            "readOnly": true
          },
          "invalidCount": {
            "type": "integer",
            "description": "Number of invalid entries that were not included in the list (should be always zero)",
            "format": "int32",
            "readOnly": true
          }
        }
      },
      "NotificationChannel": {
        "title": "NotificationChannel",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the channel",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "User selected name of the channel",
            "readOnly": true
          },
          "type": {
            "$ref": "#/components/schemas/ChannelType"
          },
          "enabled": {
            "type": "boolean",
            "description": "Administrative status",
            "readOnly": true
          },
          "cdate": {
            "type": "string",
            "description": "Creation timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          },
          "edate": {
            "type": "string",
            "description": "Last modification timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          }
        }
      },
      "SearchNotificationChannelsRequest": {
        "title": "SearchNotificationChannelsRequest",
        "type": "object",
        "properties": {
          "namePattern": {
            "type": "string",
            "description": "Regular expression pattern for matching the name attribute of channels. Empty string matches any name, otherwise the regular expression must consume all characters in the channel name."
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChannelType"
            },
            "description": "List of ChannelType enum values to match. Empty list matches any channel type."
          },
          "includeDisabled": {
            "type": "boolean",
            "description": "Include disabled channels in results.",
            "default": false
          }
        }
      },
      "SearchNotificationChannelsResponse": {
        "title": "SearchNotificationChannelsResponse",
        "type": "object",
        "properties": {
          "notificationChannels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationChannel"
            },
            "description": "List of matching notification channels.",
            "readOnly": true
          },
          "invalidCount": {
            "type": "integer",
            "description": "Number of invalid entries that were not included in the list (should be always zero)",
            "format": "int32",
            "readOnly": true
          }
        }
      },
      "CreateSiteMarketRequest": {
        "title": "CreateSiteMarketRequest",
        "required": [
          "siteMarket"
        ],
        "type": "object",
        "properties": {
          "siteMarket": {
            "$ref": "#/components/schemas/SiteMarket"
          }
        }
      },
      "CreateSiteMarketResponse": {
        "title": "CreateSiteMarketResponse",
        "type": "object",
        "properties": {
          "siteMarket": {
            "$ref": "#/components/schemas/SiteMarket"
          }
        }
      },
      "CreateSiteRequest": {
        "title": "CreateSiteRequest",
        "required": [
          "site"
        ],
        "type": "object",
        "properties": {
          "site": {
            "$ref": "#/components/schemas/Site"
          }
        }
      },
      "CreateSiteResponse": {
        "title": "CreateSiteResponse",
        "type": "object",
        "properties": {
          "site": {
            "$ref": "#/components/schemas/Site"
          }
        }
      },
      "GetSiteMarketResponse": {
        "title": "GetSiteMarketResponse",
        "type": "object",
        "properties": {
          "siteMarket": {
            "$ref": "#/components/schemas/SiteMarket"
          }
        }
      },
      "GetSiteResponse": {
        "title": "GetSiteResponse",
        "type": "object",
        "properties": {
          "site": {
            "$ref": "#/components/schemas/Site"
          }
        }
      },
      "Layer": {
        "title": "Layer",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the network layer"
          },
          "deviceIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "IDs of devices that are deemed to be part of the network layer"
          }
        }
      },
      "LayerSet": {
        "title": "LayerSet",
        "type": "object",
        "properties": {
          "layers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Layer"
            },
            "description": "List of parallel network layers"
          }
        }
      },
      "ListSiteMarketsResponse": {
        "title": "ListSiteMarketsResponse",
        "type": "object",
        "properties": {
          "siteMarkets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SiteMarket"
            },
            "description": "List of configurations of requested site markets"
          },
          "invalidCount": {
            "type": "integer",
            "description": "Number of invalid entries encountered while collecting data",
            "format": "int64"
          }
        }
      },
      "ListSitesResponse": {
        "title": "ListSitesResponse",
        "type": "object",
        "properties": {
          "sites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Site"
            },
            "description": "List of configurations of requested sites"
          },
          "invalidCount": {
            "type": "integer",
            "description": "Number of invalid entries encountered while collecting data",
            "format": "int64"
          }
        }
      },
      "PostalAddress": {
        "title": "PostalAddress",
        "required": [
          "address",
          "city",
          "country"
        ],
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "Street address"
          },
          "city": {
            "type": "string",
            "description": "City (full name)"
          },
          "region": {
            "type": "string",
            "description": "Geographical region"
          },
          "postalCode": {
            "type": "string",
            "description": "Country specific postal code"
          },
          "country": {
            "type": "string",
            "description": "Country (full name or country code)"
          }
        }
      },
      "Site": {
        "title": "Site",
        "required": [
          "title",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "System generated unique identifier",
            "readOnly": true
          },
          "title": {
            "type": "string",
            "description": "User selected title/name"
          },
          "lat": {
            "type": "number",
            "description": "Latitude (signed decimal degrees)"
          },
          "lon": {
            "type": "number",
            "description": "Longitude (signed decimal degrees)"
          },
          "postalAddress": {
            "$ref": "#/components/schemas/PostalAddress"
          },
          "type": {
            "$ref": "#/components/schemas/SiteType"
          },
          "addressClassification": {
            "$ref": "#/components/schemas/SiteIpAddressClassification"
          },
          "architecture": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LayerSet"
            },
            "description": "Logical network topology/architecture"
          },
          "siteMarket": {
            "type": "string",
            "description": "Name of the Site Market this sire belongs to"
          }
        }
      },
      "SiteIpAddressClassification": {
        "title": "SiteIpAddressClassification",
        "type": "object",
        "properties": {
          "infrastructureNetworks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of IP address prefixes (in standard CIDR notation) used in infrastructure networks"
          },
          "userAccessNetworks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of IP address prefixes (in standard CIDR notation) used in access networks"
          },
          "otherNetworks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of IP address prefixes (in standard CIDR notation) used in other networks"
          }
        }
      },
      "SiteMarket": {
        "title": "SiteMarket",
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "System generated unique identifier",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "User selected unique name"
          },
          "description": {
            "type": "string",
            "description": "Free-form description"
          },
          "numberOfSites": {
            "type": "integer",
            "description": "Number of sites in this market",
            "format": "int64",
            "readOnly": true
          },
          "cdate": {
            "type": "string",
            "description": "Creation timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          },
          "edate": {
            "type": "string",
            "description": "Last modification timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          }
        }
      },
      "SiteType": {
        "title": "SiteType",
        "enum": [
          "SITE_TYPE_UNSPECIFIED",
          "SITE_TYPE_DATA_CENTER",
          "SITE_TYPE_CLOUD",
          "SITE_TYPE_BRANCH",
          "SITE_TYPE_CONNECTIVITY",
          "SITE_TYPE_CUSTOMER",
          "SITE_TYPE_OTHER"
        ],
        "type": "string",
        "description": "- SITE_TYPE_UNSPECIFIED: Invalid value.\n - SITE_TYPE_DATA_CENTER: Data center site type.\n - SITE_TYPE_CLOUD: Cloud site type.\n - SITE_TYPE_BRANCH: Branch office site type.\n - SITE_TYPE_CONNECTIVITY: Connectivity/PoP site type.\n - SITE_TYPE_CUSTOMER: Customer/partner site type.\n - SITE_TYPE_OTHER: Other site type."
      },
      "UpdateSiteMarketRequest": {
        "title": "UpdateSiteMarketRequest",
        "required": [
          "siteMarket"
        ],
        "type": "object",
        "properties": {
          "siteMarket": {
            "$ref": "#/components/schemas/SiteMarket"
          }
        }
      },
      "UpdateSiteMarketResponse": {
        "title": "UpdateSiteMarketResponse",
        "type": "object",
        "properties": {
          "siteMarket": {
            "$ref": "#/components/schemas/SiteMarket"
          }
        }
      },
      "UpdateSiteRequest": {
        "title": "UpdateSiteRequest",
        "required": [
          "site"
        ],
        "type": "object",
        "properties": {
          "site": {
            "$ref": "#/components/schemas/Site"
          }
        }
      },
      "UpdateSiteResponse": {
        "title": "UpdateSiteResponse",
        "type": "object",
        "properties": {
          "site": {
            "$ref": "#/components/schemas/Site"
          }
        }
      },
      "AgentMetadataIpValue": {
        "title": "AgentMetadataIpValue",
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          }
        }
      },
      "Location": {
        "title": "Location",
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "description": "Latitude in signed decimal degrees"
          },
          "longitude": {
            "type": "number",
            "description": "Longitude in signed decimal degrees"
          },
          "country": {
            "type": "string",
            "description": "Country of the location"
          },
          "region": {
            "type": "string",
            "description": "Geographic region within the country"
          },
          "city": {
            "type": "string",
            "description": "City of the location"
          }
        }
      },
      "ActivationSettings": {
        "title": "ActivationSettings",
        "type": "object",
        "properties": {
          "gracePeriod": {
            "type": "string",
            "description": "Period of healthy status in minutes within the time window not cancelling alarm activation"
          },
          "timeUnit": {
            "type": "string",
            "description": "Time unit for specifying time window (m | h)"
          },
          "timeWindow": {
            "type": "string",
            "description": "Time window for evaluating of test for alarm activation"
          },
          "times": {
            "type": "string",
            "description": "Number of occurrences of unhealthy test status within the time window triggering alarm activation"
          }
        }
      },
      "Agent": {
        "title": "Agent",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the agent",
            "readOnly": true
          },
          "siteName": {
            "type": "string",
            "description": "Name of the site where agent is located"
          },
          "status": {
            "$ref": "#/components/schemas/AgentStatus"
          },
          "alias": {
            "type": "string",
            "description": "User selected descriptive name of the agent"
          },
          "type": {
            "type": "string",
            "description": "Type of agent (global | private)",
            "readOnly": true
          },
          "os": {
            "type": "string",
            "description": "OS version of server/VM hosting the agent",
            "readOnly": true
          },
          "ip": {
            "type": "string",
            "description": "Public IP address of the agent (auto-detected)",
            "readOnly": true
          },
          "lat": {
            "type": "number",
            "description": "Latitude of agent's location (signed decimal degrees)"
          },
          "long": {
            "type": "number",
            "description": "Longitude of agent's location (signed decimal degrees)"
          },
          "lastAuthed": {
            "type": "string",
            "description": "Timestamp of the last authorization",
            "format": "date-time",
            "readOnly": true
          },
          "family": {
            "$ref": "#/components/schemas/IPFamily"
          },
          "asn": {
            "type": "integer",
            "description": "ASN of the AS owning agent's public address",
            "format": "int64"
          },
          "siteId": {
            "type": "string",
            "description": "ID of the site hosting the agent (if configured in Kentik)"
          },
          "version": {
            "type": "string",
            "description": "Software version of the agent",
            "readOnly": true
          },
          "city": {
            "type": "string",
            "description": "City where the agent is located"
          },
          "region": {
            "type": "string",
            "description": "Geographical region of agent's location"
          },
          "country": {
            "type": "string",
            "description": "Country of agent's location"
          },
          "testIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "IDs of user's test running on the agent",
            "readOnly": true
          },
          "localIp": {
            "type": "string",
            "description": "Internal IP address of the agent"
          },
          "cloudRegion": {
            "type": "string",
            "description": "Cloud region (if any) hosting the agent"
          },
          "cloudProvider": {
            "type": "string",
            "description": "Cloud provider (if any) hosting the agent"
          },
          "agentImpl": {
            "$ref": "#/components/schemas/ImplementType"
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of names of labels associated with the agent"
          },
          "metadata": {
            "$ref": "#/components/schemas/AgentMetadata"
          }
        }
      },
      "AgentMetadata": {
        "title": "AgentMetadata",
        "type": "object",
        "properties": {
          "privateIpv4Addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentMetadataIpValue"
            },
            "description": "List of private IPv4 addresses"
          },
          "publicIpv4Addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentMetadataIpValue"
            },
            "description": "List of public IPv4 addresses",
            "readOnly": true
          },
          "privateIpv6Addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentMetadataIpValue"
            },
            "description": "List of private IPv6 addresses"
          },
          "publicIpv6Addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentMetadataIpValue"
            },
            "description": "List of public IPv6 addresses",
            "readOnly": true
          }
        }
      },
      "AgentResults": {
        "title": "AgentResults",
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string",
            "description": "ID of the agent providing results"
          },
          "health": {
            "type": "string",
            "description": "Overall health status of all task for the test executed by this agent"
          },
          "tasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskResults"
            },
            "description": "List of results for individual tasks"
          }
        }
      },
      "AgentStatus": {
        "title": "AgentStatus",
        "enum": [
          "AGENT_STATUS_UNSPECIFIED",
          "AGENT_STATUS_OK",
          "AGENT_STATUS_WAIT",
          "AGENT_STATUS_DELETED"
        ],
        "type": "string",
        "description": "- AGENT_STATUS_UNSPECIFIED: Invalid value.\n - AGENT_STATUS_OK: Agent is ready to accept tests\n - AGENT_STATUS_WAIT: Agent is waiting for authorization\n - AGENT_STATUS_DELETED: Agent was deleted - not user settable"
      },
      "AgentTest": {
        "title": "AgentTest",
        "type": "object",
        "properties": {
          "target": {
            "type": "string",
            "description": "ID of the target agent"
          },
          "useLocalIp": {
            "type": "boolean",
            "description": "Boolean value indicating whether to use local (private) IP address of the target agent"
          }
        }
      },
      "CreateTestRequest": {
        "title": "CreateTestRequest",
        "required": [
          "test"
        ],
        "type": "object",
        "properties": {
          "test": {
            "$ref": "#/components/schemas/Test"
          }
        }
      },
      "CreateTestResponse": {
        "title": "CreateTestResponse",
        "type": "object",
        "properties": {
          "test": {
            "$ref": "#/components/schemas/Test"
          }
        }
      },
      "DNSRecord": {
        "title": "DNSRecord",
        "enum": [
          "DNS_RECORD_UNSPECIFIED",
          "DNS_RECORD_A",
          "DNS_RECORD_AAAA",
          "DNS_RECORD_CNAME",
          "DNS_RECORD_DNAME",
          "DNS_RECORD_NS",
          "DNS_RECORD_MX",
          "DNS_RECORD_PTR",
          "DNS_RECORD_SOA"
        ],
        "type": "string",
        "description": "- DNS_RECORD_UNSPECIFIED: Invalid value\n - DNS_RECORD_A: name to IPv4 address(es) mapping\n - DNS_RECORD_AAAA: name to IPv6 address(es) mapping\n - DNS_RECORD_CNAME: alternative resource name\n - DNS_RECORD_DNAME: alternative resource set name\n - DNS_RECORD_NS: domain to name server mapping\n - DNS_RECORD_MX: SMTP mail server record\n - DNS_RECORD_PTR: IPv4/6 address to name mapping\n - DNS_RECORD_SOA: domain meta-data"
      },
      "DNSResponseData": {
        "title": "DNSResponseData",
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "description": "Received DNS status",
            "format": "int64"
          },
          "data": {
            "type": "string",
            "description": "Text rendering of received DNS resolution"
          }
        }
      },
      "DNSResults": {
        "title": "DNSResults",
        "type": "object",
        "properties": {
          "target": {
            "type": "string",
            "description": "Queried DNS record"
          },
          "server": {
            "type": "string",
            "description": "DNS server used for the query"
          },
          "latency": {
            "$ref": "#/components/schemas/MetricData"
          },
          "response": {
            "$ref": "#/components/schemas/DNSResponseData"
          }
        }
      },
      "DnsTest": {
        "title": "DnsTest",
        "type": "object",
        "properties": {
          "target": {
            "type": "string",
            "description": "Fully qualified DNS name to query"
          },
          "timeout": {
            "type": "integer",
            "description": "--- Deprecated: value is ignored. ---",
            "format": "int64"
          },
          "recordType": {
            "$ref": "#/components/schemas/DNSRecord"
          },
          "servers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of IP addresses of DNS servers"
          },
          "port": {
            "type": "integer",
            "description": "Target DNS server port",
            "format": "int64"
          }
        }
      },
      "FlowTest": {
        "title": "FlowTest",
        "type": "object",
        "properties": {
          "target": {
            "type": "string",
            "description": "Target ASN, CDN, Country, Region of City for autonomous test (type of value depends on flow test sub-type)"
          },
          "targetRefreshIntervalMillis": {
            "type": "integer",
            "description": "Period (in milliseconds) for refreshing list of targets based on available flow data",
            "format": "int64"
          },
          "maxProviders": {
            "type": "integer",
            "description": "Maximum number of IP providers to track autonomously",
            "format": "int64"
          },
          "maxIpTargets": {
            "type": "integer",
            "description": "Maximum number of target IP addresses to select based flow data query",
            "format": "int64"
          },
          "type": {
            "type": "string",
            "description": "Autonomous test sub-type (asn | cdn | country | region | city)"
          },
          "inetDirection": {
            "type": "string",
            "description": "Selection of address from flow data (src = source address in inbound flows | dst = destination addresses in outbound flows)"
          },
          "direction": {
            "type": "string",
            "description": "Direction of flows to match target attribute for extraction of target addresses (src | dst)"
          }
        }
      },
      "GetAgentResponse": {
        "title": "GetAgentResponse",
        "type": "object",
        "properties": {
          "agent": {
            "$ref": "#/components/schemas/Agent"
          }
        }
      },
      "GetResultsForTestsRequest": {
        "title": "GetResultsForTestsRequest",
        "required": [
          "ids",
          "startTime",
          "endTime"
        ],
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of test IDs for which to retrieve results"
          },
          "startTime": {
            "type": "string",
            "description": "Timestamp of the oldest results to include in results",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "Timestamp of the newest results to include in results",
            "format": "date-time"
          },
          "agentIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of agent IDs from which to return results"
          },
          "targets": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of targets (test dependent) for which to retrieve results"
          },
          "aggregate": {
            "type": "boolean",
            "description": "If true, retrieve result aggregated across the requested time period, else return complete time series"
          }
        }
      },
      "GetResultsForTestsResponse": {
        "title": "GetResultsForTestsResponse",
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TestResults"
            },
            "description": ""
          }
        }
      },
      "GetTestResponse": {
        "title": "GetTestResponse",
        "type": "object",
        "properties": {
          "test": {
            "$ref": "#/components/schemas/Test"
          }
        }
      },
      "GetTraceForTestRequest": {
        "title": "GetTraceForTestRequest",
        "required": [
          "startTime",
          "endTime"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of test for which to retrieve network path trace data"
          },
          "startTime": {
            "type": "string",
            "description": "Timestamp of the oldest results to include in results",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "Timestamp of the newest results to include in results",
            "format": "date-time"
          },
          "agentIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of agent IDs from which to return results"
          },
          "targetIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of target IP addresses for which to retrieve results"
          }
        }
      },
      "GetTraceForTestResponse": {
        "title": "GetTraceForTestResponse",
        "type": "object",
        "properties": {
          "nodes": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/NetNode"
            },
            "description": "Map of network node information keyed by node IDs"
          },
          "paths": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Path"
            },
            "description": "List of retrieved network path data"
          }
        }
      },
      "HTTPResponseData": {
        "title": "HTTPResponseData",
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "description": "HTTP status in response",
            "format": "int64"
          },
          "size": {
            "type": "integer",
            "description": "Total size of  received response body",
            "format": "int64"
          },
          "data": {
            "type": "string",
            "description": "Detailed information about transaction timing, connection characteristics and response"
          }
        }
      },
      "HTTPResults": {
        "title": "HTTPResults",
        "type": "object",
        "properties": {
          "target": {
            "type": "string",
            "description": "Target probed URL"
          },
          "latency": {
            "$ref": "#/components/schemas/MetricData"
          },
          "response": {
            "$ref": "#/components/schemas/HTTPResponseData"
          },
          "dstIp": {
            "type": "string",
            "description": "IP address of probed target server"
          }
        }
      },
      "HealthSettings": {
        "title": "HealthSettings",
        "type": "object",
        "properties": {
          "latencyCritical": {
            "type": "number",
            "description": "Threshold for ping or DNS response latency (in microseconds) to trigger critical alarm"
          },
          "latencyWarning": {
            "type": "number",
            "description": "Threshold for ping or DNS response latency (in microseconds) to trigger warning alarm"
          },
          "packetLossCritical": {
            "type": "number",
            "description": "Threshold for ping packet loss (in %) to trigger critical alarm"
          },
          "packetLossWarning": {
            "type": "number",
            "description": "Threshold for ping packet loss (in %) to trigger warning alarm"
          },
          "jitterCritical": {
            "type": "number",
            "description": "Threshold for ping jitter (in microseconds) to trigger critical alarm"
          },
          "jitterWarning": {
            "type": "number",
            "description": "Threshold for ping jitter (in microseconds) to trigger critical alarm"
          },
          "httpLatencyCritical": {
            "type": "number",
            "description": "Threshold for HTTP response latency (in microseconds) to trigger critical alarm"
          },
          "httpLatencyWarning": {
            "type": "number",
            "description": "Threshold for HTTP response latency (in microseconds) to trigger warning alarm"
          },
          "httpValidCodes": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "List of HTTP status codes indicating healthy state"
          },
          "dnsValidCodes": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "List of DNS status codes indicating healthy state"
          },
          "latencyCriticalStddev": {
            "type": "number",
            "description": "Threshold for standard deviation (in microseconds) of ping or DNS response latency to trigger critical alarm"
          },
          "latencyWarningStddev": {
            "type": "number",
            "description": "Threshold for standard deviation (in microseconds) of ping or DNS response latency to trigger warning alarm"
          },
          "jitterCriticalStddev": {
            "type": "number",
            "description": "Threshold for standard deviation of ping jitter (in microseconds) to trigger critical alarm"
          },
          "jitterWarningStddev": {
            "type": "number",
            "description": "Threshold for standard deviation of ping jitter (in microseconds) to trigger warning alarm"
          },
          "httpLatencyCriticalStddev": {
            "type": "number",
            "description": "Threshold for standard deviation of HTTP response latency (in microseconds) to trigger critical alarm"
          },
          "httpLatencyWarningStddev": {
            "type": "number",
            "description": "Threshold for standard deviation of HTTP response latency (in microseconds) to trigger warning alarm"
          },
          "unhealthySubtestThreshold": {
            "type": "integer",
            "description": "Number of tasks (across all agents) that must report unhealthy status in order for alarm to be triggered",
            "format": "int64"
          },
          "activation": {
            "$ref": "#/components/schemas/ActivationSettings"
          },
          "certExpiryWarning": {
            "type": "integer",
            "description": "Threshold for remaining validity of TLS certificate (in days) to trigger warning alarm",
            "format": "int64"
          },
          "certExpiryCritical": {
            "type": "integer",
            "description": "Threshold for remaining validity of TLS certificate (in days) to trigger critical alarm",
            "format": "int64"
          },
          "dnsValidIps": {
            "type": "string",
            "description": "Comma separated list of IP addresses expected to be received in response to DNS A or AAAA query"
          }
        }
      },
      "HostnameTest": {
        "title": "HostnameTest",
        "type": "object",
        "properties": {
          "target": {
            "type": "string",
            "description": "Fully qualified DNS name of the target host"
          }
        }
      },
      "IPFamily": {
        "title": "IPFamily",
        "enum": [
          "IP_FAMILY_UNSPECIFIED",
          "IP_FAMILY_V4",
          "IP_FAMILY_V6",
          "IP_FAMILY_DUAL"
        ],
        "type": "string",
        "description": "- IP_FAMILY_UNSPECIFIED: Invalid value.\n - IP_FAMILY_V4: IPv4 only\n - IP_FAMILY_V6: IPv6 only\n - IP_FAMILY_DUAL: IPv4 and IPv6 supported"
      },
      "ImplementType": {
        "title": "ImplementType",
        "enum": [
          "IMPLEMENT_TYPE_UNSPECIFIED",
          "IMPLEMENT_TYPE_RUST",
          "IMPLEMENT_TYPE_NODE",
          "IMPLEMENT_TYPE_NETWORK"
        ],
        "type": "string",
        "description": "- IMPLEMENT_TYPE_RUST: ksynth, a.k.a network agent (implemented in Rust) capable of running all tasks except for page-load and transaction\n - IMPLEMENT_TYPE_NODE: ksynth-agent, a.k.a. app agent (implemented in NodeJS) with Chromium enabled capable of running all tasks\n - IMPLEMENT_TYPE_NETWORK: ksynth-agent, a.k.a. app agent with Chromium disabled, capable of running all tasks except for page-load and transaction"
      },
      "IpTest": {
        "title": "IpTest",
        "type": "object",
        "properties": {
          "targets": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of IP addresses of targets"
          }
        }
      },
      "ListAgentsResponse": {
        "title": "ListAgentsResponse",
        "type": "object",
        "properties": {
          "agents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Agent"
            },
            "description": "List of available agents"
          },
          "invalidCount": {
            "type": "integer",
            "description": "Number of invalid entries encountered while collecting data",
            "format": "int64"
          }
        }
      },
      "ListTestsResponse": {
        "title": "ListTestsResponse",
        "type": "object",
        "properties": {
          "tests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Test"
            },
            "description": "List of configured active or paused tests"
          },
          "invalidCount": {
            "type": "integer",
            "description": "Number of invalid entries encountered while collecting data",
            "format": "int64"
          }
        }
      },
      "MetricData": {
        "title": "MetricData",
        "type": "object",
        "properties": {
          "current": {
            "type": "integer",
            "description": "Current value of metric",
            "format": "int64"
          },
          "rollingAvg": {
            "type": "integer",
            "description": "Rolling average of metric",
            "format": "int64"
          },
          "rollingStddev": {
            "type": "integer",
            "description": "Rolling average of standard deviation of metric",
            "format": "int64"
          },
          "health": {
            "type": "string",
            "description": "Health evaluation status for the metric (healthy | warning | critical)"
          }
        }
      },
      "NetNode": {
        "title": "NetNode",
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "IP address of the node in standard textual notation"
          },
          "asn": {
            "type": "integer",
            "description": "AS number owning the address of the node",
            "format": "int64"
          },
          "asName": {
            "type": "string",
            "description": "Name of the AS owning the address of the node"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "dnsName": {
            "type": "string",
            "description": "DNS name of the node (obtained by reverse DNS resolution)"
          },
          "deviceId": {
            "type": "string",
            "description": "ID of the device corresponding with the node in Kentik configuration"
          },
          "siteId": {
            "type": "string",
            "description": "ID of the site containing the device corresponding with the node in Kentik configuration"
          }
        }
      },
      "NetworkMeshTest": {
        "title": "NetworkMeshTest",
        "type": "object",
        "properties": {
          "useLocalIp": {
            "type": "boolean",
            "description": "Boolean value indicating whether to use local (private) IP address of the target agents"
          }
        }
      },
      "PacketLossData": {
        "title": "PacketLossData",
        "type": "object",
        "properties": {
          "current": {
            "type": "number",
            "description": "Current packet loss value"
          },
          "health": {
            "type": "string",
            "description": "Health evaluation status for the metric (healthy | warning | critical)"
          }
        }
      },
      "PageLoadTest": {
        "title": "PageLoadTest",
        "type": "object",
        "properties": {
          "target": {
            "type": "string",
            "description": "HTTP or HTTPS URL to request"
          },
          "timeout": {
            "type": "integer",
            "description": "HTTP transaction timeout (in milliseconds)",
            "format": "int64"
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of HTTP header values keyed by header names"
          },
          "ignoreTlsErrors": {
            "type": "boolean",
            "description": "Boolean indicating whether to ignore TLS certificate verification errors"
          },
          "cssSelectors": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of CSS selector values keyed by selector name"
          }
        }
      },
      "Path": {
        "title": "Path",
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string",
            "description": "ID of the agent generating the path data"
          },
          "targetIp": {
            "type": "string",
            "description": "IP address of the target of the path"
          },
          "hopCount": {
            "$ref": "#/components/schemas/Stats"
          },
          "maxAsPathLength": {
            "type": "integer",
            "description": "Maximum length of AS path across all traces",
            "format": "int32"
          },
          "traces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PathTrace"
            },
            "description": "Data for individual traces"
          },
          "time": {
            "type": "string",
            "description": "Timestamp (UTC) of initiation of the path trace",
            "format": "date-time"
          }
        }
      },
      "PathTrace": {
        "title": "PathTrace",
        "type": "object",
        "properties": {
          "asPath": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "AS path of the network trace"
          },
          "isComplete": {
            "type": "boolean",
            "description": "Indication whether response from target was received"
          },
          "hops": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TraceHop"
            },
            "description": "List of hops in the trace"
          }
        }
      },
      "PingResults": {
        "title": "PingResults",
        "type": "object",
        "properties": {
          "target": {
            "type": "string",
            "description": "Hostname or address of the probed target"
          },
          "packetLoss": {
            "$ref": "#/components/schemas/PacketLossData"
          },
          "latency": {
            "$ref": "#/components/schemas/MetricData"
          },
          "jitter": {
            "$ref": "#/components/schemas/MetricData"
          },
          "dstIp": {
            "type": "string",
            "description": "IP address of probed target"
          }
        }
      },
      "SetTestStatusRequest": {
        "title": "SetTestStatusRequest",
        "required": [
          "id",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of the test which status is to be modified"
          },
          "status": {
            "$ref": "#/components/schemas/TestStatus"
          }
        }
      },
      "Stats": {
        "title": "Stats",
        "type": "object",
        "properties": {
          "average": {
            "type": "integer",
            "description": "Average value",
            "format": "int32"
          },
          "min": {
            "type": "integer",
            "description": "Minimum value",
            "format": "int32"
          },
          "max": {
            "type": "integer",
            "description": "Maximum value",
            "format": "int32"
          }
        }
      },
      "TaskResults": {
        "title": "TaskResults",
        "type": "object",
        "properties": {
          "ping": {
            "$ref": "#/components/schemas/PingResults"
          },
          "http": {
            "$ref": "#/components/schemas/HTTPResults"
          },
          "dns": {
            "$ref": "#/components/schemas/DNSResults"
          },
          "health": {
            "type": "string",
            "description": "Health status of the task"
          }
        }
      },
      "Test": {
        "title": "Test",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the test",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "User selected name of the test"
          },
          "type": {
            "type": "string",
            "description": "Type of the test"
          },
          "status": {
            "$ref": "#/components/schemas/TestStatus"
          },
          "settings": {
            "$ref": "#/components/schemas/TestSettings"
          },
          "cdate": {
            "type": "string",
            "description": "Creation timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          },
          "edate": {
            "type": "string",
            "description": "Last modification timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserInfo"
          },
          "lastUpdatedBy": {
            "$ref": "#/components/schemas/UserInfo"
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of labels associated with the test"
          }
        }
      },
      "TestPingSettings": {
        "title": "TestPingSettings",
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Number of probe packets to send in one iteration",
            "format": "int64"
          },
          "protocol": {
            "type": "string",
            "description": "Transport protocol to use (icmp | tcp)"
          },
          "port": {
            "type": "integer",
            "description": "Target port for TCP probes (ignored for ICMP)",
            "format": "int64"
          },
          "timeout": {
            "type": "integer",
            "description": "Timeout in milliseconds for execution of the task",
            "format": "int64"
          },
          "delay": {
            "type": "number",
            "description": "Inter-probe delay in milliseconds"
          },
          "dscp": {
            "type": "integer",
            "description": "DSCP code to be set in IP header of probe packets",
            "format": "int64"
          }
        }
      },
      "TestResults": {
        "title": "TestResults",
        "type": "object",
        "properties": {
          "testId": {
            "type": "string",
            "description": "ID of the test for which results are provided"
          },
          "time": {
            "type": "string",
            "description": "Results timestamp (UTC)",
            "format": "date-time"
          },
          "health": {
            "type": "string",
            "description": "Health status of the test"
          },
          "agents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentResults"
            },
            "description": "List of results from agents executing tasks on behalf of the test"
          }
        }
      },
      "TestSettings": {
        "title": "TestSettings",
        "type": "object",
        "properties": {
          "hostname": {
            "$ref": "#/components/schemas/HostnameTest"
          },
          "ip": {
            "$ref": "#/components/schemas/IpTest"
          },
          "agent": {
            "$ref": "#/components/schemas/AgentTest"
          },
          "flow": {
            "$ref": "#/components/schemas/FlowTest"
          },
          "dns": {
            "$ref": "#/components/schemas/DnsTest"
          },
          "url": {
            "$ref": "#/components/schemas/UrlTest"
          },
          "networkGrid": {
            "$ref": "#/components/schemas/IpTest"
          },
          "pageLoad": {
            "$ref": "#/components/schemas/PageLoadTest"
          },
          "dnsGrid": {
            "$ref": "#/components/schemas/DnsTest"
          },
          "networkMesh": {
            "$ref": "#/components/schemas/NetworkMeshTest"
          },
          "agentIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "IDs of agents assigned to run tasks on behalf of the test"
          },
          "tasks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of task names to run for the test"
          },
          "healthSettings": {
            "$ref": "#/components/schemas/HealthSettings"
          },
          "ping": {
            "$ref": "#/components/schemas/TestPingSettings"
          },
          "trace": {
            "$ref": "#/components/schemas/TestTraceSettings"
          },
          "period": {
            "type": "integer",
            "description": "Test evaluation period (in seconds)",
            "format": "int64"
          },
          "family": {
            "$ref": "#/components/schemas/IPFamily"
          },
          "notificationChannels": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of IDs of notification channels for alarms triggered by the test"
          },
          "notes": {
            "type": "string",
            "description": "Add a note or comment for this test"
          }
        }
      },
      "TestStatus": {
        "title": "TestStatus",
        "enum": [
          "TEST_STATUS_UNSPECIFIED",
          "TEST_STATUS_ACTIVE",
          "TEST_STATUS_PAUSED",
          "TEST_STATUS_DELETED",
          "TEST_STATUS_PREVIEW"
        ],
        "type": "string",
        "description": "- TEST_STATUS_UNSPECIFIED: Invalid value.\n - TEST_STATUS_ACTIVE: Test is active.\n - TEST_STATUS_PAUSED: Test is paused.\n - TEST_STATUS_DELETED: Test is deleted. Not user settable.\n - TEST_STATUS_PREVIEW: Test is preview"
      },
      "TestTraceSettings": {
        "title": "TestTraceSettings",
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Number of probe packets to send in one iteration",
            "format": "int64"
          },
          "protocol": {
            "type": "string",
            "description": "Transport protocol to use (icmp | tcp | udp)"
          },
          "port": {
            "type": "integer",
            "description": "Target port for TCP or UDP probes (ignored for ICMP)",
            "format": "int64"
          },
          "timeout": {
            "type": "integer",
            "description": "Timeout in milliseconds for execution of the task",
            "format": "int64"
          },
          "limit": {
            "type": "integer",
            "description": "Maximum number of hops to probe (i.e. maximum TTL)",
            "format": "int64"
          },
          "delay": {
            "type": "number",
            "description": "Inter-probe delay in milliseconds"
          },
          "dscp": {
            "type": "integer",
            "description": "DSCP code to be set in IP header of probe packets",
            "format": "int64"
          }
        }
      },
      "TraceHop": {
        "title": "TraceHop",
        "type": "object",
        "properties": {
          "latency": {
            "type": "integer",
            "description": "Round-trip packet latency to the node (in microseconds) - 0 if no response was received",
            "format": "int32"
          },
          "nodeId": {
            "type": "string",
            "description": "ID of the node for this hop in the Nodes map  - empty if no response was received"
          }
        }
      },
      "UpdateAgentRequest": {
        "title": "UpdateAgentRequest",
        "type": "object",
        "properties": {
          "agent": {
            "$ref": "#/components/schemas/Agent"
          }
        }
      },
      "UpdateAgentResponse": {
        "title": "UpdateAgentResponse",
        "type": "object",
        "properties": {
          "agent": {
            "$ref": "#/components/schemas/Agent"
          }
        }
      },
      "UpdateTestRequest": {
        "title": "UpdateTestRequest",
        "type": "object",
        "properties": {
          "test": {
            "$ref": "#/components/schemas/Test"
          }
        }
      },
      "UpdateTestResponse": {
        "title": "UpdateTestResponse",
        "type": "object",
        "properties": {
          "test": {
            "$ref": "#/components/schemas/Test"
          }
        }
      },
      "UrlTest": {
        "title": "UrlTest",
        "type": "object",
        "properties": {
          "target": {
            "type": "string",
            "description": "HTTP or HTTPS URL to request"
          },
          "timeout": {
            "type": "integer",
            "description": "HTTP transaction timeout (in milliseconds)",
            "format": "int64"
          },
          "method": {
            "type": "string",
            "description": "HTTP method to use (GET | HEAD | PATCH | POST | PUT)"
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of HTTP header values keyed by header names"
          },
          "body": {
            "type": "string",
            "description": "HTTP request body"
          },
          "ignoreTlsErrors": {
            "type": "boolean",
            "description": "Boolean indicating whether to ignore TLS certificate verification errors"
          }
        }
      },
      "CreateUserRequest": {
        "title": "CreateUserRequest",
        "required": [
          "user"
        ],
        "type": "object",
        "properties": {
          "user": {
            "$ref": "#/components/schemas/User"
          }
        }
      },
      "CreateUserResponse": {
        "title": "CreateUserResponse",
        "type": "object",
        "properties": {
          "user": {
            "$ref": "#/components/schemas/User"
          }
        }
      },
      "GetUserResponse": {
        "title": "GetUserResponse",
        "type": "object",
        "properties": {
          "user": {
            "$ref": "#/components/schemas/User"
          }
        }
      },
      "ListUsersResponse": {
        "title": "ListUsersResponse",
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            },
            "description": "Last of users in the account",
            "readOnly": true
          },
          "invalidCount": {
            "type": "integer",
            "description": "Number of invalid entries encountered while collecting data",
            "format": "int64"
          }
        }
      },
      "PermissionEntry": {
        "title": "PermissionEntry",
        "required": [
          "capability",
          "allowed"
        ],
        "type": "object",
        "properties": {
          "capability": {
            "type": "string",
            "description": "String identifying capability that is granted of denied"
          },
          "allowed": {
            "type": "boolean",
            "description": "Flag indicating whether operation is allowed"
          }
        }
      },
      "Role": {
        "title": "Role",
        "enum": [
          "ROLE_UNSPECIFIED",
          "ROLE_MEMBER",
          "ROLE_ADMINISTRATOR",
          "ROLE_SUPER_ADMINISTRATOR"
        ],
        "type": "string",
        "description": "- ROLE_UNSPECIFIED: Invalid value.\n - ROLE_MEMBER: Member\n - ROLE_ADMINISTRATOR: Administrator\n - ROLE_SUPER_ADMINISTRATOR: Super-administrator"
      },
      "UpdateUserRequest": {
        "title": "UpdateUserRequest",
        "required": [
          "user"
        ],
        "type": "object",
        "properties": {
          "user": {
            "$ref": "#/components/schemas/User"
          }
        }
      },
      "UpdateUserResponse": {
        "title": "UpdateUserResponse",
        "type": "object",
        "properties": {
          "user": {
            "$ref": "#/components/schemas/User"
          }
        }
      },
      "User": {
        "title": "User",
        "required": [
          "userEmail",
          "userFullName",
          "role"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "System generated unique identifier",
            "readOnly": true
          },
          "userEmail": {
            "type": "string",
            "description": "User e-mail address (serves also as username)"
          },
          "userFullName": {
            "type": "string",
            "description": "Full name"
          },
          "role": {
            "$ref": "#/components/schemas/Role"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionEntry"
            },
            "description": "Optional list of permissions granted to the user"
          },
          "filter": {
            "type": "string",
            "description": "Optional JSON string defining filter for objects visible to the user"
          },
          "lastLogin": {
            "type": "string",
            "description": "UTC Timestamp of user's last login session",
            "format": "date-time",
            "readOnly": true
          },
          "cdate": {
            "type": "string",
            "description": "Creation timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          },
          "edate": {
            "type": "string",
            "description": "Last modification timestamp (UTC)",
            "format": "date-time",
            "readOnly": true
          }
        }
      }
    },
    "securitySchemes": {
      "email": {
        "type": "apiKey",
        "name": "X-CH-Auth-Email",
        "in": "header"
      },
      "token": {
        "type": "apiKey",
        "name": "X-CH-Auth-API-Token",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "email": [],
      "token": []
    }
  ],
  "tags": [
    {
      "name": "ASGroupService"
    },
    {
      "name": "BgpMonitoringAdminService"
    },
    {
      "name": "BgpMonitoringDataService"
    },
    {
      "name": "CapacityPlanService"
    },
    {
      "name": "CloudExportAdminService"
    },
    {
      "name": "InterfaceService"
    },
    {
      "name": "KmiService"
    },
    {
      "name": "LabelService"
    },
    {
      "name": "PackageService"
    },
    {
      "name": "TenantService"
    },
    {
      "name": "NetworkClassService"
    },
    {
      "name": "NotificationChannelService"
    },
    {
      "name": "SiteService"
    },
    {
      "name": "SyntheticsDataService"
    },
    {
      "name": "SyntheticsAdminService"
    },
    {
      "name": "UserService"
    }
  ],
  "externalDocs": {
    "description": "General information about Kentik APIs",
    "url": "https://kb.kentik.com/v0/Ab09.htm#Ab09-APIs_Overview"
  }
}