{
  "openapi": "3.0.1",
  "info": {
    "title": "Application Insights Data Plane",
    "description": "This API exposes AI metric & event information and associated metadata",
    "termsOfService": "https://dev.applicationinsights.io/tos",
    "contact": {
      "name": "AIAPI Team",
      "url": "https://dev.applicationinsights.io/support",
      "email": "aiapi@microsoft.com"
    },
    "license": {
      "name": "Microsoft",
      "url": "https://dev.applicationinsights.io/license"
    },
    "version": "2018-04-20"
  },
  "servers": [
    {
      "url": "https://management.azure.com/"
    }
  ],
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "paths": {
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Insights/components/{applicationName}/events/$metadata": {
      "get": {
        "summary": "Get OData metadata",
        "description": "Gets OData EDMX metadata describing the event data model",
        "operationId": "Events_GetOdataMetadata",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group to get. The name is case insensitive.",
            "required": true,
            "schema": {
              "maxLength": 90,
              "minLength": 1,
              "pattern": "^[-\\w\\._\\(\\)]+$",
              "type": "string"
            }
          },
          {
            "name": "applicationName",
            "in": "path",
            "description": "Name of the Application Insights application.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "apiVersion",
            "in": "query",
            "description": "Client API version.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/xml;charset=utf-8": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An error response object.",
            "content": {
              "application/xml;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/errorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Insights/components/{applicationName}/events/{eventType}": {
      "get": {
        "summary": "Execute OData query",
        "description": "Executes an OData query for events",
        "operationId": "Events_GetByType",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group to get. The name is case insensitive.",
            "required": true,
            "schema": {
              "maxLength": 90,
              "minLength": 1,
              "pattern": "^[-\\w\\._\\(\\)]+$",
              "type": "string"
            }
          },
          {
            "name": "applicationName",
            "in": "path",
            "description": "Name of the Application Insights application.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventType",
            "in": "path",
            "description": "The type of events to query; either a standard event type (`traces`, `customEvents`, `pageViews`, `requests`, `dependencies`, `exceptions`, `availabilityResults`) or `$all` to query across all event types.",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "$all",
                "traces",
                "customEvents",
                "pageViews",
                "browserTimings",
                "requests",
                "dependencies",
                "exceptions",
                "availabilityResults",
                "performanceCounters",
                "customMetrics"
              ]
            }
          },
          {
            "name": "timespan",
            "in": "query",
            "description": "Optional. The timespan over which to retrieve events. This is an ISO8601 time period value.  This timespan is applied in addition to any that are specified in the Odata expression.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$filter",
            "in": "query",
            "description": "An expression used to filter the returned events",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$search",
            "in": "query",
            "description": "A free-text search expression to match for whether a particular event should be returned",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$orderby",
            "in": "query",
            "description": "A comma-separated list of properties with \\\"asc\\\" (the default) or \\\"desc\\\" to control the order of returned events",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$select",
            "in": "query",
            "description": "Limits the properties to just those requested on each returned event",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$skip",
            "in": "query",
            "description": "The number of items to skip over before returning events",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "$top",
            "in": "query",
            "description": "The number of events to return",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "$format",
            "in": "query",
            "description": "Format for the returned events",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "$count",
            "in": "query",
            "description": "Request a count of matching items included with the returned events",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "$apply",
            "in": "query",
            "description": "An expression used for aggregation over returned events",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "apiVersion",
            "in": "query",
            "description": "Client API version.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/eventsResults"
                }
              }
            }
          },
          "default": {
            "description": "An error response object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Insights/components/{applicationName}/events/{eventType}/{eventId}": {
      "get": {
        "summary": "Get an event",
        "description": "Gets the data for a single event",
        "operationId": "Events_Get",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group to get. The name is case insensitive.",
            "required": true,
            "schema": {
              "maxLength": 90,
              "minLength": 1,
              "pattern": "^[-\\w\\._\\(\\)]+$",
              "type": "string"
            }
          },
          {
            "name": "applicationName",
            "in": "path",
            "description": "Name of the Application Insights application.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventType",
            "in": "path",
            "description": "The type of events to query; either a standard event type (`traces`, `customEvents`, `pageViews`, `requests`, `dependencies`, `exceptions`, `availabilityResults`) or `$all` to query across all event types.",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "$all",
                "traces",
                "customEvents",
                "pageViews",
                "browserTimings",
                "requests",
                "dependencies",
                "exceptions",
                "availabilityResults",
                "performanceCounters",
                "customMetrics"
              ]
            }
          },
          {
            "name": "timespan",
            "in": "query",
            "description": "Optional. The timespan over which to retrieve events. This is an ISO8601 time period value.  This timespan is applied in addition to any that are specified in the Odata expression.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "description": "ID of event.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "apiVersion",
            "in": "query",
            "description": "Client API version.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/eventsResults"
                }
              }
            }
          },
          "default": {
            "description": "An error response object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Insights/components/{applicationName}/metrics/metadata": {
      "get": {
        "summary": "Retrieve metric metadata",
        "description": "Gets metadata describing the available metrics",
        "operationId": "Metrics_GetMetadata",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group to get. The name is case insensitive.",
            "required": true,
            "schema": {
              "maxLength": 90,
              "minLength": 1,
              "pattern": "^[-\\w\\._\\(\\)]+$",
              "type": "string"
            }
          },
          {
            "name": "applicationName",
            "in": "path",
            "description": "Name of the Application Insights application.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "apiVersion",
            "in": "query",
            "description": "Client API version.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful responses",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "default": {
            "description": "An error response object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Insights/components/{applicationName}/metrics/{metricId}": {
      "get": {
        "summary": "Retrieve metric data",
        "description": "Gets metric values for a single metric",
        "operationId": "Metrics_Get",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group to get. The name is case insensitive.",
            "required": true,
            "schema": {
              "maxLength": 90,
              "minLength": 1,
              "pattern": "^[-\\w\\._\\(\\)]+$",
              "type": "string"
            }
          },
          {
            "name": "applicationName",
            "in": "path",
            "description": "Name of the Application Insights application.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "metricId",
            "in": "path",
            "description": "ID of the metric. This is either a standard AI metric, or an application-specific custom metric.",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "requests/count",
                "requests/duration",
                "requests/failed",
                "users/count",
                "users/authenticated",
                "pageViews/count",
                "pageViews/duration",
                "client/processingDuration",
                "client/receiveDuration",
                "client/networkDuration",
                "client/sendDuration",
                "client/totalDuration",
                "dependencies/count",
                "dependencies/failed",
                "dependencies/duration",
                "exceptions/count",
                "exceptions/browser",
                "exceptions/server",
                "sessions/count",
                "performanceCounters/requestExecutionTime",
                "performanceCounters/requestsPerSecond",
                "performanceCounters/requestsInQueue",
                "performanceCounters/memoryAvailableBytes",
                "performanceCounters/exceptionsPerSecond",
                "performanceCounters/processCpuPercentage",
                "performanceCounters/processIOBytesPerSecond",
                "performanceCounters/processPrivateBytes",
                "performanceCounters/processorCpuPercentage",
                "availabilityResults/availabilityPercentage",
                "availabilityResults/duration",
                "billing/telemetryCount",
                "customEvents/count"
              ]
            }
          },
          {
            "name": "timespan",
            "in": "query",
            "description": "The timespan over which to retrieve metric values. This is an ISO8601 time period value. If timespan is omitted, a default time range of `PT12H` (\"last 12 hours\") is used. The actual timespan that is queried may be adjusted by the server based. In all cases, the actual time span used for the query is included in the response.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "interval",
            "in": "query",
            "description": "The time interval to use when retrieving metric values. This is an ISO8601 duration. If interval is omitted, the metric value is aggregated across the entire timespan. If interval is supplied, the server may adjust the interval to a more appropriate size based on the timespan used for the query. In all cases, the actual interval used for the query is included in the response.",
            "schema": {
              "type": "string",
              "format": "duration"
            }
          },
          {
            "name": "aggregation",
            "in": "query",
            "description": "The aggregation to use when computing the metric values. To retrieve more than one aggregation at a time, separate them with a comma. If no aggregation is specified, then the default aggregation for the metric is used.",
            "style": "form",
            "explode": false,
            "schema": {
              "minItems": 1,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "min",
                  "max",
                  "avg",
                  "sum",
                  "count",
                  "unique"
                ]
              }
            }
          },
          {
            "name": "segment",
            "in": "query",
            "description": "The name of the dimension to segment the metric values by. This dimension must be applicable to the metric you are retrieving. To segment by more than one dimension at a time, separate them with a comma (,). In this case, the metric data will be segmented in the order the dimensions are listed in the parameter.",
            "style": "form",
            "explode": false,
            "schema": {
              "minItems": 1,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "applicationBuild",
                  "applicationVersion",
                  "authenticatedOrAnonymousTraffic",
                  "browser",
                  "browserVersion",
                  "city",
                  "cloudRoleName",
                  "cloudServiceName",
                  "continent",
                  "countryOrRegion",
                  "deploymentId",
                  "deploymentUnit",
                  "deviceType",
                  "environment",
                  "hostingLocation",
                  "instanceName"
                ]
              }
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "The number of segments to return.  This value is only valid when segment is specified.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderby",
            "in": "query",
            "description": "The aggregation function and direction to sort the segments by.  This value is only valid when segment is specified.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "An expression used to filter the results.  This value should be a valid OData filter expression where the keys of each clause should be applicable dimensions for the metric you are retrieving.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "apiVersion",
            "in": "query",
            "description": "Client API version.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/metricsResult"
                }
              }
            }
          },
          "default": {
            "description": "An error response object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Insights/components/{applicationName}/query": {
      "get": {
        "summary": "Execute an Analytics query",
        "description": "Executes an Analytics query for data",
        "operationId": "Query_Get",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group to get. The name is case insensitive.",
            "required": true,
            "schema": {
              "maxLength": 90,
              "minLength": 1,
              "pattern": "^[-\\w\\._\\(\\)]+$",
              "type": "string"
            }
          },
          {
            "name": "applicationName",
            "in": "path",
            "description": "Name of the Application Insights application.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "The Analytics query. Learn more about the [Analytics query syntax](https://azure.microsoft.com/documentation/articles/app-insights-analytics-reference/)",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timespan",
            "in": "query",
            "description": "Optional. The timespan over which to query data. This is an ISO8601 time period value.  This timespan is applied in addition to any that are specified in the query expression.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "apiVersion",
            "in": "query",
            "description": "Client API version.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/queryResults"
                }
              }
            }
          },
          "default": {
            "description": "An error response object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Execute an Analytics query",
        "description": "Executes an Analytics query for data. [Here](https://dev.applicationinsights.io/documentation/Using-the-API/Query) is an example for using POST with an Analytics query.",
        "operationId": "Query_Execute",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group to get. The name is case insensitive.",
            "required": true,
            "schema": {
              "maxLength": 90,
              "minLength": 1,
              "pattern": "^[-\\w\\._\\(\\)]+$",
              "type": "string"
            }
          },
          {
            "name": "applicationName",
            "in": "path",
            "description": "Name of the Application Insights application.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "apiVersion",
            "in": "query",
            "description": "Client API version.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Analytics query. Learn more about the [Analytics query syntax](https://azure.microsoft.com/documentation/articles/app-insights-analytics-reference/)",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/queryBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/queryResults"
                }
              }
            }
          },
          "default": {
            "description": "An error response object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "applicationsParam": {
        "type": "array",
        "description": "Application IDs to include in cross-application queries.",
        "items": {
          "type": "string"
        }
      },
      "column": {
        "title": "A table column.",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of this column."
          },
          "type": {
            "type": "string",
            "description": "The data type of this column."
          }
        },
        "description": "A column in a table."
      },
      "errorDetail": {
        "title": "Error details.",
        "required": [
          "code",
          "message"
        ],
        "type": "object",
        "properties": {
          "additionalProperties": {
            "type": "object"
          },
          "code": {
            "type": "string",
            "description": "The error's code."
          },
          "message": {
            "type": "string",
            "description": "A human readable error message."
          },
          "resources": {
            "type": "array",
            "description": "Indicates resources which were responsible for the error.",
            "items": {
              "type": "string"
            }
          },
          "target": {
            "type": "string",
            "description": "Indicates which property in the request is responsible for the error."
          },
          "value": {
            "type": "string",
            "description": "Indicates which value in 'target' is responsible for the error."
          }
        }
      },
      "errorInfo": {
        "title": "The code and message for an error.",
        "required": [
          "code",
          "message"
        ],
        "type": "object",
        "properties": {
          "additionalProperties": {
            "type": "object"
          },
          "code": {
            "type": "string",
            "description": "A machine readable error code."
          },
          "details": {
            "type": "array",
            "description": "error details.",
            "items": {
              "$ref": "#/components/schemas/errorDetail"
            }
          },
          "innererror": {
            "$ref": "#/components/schemas/errorInfo"
          },
          "message": {
            "type": "string",
            "description": "A human readable error message."
          }
        }
      },
      "errorResponse": {
        "title": "Error details.",
        "required": [
          "error"
        ],
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/errorInfo"
          }
        },
        "description": "Contains details when the response code indicates an error."
      },
      "eventId": {
        "type": "string",
        "description": "ID of event."
      },
      "eventType": {
        "type": "string",
        "description": "The type of events to query; either a standard event type (`traces`, `customEvents`, `pageViews`, `requests`, `dependencies`, `exceptions`, `availabilityResults`) or `$all` to query across all event types.",
        "enum": [
          "$all",
          "traces",
          "customEvents",
          "pageViews",
          "browserTimings",
          "requests",
          "dependencies",
          "exceptions",
          "availabilityResults",
          "performanceCounters",
          "customMetrics"
        ]
      },
      "eventsAiInfo": {
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "description": "ID of the application"
          },
          "appName": {
            "type": "string",
            "description": "Name of the application"
          },
          "iKey": {
            "type": "string",
            "description": "iKey of the app"
          },
          "sdkVersion": {
            "type": "string",
            "description": "SDK version of the application"
          }
        },
        "description": "AI related application info for an event result"
      },
      "eventsApplicationInfo": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string",
            "description": "Version of the application"
          }
        },
        "description": "Application info for an event result"
      },
      "eventsApply": {
        "type": "string",
        "description": "An expression used for aggregation over returned events"
      },
      "eventsAvailabilityResultInfo": {
        "type": "object",
        "properties": {
          "duration": {
            "type": "integer",
            "description": "The duration of the availability result",
            "format": "int64"
          },
          "id": {
            "type": "string",
            "description": "The ID of the availability result"
          },
          "location": {
            "type": "string",
            "description": "The location of the availability result"
          },
          "message": {
            "type": "string",
            "description": "The message of the availability result"
          },
          "name": {
            "type": "string",
            "description": "The name of the availability result"
          },
          "performanceBucket": {
            "type": "string",
            "description": "The performance bucket of the availability result"
          },
          "size": {
            "type": "string",
            "description": "The size of the availability result"
          },
          "success": {
            "type": "string",
            "description": "Indicates if the availability result was successful"
          }
        },
        "description": "The availability result info"
      },
      "eventsAvailabilityResultResult": {
        "description": "An availability result result",
        "allOf": [
          {
            "$ref": "#/components/schemas/eventsResultData"
          },
          {
            "type": "object",
            "properties": {
              "availabilityResult": {
                "$ref": "#/components/schemas/eventsAvailabilityResultInfo"
              }
            }
          }
        ]
      },
      "eventsBrowserTimingInfo": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the page"
          },
          "networkDuration": {
            "type": "integer",
            "description": "The network duration of the load",
            "format": "int64"
          },
          "performanceBucket": {
            "type": "string",
            "description": "The performance bucket of the load"
          },
          "processingDuration": {
            "type": "integer",
            "description": "The processing duration of the load",
            "format": "int64"
          },
          "receiveDuration": {
            "type": "integer",
            "description": "The receive duration of the load",
            "format": "int64"
          },
          "sendDuration": {
            "type": "integer",
            "description": "The send duration of the load",
            "format": "int64"
          },
          "totalDuration": {
            "type": "integer",
            "description": "The total duration of the load",
            "format": "int64"
          },
          "url": {
            "type": "string",
            "description": "The url of the page"
          },
          "urlHost": {
            "type": "string",
            "description": "The host of the URL"
          },
          "urlPath": {
            "type": "string",
            "description": "The path of the URL"
          }
        },
        "description": "The browser timing information"
      },
      "eventsBrowserTimingResult": {
        "description": "A browser timing result",
        "allOf": [
          {
            "$ref": "#/components/schemas/eventsResultData"
          },
          {
            "type": "object",
            "properties": {
              "browserTiming": {
                "$ref": "#/components/schemas/eventsBrowserTimingInfo"
              },
              "clientPerformance": {
                "$ref": "#/components/schemas/eventsClientPerformanceInfo"
              }
            }
          }
        ]
      },
      "eventsClientInfo": {
        "type": "object",
        "properties": {
          "browser": {
            "type": "string",
            "description": "Browser of the client"
          },
          "city": {
            "type": "string",
            "description": "City of the client"
          },
          "countryOrRegion": {
            "type": "string",
            "description": "Country or region of the client"
          },
          "ip": {
            "type": "string",
            "description": "IP address of the client"
          },
          "model": {
            "type": "string",
            "description": "Model of the client"
          },
          "os": {
            "type": "string",
            "description": "Operating system of the client"
          },
          "stateOrProvince": {
            "type": "string",
            "description": "State or province of the client"
          },
          "type": {
            "type": "string",
            "description": "Type of the client"
          }
        },
        "description": "Client info for an event result"
      },
      "eventsClientPerformanceInfo": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the client performance"
          }
        },
        "description": "Client performance information"
      },
      "eventsCloudInfo": {
        "type": "object",
        "properties": {
          "roleInstance": {
            "type": "string",
            "description": "Role instance of the cloud"
          },
          "roleName": {
            "type": "string",
            "description": "Role name of the cloud"
          }
        },
        "description": "Cloud info for an event result"
      },
      "eventsCount": {
        "type": "boolean",
        "description": "Request a count of matching items included with the returned events"
      },
      "eventsCustomEventInfo": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the custom event"
          }
        },
        "description": "The custom event information"
      },
      "eventsCustomEventResult": {
        "description": "A custom event result",
        "allOf": [
          {
            "$ref": "#/components/schemas/eventsResultData"
          },
          {
            "type": "object",
            "properties": {
              "customEvent": {
                "$ref": "#/components/schemas/eventsCustomEventInfo"
              }
            }
          }
        ]
      },
      "eventsCustomMetricInfo": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the custom metric"
          },
          "value": {
            "type": "number",
            "description": "The value of the custom metric",
            "format": "double"
          },
          "valueCount": {
            "type": "integer",
            "description": "The count of the custom metric",
            "format": "int32"
          },
          "valueMax": {
            "type": "number",
            "description": "The maximum value of the custom metric",
            "format": "double"
          },
          "valueMin": {
            "type": "number",
            "description": "The minimum value of the custom metric",
            "format": "double"
          },
          "valueStdDev": {
            "type": "number",
            "description": "The standard deviation of the custom metric",
            "format": "double"
          },
          "valueSum": {
            "type": "number",
            "description": "The sum of the custom metric",
            "format": "double"
          }
        },
        "description": "The custom metric info"
      },
      "eventsCustomMetricResult": {
        "description": "A custom metric result",
        "allOf": [
          {
            "$ref": "#/components/schemas/eventsResultData"
          },
          {
            "type": "object",
            "properties": {
              "customMetric": {
                "$ref": "#/components/schemas/eventsCustomMetricInfo"
              }
            }
          }
        ]
      },
      "eventsDependencyInfo": {
        "type": "object",
        "properties": {
          "data": {
            "type": "string",
            "description": "The data of the dependency"
          },
          "duration": {
            "type": "integer",
            "description": "The duration of the dependency",
            "format": "int64"
          },
          "id": {
            "type": "string",
            "description": "The ID of the dependency"
          },
          "name": {
            "type": "string",
            "description": "The name of the dependency"
          },
          "performanceBucket": {
            "type": "string",
            "description": "The performance bucket of the dependency"
          },
          "resultCode": {
            "type": "string",
            "description": "The result code of the dependency"
          },
          "success": {
            "type": "string",
            "description": "Indicates if the dependency was successful"
          },
          "target": {
            "type": "string",
            "description": "The target of the dependency"
          },
          "type": {
            "type": "string",
            "description": "The type of the dependency"
          }
        },
        "description": "The dependency info"
      },
      "eventsDependencyResult": {
        "description": "A dependency result",
        "allOf": [
          {
            "$ref": "#/components/schemas/eventsResultData"
          },
          {
            "type": "object",
            "properties": {
              "dependency": {
                "$ref": "#/components/schemas/eventsDependencyInfo"
              }
            }
          }
        ]
      },
      "eventsExceptionDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the exception detail"
          },
          "message": {
            "type": "string",
            "description": "The message of the exception detail"
          },
          "outerId": {
            "type": "string",
            "description": "The outer ID of the exception detail"
          },
          "parsedStack": {
            "type": "array",
            "description": "The parsed stack",
            "items": {
              "$ref": "#/components/schemas/eventsExceptionDetailsParsedStack"
            }
          },
          "severityLevel": {
            "type": "string",
            "description": "The severity level of the exception detail"
          },
          "type": {
            "type": "string",
            "description": "The type of the exception detail"
          }
        },
        "description": "Exception details"
      },
      "eventsExceptionDetailsParsedStack": {
        "type": "object",
        "properties": {
          "assembly": {
            "type": "string",
            "description": "The assembly of the stack entry"
          },
          "level": {
            "type": "integer",
            "description": "The level of the stack entry",
            "format": "int64"
          },
          "line": {
            "type": "integer",
            "description": "The line of the stack entry",
            "format": "int64"
          },
          "method": {
            "type": "string",
            "description": "The method of the stack entry"
          }
        },
        "description": "A parsed stack entry"
      },
      "eventsExceptionInfo": {
        "type": "object",
        "properties": {
          "assembly": {
            "type": "string",
            "description": "The assembly which threw the exception"
          },
          "details": {
            "type": "array",
            "description": "The details of the exception",
            "items": {
              "$ref": "#/components/schemas/eventsExceptionDetail"
            }
          },
          "handledAt": {
            "type": "string",
            "description": "Indicates where the exception was handled at"
          },
          "innermostAssembly": {
            "type": "string",
            "description": "The inner most assembly of the exception"
          },
          "innermostMessage": {
            "type": "string",
            "description": "The inner most message of the exception"
          },
          "innermostMethod": {
            "type": "string",
            "description": "The inner most method of the exception"
          },
          "innermostType": {
            "type": "string",
            "description": "The inner most type of the exception"
          },
          "message": {
            "type": "string",
            "description": "The message of the exception"
          },
          "method": {
            "type": "string",
            "description": "The method that threw the exception"
          },
          "outerAssembly": {
            "type": "string",
            "description": "The outer assembly of the exception"
          },
          "outerMessage": {
            "type": "string",
            "description": "The outer message of the exception"
          },
          "outerMethod": {
            "type": "string",
            "description": "The outer method of the exception"
          },
          "outerType": {
            "type": "string",
            "description": "The outer type of the exception"
          },
          "problemId": {
            "type": "string",
            "description": "The problem ID of the exception"
          },
          "severityLevel": {
            "type": "integer",
            "description": "The severity level of the exception"
          },
          "type": {
            "type": "string",
            "description": "The type of the exception"
          }
        },
        "description": "The exception info"
      },
      "eventsExceptionResult": {
        "description": "An exception result",
        "allOf": [
          {
            "$ref": "#/components/schemas/eventsResultData"
          },
          {
            "type": "object",
            "properties": {
              "exception": {
                "$ref": "#/components/schemas/eventsExceptionInfo"
              }
            }
          }
        ]
      },
      "eventsFilter": {
        "type": "string",
        "description": "An expression used to filter the returned events"
      },
      "eventsFormat": {
        "type": "string",
        "description": "Format for the returned events"
      },
      "eventsOperationInfo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of the operation"
          },
          "name": {
            "type": "string",
            "description": "Name of the operation"
          },
          "parentId": {
            "type": "string",
            "description": "Parent ID of the operation"
          },
          "syntheticSource": {
            "type": "string",
            "description": "Synthetic source of the operation"
          }
        },
        "description": "Operation info for an event result"
      },
      "eventsOrderBy": {
        "type": "string",
        "description": "A comma-separated list of properties with \\\"asc\\\" (the default) or \\\"desc\\\" to control the order of returned events"
      },
      "eventsPageViewInfo": {
        "type": "object",
        "properties": {
          "duration": {
            "type": "string",
            "description": "The duration of the page view"
          },
          "name": {
            "type": "string",
            "description": "The name of the page"
          },
          "performanceBucket": {
            "type": "string",
            "description": "The performance bucket of the page view"
          },
          "url": {
            "type": "string",
            "description": "The URL of the page"
          }
        },
        "description": "The page view information"
      },
      "eventsPageViewResult": {
        "description": "A page view result",
        "allOf": [
          {
            "$ref": "#/components/schemas/eventsResultData"
          },
          {
            "type": "object",
            "properties": {
              "pageView": {
                "$ref": "#/components/schemas/eventsPageViewInfo"
              }
            }
          }
        ]
      },
      "eventsPerformanceCounterInfo": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "The category of the performance counter"
          },
          "counter": {
            "type": "string",
            "description": "The counter of the performance counter"
          },
          "instance": {
            "type": "string",
            "description": "The instance of the performance counter"
          },
          "instanceName": {
            "type": "string",
            "description": "The instance name of the performance counter"
          },
          "name": {
            "type": "string",
            "description": "The name of the performance counter"
          },
          "value": {
            "type": "number",
            "description": "The value of the performance counter",
            "format": "double"
          }
        },
        "description": "The performance counter info"
      },
      "eventsPerformanceCounterResult": {
        "description": "A performance counter result",
        "allOf": [
          {
            "$ref": "#/components/schemas/eventsResultData"
          },
          {
            "type": "object",
            "properties": {
              "performanceCounter": {
                "$ref": "#/components/schemas/eventsPerformanceCounterInfo"
              }
            }
          }
        ]
      },
      "eventsRequestInfo": {
        "type": "object",
        "properties": {
          "duration": {
            "type": "number",
            "description": "The duration of the request",
            "format": "double"
          },
          "id": {
            "type": "string",
            "description": "The ID of the request"
          },
          "name": {
            "type": "string",
            "description": "The name of the request"
          },
          "performanceBucket": {
            "type": "string",
            "description": "The performance bucket of the request"
          },
          "resultCode": {
            "type": "string",
            "description": "The result code of the request"
          },
          "source": {
            "type": "string",
            "description": "The source of the request"
          },
          "success": {
            "type": "string",
            "description": "Indicates if the request was successful"
          },
          "url": {
            "type": "string",
            "description": "The URL of the request"
          }
        },
        "description": "The request info"
      },
      "eventsRequestResult": {
        "description": "A request result",
        "allOf": [
          {
            "$ref": "#/components/schemas/eventsResultData"
          },
          {
            "type": "object",
            "properties": {
              "request": {
                "$ref": "#/components/schemas/eventsRequestInfo"
              }
            }
          }
        ]
      },
      "eventsResult": {
        "type": "object",
        "properties": {
          "@ai.messages": {
            "type": "array",
            "description": "OData messages for this response.",
            "items": {
              "$ref": "#/components/schemas/errorInfo"
            }
          },
          "value": {
            "$ref": "#/components/schemas/eventsResultData"
          }
        },
        "description": "An event query result."
      },
      "eventsResultData": {
        "type": "object",
        "properties": {
          "ai": {
            "$ref": "#/components/schemas/eventsAiInfo"
          },
          "application": {
            "$ref": "#/components/schemas/eventsApplicationInfo"
          },
          "client": {
            "$ref": "#/components/schemas/eventsClientInfo"
          },
          "cloud": {
            "$ref": "#/components/schemas/eventsCloudInfo"
          },
          "count": {
            "type": "integer",
            "description": "Count of the event",
            "format": "int64"
          },
          "customDimensions": {
            "type": "object",
            "properties": {
              "additionalProperties": {
                "type": "object"
              }
            },
            "description": "Custom dimensions of the event"
          },
          "customMeasurements": {
            "type": "object",
            "properties": {
              "additionalProperties": {
                "type": "object"
              }
            },
            "description": "Custom measurements of the event"
          },
          "id": {
            "type": "string",
            "description": "The unique ID for this event."
          },
          "operation": {
            "$ref": "#/components/schemas/eventsOperationInfo"
          },
          "session": {
            "$ref": "#/components/schemas/eventsSessionInfo"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp of the event",
            "format": "date-time"
          },
          "type": {
            "$ref": "#/components/schemas/eventType"
          },
          "user": {
            "$ref": "#/components/schemas/eventsUserInfo"
          }
        },
        "description": "Events query result data.",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "eventsResults": {
        "type": "object",
        "properties": {
          "@ai.messages": {
            "type": "array",
            "description": "OData messages for this response.",
            "items": {
              "$ref": "#/components/schemas/errorInfo"
            }
          },
          "@odata.context": {
            "type": "string",
            "description": "OData context metadata endpoint for this response"
          },
          "value": {
            "type": "array",
            "description": "Contents of the events query result.",
            "items": {
              "$ref": "#/components/schemas/eventsResultData"
            }
          }
        },
        "description": "An events query result."
      },
      "eventsSearch": {
        "type": "string",
        "description": "A free-text search expression to match for whether a particular event should be returned"
      },
      "eventsSelect": {
        "type": "string",
        "description": "Limits the properties to just those requested on each returned event"
      },
      "eventsSessionInfo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of the session"
          }
        },
        "description": "Session info for an event result"
      },
      "eventsSkip": {
        "type": "integer",
        "description": "The number of items to skip over before returning events",
        "format": "int32"
      },
      "eventsTimespan": {
        "type": "string",
        "description": "Optional. The timespan over which to retrieve events. This is an ISO8601 time period value.  This timespan is applied in addition to any that are specified in the Odata expression."
      },
      "eventsTop": {
        "type": "integer",
        "description": "The number of events to return",
        "format": "int32"
      },
      "eventsTraceInfo": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "The trace message"
          },
          "severityLevel": {
            "type": "integer",
            "description": "The trace severity level"
          }
        },
        "description": "The trace information"
      },
      "eventsTraceResult": {
        "description": "A trace result",
        "allOf": [
          {
            "$ref": "#/components/schemas/eventsResultData"
          },
          {
            "type": "object",
            "properties": {
              "trace": {
                "$ref": "#/components/schemas/eventsTraceInfo"
              }
            }
          }
        ]
      },
      "eventsUserInfo": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "Account ID of the user"
          },
          "authenticatedId": {
            "type": "string",
            "description": "Authenticated ID of the user"
          },
          "id": {
            "type": "string",
            "description": "ID of the user"
          }
        },
        "description": "User info for an event result"
      },
      "metricId": {
        "type": "string",
        "description": "ID of the metric. This is either a standard AI metric, or an application-specific custom metric.",
        "enum": [
          "requests/count",
          "requests/duration",
          "requests/failed",
          "users/count",
          "users/authenticated",
          "pageViews/count",
          "pageViews/duration",
          "client/processingDuration",
          "client/receiveDuration",
          "client/networkDuration",
          "client/sendDuration",
          "client/totalDuration",
          "dependencies/count",
          "dependencies/failed",
          "dependencies/duration",
          "exceptions/count",
          "exceptions/browser",
          "exceptions/server",
          "sessions/count",
          "performanceCounters/requestExecutionTime",
          "performanceCounters/requestsPerSecond",
          "performanceCounters/requestsInQueue",
          "performanceCounters/memoryAvailableBytes",
          "performanceCounters/exceptionsPerSecond",
          "performanceCounters/processCpuPercentage",
          "performanceCounters/processIOBytesPerSecond",
          "performanceCounters/processPrivateBytes",
          "performanceCounters/processorCpuPercentage",
          "availabilityResults/availabilityPercentage",
          "availabilityResults/duration",
          "billing/telemetryCount",
          "customEvents/count"
        ]
      },
      "metricsAggregation": {
        "minItems": 1,
        "type": "array",
        "description": "The aggregation to use when computing the metric values. To retrieve more than one aggregation at a time, separate them with a comma. If no aggregation is specified, then the default aggregation for the metric is used.",
        "items": {
          "type": "string",
          "enum": [
            "min",
            "max",
            "avg",
            "sum",
            "count",
            "unique"
          ]
        }
      },
      "metricsFilter": {
        "type": "string",
        "description": "An expression used to filter the results.  This value should be a valid OData filter expression where the keys of each clause should be applicable dimensions for the metric you are retrieving."
      },
      "metricsInterval": {
        "type": "string",
        "description": "The time interval to use when retrieving metric values. This is an ISO8601 duration. If interval is omitted, the metric value is aggregated across the entire timespan. If interval is supplied, the server may adjust the interval to a more appropriate size based on the timespan used for the query. In all cases, the actual interval used for the query is included in the response.",
        "format": "duration"
      },
      "metricsOrderBy": {
        "type": "string",
        "description": "The aggregation function and direction to sort the segments by.  This value is only valid when segment is specified."
      },
      "metricsPostBody": {
        "type": "array",
        "description": "Metrics request body",
        "items": {
          "$ref": "#/components/schemas/metricsPostBodySchema"
        }
      },
      "metricsPostBodySchema": {
        "required": [
          "id",
          "parameters"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "An identifier for this query.  Must be unique within the post body of the request.  This identifier will be the 'id' property of the response object representing this query."
          },
          "parameters": {
            "required": [
              "metricId"
            ],
            "type": "object",
            "properties": {
              "aggregation": {
                "$ref": "#/components/schemas/metricsAggregation"
              },
              "filter": {
                "$ref": "#/components/schemas/metricsFilter"
              },
              "interval": {
                "$ref": "#/components/schemas/metricsInterval"
              },
              "metricId": {
                "$ref": "#/components/schemas/metricId"
              },
              "orderby": {
                "$ref": "#/components/schemas/metricsOrderBy"
              },
              "segment": {
                "$ref": "#/components/schemas/metricsSegment"
              },
              "timespan": {
                "$ref": "#/components/schemas/metricsTimespan"
              },
              "top": {
                "$ref": "#/components/schemas/metricsTop"
              }
            },
            "description": "The parameters for a single metrics query"
          }
        },
        "description": "A metric request"
      },
      "metricsResult": {
        "type": "object",
        "properties": {
          "value": {
            "$ref": "#/components/schemas/metricsResultInfo"
          }
        },
        "description": "A metric result."
      },
      "metricsResultInfo": {
        "type": "object",
        "properties": {
          "end": {
            "type": "string",
            "description": "Start time of the metric.",
            "format": "date_time"
          },
          "interval": {
            "type": "string",
            "description": "The interval used to segment the metric data.",
            "format": "duration"
          },
          "segments": {
            "type": "array",
            "description": "Segmented metric data (if segmented).",
            "items": {
              "$ref": "#/components/schemas/metricsSegmentInfo"
            }
          },
          "start": {
            "type": "string",
            "description": "Start time of the metric.",
            "format": "date_time"
          }
        },
        "additionalProperties": {
          "type": "object"
        },
        "description": "A metric result data."
      },
      "metricsResults": {
        "type": "array",
        "description": "A set of metric results.",
        "items": {
          "required": [
            "body",
            "id",
            "status"
          ],
          "type": "object",
          "properties": {
            "body": {
              "$ref": "#/components/schemas/metricsResult"
            },
            "id": {
              "type": "string",
              "description": "The specified ID for this metric."
            },
            "status": {
              "type": "integer",
              "description": "The HTTP status code of this metric query.",
              "format": "int32"
            }
          }
        }
      },
      "metricsSegment": {
        "minItems": 1,
        "type": "array",
        "description": "The name of the dimension to segment the metric values by. This dimension must be applicable to the metric you are retrieving. To segment by more than one dimension at a time, separate them with a comma (,). In this case, the metric data will be segmented in the order the dimensions are listed in the parameter.",
        "items": {
          "type": "string",
          "enum": [
            "applicationBuild",
            "applicationVersion",
            "authenticatedOrAnonymousTraffic",
            "browser",
            "browserVersion",
            "city",
            "cloudRoleName",
            "cloudServiceName",
            "continent",
            "countryOrRegion",
            "deploymentId",
            "deploymentUnit",
            "deviceType",
            "environment",
            "hostingLocation",
            "instanceName"
          ]
        }
      },
      "metricsSegmentInfo": {
        "type": "object",
        "properties": {
          "end": {
            "type": "string",
            "description": "Start time of the metric segment (only when an interval was specified).",
            "format": "date_time"
          },
          "segments": {
            "type": "array",
            "description": "Segmented metric data (if further segmented).",
            "items": {
              "$ref": "#/components/schemas/metricsSegmentInfo"
            }
          },
          "start": {
            "type": "string",
            "description": "Start time of the metric segment (only when an interval was specified).",
            "format": "date_time"
          }
        },
        "additionalProperties": true,
        "description": "A metric segment"
      },
      "metricsTimespan": {
        "type": "string",
        "description": "The timespan over which to retrieve metric values. This is an ISO8601 time period value. If timespan is omitted, a default time range of `PT12H` (\"last 12 hours\") is used. The actual timespan that is queried may be adjusted by the server based. In all cases, the actual time span used for the query is included in the response."
      },
      "metricsTop": {
        "type": "integer",
        "description": "The number of segments to return.  This value is only valid when segment is specified.",
        "format": "int32"
      },
      "queryBody": {
        "required": [
          "query"
        ],
        "type": "object",
        "properties": {
          "applications": {
            "$ref": "#/components/schemas/applicationsParam"
          },
          "query": {
            "$ref": "#/components/schemas/queryParam"
          },
          "timespan": {
            "$ref": "#/components/schemas/queryTimespan"
          }
        },
        "description": "The Analytics query. Learn more about the [Analytics query syntax](https://azure.microsoft.com/documentation/articles/app-insights-analytics-reference/)"
      },
      "queryParam": {
        "type": "string",
        "description": "The Analytics query. Learn more about the [Analytics query syntax](https://azure.microsoft.com/documentation/articles/app-insights-analytics-reference/)"
      },
      "queryResults": {
        "title": "A query response.",
        "required": [
          "tables"
        ],
        "type": "object",
        "properties": {
          "tables": {
            "type": "array",
            "description": "The list of tables, columns and rows.",
            "items": {
              "$ref": "#/components/schemas/table"
            }
          }
        },
        "description": "Contains the tables, columns & rows resulting from a query."
      },
      "queryTimespan": {
        "type": "string",
        "description": "Optional. The timespan over which to query data. This is an ISO8601 time period value.  This timespan is applied in addition to any that are specified in the query expression."
      },
      "table": {
        "title": "A query response table.",
        "required": [
          "columns",
          "name",
          "rows"
        ],
        "type": "object",
        "properties": {
          "columns": {
            "type": "array",
            "description": "The list of columns in this table.",
            "items": {
              "$ref": "#/components/schemas/column"
            }
          },
          "name": {
            "type": "string",
            "description": "The name of the table."
          },
          "rows": {
            "type": "array",
            "description": "The resulting rows from this query.",
            "items": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        },
        "description": "Contains the columns and rows for one table in a query response."
      }
    },
    "parameters": {
      "apiVersion": {
        "name": "apiVersion",
        "in": "query",
        "description": "Client API version.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "appId": {
        "name": "appId",
        "in": "path",
        "description": "ID of the application. This is Application ID from the API Access settings blade in the Azure portal.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "applicationName": {
        "name": "applicationName",
        "in": "path",
        "description": "Name of the Application Insights application.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "applicationsParam": {
        "name": "applications",
        "in": "query",
        "description": "A list of applications over which to query.",
        "schema": {
          "type": "string"
        }
      },
      "eventId": {
        "name": "eventId",
        "in": "path",
        "description": "ID of event.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "eventType": {
        "name": "eventType",
        "in": "path",
        "description": "The type of events to query; either a standard event type (`traces`, `customEvents`, `pageViews`, `requests`, `dependencies`, `exceptions`, `availabilityResults`) or `$all` to query across all event types.",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "$all",
            "traces",
            "customEvents",
            "pageViews",
            "browserTimings",
            "requests",
            "dependencies",
            "exceptions",
            "availabilityResults",
            "performanceCounters",
            "customMetrics"
          ]
        }
      },
      "eventsApply": {
        "name": "$apply",
        "in": "query",
        "description": "An expression used for aggregation over returned events",
        "schema": {
          "type": "string"
        }
      },
      "eventsCount": {
        "name": "$count",
        "in": "query",
        "description": "Request a count of matching items included with the returned events",
        "schema": {
          "type": "boolean"
        }
      },
      "eventsFilter": {
        "name": "$filter",
        "in": "query",
        "description": "An expression used to filter the returned events",
        "schema": {
          "type": "string"
        }
      },
      "eventsFormat": {
        "name": "$format",
        "in": "query",
        "description": "Format for the returned events",
        "schema": {
          "type": "string"
        }
      },
      "eventsOrderBy": {
        "name": "$orderby",
        "in": "query",
        "description": "A comma-separated list of properties with \\\"asc\\\" (the default) or \\\"desc\\\" to control the order of returned events",
        "schema": {
          "type": "string"
        }
      },
      "eventsSearch": {
        "name": "$search",
        "in": "query",
        "description": "A free-text search expression to match for whether a particular event should be returned",
        "schema": {
          "type": "string"
        }
      },
      "eventsSelect": {
        "name": "$select",
        "in": "query",
        "description": "Limits the properties to just those requested on each returned event",
        "schema": {
          "type": "string"
        }
      },
      "eventsSkip": {
        "name": "$skip",
        "in": "query",
        "description": "The number of items to skip over before returning events",
        "schema": {
          "type": "integer",
          "format": "int32"
        }
      },
      "eventsTimespan": {
        "name": "timespan",
        "in": "query",
        "description": "Optional. The timespan over which to retrieve events. This is an ISO8601 time period value.  This timespan is applied in addition to any that are specified in the Odata expression.",
        "schema": {
          "type": "string"
        }
      },
      "eventsTop": {
        "name": "$top",
        "in": "query",
        "description": "The number of events to return",
        "schema": {
          "type": "integer",
          "format": "int32"
        }
      },
      "metricId": {
        "name": "metricId",
        "in": "path",
        "description": "ID of the metric. This is either a standard AI metric, or an application-specific custom metric.",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "requests/count",
            "requests/duration",
            "requests/failed",
            "users/count",
            "users/authenticated",
            "pageViews/count",
            "pageViews/duration",
            "client/processingDuration",
            "client/receiveDuration",
            "client/networkDuration",
            "client/sendDuration",
            "client/totalDuration",
            "dependencies/count",
            "dependencies/failed",
            "dependencies/duration",
            "exceptions/count",
            "exceptions/browser",
            "exceptions/server",
            "sessions/count",
            "performanceCounters/requestExecutionTime",
            "performanceCounters/requestsPerSecond",
            "performanceCounters/requestsInQueue",
            "performanceCounters/memoryAvailableBytes",
            "performanceCounters/exceptionsPerSecond",
            "performanceCounters/processCpuPercentage",
            "performanceCounters/processIOBytesPerSecond",
            "performanceCounters/processPrivateBytes",
            "performanceCounters/processorCpuPercentage",
            "availabilityResults/availabilityPercentage",
            "availabilityResults/duration",
            "billing/telemetryCount",
            "customEvents/count"
          ]
        }
      },
      "metricsAggregation": {
        "name": "aggregation",
        "in": "query",
        "description": "The aggregation to use when computing the metric values. To retrieve more than one aggregation at a time, separate them with a comma. If no aggregation is specified, then the default aggregation for the metric is used.",
        "style": "form",
        "explode": false,
        "schema": {
          "minItems": 1,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "min",
              "max",
              "avg",
              "sum",
              "count",
              "unique"
            ]
          }
        }
      },
      "metricsFilter": {
        "name": "filter",
        "in": "query",
        "description": "An expression used to filter the results.  This value should be a valid OData filter expression where the keys of each clause should be applicable dimensions for the metric you are retrieving.",
        "schema": {
          "type": "string"
        }
      },
      "metricsInterval": {
        "name": "interval",
        "in": "query",
        "description": "The time interval to use when retrieving metric values. This is an ISO8601 duration. If interval is omitted, the metric value is aggregated across the entire timespan. If interval is supplied, the server may adjust the interval to a more appropriate size based on the timespan used for the query. In all cases, the actual interval used for the query is included in the response.",
        "schema": {
          "type": "string",
          "format": "duration"
        }
      },
      "metricsOrderBy": {
        "name": "orderby",
        "in": "query",
        "description": "The aggregation function and direction to sort the segments by.  This value is only valid when segment is specified.",
        "schema": {
          "type": "string"
        }
      },
      "metricsSegment": {
        "name": "segment",
        "in": "query",
        "description": "The name of the dimension to segment the metric values by. This dimension must be applicable to the metric you are retrieving. To segment by more than one dimension at a time, separate them with a comma (,). In this case, the metric data will be segmented in the order the dimensions are listed in the parameter.",
        "style": "form",
        "explode": false,
        "schema": {
          "minItems": 1,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "applicationBuild",
              "applicationVersion",
              "authenticatedOrAnonymousTraffic",
              "browser",
              "browserVersion",
              "city",
              "cloudRoleName",
              "cloudServiceName",
              "continent",
              "countryOrRegion",
              "deploymentId",
              "deploymentUnit",
              "deviceType",
              "environment",
              "hostingLocation",
              "instanceName"
            ]
          }
        }
      },
      "metricsTimespan": {
        "name": "timespan",
        "in": "query",
        "description": "The timespan over which to retrieve metric values. This is an ISO8601 time period value. If timespan is omitted, a default time range of `PT12H` (\"last 12 hours\") is used. The actual timespan that is queried may be adjusted by the server based. In all cases, the actual time span used for the query is included in the response.",
        "schema": {
          "type": "string"
        }
      },
      "metricsTop": {
        "name": "top",
        "in": "query",
        "description": "The number of segments to return.  This value is only valid when segment is specified.",
        "schema": {
          "type": "integer",
          "format": "int32"
        }
      },
      "queryParam": {
        "name": "query",
        "in": "query",
        "description": "The Analytics query. Learn more about the [Analytics query syntax](https://azure.microsoft.com/documentation/articles/app-insights-analytics-reference/)",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "queryTimespan": {
        "name": "timespan",
        "in": "query",
        "description": "Optional. The timespan over which to query data. This is an ISO8601 time period value.  This timespan is applied in addition to any that are specified in the query expression.",
        "schema": {
          "type": "string"
        }
      },
      "resourceGroupName": {
        "name": "resourceGroupName",
        "in": "path",
        "description": "The name of the resource group to get. The name is case insensitive.",
        "required": true,
        "schema": {
          "maxLength": 90,
          "minLength": 1,
          "pattern": "^[-\\w\\._\\(\\)]+$",
          "type": "string"
        }
      },
      "subscriptionId": {
        "name": "subscriptionId",
        "in": "path",
        "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    },
    "requestBodies": {
      "metricsPostBody": {
        "description": "The batched metrics query.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/metricsPostBody"
            }
          }
        },
        "required": true
      },
      "queryBody": {
        "description": "The Analytics query. Learn more about the [Analytics query syntax](https://azure.microsoft.com/documentation/articles/app-insights-analytics-reference/)",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/queryBody"
            }
          }
        },
        "required": true
      }
    },
    "securitySchemes": {
      "azure_auth": {
        "type": "oauth2",
        "description": "Azure Active Directory OAuth2 Flow"
      }
    }
  }
}