openapi: 3.0.1
info:
  description: Manage ThousandEyes Dashboards.
  title: Dashboards API
  version: 7.0.41
servers:
- description: ThousandEyes API production URL
  url: https://api.thousandeyes.com/v7
security:
- BearerAuth: []
tags:
- description: Dashboards and Widgets operations
  name: Dashboards
- description: Dashboard Snapshots CRUD operations
  name: Dashboard Snapshots
- name: Dashboards Filters
paths:
  /dashboards:
    get:
      description: |
        Returns a list of dashboards and their settings within your account group.
      operationId: getDashboards
      parameters:
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ApiDashboards'
          description: OK
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: List dashboards
      tags:
      - Dashboards
    post:
      description: |
        Creates a new dashboard in your account group. To create a dashboard,  you must have one of the following permissions:
        * `Edit dashboard templates for all users in account group` permission (Account Admin).

        * `Edit own dashboard templates` permission (Regular User).
      operationId: createDashboard
      parameters:
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Dashboard'
        description: Request body schema to create a dashboard.
        required: true
      responses:
        "201":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Dashboard'
          description: Created
          headers:
            Location:
              $ref: '#/components/headers/Location'
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Create dashboard
      tags:
      - Dashboards
  /dashboards/{dashboardId}:
    delete:
      description: |
        Deletes a dashboard using the `dashboardId` provided in the request.

        **Note**:
        * Users with the `Edit dashboard templates for all users in account group` permission (Account Admin) can delete any dashboard.
        * Users with the `Edit own dashboard templates` permission (Regular User) can only delete the dashboards they have created themselves.
      operationId: deleteDashboard
      parameters:
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      - description: A Identifier for a dashboard which can be obtained from the `/dashboards`
          endpoint.
        example: 646f4d2ce3c99b0536c3821e
        explode: false
        in: path
        name: dashboardId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: No content
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Delete dashboard
      tags:
      - Dashboards
    get:
      description: |
        Returns a list of widgets within a dashboard, along with the dashboard's metadata.
      operationId: getDashboard
      parameters:
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      - description: A Identifier for a dashboard which can be obtained from the `/dashboards`
          endpoint.
        example: 646f4d2ce3c99b0536c3821e
        explode: false
        in: path
        name: dashboardId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ApiDashboard'
          description: OK
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Retrieve dashboard
      tags:
      - Dashboards
    put:
      description: "Updates an existing dashboard in your account group. \n\n**Note**:\
        \ \n* Users with the `Edit dashboard templates for all users in account group`\
        \ permission (Account Admin) can update any dashboard.\n* Users with the `Edit\
        \ own dashboard templates` permission (Regular User) can only update the dashboards\
        \ they have created themselves.\n"
      operationId: updateDashboard
      parameters:
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      - description: A Identifier for a dashboard which can be obtained from the `/dashboards`
          endpoint.
        example: 646f4d2ce3c99b0536c3821e
        explode: false
        in: path
        name: dashboardId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Dashboard'
        description: Request body schema to update a dashboard.
        required: true
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Dashboard'
          description: OK
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Update dashboard
      tags:
      - Dashboards
  /dashboards/{dashboardId}/widgets/{widgetId}:
    get:
      description: |
        Returns the raw data displayed within a widget in the dashboard.
      operationId: getDashboardWidgetData
      parameters:
      - description: A Identifier for a dashboard which can be obtained from the `/dashboards`
          endpoint.
        example: 646f4d2ce3c99b0536c3821e
        explode: false
        in: path
        name: dashboardId
        required: true
        schema:
          type: string
        style: simple
      - description: A Identifier for a widget.
        example: unpmg
        explode: false
        in: path
        name: widgetId
        required: true
        schema:
          type: string
        style: simple
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      - description: |-
          A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks.
          For a precise date range, use `startDate` and `endDate`.
        in: query
        name: window
        schema:
          example: 12h
          pattern: "^\\d+(?:[smhdw]{1})?$"
          type: string
      - description: "Use with the `endDate` parameter. Include the complete time\
          \ (hours, minutes, and seconds) in UTC time zone, following the ISO 8601\
          \ date-time format. See the example for reference. Please note that this\
          \ parameter can't be used with `window`."
        in: query
        name: startDate
        schema:
          example: 2022-07-17T22:00:54Z
          format: date-time
          type: string
      - description: "Defaults to current time the request is made. Use with the `startDate`\
          \ parameter. Include the complete time (hours, minutes, and seconds) in\
          \ UTC time zone, following the ISO 8601 date-time format. See the example\
          \ for reference. Please note that this parameter can't be used with `window`."
        in: query
        name: endDate
        schema:
          example: 2022-07-18T22:00:54Z
          format: date-time
          type: string
      - description: |-
          Optionally specify the maximum number of objects to retrieve. This only applies to the **Alert List** and **Test Table** Widgets.
          * The default for the **Alert List** widget is set by its limitBy configuration.
          * The default value for the **Test Table** widget is 10.
        example: 10
        explode: true
        in: query
        name: max
        required: false
        schema:
          type: number
        style: form
      - description: "An optional pagination cursor. This parameter should not not\
          \ be used directly. Instead, use the `_links` returned by the API. This\
          \ feature is only available in the **Test Table** widget."
        example: bGFzdFJvdW5kSWQ9MTY4MTQxMDQ4MA
        explode: true
        in: query
        name: cursor
        required: false
        schema:
          type: string
        style: form
      - description: |-
          Optional sorting parameter with attributes listed comma-separated. This only applies to the **Alert List** and **Test Table** Widgets.
          * For the **Alert List** widget, you can sort by `alertStatus` or `startTime`. The default is `alertStatus`.
          * For the **Test Table** widget, you can sort by `alertStatus`, `testName`, or `testType`. The sequence might vary from the web application. The default sort attribute is `alertStatus`.
        example: alertStatus
        explode: true
        in: query
        name: sort
        required: false
        schema:
          type: string
        style: form
      - description: Optional sorting order parameter that accepts either `asc` (ascending)
          or `desc` (descending) values. This only applies to the **Alert List** and
          **Test Table** Widgets.
        example: asc
        explode: true
        in: query
        name: order
        required: false
        schema:
          $ref: '#/components/schemas/DashboardOrder'
        style: form
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ApiWidgetDataResponse'
          description: OK
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Retrieve dashboard widget data
      tags:
      - Dashboards
  /dashboard-snapshots:
    get:
      description: |
        Returns a list of dashboard snapshots within your account group. Use this data to identify a specific dashboard snapshot, which can be used in other endpoints to access aggregated data. The `View Snapshots` permission is required to use this endpoint."
      operationId: getDashboardSnapshots
      parameters:
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      - example: 646f4d2ce3c99b0536c3821e
        explode: true
        in: query
        name: dashboardId
        required: false
        schema:
          type: string
        style: form
      - description: (Optional) Opaque cursor used for pagination. Clients should
          use `next` value from `_links` instead of this parameter.
        in: query
        name: cursor
        schema:
          type: string
          example: null
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DashboardSnapshotsPage'
          description: OK
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: List dashboard snapshots
      tags:
      - Dashboard Snapshots
    post:
      description: |
        Creates a new dashboard snapshot within your account group. The `Edit Snapshots` permission is required to use this endpoint.
      operationId: createDashboardSnapshot
      parameters:
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateDashboardSnapshotRequest'
        description: Request body schema to create a dashboard snapshot.
        required: true
      responses:
        "201":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DashboardSnapshotResponse'
          description: Created
          headers:
            Location:
              $ref: '#/components/headers/Location'
            X-Dashboard-Snapshot-Rate-Limit-Limit:
              $ref: '#/components/headers/DashboardSnapshotRateLimit'
            X-Dashboard-Snapshot-Rate-Limit-Remaining:
              $ref: '#/components/headers/DashboardSnapshotRateLimitRemaining'
            X-Dashboard-Snapshot-Rate-Limit-Reset:
              $ref: '#/components/headers/DashboardSnapshotRateLimitReset'
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          description: Exhausted rate limit for snapshot creation
          headers:
            X-Dashboard-Snapshot-Rate-Limit-Limit:
              $ref: '#/components/headers/DashboardSnapshotRateLimit'
            X-Dashboard-Snapshot-Rate-Limit-Remaining:
              $ref: '#/components/headers/DashboardSnapshotRateLimitRemaining'
            X-Dashboard-Snapshot-Rate-Limit-Reset:
              $ref: '#/components/headers/DashboardSnapshotRateLimitReset'
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Create dashboard snapshot
      tags:
      - Dashboard Snapshots
  /dashboard-snapshots/{snapshotId}:
    delete:
      description: |
        Deletes a dashboard snapshot using the `snapshotId` provided in the request. Users with the `Edit reports for all users in account group` permission (Account Admin) can delete any dashboard snapshot.
      operationId: deleteDashboardSnapshot
      parameters:
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      - description: A Identifier for a dashboard snapshot which can be obtained from
          the `/dashboards-snapshots` endpoint.
        example: d28bb71f-5a47-4783-8f12-d4b115e61b0c
        explode: false
        in: path
        name: snapshotId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: No content
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Delete dashboard snapshot
      tags:
      - Dashboard Snapshots
    get:
      description: This operation returns a list of widgets configured in dashboard
        snapshot configured in ThousandEyes. Seed this endpoint with a snapshotId
        found from the /dashboard-snapshots endpoint. This endpoint requires the `View
        Snapshots` permission be assigned to the role of the user accessing this endpoint.
        Returns a list of widgets configured within a dashboard snapshot. Use the
        `snapshotId` obtained from the `/dashboard-snapshots` endpoint. The `View
        Snapshots` permission is required to use this endpoint."
      operationId: getDashboardSnapshot
      parameters:
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      - description: A Identifier for a dashboard snapshot which can be obtained from
          the `/dashboards-snapshots` endpoint.
        example: d28bb71f-5a47-4783-8f12-d4b115e61b0c
        explode: false
        in: path
        name: snapshotId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ApiDashboardSnapshot'
          description: OK
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Retrieve dashboard snapshot
      tags:
      - Dashboard Snapshots
    patch:
      description: |
        Updates the expiration date of a dashboard snapshot. The `Edit snapshots` permission is required to access this endpoint.
      operationId: updateDashboardSnapshotExpirationDate
      parameters:
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      - description: A Identifier for a dashboard snapshot which can be obtained from
          the `/dashboards-snapshots` endpoint.
        example: d28bb71f-5a47-4783-8f12-d4b115e61b0c
        explode: false
        in: path
        name: snapshotId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSnapshotExpirationDateApiRequest'
        description: Request body schema to update a snapshot expiration.
        required: true
      responses:
        "204":
          description: No content
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Update snapshot expiration
      tags:
      - Dashboard Snapshots
  /dashboard-snapshots/{snapshotId}/widgets/{widgetId}:
    get:
      description: |
        Returns actual metrics used in the generation of a dashboard snapshot.
      operationId: getDashboardSnapshotWidgetData
      parameters:
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      - description: A Identifier for a dashboard snapshot which can be obtained from
          the `/dashboards-snapshots` endpoint.
        example: d28bb71f-5a47-4783-8f12-d4b115e61b0c
        explode: false
        in: path
        name: snapshotId
        required: true
        schema:
          type: string
        style: simple
      - description: A Identifier for a widget.
        example: unpmg
        explode: false
        in: path
        name: widgetId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ApiWidgetDataSnapshotResponse'
          description: OK
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Retrieve dashboard snapshot data
      tags:
      - Dashboard Snapshots
  /dashboards/filters:
    get:
      description: |
        Returns a list of dashboard filters and its context within your account group.
      operationId: getDashboardsFilters
      parameters:
      - description: Optional search pattern parameter to filter list of dashboard
          filters by either name or description values.
        explode: true
        in: query
        name: searchPattern
        required: false
        schema:
          example: cea-filter
          type: string
        style: form
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ApiContextFiltersResponse'
          description: OK
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: List dashboard filters
      tags:
      - Dashboards Filters
    post:
      description: |
        Creates a new dashboard filter in your account group. To create a filter,  you must have one of the following permissions:
        * `Edit dashboard templates for all users in account group` permission (Account Admin). * `Edit own dashboard templates` permission (Regular User).
      operationId: createDashboardFilter
      parameters:
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContextFilterRequest'
        description: Dashboard filter object to be created and saved
        required: true
      responses:
        "201":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ApiContextFilterResponse'
          description: Created
          headers:
            Location:
              $ref: '#/components/headers/Location'
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Create dashboard filter
      tags:
      - Dashboards Filters
  /dashboards/filters/{id}:
    delete:
      description: |
        Deletes a dashboard filter using the `filterId` provided in the request.


         **Note**:

         * Users with the `Edit dashboard templates for all users in account group` permission (Account Admin) can delete any dashboard filter.

         * Users with the `Edit own dashboard templates` permission (Regular User) can only delete the dashboard filters they have created themselves.
      operationId: deleteDashboardFilter
      parameters:
      - description: Unique dashboard filter ID.
        example: 65bc18e8f2073a4a469cd958
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      responses:
        "204":
          description: No content
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Delete dashboard filter
      tags:
      - Dashboards Filters
    get:
      description: |
        Returns a list of data source filters and their metadata within the dashboard filter.
      operationId: getDashboardFilter
      parameters:
      - description: Unique dashboard filter ID.
        example: 65bc18e8f2073a4a469cd958
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ApiContextFilterResponse'
          description: OK
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Get dashboard filter
      tags:
      - Dashboards Filters
    put:
      description: "Updates an existing dashboard filter in your account group.\n\
        \                     \n **Note**:\n \n * Users with the `Edit dashboard templates\
        \ for all users in account group` permission (Account Admin) can update any\
        \ dashboard filter.\n \n * Users with the `Edit own dashboard templates` permission\
        \ (Regular User) can only update the dashboard filters they have created themselves.\n"
      operationId: updateDashboardFilter
      parameters:
      - description: Unique dashboard filter ID.
        example: 65bc18e8f2073a4a469cd958
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: A unique identifier associated with your account group. You can
          retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note
          that you must be assigned to the target account group. Specifying this parameter
          without being assigned to the target account group will result in an error
          response.
        in: query
        name: aid
        required: false
        schema:
          example: "1234"
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContextFilterRequest'
        description: Updated dashboard filter context object
        required: true
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ApiContextFilterResponse'
          description: OK
        "400":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Request validation failed. There are invalid or missing fields
                status: 400
                detail: Your request object contains invalid fields.
                instance: /v7
                errors:
                - code: AM-5432
                  field: firstName
                  message: firstName cannot have fancy characters
                - code: DASH-5622
                  field: password
                  message: Password cannot be blank
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Bad Request
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Insufficient permissions to query endpoint
        "404":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: URI Resource Not Found
                status: 404
                detail: Details explaining if the 404 error is related to an invalid
                  URI or a wrong ID
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Not found
        "429":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Exhausted rate limit for the organization
        "500":
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Internal server error
                status: 500
                detail: Optional detail about the internal error message.
                instance: /v7
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      summary: Update dashboard filter
      tags:
      - Dashboards Filters
components:
  headers:
    DashboardSnapshotRateLimit:
      description: The maximum number of dashboard snapshot requests allowed within
        a specified time frame. The limit is 100 requests per hour.
      explode: false
      schema:
        example: 100
        type: integer
      style: simple
    DashboardSnapshotRateLimitRemaining:
      description: The number of remaining dashboard snapshot requests that can be
        made within the current time frame. This value indicates how many of the allowed
        100 requests per hour are still available.
      explode: false
      schema:
        example: 45
        type: integer
      style: simple
    DashboardSnapshotRateLimitReset:
      description: "The amount of time remaining until the rate limit resets and the\
        \ full quota of requests is available again. If the value is 0, it means the\
        \ rate limit currently allows access."
      explode: false
      schema:
        example: 160
        type: integer
      style: simple
    Location:
      description: The absolute path to created resource.
      schema:
        example: https://api.thousandeyes.com/v7/link/to/resource/id
        format: uri
        type: string
  parameters:
    DashboardIdPath:
      description: A Identifier for a dashboard which can be obtained from the `/dashboards`
        endpoint.
      example: 646f4d2ce3c99b0536c3821e
      explode: false
      in: path
      name: dashboardId
      required: true
      schema:
        type: string
      style: simple
    WidgetId:
      description: A Identifier for a widget.
      example: unpmg
      explode: false
      in: path
      name: widgetId
      required: true
      schema:
        type: string
      style: simple
    SnapshotIdPath:
      description: A Identifier for a dashboard snapshot which can be obtained from
        the `/dashboards-snapshots` endpoint.
      example: d28bb71f-5a47-4783-8f12-d4b115e61b0c
      explode: false
      in: path
      name: snapshotId
      required: true
      schema:
        type: string
      style: simple
    DashboardCursor:
      description: "An optional pagination cursor. This parameter should not not be\
        \ used directly. Instead, use the `_links` returned by the API. This feature\
        \ is only available in the **Test Table** widget."
      example: bGFzdFJvdW5kSWQ9MTY4MTQxMDQ4MA
      explode: true
      in: query
      name: cursor
      required: false
      schema:
        type: string
      style: form
    DashboardMax:
      description: |-
        Optionally specify the maximum number of objects to retrieve. This only applies to the **Alert List** and **Test Table** Widgets.
        * The default for the **Alert List** widget is set by its limitBy configuration.
        * The default value for the **Test Table** widget is 10.
      example: 10
      explode: true
      in: query
      name: max
      required: false
      schema:
        type: number
      style: form
    DashboardSort:
      description: |-
        Optional sorting parameter with attributes listed comma-separated. This only applies to the **Alert List** and **Test Table** Widgets.
        * For the **Alert List** widget, you can sort by `alertStatus` or `startTime`. The default is `alertStatus`.
        * For the **Test Table** widget, you can sort by `alertStatus`, `testName`, or `testType`. The sequence might vary from the web application. The default sort attribute is `alertStatus`.
      example: alertStatus
      explode: true
      in: query
      name: sort
      required: false
      schema:
        type: string
      style: form
    DashboardOrder:
      description: Optional sorting order parameter that accepts either `asc` (ascending)
        or `desc` (descending) values. This only applies to the **Alert List** and
        **Test Table** Widgets.
      example: asc
      explode: true
      in: query
      name: order
      required: false
      schema:
        $ref: '#/components/schemas/DashboardOrder'
      style: form
    DashboardFilterSearchPattern:
      description: Optional search pattern parameter to filter list of dashboard filters
        by either name or description values.
      explode: true
      in: query
      name: searchPattern
      required: false
      schema:
        example: cea-filter
        type: string
      style: form
    DashboardFilterIdPath:
      description: Unique dashboard filter ID.
      example: 65bc18e8f2073a4a469cd958
      explode: false
      in: path
      name: id
      required: true
      schema:
        type: string
      style: simple
    AccountGroupId:
      description: A unique identifier associated with your account group. You can
        retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that
        you must be assigned to the target account group. Specifying this parameter
        without being assigned to the target account group will result in an error
        response.
      in: query
      name: aid
      required: false
      schema:
        example: "1234"
        type: string
    Window:
      description: |-
        A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks.
        For a precise date range, use `startDate` and `endDate`.
      in: query
      name: window
      schema:
        example: 12h
        pattern: "^\\d+(?:[smhdw]{1})?$"
        type: string
    StartDateParameter:
      description: "Use with the `endDate` parameter. Include the complete time (hours,\
        \ minutes, and seconds) in UTC time zone, following the ISO 8601 date-time\
        \ format. See the example for reference. Please note that this parameter can't\
        \ be used with `window`."
      in: query
      name: startDate
      schema:
        example: 2022-07-17T22:00:54Z
        format: date-time
        type: string
    EndDateParameter:
      description: "Defaults to current time the request is made. Use with the `startDate`\
        \ parameter. Include the complete time (hours, minutes, and seconds) in UTC\
        \ time zone, following the ISO 8601 date-time format. See the example for\
        \ reference. Please note that this parameter can't be used with `window`."
      in: query
      name: endDate
      schema:
        example: 2022-07-18T22:00:54Z
        format: date-time
        type: string
    PaginationCursor:
      description: (Optional) Opaque cursor used for pagination. Clients should use
        `next` value from `_links` instead of this parameter.
      in: query
      name: cursor
      schema:
        type: string
        example: null
  responses:
    "400":
      content:
        application/problem+json:
          example:
            type: about:blank
            title: Request validation failed. There are invalid or missing fields
            status: 400
            detail: Your request object contains invalid fields.
            instance: /v7
            errors:
            - code: AM-5432
              field: firstName
              message: firstName cannot have fancy characters
            - code: DASH-5622
              field: password
              message: Password cannot be blank
          schema:
            $ref: '#/components/schemas/ValidationError'
      description: Bad Request
    "401":
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/UnauthorizedError'
      description: Unauthorized
    "403":
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Insufficient permissions to query endpoint
    "404":
      content:
        application/problem+json:
          example:
            type: about:blank
            title: URI Resource Not Found
            status: 404
            detail: Details explaining if the 404 error is related to an invalid URI
              or a wrong ID
            instance: /v7
          schema:
            $ref: '#/components/schemas/Error'
      description: Not found
    "429":
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Exhausted rate limit for the organization
    "500":
      content:
        application/problem+json:
          example:
            type: about:blank
            title: Internal server error
            status: 500
            detail: Optional detail about the internal error message.
            instance: /v7
          schema:
            $ref: '#/components/schemas/Error'
      description: Internal server error
    "204":
      description: No content
  schemas:
    DashboardOrder:
      enum:
      - asc
      - desc
      type: string
    ApiAgentStatusWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - properties:
          type:
            $ref: '#/components/schemas/AgentStatusWidgetType'
          agents:
            $ref: '#/components/schemas/AgentWidgetType'
          show:
            $ref: '#/components/schemas/AgentWidgetShow'
          dataSource:
            $ref: '#/components/schemas/AgentStatusDatasource'
        required:
        - type
        type: object
      type: object
    AgentWidgetType:
      $ref: '#/components/schemas/LegacyAgentWidgetType'
    ApiAgentWidgetType:
      description: Type of the agent.
      enum:
      - enterprise
      - endpoint
      example: endpoint
      type: string
    LegacyAgentWidgetType:
      description: Type of the agent.
      enum:
      - Enterprise Agents
      - Endpoint Agents
      type: string
    AgentWidgetShow:
      $ref: '#/components/schemas/LegacyAgentWidgetShow'
    ApiAgentWidgetShow:
      description: Ownership of the agent.
      enum:
      - owned
      - all
      example: owned
      type: string
    LegacyAgentWidgetShow:
      description: Ownership of the agent.
      enum:
      - Owned Agents
      - All Assigned Agents
      type: string
    ApiAlertListWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - properties:
          type:
            $ref: '#/components/schemas/AlertListWidgetType'
          alertTypes:
            description: "List of alert types configured in the widget, an empty list\
              \ means all alert types."
            items:
              $ref: '#/components/schemas/ApiAlertListAlertType'
            type: array
            uniqueItems: true
          limitTo:
            description: Limit the number of alerts displayed in the widget.
            example: 15
            format: int32
            type: integer
          activeWithin:
            $ref: '#/components/schemas/ActiveWithin'
          dataSource:
            $ref: '#/components/schemas/AlertListDatasource'
        required:
        - type
        type: object
      type: object
    ApiAggregateProperty:
      description: Defines the property by which to aggregate the metric. Metrics
        are grouped based on unique values of the chosen property. Selecting `ALL`
        aggregates the data into a single group.
      enum:
      - TIME
      - NONE
      - ALL
      - SOURCE
      - AGENT
      - MONITOR
      - CONTINENT
      - COUNTRY
      - REGION
      - TARGET_AGENT
      - SOURCE_AND_TARGET_AGENT
      - TEST
      - SERVER
      - TEST_LABEL
      - AGENT_LABEL
      - TRANSACTION_STEP
      - TRANSACTION_PAGE
      - WEB_TRANSACTION_MARKER
      - WEB_TRANSACTION_MARKER_INTERNAL
      - WEB_TRANSACTION_PAGE
      - WEB_TRANSACTION_PAGE_INTERNAL
      - EYEBROW_MACHINE_ID
      - EYEBROW_CLIENT_ID
      - EYEBROW_HOST
      - EYEBROW_NETWORK_ID
      - EYEBROW_WHOIS_RANGE_ID
      - EYEBROW_PLATFORM
      - EYEBROW_CONNECTION
      - EYEBROW_GEONAME_ID
      - EYEBROW_LABEL
      - EYEBROW_DOMAIN
      - EYEBROW_TEST
      - EYEBROW_AGENT_TYPE
      - EYEBROW_TARGET_IP
      - EYEBROW_NET_TARGET_IP
      - EYEBROW_GATEWAY
      - EYEBROW_SSID
      - SSID
      - EYEBROW_BSSID
      - BSSID
      - EYEBROW_VPN_VENDOR
      - EYEBROW_VPN_GATEWAY
      - EYEBROW_PROXY_ADDRESS
      - EYEBROW_NETWORK_PROBE_DNS_SERVER
      - EYEBROW_DESTINATION_IP_ADDRESS
      - EYEBROW_SESSION_ERRORS
      - EYEBROW_ASN
      - DEVICE_INTERFACE
      - DEVICE
      - DEVICE_CLASS
      - DEVICE_INTERFACE_TYPE
      - INSIGHTS_CATALOG_PROVIDER
      - INSIGHTS_ASN
      - ASN
      - INSIGHTS_LOCATION
      - INSIGHTS_AFFECTED_TEST
      - INSIGHTS_AFFECTED_DOMAIN
      - INSIGHTS_AFFECTED_INTERFACE_LOCATION
      - INSIGHTS_AFFECTED_INTERFACE_IP
      - INSIGHTS_DESTINATION_LOCATION
      - INSIGHTS_DESTINATION_ASN
      - INSIGHTS_DESTINATION_PREFIX
      - INSIGHTS_APPLICATION
      - INSIGHTS_ERROR_TYPE
      - INSIGHTS_AFFECTED_DOMAIN_LOCATION
      - INSIGHTS_AFFECTED_SERVER_LOCATION
      - APPDYNAMICS_APPLICATION
      - APPDYNAMICS_SERVICE
      - DOMAIN
      - EYEBROW_ORG_NAME
      - EYEBROW_USER
      - EYEBROW_AGENT
      - EYEBROW_COMPUTER_NAME
      - CLOUD_NATIVE_MONITORING-ALL
      - CLOUD_NATIVE_MONITORING-ACCOUNT
      - CLOUD_NATIVE_MONITORING-REGION
      - CLOUD_NATIVE_MONITORING-AVAILABILITY_ZONE
      - CLOUD_NATIVE_MONITORING-VPC
      - CLOUD_NATIVE_MONITORING-SUBNET
      - CLOUD_NATIVE_MONITORING-TYPE
      - CLOUD_NATIVE_MONITORING-SERVICE_PROVIDER
      - CLOUD_NATIVE_MONITORING-REMOTE_ACCOUNT
      - CLOUD_NATIVE_MONITORING-REMOTE_REGION
      - CLOUD_NATIVE_MONITORING-REMOTE_AVAILABILITY_ZONE
      - CLOUD_NATIVE_MONITORING-REMOTE_VPC
      - CLOUD_NATIVE_MONITORING-REMOTE_SUBNET
      - CLOUD_NATIVE_MONITORING-REMOTE_TYPE
      - CLOUD_NATIVE_MONITORING-REMOTE_SERVICE_PROVIDER
      example: ALL
      type: string
    ApiBoxAndWhiskersWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - $ref: '#/components/schemas/ScalableWidget'
      - properties:
          type:
            $ref: '#/components/schemas/BoxAndWhiskersWidgetType'
          groupBy:
            $ref: '#/components/schemas/ApiAggregateProperty'
          dataSource:
            $ref: '#/components/schemas/BoxAndWhiskersDatasource'
        required:
        - type
        type: object
      description: "A widget that displays a box and whisker plot, mapping data points\
        \ over time with key statistics: median, range, and quartiles."
      type: object
    ApiWidgetFixedYScalePrefix:
      description: Prefix denoting the unit of measurement for the fixed Y-axis scale.
      enum:
      - Kbps
      - Mbps
      - Gbps
      - Kbitps
      - Mbitps
      - Gbitps
      - Kpps
      - Mpps
      - Gpps
      example: Mbps
      type: string
    ScalableWidget:
      properties:
        minScale:
          description: Minimum scale configured in the widget.
          example: 1.0
          format: float
          type: number
        maxScale:
          description: Maximum scale configured in the widget.
          example: 100.0
          format: float
          type: number
        unit:
          $ref: '#/components/schemas/ApiWidgetFixedYScalePrefix'
      type: object
    WidgetLimit:
      description: Limit configured in the widget.
      example: 10
      format: int32
      type: integer
    ApiColorGridWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - $ref: '#/components/schemas/ScalableWidget'
      - properties:
          type:
            $ref: '#/components/schemas/ColorGridWidgetType'
          cards:
            $ref: '#/components/schemas/ApiAggregateProperty'
          groupCardsBy:
            $ref: '#/components/schemas/ApiAggregateProperty'
          columns:
            description: "Number of columns: 1 or 2."
            example: 1
            format: int32
            type: integer
          limit:
            $ref: '#/components/schemas/WidgetLimit'
          sortBy:
            $ref: '#/components/schemas/WidgetSortProperty'
          sortDirection:
            $ref: '#/components/schemas/WidgetSortDirection'
          dataSource:
            $ref: '#/components/schemas/ColorGridDatasource'
        required:
        - type
        type: object
      description: The Color Grid widget displays colored cards arranged in rows and
        columns.
      type: object
    ApiWidgetSortProperty:
      description: Determines the card sorting criterion.
      enum:
      - alphabetical
      - value
      example: alphabetical
      type: string
    LegacyWidgetSortProperty:
      deprecated: true
      description: "**(Deprecated)** Determines the card sorting criterion."
      enum:
      - Alphabetical
      - Value
      example: Alphabetical
      type: string
    WidgetSortProperty:
      $ref: '#/components/schemas/LegacyWidgetSortProperty'
    ApiWidgetSortDirection:
      description: Specifies the order in which cards are sorted.
      enum:
      - ascending
      - descending
      example: ascending
      type: string
    LegacyWidgetSortDirection:
      deprecated: true
      description: "**(Deprecated)** Specifies the order in which cards are sorted."
      enum:
      - Ascending
      - Descending
      example: Ascending
      type: string
    WidgetSortDirection:
      $ref: '#/components/schemas/LegacyWidgetSortDirection'
    LegacyApiDashboard:
      deprecated: true
      properties:
        accountId:
          description: "**(Deprecated)** Identifier for the account group associated with a dashboard."
          example: 1234
          format: int64
          readOnly: true
          type: integer
        createdBy:
          description: "**(Deprecated)** Identifier for the user that created a dashboard."
          example: 1
          format: int64
          readOnly: true
          type: integer
        modifiedBy:
          description: "**(Deprecated)** Identifier for the user that last modified a dashboard."
          example: 1
          format: int64
          readOnly: true
          type: integer
        modifiedDate:
          description: "**(Deprecated)** UTC date/time when a dashboard was last modified."
          example: 2023-05-16 10:14:28
          readOnly: true
          type: string
        globalOverride:
          description: "**(Deprecated)** When set to `true`, the defaultTimespan is used and overrides\
            \ the widget's timespan. If set to `false`, the the widget's timespan\
            \ is used."
          type: boolean
        migratedReport:
          description: "**(Deprecated)** True if this dashboard was previously a report."
          example: false
          readOnly: true
          type: boolean
        apiLink:
          description: "**(Deprecated)** A links array containing the self and the snapshots links."
          items:
            additionalProperties: true
            type: object
          type: array
      type: object
    Dashboard:
      allOf:
      - properties:
          dashboardId:
            description: Identifier of a dashboard.
            example: 5e1f7a99143ae6004fdc3bb4
            readOnly: true
            type: string
          title:
            description: Title of a dashboard.
            example: HTTP Server Widgets
            type: string
          isBuiltIn:
            description: "Indicates if a dashboard is built-in. True for built-in\
              \ dashboards, false for user-created dashboards."
            example: true
            readOnly: true
            type: boolean
          aid:
            description: Identifier for the account group associated with a dashboard.
            example: "1234"
            readOnly: true
            type: string
          createdBy:
            description: Identifier for the user that created a dashboard.
            example: "1"
            readOnly: true
            type: string
          modifiedBy:
            description: Identifier for the user that last modified a dashboard.
            example: "1"
            readOnly: true
            type: string
          modifiedDate:
            description: UTC date/time when a dashboard was last modified (ISO date-time
              format).
            example: 2023-05-16T10:14:28Z
            format: date-time
            readOnly: true
            type: string
          isPrivate:
            description: "A dashboard can be viewed by other users in the account.\
              \ If true, only the creator of the dashboard may view it. If false,\
              \ all users in the same account may view it."
            example: true
            type: boolean
          isDefaultForUser:
            description: "Indicates whether this dashboard is the user's default.\
              \ True for default, false if not."
            example: true
            readOnly: true
            type: boolean
          isDefaultForAccount:
            description: "Indicates whether this dashboard is the account group's\
              \ default. True for default, false if not."
            example: false
            readOnly: true
            type: boolean
          widgets:
            items:
              $ref: '#/components/schemas/ApiWidget'
            type: array
          description:
            description: A text description of the dashboard's purpose and functionality.
              This information assists users in understanding the dashboard but isn't
              displayed when viewing a dashboard.
            example: HTTP Server Widgets
            type: string
          defaultTimespan:
            $ref: '#/components/schemas/DefaultTimespan'
          isGlobalOverride:
            description: "When set to `true`, the defaultTimespan is used and overrides\
              \ the widget's timespan. If set to `false`, the the widget's timespan\
              \ is used."
            type: boolean
          isMigratedReport:
            description: True if this dashboard was previously a report.
            example: false
            readOnly: true
            type: boolean
          _links:
            $ref: '#/components/schemas/DashboardLinks'
        type: object
      - $ref: '#/components/schemas/DashboardGlobalFilterId'
      description: Dashboard upon which this dashboard snapshot is based upon.
    ApiDashboards:
      items:
        $ref: '#/components/schemas/ApiDashboard'
      type: array
    ApiDashboard:
      allOf:
      - properties:
          dashboardId:
            description: Identifier of a dashboard.
            example: 5e1f7a99143ae6004fdc3bb4
            readOnly: true
            type: string
          title:
            description: Title of a dashboard.
            example: HTTP Server Widgets
            type: string
          isBuiltIn:
            description: "Indicates if a dashboard is built-in. True for built-in\
              \ dashboards, false for user-created dashboards."
            example: true
            readOnly: true
            type: boolean
          aid:
            description: Identifier for the account group associated with a dashboard.
            example: "1234"
            readOnly: true
            type: string
          dashboardCreatedBy:
            description: Identifier for the user that created a dashboard.
            example: "1"
            readOnly: true
            type: string
          dashboardModifiedBy:
            description: Identifier for the user that last modified a dashboard.
            example: "1"
            readOnly: true
            type: string
          dashboardModifiedDate:
            description: UTC date/time when a dashboard was last modified (ISO date-time
              format).
            example: 2023-05-16T10:14:28Z
            format: date-time
            readOnly: true
            type: string
          isPrivate:
            description: "A dashboard can be viewed by other users in the account.\
              \ If true, only the creator of the dashboard may view it. If false,\
              \ all users in the same account may view it."
            example: true
            type: boolean
          isDefaultForUser:
            description: "Indicates whether this dashboard is the user's default.\
              \ True for default, false if not."
            example: true
            readOnly: true
            type: boolean
          isDefaultForAccount:
            description: "Indicates whether this dashboard is the account group's\
              \ default. True for default, false if not."
            example: false
            readOnly: true
            type: boolean
          widgets:
            items:
              $ref: '#/components/schemas/ApiWidget'
            type: array
          description:
            description: A text description of the dashboard's purpose and functionality.
              This information assists users in understanding the dashboard but isn't
              displayed when viewing a dashboard.
            example: HTTP Server Widgets
            type: string
          defaultTimespan:
            $ref: '#/components/schemas/DefaultTimespan'
          isGlobalOverride:
            description: "When set to `true`, the defaultTimespan is used and overrides\
              \ the widget's timespan. If set to `false`, the the widget's timespan\
              \ is used."
            type: boolean
          isMigratedReport:
            description: True if this dashboard was previously a report.
            example: false
            readOnly: true
            type: boolean
          _links:
            $ref: '#/components/schemas/DashboardLinks'
        type: object
      - $ref: '#/components/schemas/DashboardGlobalFilterId'
      - $ref: '#/components/schemas/LegacyApiDashboard'
      description: Dashboard upon which this dashboard snapshot is based upon.
    LegacyDefaultTimespan:
      deprecated: true
      properties:
        timespanDuration:
          description: "**(Deprecated)** Relative timespan in seconds."
          example: 7200
          format: int64
          type: integer
        timespanStart:
          description: "**(Deprecated)** UTC start date of the timespan range."
          example: 2023-05-16 10:14:28
          type: string
        timespanEnd:
          description: "**(Deprecated)** UTC end date of the timespan range."
          example: 2023-05-16 11:14:28
          type: string
      type: object
    ApiDefaultTimespan:
      properties:
        duration:
          description: Relative timespan in seconds.
          example: 7200
          format: int64
          type: integer
        start:
          description: UTC start date of the timespan range (ISO date-time format).
          example: 2023-05-16T10:14:28Z
          format: date-time
          type: string
        end:
          description: UTC end date of the timespan range (ISO date-time format).
          example: 2023-05-16T11:14:28Z
          format: date-time
          type: string
      type: object
    DefaultTimespan:
      allOf:
      - $ref: '#/components/schemas/LegacyDefaultTimespan'
      - $ref: '#/components/schemas/ApiDefaultTimespan'
    ApiDuration:
      description: Specifies a fixed timespan for data aggregation.
      properties:
        value:
          description: Timespan value.
          example: 10
          format: int32
          type: integer
        unit:
          $ref: '#/components/schemas/LegacyDurationUnit'
      type: object
    ActiveWithin:
      description: Timespan in which alerts must have been active to appear in the
        widget.
      properties:
        value:
          description: Timespan value.
          example: 10
          format: int32
          type: integer
        unit:
          $ref: '#/components/schemas/LegacyDurationUnit'
      type: object
    DurationValue:
      description: Timespan value.
      example: 10
      format: int32
      type: integer
    LegacyDurationUnit:
      deprecated: true
      description: Timespan unit.
      enum:
      - Minutes
      - Hours
      - Days
      example: Days
      type: string
    ApiGeoMapWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - $ref: '#/components/schemas/ScalableWidget'
      - properties:
          type:
            $ref: '#/components/schemas/MapWidgetType'
          groupBy:
            $ref: '#/components/schemas/ApiAggregateProperty'
          isGeoMapPerTest:
            description: "Indicates whether a separate map is displayed for each test\
              \ within the widget. When set to true, individual maps are generated."
            type: boolean
          sortBy:
            $ref: '#/components/schemas/WidgetSortProperty'
          sortDirection:
            $ref: '#/components/schemas/WidgetSortDirection'
          dataSource:
            $ref: '#/components/schemas/GeoMapDatasource'
        required:
        - type
        type: object
      description: "Displays data on a geographic map, highlighting information across\
        \ different regions."
      type: object
    ApiGroupedBarchartWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - properties:
          type:
            $ref: '#/components/schemas/BarChartGroupedWidgetType'
          groupBy:
            $ref: '#/components/schemas/ApiAggregateProperty'
          axisGroupBy:
            $ref: '#/components/schemas/ApiAggregateProperty'
          sortBy:
            $ref: '#/components/schemas/WidgetSortProperty'
          sortDirection:
            $ref: '#/components/schemas/WidgetSortDirection'
          limit:
            $ref: '#/components/schemas/WidgetLimit'
          showLabels:
            description: Displays labels on each bar when set to `true`.
            type: boolean
          isHorizontalBarChart:
            type: boolean
          dataSource:
            $ref: '#/components/schemas/GroupedBarChartDatasource'
        required:
        - type
        type: object
      description: "Displays grouped bars, each representing multiple data points.\
        \ You can configure the bars to align horizontally or vertically."
      type: object
    ApiMultiMetricColumn:
      description: Defines a column within a table that aggregates and displays various
        metrics (Multi-Metric table).
      properties:
        id:
          type: string
        dataSource:
          $ref: '#/components/schemas/MultiMetricsTableDatasource'
        metricGroup:
          $ref: '#/components/schemas/MetricGroup'
        direction:
          $ref: '#/components/schemas/DashboardMetricDirection'
        metric:
          $ref: '#/components/schemas/DashboardMetric'
        filters:
          additionalProperties:
            items: {}
            type: array
            uniqueItems: true
          description: "(Optional) Specifies the filters applied to the widget. When\
            \ present, the `filters` property displays. Each filter object has two\
            \ properties: `filterProperty` and `filterValue`. The `filterProperty`\
            \ can be values like `AGENT`, `ENDPOINT_MACHINE_ID`, `TEST`, `MONITOR`,\
            \ etc.  The `filterValue` represents an identifier array of the selected\
            \ property."
          example:
            TEST:
            - 5187
            - 5227
            ENDPOINT_MACHINE_ID:
            - fbd0050c-07f7-43f7-9631-14b32f096962
          type: object
        measure:
          $ref: '#/components/schemas/ApiWidgetMeasure'
      type: object
    ApiMultiMetricTableWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - properties:
          type:
            $ref: '#/components/schemas/MultiMetricTableWidgetType'
          compareToPreviousValue:
            description: Enables comparison of the current metric value with the previous
              value.
            type: boolean
          rowGroupBy:
            $ref: '#/components/schemas/ApiAggregateProperty'
          sortBy:
            $ref: '#/components/schemas/WidgetSortProperty'
          sortDirection:
            $ref: '#/components/schemas/WidgetSortDirection'
          limit:
            $ref: '#/components/schemas/WidgetLimit'
          multiMetricColumns:
            items:
              $ref: '#/components/schemas/ApiMultiMetricColumn'
            type: array
          dataSource:
            $ref: '#/components/schemas/MultiMetricsTableDatasource'
        required:
        - type
        type: object
      description: "A Multi-Metric table widget with columns, each representing a\
        \ different metric, offering a comprehensive view rather than restricting\
        \ to a single metric."
      type: object
    ApiMultiSearchFilterApiTestTableFilterKey:
      description: "A multi search filter key within the Multi-Metric table widget.\
        \ The key represents the filter name, and the value specifies the filter value."
      properties:
        key:
          $ref: '#/components/schemas/TestTableFilterKey'
        value:
          type: string
      type: object
    TestTableFilterKey:
      enum:
      - Anything
      - Test Name
      - Target
      - Test ID
      - Test type
      - Label ID
      example: Target
      type: string
    ApiNumbersCard:
      allOf:
      - $ref: '#/components/schemas/ScalableWidget'
      - properties:
          id:
            description: Identifier of the widget.
            example: "1234"
            type: string
          description:
            description: Description of the number card.
            example: Widget Title
            type: string
          measure:
            $ref: '#/components/schemas/ApiWidgetMeasure'
          compareToPreviousValue:
            type: boolean
          fixedTimespan:
            $ref: '#/components/schemas/ApiDuration'
          shouldExcludeAlertSuppressionWindows:
            description: Excludes alert suppression windows from the widget when set
              to `true`.
            type: boolean
          dataSource:
            $ref: '#/components/schemas/NumbersCardDatasource'
          metricGroup:
            $ref: '#/components/schemas/MetricGroup'
          direction:
            $ref: '#/components/schemas/DashboardMetricDirection'
          metric:
            $ref: '#/components/schemas/DashboardMetric'
          filters:
            $ref: '#/components/schemas/WidgetFilters'
        type: object
      description: An individual number card within the numbers card widget.
      type: object
    ApiNumbersCardWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - properties:
          type:
            $ref: '#/components/schemas/NumberWidgetType'
          numberCards:
            items:
              $ref: '#/components/schemas/ApiNumbersCard'
            type: array
          dataSource:
            $ref: '#/components/schemas/NumbersCardDatasource'
        required:
        - type
        type: object
      description: "A widget composed of multiple cards, each presenting a singular\
        \ metric, such as average packet loss, page load time, or alert count."
      type: object
    ApiPieChartWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - properties:
          type:
            $ref: '#/components/schemas/PieChartWidgetType'
          groupBy:
            $ref: '#/components/schemas/ApiAggregateProperty'
          dataSource:
            $ref: '#/components/schemas/PieChartDatasource'
        required:
        - type
        type: object
      description: "Displays data as segments of a pie, with each slice representing\
        \ a portion of the total value."
      type: object
    ApiStackedAreaChartWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - $ref: '#/components/schemas/ScalableWidget'
      - properties:
          type:
            $ref: '#/components/schemas/TimeSeriesStackedAreaWidgetType'
          groupBy:
            $ref: '#/components/schemas/ApiAggregateProperty'
          dataSource:
            $ref: '#/components/schemas/StackedAreaChartDatasource'
        required:
        - type
        type: object
      description: "Displays line plots over time, stacking quantities vertically\
        \ to showcase cumulative data trends, similar to stacked bar charts. Ideal\
        \ for visualizing changes in response times, error counts, and other metrics,\
        \ revealing the progression of values across a timeline. Use this chart to\
        \ replace stacked bar charts for temporal data analysis."
      type: object
    ApiStackedBarchartWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - description: "Displays horizontal histogram bars with multiple values, which\
          \ are useful for composite metric data (such as HTTP response or fetch time)\
          \ and for comparing values between multiple tests or for comparing values\
          \ on a country-by-country basis. The bars can be aligned horizontally or\
          \ vertically as columns."
        properties:
          type:
            $ref: '#/components/schemas/BarChartStackedWidgetType'
          axisGroupBy:
            $ref: '#/components/schemas/ApiAggregateProperty'
          sortBy:
            $ref: '#/components/schemas/WidgetSortProperty'
          sortDirection:
            $ref: '#/components/schemas/WidgetSortDirection'
          limit:
            $ref: '#/components/schemas/WidgetLimit'
          showLabels:
            type: boolean
          isHorizontalBarChart:
            description: Set to `true` to display bars horizontally in the widget.
            type: boolean
          dataSource:
            $ref: '#/components/schemas/StackedBarChartDatasource'
        required:
        - type
        type: object
    ApiTableWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - properties:
          type:
            $ref: '#/components/schemas/TableWidgetType'
          compareToPreviousValue:
            type: boolean
          rowGroupBy:
            $ref: '#/components/schemas/ApiAggregateProperty'
          columnGroupBy:
            $ref: '#/components/schemas/ApiAggregateProperty'
          sortBy:
            $ref: '#/components/schemas/WidgetSortProperty'
          sortDirection:
            $ref: '#/components/schemas/WidgetSortDirection'
          limit:
            $ref: '#/components/schemas/WidgetLimit'
          dataSource:
            $ref: '#/components/schemas/TableDatasource'
        required:
        - type
        type: object
      description: "Organizes data in rows and columns, with options to list by test,\
        \ geographic location, data source, or aggregated categories."
      type: object
    ApiTestTableWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - properties:
          type:
            $ref: '#/components/schemas/TestTableWidgetType'
          filter:
            $ref: '#/components/schemas/ApiWidgetFilterApiTestTableFilterKey'
          exclude:
            $ref: '#/components/schemas/ApiWidgetFilterApiTestTableFilterKey'
          dataSource:
            $ref: '#/components/schemas/TestTableDatasource'
        required:
        - type
        type: object
      description: "Displays tests and statuses with options to sort and filter. It\
        \ can be set to show only certain tests, like those with specific labels or\
        \ failing tests."
      type: object
    ApiTimeseriesWidget:
      allOf:
      - $ref: '#/components/schemas/Widget'
      - $ref: '#/components/schemas/ScalableWidget'
      - properties:
          type:
            $ref: '#/components/schemas/TimeSeriesLineWidgetType'
          showTimeseriesOverallBaseline:
            description: Displays the overall baseline if set to `true`.
            type: boolean
          groupBy:
            $ref: '#/components/schemas/ApiAggregateProperty'
          isTimeseriesOneChartPerLine:
            description: Displays a separate chart for each line if set to `true`.
            type: boolean
          dataSource:
            $ref: '#/components/schemas/TimeseriesDatasource'
        required:
        - type
        type: object
      description: "The Timeseries widget graphs data over time, with the chosen metric\
        \ displayed on the vertical axis. vertical axis"
      type: object
    AgentStatusDatasource:
      description: Datasource of the agent to retrieve status.
      enum:
      - ALERTS
      - DEVICES
      - DNSP
      - ENDPOINT_AGENTS
      - ENDPOINT_SCHEDULED_TEST
      - ENDPOINT_AST_TEST
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_LOCAL_NETWORK
      - ENDPOINT_LOCAL_NETWORK_WIRELESS
      - ROUTING
      - CLOUD_AND_ENTERPRISE_AGENTS
      - INTERNET_INSIGHTS
      - APPDYNAMICS_SERVICE_HEALTH
      - CLOUD_NATIVE_MONITORING
      example: ENDPOINT_AGENTS
      type: string
    AlertListDatasource:
      description: Datasource of the alert list.
      enum:
      - ALERTS
      - DEVICES
      - DNSP
      - ENDPOINT_AGENTS
      - ENDPOINT_SCHEDULED_TEST
      - ENDPOINT_AST_TEST
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_LOCAL_NETWORK
      - ENDPOINT_LOCAL_NETWORK_WIRELESS
      - ROUTING
      - CLOUD_AND_ENTERPRISE_AGENTS
      - INTERNET_INSIGHTS
      - APPDYNAMICS_SERVICE_HEALTH
      - CLOUD_NATIVE_MONITORING
      example: ENDPOINT_AGENTS
      type: string
    BoxAndWhiskersDatasource:
      description: Datasource of the box and whiskers widget.
      enum:
      - ALERTS
      - CLOUD_AND_ENTERPRISE_AGENTS
      - DEVICES
      - ENDPOINT_AGENTS
      - ENDPOINT_AST_TEST
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_LOCAL_NETWORK
      - ENDPOINT_LOCAL_NETWORK_WIRELESS
      - ENDPOINT_SCHEDULED_TEST
      - INTERNET_INSIGHTS
      - ROUTING
      - CLOUD_NATIVE_MONITORING
      example: INTERNET_INSIGHTS
      type: string
    ColorGridDatasource:
      description: Datasource of the color grid widget.
      enum:
      - THIRD_PARTY_APPLICATIONS
      - ALERTS
      - CLOUD_AND_ENTERPRISE_AGENTS
      - DEVICES
      - ENDPOINT_AGENTS
      - ENDPOINT_AST_TEST
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_LOCAL_NETWORK
      - ENDPOINT_LOCAL_NETWORK_WIRELESS
      - ENDPOINT_SCHEDULED_TEST
      - INTERNET_INSIGHTS
      - ROUTING
      - CLOUD_NATIVE_MONITORING
      example: INTERNET_INSIGHTS
      type: string
    GeoMapDatasource:
      description: Datasource of the geo map widget.
      enum:
      - ALERTS
      - CLOUD_AND_ENTERPRISE_AGENTS
      - ENDPOINT_AGENTS
      - ENDPOINT_AST_TEST
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_LOCAL_NETWORK
      - ENDPOINT_LOCAL_NETWORK_WIRELESS
      - ENDPOINT_SCHEDULED_TEST
      - INTERNET_INSIGHTS
      - ROUTING
      - CLOUD_NATIVE_MONITORING
      example: INTERNET_INSIGHTS
      type: string
    GroupedBarChartDatasource:
      description: Datasource of the grouped bar chart widget.
      enum:
      - ALERTS
      - CLOUD_AND_ENTERPRISE_AGENTS
      - DEVICES
      - ENDPOINT_AGENTS
      - ENDPOINT_AST_TEST
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_LOCAL_NETWORK
      - ENDPOINT_LOCAL_NETWORK_WIRELESS
      - ENDPOINT_SCHEDULED_TEST
      - INTERNET_INSIGHTS
      - ROUTING
      - CLOUD_NATIVE_MONITORING
      example: ENDPOINT_AGENTS
      type: string
    MultiMetricsTableDatasource:
      description: Datasource of the Multi-Metrics table widget.
      enum:
      - ALERTS
      - CLOUD_AND_ENTERPRISE_AGENTS
      - DEVICES
      - ENDPOINT_AGENTS
      - ENDPOINT_AST_TEST
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_LOCAL_NETWORK
      - ENDPOINT_LOCAL_NETWORK_WIRELESS
      - ENDPOINT_SCHEDULED_TEST
      - INTERNET_INSIGHTS
      - ROUTING
      - CLOUD_NATIVE_MONITORING
      example: ENDPOINT_AGENTS
      type: string
    NumbersCardDatasource:
      description: Datasource of the numbers card widget.
      enum:
      - ALERTS
      - CLOUD_AND_ENTERPRISE_AGENTS
      - DEVICES
      - ENDPOINT_AGENTS
      - ENDPOINT_AST_TEST
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_LOCAL_NETWORK
      - ENDPOINT_LOCAL_NETWORK_WIRELESS
      - ENDPOINT_SCHEDULED_TEST
      - INTERNET_INSIGHTS
      - ROUTING
      - CLOUD_NATIVE_MONITORING
      example: ENDPOINT_AGENTS
      type: string
    PieChartDatasource:
      description: Datasource of the pie chart widget.
      enum:
      - CLOUD_AND_ENTERPRISE_AGENTS
      - ENDPOINT_AGENTS
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_SCHEDULED_TEST
      - CLOUD_NATIVE_MONITORING
      example: ENDPOINT_AGENTS
      type: string
    StackedAreaChartDatasource:
      description: Datasource of the stacked area chart widget.
      enum:
      - CLOUD_AND_ENTERPRISE_AGENTS
      - ENDPOINT_AGENTS
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_SCHEDULED_TEST
      - CLOUD_NATIVE_MONITORING
      example: ENDPOINT_AGENTS
      type: string
    StackedBarChartDatasource:
      description: Datasource of the stacked bar chart widget.
      enum:
      - CLOUD_AND_ENTERPRISE_AGENTS
      - ENDPOINT_AGENTS
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_SCHEDULED_TEST
      - CLOUD_NATIVE_MONITORING
      example: ENDPOINT_AGENTS
      type: string
    TableDatasource:
      description: Datasource of the table widget.
      enum:
      - ALERTS
      - CLOUD_AND_ENTERPRISE_AGENTS
      - DEVICES
      - ENDPOINT_AGENTS
      - ENDPOINT_AST_TEST
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_LOCAL_NETWORK
      - ENDPOINT_LOCAL_NETWORK_WIRELESS
      - ENDPOINT_SCHEDULED_TEST
      - INTERNET_INSIGHTS
      - ROUTING
      - CLOUD_NATIVE_MONITORING
      example: ENDPOINT_AGENTS
      type: string
    TestTableDatasource:
      description: Datasource of the test table widget.
      enum:
      - ALERTS
      - DEVICES
      - DNSP
      - ENDPOINT_AGENTS
      - ENDPOINT_SCHEDULED_TEST
      - ENDPOINT_AST_TEST
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_LOCAL_NETWORK
      - ENDPOINT_LOCAL_NETWORK_WIRELESS
      - ROUTING
      - CLOUD_AND_ENTERPRISE_AGENTS
      - INTERNET_INSIGHTS
      - APPDYNAMICS_SERVICE_HEALTH
      - CLOUD_NATIVE_MONITORING
      example: CLOUD_AND_ENTERPRISE_AGENTS
      type: string
    TimeseriesDatasource:
      description: Datasource of the Timeseries widget.
      enum:
      - ALERTS
      - CLOUD_AND_ENTERPRISE_AGENTS
      - DEVICES
      - ENDPOINT_AGENTS
      - ENDPOINT_AST_TEST
      - ENDPOINT_BROWSER_SESSION
      - ENDPOINT_LOCAL_NETWORK
      - ENDPOINT_LOCAL_NETWORK_WIRELESS
      - ENDPOINT_SCHEDULED_TEST
      - INTERNET_INSIGHTS
      - ROUTING
      - CLOUD_NATIVE_MONITORING
      example: CLOUD_AND_ENTERPRISE_AGENTS
      type: string
    MetricGroup:
      description: "Metric group of widget as it appears in the UI. Note: may not\
        \ be required in some cases."
      enum:
      - AGENT_TO_AGENT
      - AGENT_TO_SERVER
      - HTTP_SERVER
      - FTP_SERVER
      - PAGE_LOAD
      - TRANSACTIONS_CLASSIC
      - TRANSACTIONS
      - API
      - ENDPOINT_BROWSER_SESSION_NETWORK
      - ENDPOINT_BROWSER_SESSION_SYSTEM
      - ENDPOINT_BROWSER_SESSION_VISITED_PAGES
      - ENDPOINT_SCHEDULED_TEST_HTTP_SERVER
      - ENDPOINT_SCHEDULED_TEST_NETWORK
      - ENDPOINT_SCHEDULED_TEST_SYSTEM
      - ENDPOINT_AST_TEST_NETWORK
      - ENDPOINT_AST_TEST_SYSTEM
      - ENDPOINT_LOCAL_NETWORK_GATEWAY
      - ENDPOINT_LOCAL_NETWORK_AGENTS
      - ENDPOINT_LOCAL_NETWORK_DNS
      - ENDPOINT_LOCAL_NETWORK_NETWORK_ACCESS
      - ENDPOINT_LOCAL_NETWORK_PROXY
      - ENDPOINT_LOCAL_NETWORK_SYSTEM
      - ENDPOINT_LOCAL_NETWORK_VPN
      - ENDPOINT_LOCAL_NETWORK_WIRELESS
      - BGP
      - DEVICE
      - VOIP
      - SIP
      - ALERTS
      - DNS
      - DOMAIN_TRACE
      - DNSSEC
      - DNSP
      - NETWORK_OUTAGES
      - APPLICATION_OUTAGES
      - APPDYNAMICS_SERVICE_HEALTH
      - CLOUD_NATIVE_MONITORING-TRAFFIC_FLOW
      - CLOUD_NATIVE_MONITORING-EVENTS
      example: BGP
      type: string
    DashboardMetricDirection:
      description: Direction of agent to agent metric.
      enum:
      - TO_TARGET
      - FROM_TARGET
      - BIDIRECTIONAL
      example: FROM_TARGET
      type: string
    DashboardMetric:
      description: "Indicates the specific metric in the report, determined by the\
        \ layer, test type, and metric values."
      enum:
      - ONE_WAY_NET_LOSS_TO_TARGET
      - ONE_WAY_NET_LATENCY_TO_TARGET
      - ONE_WAY_NET_JITTER_TO_TARGET
      - ONE_WAY_NET_THROUGHPUT_TO_TARGET
      - ONE_WAY_NET_ERROR_TO_TARGET
      - ONE_WAY_NET_LOSS_FROM_TARGET
      - ONE_WAY_NET_LATENCY_FROM_TARGET
      - ONE_WAY_NET_JITTER_FROM_TARGET
      - ONE_WAY_NET_THROUGHPUT_FROM_TARGET
      - ONE_WAY_NET_ERROR_FROM_TARGET
      - ONE_WAY_NET_LOSS_BIDIRECTIONAL
      - ONE_WAY_NET_LATENCY_BIDIRECTIONAL
      - ONE_WAY_NET_JITTER_BIDIRECTIONAL
      - ONE_WAY_NET_THROUGHPUT_BIDIRECTIONAL
      - ONE_WAY_NET_ERROR_BIDIRECTIONAL
      - NET_LOSS
      - NET_LATENCY
      - NET_JITTER
      - NET_BANDWIDTH
      - NET_CAPACITY
      - PROXY_NET_LOSS
      - PROXY_NET_LATENCY
      - PROXY_NET_JITTER
      - WEB_AVAILABILITY
      - WEB_THROUGHPUT
      - WEB_DNS
      - WEB_CONNECT
      - WEB_SSL
      - WEB_WAIT
      - WEB_TTFB
      - WEB_RECEIVE
      - WEB_REDIRECT
      - WEB_FETCH
      - WEB_AUTHENTICATION_ERROR_COUNT
      - WEB_DNS_ERROR_COUNT
      - WEB_CONNECT_ERROR_COUNT
      - WEB_SSL_ERROR_COUNT
      - WEB_SEND_ERROR_COUNT
      - WEB_RECEIVE_ERROR_COUNT
      - WEB_HTTP_ERROR_COUNT
      - WEB_CONTENT_ERROR_COUNT
      - WEB_TOTAL_ERROR_COUNT
      - FTP_AVAILABILITY
      - FTP_THROUGHPUT
      - FTP_DNS
      - FTP_CONNECT
      - FTP_SSL
      - FTP_NEGOTIATION
      - FTP_WAIT
      - FTP_TTFB
      - FTP_TRANSFER
      - FTP_TOTAL
      - FTP_DNS_ERROR_COUNT
      - FTP_CONNECT_ERROR_COUNT
      - FTP_SSL_ERROR_COUNT
      - FTP_NEGOTIATION_ERROR_COUNT
      - FTP_TRANSFER_ERROR_COUNT
      - FTP_FTP_ERROR_COUNT
      - FTP_CONTENT_ERROR_COUNT
      - FTP_TOTAL_ERROR_COUNT
      - WEB_PAGE_LOAD_DOM_TIME
      - WEB_PAGE_LOAD
      - WEB_PAGE_TTFB
      - WEB_PAGE_COMPONENT_COUNT
      - WEB_PAGE_ERROR_COUNT
      - WEB_PAGE_LOAD_COMPLETION_RATE
      - CLASSIC_TRANSACTION_TIME
      - CLASSIC_TRANSACTION_COMPLETION
      - CLASSIC_TRANSACTION_STEP_TIME
      - CLASSIC_TRANSACTION_PAGE_TIME
      - TRANSACTION_MARKER_TIME_DECOMPOSED
      - TRANSACTION_PAGE_LOAD_TIME_DECOMPOSED
      - TRANSACTION_PAGE_TIME_DECOMPOSED
      - TRANSACTION_PAGE_LOAD_DOM_TIME_DECOMPOSED
      - TRANSACTION_TIME
      - TRANSACTION_TIMEOUT
      - TRANSACTION_ASSERT_ERROR
      - TRANSACTION_OTHER_ERROR
      - TRANSACTION_PAGE_ERROR
      - TRANSACTION_COMPLETION
      - TRANSACTION_ERROR
      - TRANSACTION_MARKER_TIME
      - TRANSACTION_PAGE_TIME
      - TRANSACTION_PAGE_LOAD_TIME
      - TRANSACTION_PAGE_LOAD_DOM_TIME
      - API_TRANSACTION_TIME
      - API_REQUEST_CALL_TIME
      - API_REQUEST_DNS_TIME
      - API_REQUEST_CONNECT_TIME
      - API_REQUEST_SSL_TIME
      - API_REQUEST_SEND_TIME
      - API_REQUEST_WAIT_TIME
      - API_REQUEST_BLOCK_TIME
      - API_REQUEST_RECEIVE_TIME
      - API_REQUEST_ASSERT_ERROR_COUNT
      - API_REQUEST_COMPLETION
      - API_REQUEST_OTHER_ERROR_COUNT
      - VOIP_DISCARDS
      - VOIP_LATENCY
      - VOIP_LOSS
      - VOIP_MOS
      - VOIP_PDV
      - SIP_AVAILABILITY
      - SIP_DNS
      - SIP_CONNECT
      - SIP_REDIRECT
      - SIP_REGISTER
      - SIP_OPTIONS
      - SIP_INVITE
      - SIP_WAIT
      - SIP_RESPONSE_TIME
      - SIP_TOTAL_TIME
      - SIP_DNS_ERROR_COUNT
      - SIP_CONNECT_ERROR_COUNT
      - SIP_REGISTER_ERROR_COUNT
      - SIP_OPTIONS_ERROR_COUNT
      - SIP_INVITE_ERROR_COUNT
      - SIP_TOTAL_ERROR_COUNT
      - DNS_SERVER_AVAILABILITY
      - DNS_SERVER_TIME
      - DNS_TRACE_AVAILABILITY
      - DNS_TRACE_QUERY_COUNT
      - DNS_TRACE_QUERY_TIME
      - DNSSEC_VALIDITY
      - DNSP_AVAILABILITY
      - DNSP_TIME
      - DNSP_SERVER_TIME
      - BGP_REACHABILITY
      - BGP_PATH_CHANGES
      - ALERT_COUNT
      - ALERT_COUNT_AGENT
      - ALERT_COUNT_BGP
      - ALERT_COUNT_DNSP
      - ENDPOINT_SAMPLE_COUNT
      - ENDPOINT_NET_LOSS
      - ENDPOINT_NET_LATENCY
      - ENDPOINT_NET_JITTER
      - ENDPOINT_NET_CONNECT_FAILURES
      - ENDPOINT_NET_CPU_LOAD_PERCENT
      - ENDPOINT_NET_MEMORY_LOAD_PERCENT
      - ENDPOINT_NET_VPN_LOSS
      - ENDPOINT_NET_VPN_LATENCY
      - ENDPOINT_PAGE_COUNT
      - ENDPOINT_WEB_COMPLETION
      - ENDPOINT_WEB_RESPONSE_TIME
      - ENDPOINT_WEB_PAGE_LOAD
      - ENDPOINT_WEB_PAGE_LOAD_DOM_TIME
      - ENDPOINT_WEB_EXPERIENCE_SCORE
      - ENDPOINT_WEB_BROWSER_ERROR_COUNT
      - ENDPOINT_GATEWAY_PROBE_COUNT
      - ENDPOINT_GATEWAY_COMBINED_TRANSMISSION_RATE
      - ENDPOINT_GATEWAY_SIGNAL_QUALITY
      - ENDPOINT_GATEWAY_LOSS
      - ENDPOINT_GATEWAY_LATENCY
      - ENDPOINT_GATEWAY_AGENT_SCORE
      - ENDPOINT_GATEWAY_SCORE
      - ENDPOINT_GATEWAY_CONNECTION_SCORE
      - ENDPOINT_GATEWAY_PROXY_LOSS
      - ENDPOINT_GATEWAY_PROXY_LATENCY
      - ENDPOINT_GATEWAY_PROXY_SCORE
      - ENDPOINT_GATEWAY_VPN_LOSS
      - ENDPOINT_GATEWAY_VPN_LATENCY
      - ENDPOINT_GATEWAY_VPN_SCORE
      - ENDPOINT_GATEWAY_DNS_LOSS
      - ENDPOINT_GATEWAY_DNS_LATENCY
      - ENDPOINT_GATEWAY_DNS_TIME
      - ENDPOINT_GATEWAY_CPU_LOAD_PERCENT
      - ENDPOINT_GATEWAY_MEMORY_LOAD_PERCENT
      - EYEBROW_GATEWAY_WIRELESS_CHANNEL_SWAP_EVENTS
      - EYEBROW_GATEWAY_WIRELESS_RETRANSMISSION_RATE
      - EYEBROW_GATEWAY_WIRELESS_ROAMING_EVENTS
      - EYEBROW_GATEWAY_WIRELESS_SIGNAL_QUALITY
      - EYEBROW_GATEWAY_WIRELESS_THROUGHPUT
      - ENDPOINT_AST_TEST_NET_LOSS
      - ENDPOINT_AST_TEST_NET_JITTER
      - ENDPOINT_AST_TEST_NET_LATENCY
      - ENDPOINT_AST_TEST_NET_CPU_LOAD_PERCENT
      - ENDPOINT_AST_TEST_NET_MEMORY_LOAD_PERCENT
      - ENDPOINT_AST_TEST_VPN_LOSS
      - ENDPOINT_AST_TEST_VPN_LATENCY
      - ENDPOINT_AST_TEST_TCP_CONNECTION_ERROR_COUNT
      - ENDPOINT_AST_TEST_APPLICATION_SCORE
      - ENDPOINT_GATEWAY_WIRELESS_CHANNEL_SWAP_EVENTS
      - ENDPOINT_GATEWAY_WIRELESS_RETRANSMISSION_RATE
      - ENDPOINT_GATEWAY_WIRELESS_ROAMING_EVENTS
      - ENDPOINT_GATEWAY_WIRELESS_SIGNAL_QUALITY
      - ENDPOINT_GATEWAY_WIRELESS_THROUGHPUT
      - ENDPOINT_TEST_NET_LOSS
      - ENDPOINT_TEST_NET_JITTER
      - ENDPOINT_TEST_NET_LATENCY
      - ENDPOINT_TEST_NET_CPU_LOAD_PERCENT
      - ENDPOINT_TEST_NET_MEMORY_LOAD_PERCENT
      - ENDPOINT_TEST_VPN_LOSS
      - ENDPOINT_TEST_VPN_LATENCY
      - ENDPOINT_TEST_TCP_CONNECTION_ERROR_COUNT
      - ENDPOINT_TEST_APPLICATION_SCORE
      - ENDPOINT_TEST_HTTP_AVAILABILITY
      - ENDPOINT_TEST_HTTP_WAIT
      - ENDPOINT_TEST_HTTP_SSL
      - ENDPOINT_TEST_HTTP_CONNECT
      - ENDPOINT_TEST_HTTP_DNS_LOOKUP
      - ENDPOINT_TEST_HTTP_RESPONSE_TIME
      - ENDPOINT_TEST_HTTP_THROUGHPUT
      - ENDPOINT_TEST_HTTP_APPLICATION_SCORE
      - DEVICE_AVAILABILITY
      - DEVICE_THROUGHPUT_INPUT
      - DEVICE_THROUGHPUT_OUTPUT
      - DEVICE_DISCARDS_INPUT
      - DEVICE_DISCARDS_OUTPUT
      - DEVICE_ERRORS_INPUT
      - DEVICE_ERRORS_OUTPUT
      - DEVICE_DISCARDS_AND_ERRORS_INPUT
      - DEVICE_DISCARDS_AND_ERRORS_OUTPUT
      - DEVICE_INTERFACES_UP
      - DEVICE_INTERFACES_WITH_STATE_CHANGES
      - NETWORK_OUTAGES_OUTAGES
      - NETWORK_OUTAGES_LOCATIONS
      - NETWORK_OUTAGES_INTERFACES
      - NETWORK_OUTAGES_AFFECTED_TESTS
      - APPLICATION_OUTAGES_AFFECTED_TESTS
      - APPLICATION_OUTAGES_SERVERS
      - APPLICATION_OUTAGES_LOCATIONS
      - APPLICATION_OUTAGES_OUTAGES
      - APPDYNAMICS_SERVICE_HEALTH
      - CLOUD_NATIVE_MONITORING-ACCEPTED_TOTAL_THROUGHPUT
      - CLOUD_NATIVE_MONITORING-ACCEPTED_OUTBOUND_THROUGHPUT
      - CLOUD_NATIVE_MONITORING-ACCEPTED_INBOUND_THROUGHPUT
      - CLOUD_NATIVE_MONITORING-ACCEPTED_INTERNAL_THROUGHPUT
      - CLOUD_NATIVE_MONITORING-REJECTED_TOTAL_THROUGHPUT
      - CLOUD_NATIVE_MONITORING-REJECTED_OUTBOUND_THROUGHPUT
      - CLOUD_NATIVE_MONITORING-REJECTED_INBOUND_THROUGHPUT
      - CLOUD_NATIVE_MONITORING-REJECTED_INTERNAL_THROUGHPUT
      - CLOUD_NATIVE_MONITORING-TOTAL_CONNECTION_RATE
      - CLOUD_NATIVE_MONITORING-CONNECTION_RATE
      - CLOUD_NATIVE_MONITORING-INTERNAL_CONNECTION_RATE
      - CLOUD_NATIVE_MONITORING-ALL_EVENTS
      - CLOUD_NATIVE_MONITORING-CONFIGURATION_CHANGE_EVENTS
      - CLOUD_NATIVE_MONITORING-AUTOSCALING_EVENTS
      example: ENDPOINT_GATEWAY_CPU_LOAD_PERCENT
      type: string
    WidgetFilters:
      additionalProperties:
        items: {}
        type: array
        uniqueItems: true
      description: "(Optional) Specifies the filters applied to the widget. When present,\
        \ the `filters` property displays. Each filter object has two properties:\
        \ `filterProperty` and `filterValue`. The `filterProperty` can be values like\
        \ `AGENT`, `ENDPOINT_MACHINE_ID`, `TEST`, `MONITOR`, etc.  The `filterValue`\
        \ represents an identifier array of the selected property."
      example:
        TEST:
        - 5187
        - 5227
        ENDPOINT_MACHINE_ID:
        - fbd0050c-07f7-43f7-9631-14b32f096962
      type: object
    Widget:
      properties:
        id:
          description: Identifier of the widget.
          example: "1234"
          readOnly: true
          type: string
        title:
          description: Title of the widget
          example: Widget Title
          type: string
        visualMode:
          $ref: '#/components/schemas/VisualMode'
        embedUrl:
          description: "When `isEmbedded` is set to `true`, an `embedUrl` is provided."
          example: https://embed.thousandeyes.com/e/00aa:3039802d-5c76-42d2-9a93-c6e5f9d3122f
          readOnly: true
          type: string
        isEmbedded:
          description: "Set to `true` if widget is marked as embedded; otherwise,\
            \ set to `false`."
          type: boolean
        metricGroup:
          $ref: '#/components/schemas/MetricGroup'
        direction:
          $ref: '#/components/schemas/DashboardMetricDirection'
        metric:
          $ref: '#/components/schemas/DashboardMetric'
        filters:
          additionalProperties:
            items: {}
            type: array
            uniqueItems: true
          description: "(Optional) Specifies the filters applied to the widget. When\
            \ present, the `filters` property displays. Each filter object has two\
            \ properties: `filterProperty` and `filterValue`. The `filterProperty`\
            \ can be values like `AGENT`, `ENDPOINT_MACHINE_ID`, `TEST`, `MONITOR`,\
            \ etc.  The `filterValue` represents an identifier array of the selected\
            \ property."
          example:
            TEST:
            - 5187
            - 5227
            ENDPOINT_MACHINE_ID:
            - fbd0050c-07f7-43f7-9631-14b32f096962
          type: object
        measure:
          $ref: '#/components/schemas/ApiWidgetMeasure'
        fixedTimespan:
          $ref: '#/components/schemas/ApiDuration'
        apiLink:
          description: "**(Deprecated)**"
          deprecated: true
          readOnly: true
          type: string
        shouldExcludeAlertSuppressionWindows:
          description: Excludes alert suppression window data if set to `true`.
          type: boolean
        _links:
          $ref: '#/components/schemas/SelfLinks'
      type: object
    ApiWidget:
      discriminator:
        mapping:
          'Bar Chart: Stacked': '#/components/schemas/ApiStackedBarchartWidget'
          'Bar Chart: Grouped': '#/components/schemas/ApiGroupedBarchartWidget'
          'Time Series: Line': '#/components/schemas/ApiTimeseriesWidget'
          'Time Series: Stacked Area': '#/components/schemas/ApiStackedAreaChartWidget'
          Pie Chart: '#/components/schemas/ApiPieChartWidget'
          Table: '#/components/schemas/ApiTableWidget'
          Multi Metric Table: '#/components/schemas/ApiMultiMetricTableWidget'
          Number: '#/components/schemas/ApiNumbersCardWidget'
          Agent Status: '#/components/schemas/ApiAgentStatusWidget'
          Color Grid: '#/components/schemas/ApiColorGridWidget'
          Alert List: '#/components/schemas/ApiAlertListWidget'
          Test Table: '#/components/schemas/ApiTestTableWidget'
          Map: '#/components/schemas/ApiGeoMapWidget'
          Box and Whiskers: '#/components/schemas/ApiBoxAndWhiskersWidget'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/ApiAgentStatusWidget'
      - $ref: '#/components/schemas/ApiAlertListWidget'
      - $ref: '#/components/schemas/ApiBoxAndWhiskersWidget'
      - $ref: '#/components/schemas/ApiColorGridWidget'
      - $ref: '#/components/schemas/ApiGeoMapWidget'
      - $ref: '#/components/schemas/ApiGroupedBarchartWidget'
      - $ref: '#/components/schemas/ApiMultiMetricTableWidget'
      - $ref: '#/components/schemas/ApiNumbersCardWidget'
      - $ref: '#/components/schemas/ApiPieChartWidget'
      - $ref: '#/components/schemas/ApiStackedAreaChartWidget'
      - $ref: '#/components/schemas/ApiStackedBarchartWidget'
      - $ref: '#/components/schemas/ApiTableWidget'
      - $ref: '#/components/schemas/ApiTestTableWidget'
      - $ref: '#/components/schemas/ApiTimeseriesWidget'
    WidgetType:
      description: Type of the Widget
      enum:
      - "Bar Chart: Stacked"
      - "Bar Chart: Grouped"
      - "Time Series: Line"
      - "Time Series: Stacked Area"
      - Pie Chart
      - Table
      - Multi Metric Table
      - Number
      - Agent Status
      - Color Grid
      - Alert List
      - Test Table
      - Map
      - Box and Whiskers
      type: string
    BarChartStackedWidgetType:
      description: "Bar Chart: Stacked widget type."
      example: "Bar Chart: Stacked"
      pattern: "^Bar Chart: Stacked$"
      type: string
    BarChartGroupedWidgetType:
      description: "Bar Chart: Grouped widget type."
      example: "Bar Chart: Grouped"
      pattern: "^Bar Chart: Grouped$"
      type: string
    TimeSeriesLineWidgetType:
      description: "Time Series: Line widget type."
      example: "Time Series: Line"
      pattern: "^Time Series: Line$"
      type: string
    TimeSeriesStackedAreaWidgetType:
      description: "Time Series: Stacked Area widget type"
      example: "Time Series: Stacked Area"
      pattern: "^Time Series: Stacked Area$"
      type: string
    PieChartWidgetType:
      description: Pie Chart widget type
      example: Pie Chart
      pattern: ^Pie Chart$
      type: string
    TableWidgetType:
      description: Table widget type.
      example: Table
      pattern: ^Table$
      type: string
    MultiMetricTableWidgetType:
      description: Multi Metric Table widget type.
      example: Multi Metric Table
      pattern: ^Multi Metric Table$
      type: string
    NumberWidgetType:
      description: Number widget type.
      example: Number
      pattern: ^Number$
      type: string
    AgentStatusWidgetType:
      description: Agent Status widget type.
      example: Agent Status
      pattern: ^Agent Status$
      type: string
    ColorGridWidgetType:
      description: Color Grid widget type.
      example: Color Grid
      pattern: ^Color Grid$
      type: string
    AlertListWidgetType:
      description: Alert List widget type.
      example: Alert List
      pattern: ^Alert List$
      type: string
    TestTableWidgetType:
      description: "Test Table widget type,"
      example: Test Table
      pattern: ^Test Table$
      type: string
    MapWidgetType:
      description: Map widget type.
      example: Map
      pattern: ^Map$
      type: string
    BoxAndWhiskersWidgetType:
      description: Box and Whiskers widget type.
      example: Box and Whiskers
      pattern: ^Box and Whiskers$
      type: string
    VisualMode:
      default: Full
      description: Visual mode in the UI. Either full or half the width of the window.
      enum:
      - Full
      - Half screen
      example: Full
      type: string
    ApiWidgetFilterApiTestTableFilterKey:
      properties:
        filters:
          items:
            $ref: '#/components/schemas/ApiMultiSearchFilterApiTestTableFilterKey'
          type: array
        type:
          $ref: '#/components/schemas/TestTableFilterType'
      type: object
    TestTableFilterType:
      enum:
      - all
      - any
      example: all
      type: string
    ApiWidgetMeasure:
      description: Determines how to aggregate the the metric.
      properties:
        type:
          $ref: '#/components/schemas/WidgetMeasureType'
        percentileValue:
          description: The percentile value to use when `type == NTH_PERCENTILE`.
          example: 95.0
          format: float
          type: number
      type: object
    WidgetMeasureType:
      description: Determines how to aggregate the the metric.
      enum:
      - MINIMUM
      - MAXIMUM
      - MEAN
      - MEDIAN
      - NTH_PERCENTILE
      - PERCPOSITIVE
      - PERCZERO
      - STDDEV
      - TOTAL
      - VALUES
      - SUM
      - CLOUD_NATIVE_MONITORING-MEAN
      - CLOUD_NATIVE_MONITORING-SUM
      example: MEAN
      type: string
    SnapshotExpirationDate:
      description: "Expiration date of the snapshot. If unspecified, the snapshot\
        \ expires 1 year from its creation date. The expiration date must be set within\
        \ 5 years from the current date and adhere to the ISO date-time format."
      example: 2023-05-16T10:14:28Z
      format: date-time
      type: string
    GenerateDashboardSnapshotRequest:
      description: Request to generate a snapshot from a dashboard.
      properties:
        startDate:
          description: Date and time to start aggregating data (ISO date-time format).
          example: 2023-05-16T10:14:28Z
          format: date-time
          type: string
        endDate:
          description: Date and time to end aggregating data (ISO date-time format).
          example: 2023-05-16T10:14:28Z
          format: date-time
          type: string
        displayName:
          description: "The name of the snapshot, does not have to be unique."
          example: snapshot from API
          type: string
        dashboardId:
          description: TheIdentifierof the dashboard to generate a snapshot from
          example: 646f4d2ce3c99b0536c3821e
          type: string
        anonymizeData:
          description: Set to `true` to anonymize the data in the snapshot.
          type: boolean
        timezone:
          description: Specifies the timezone used for date and time fields.
          example: PST
          type: string
        expirationDate:
          description: "Expiration date of the snapshot. If unspecified, the snapshot\
            \ expires 1 year from its creation date. The expiration date must be set\
            \ within 5 years from the current date and adhere to the ISO date-time\
            \ format."
          example: 2023-05-16T10:14:28Z
          format: date-time
          type: string
      type: object
    UpdateSnapshotExpirationDateApiRequest:
      description: Request to update the expiration date of a snapshot.
      properties:
        snapshotExpirationDate:
          description: "Expiration date of the snapshot. If unspecified, the snapshot\
            \ expires 1 year from its creation date. The expiration date must be set\
            \ within 5 years from the current date and adhere to the ISO date-time\
            \ format."
          example: 2023-05-16T10:14:28Z
          format: date-time
          type: string
        expirationDate:
          deprecated: true
          description: "**(Deprecated)** Expiration date of the snapshot. If unspecified, the snapshot\
            \ expires 1 year from its creation date. The expiration date must be set\
            \ within 5 years from the current date."
          example: 2023-05-16 10:14:28
          type: string
      type: object
    ApiAgentLocation:
      description: Location of the agent.
      properties:
        latitude:
          description: Latitude of the agent.
          example: 37.77493
          format: double
          type: number
        longitude:
          description: Longitude of the agent.
          example: -122.41942
          format: double
          type: number
        locationName:
          description: Name of the agent location.
          example: "San Francisco, California, US"
          type: string
      type: object
    ApiAgentStatusAgent:
      description: Agent shown in agent status widget.
      properties:
        agentId:
          description: Identifier of the agent.
          example: "6522"
          type: string
        status:
          $ref: '#/components/schemas/EnterpriseAgentState'
        ipInfo:
          $ref: '#/components/schemas/ApiAgentStatusIpInfo'
        agentName:
          description: Name of the agent
          example: 0c3898000117
          type: string
        location:
          $ref: '#/components/schemas/ApiAgentLocation'
      type: object
    ApiAgentStatusIpInfo:
      description: IP information of the agent.
      properties:
        publicIp:
          description: Public IP of the agent.
          example: 172.58.92.31
          format: ipv4
          type: string
        privateIp:
          description: Private IP of the agent.
          example: 172.58.92.31
          format: ipv4
          type: string
        ipv6:
          type: string
        operativeSystemVersion:
          type: string
      type: object
    ApiAgentStatusSummary:
      description: Summary of the agent status.
      properties:
        online:
          description: Shows the number of agents with an online status.
          example: 10
          format: int32
          type: integer
        offline:
          description: Shows the number of agents with an offline status.
          example: 2
          format: int32
          type: integer
        disabled:
          description: Shows the number of agents with disabled status.
          example: 3
          format: int32
          type: integer
      type: object
    AlertListAlertType:
      description: Name of the alert type
      enum:
      - network-end-to-end-server
      - network-end-to-end-agent
      - network-path-trace
      - dns-server
      - dns-trace
      - dnssec
      - dns-plus-domain
      - dns-plus-server
      - web-http-server
      - web-page-load
      - web-transaction-classic
      - web-transaction
      - web-ftp-server
      - voice-sip-server
      - voice-rtp-stream
      - device
      - device-interface
      - endpoint-end-to-end-server
      - endpoint-web-http-server
      - endpoint-path-trace
      - browser-session-agent
      - browser-session-application
      - routing-bgp
      type: string
    LegacyAlertListAlertType:
      description: Name of the alert type
      enum:
      - Network - End-to-End (Server)
      - Network - End-to-End (Agent)
      - Network - Path Trace
      - DNS Server
      - DNS Trace
      - DNSSEC
      - DNS+ Domain
      - DNS+ Server
      - Web - HTTP Server
      - Web - Page Load
      - Web - Transaction (Classic)
      - Web - Transaction
      - Web - FTP Server
      - Voice - SIP Server
      - Voice - RTP Stream
      - Device
      - Device Interface
      - Endpoint - End-to-End (Server)
      - EndpointWeb - HTTP Server
      - Endpoint - Path Trace
      - Browser Sessions - Agent
      - Browser Sessions - Application
      - Routing - BGP
      type: string
    ApiAlertListAlertType:
      $ref: '#/components/schemas/LegacyAlertListAlertType'
    ApiAlertListAlert:
      description: Alert shown in the alert list widget.
      properties:
        alertId:
          description: Identifier of the alert.
          example: "2004945"
          type: string
        testId:
          description: Identifier of the test.
          example: "56512"
          type: string
        ruleId:
          description: Identifier of the rule.
          example: "281724"
          type: string
        alertSource:
          description: "Name of the agent, monitor or device producing the alert."
          example: Http Test
          type: string
        alertRule:
          description: Name of the alert rule that this alert belongs to.
          example: Http Test Rule
          type: string
        alertType:
          $ref: '#/components/schemas/AlertListAlertType'
        startTime:
          description: UTC date when the alert was first active.
          example: 2023-06-02T08:54:00Z
          format: date-time
          type: string
        durationInSeconds:
          description: "Number of seconds the alert was active. If it’s still active,\
            \ this number will increase every second."
          example: 25
          format: int64
          type: integer
        active:
          description: "Set to `true` if alert is active, `false` otherwise."
          example: true
          type: boolean
      type: object
    ApiDashboardAsw:
      description: Alert suppression window shown in a widget.
      properties:
        id:
          description: Identifier of the alert suppression window.
          example: "281474976710662"
          type: string
        name:
          description: Name of the alert suppression window.
          example: Test dashboards
          type: string
        testIds:
          example:
          - "281474976710661"
          items:
            type: string
          type: array
          uniqueItems: true
        startTimes:
          example:
          - 2023-05-16T10:14:28Z
          items:
            format: date-time
            type: string
          type: array
        durationInSeconds:
          example: 7200
          format: int64
          type: integer
        repeat:
          $ref: '#/components/schemas/AswRepeat'
        repeatEvery:
          example: 5
          format: int32
          type: integer
        repeatUnit:
          $ref: '#/components/schemas/AswRepeatUnit'
      type: object
    AswRepeat:
      enum:
      - none
      - every-day
      - alt-every-day
      - every-week
      - every-two-week
      - every-month
      - every-three-month
      - custom
      example: custom
      type: string
    AswRepeatUnit:
      enum:
      - day
      - week
      - month
      example: week
      type: string
    ApiDataPointGroup:
      description: Group of data points.
      properties:
        groupProperty:
          description: Defines the criterion used to aggregate data points under specific
            group values.
          example: COUNTRY
          type: string
        groupValue:
          description: The value of a group.
          example: US
          type: string
      type: object
    ApiGraphletPoint:
      description: A data point on a graphlet.
      properties:
        x:
          description: Timestamp of the data point.
          example: 1580403900
          format: int64
          type: integer
        "y":
          description: Value of the data point.
          example: 128.249
          format: double
          type: number
      type: object
    ApiMultiMetricColumnData:
      description: The data presented within a single column of a Multi-Metric table.
      properties:
        columnId:
          description: Identifier of the column.
          example: 938to
          type: string
        binSize:
          description: Duration of each bin.
          example: 3600
          format: int64
          type: integer
        points:
          items:
            $ref: '#/components/schemas/ApiWidgetDataPoint'
          type: array
        status:
          description: Message for not fully configured card or no data.
          example: No data
          type: string
        alertSuppressionWindows:
          items:
            $ref: '#/components/schemas/ApiDashboardAsw'
          type: array
      type: object
    ApiNumbersCardData:
      description: The data displayed on a numbers card.
      properties:
        cardId:
          description: Identifier of the card.
          example: lrxxr
          type: string
        startDate:
          description: UTC start date of the data shown in the API output (ISO date-time
            format).
          example: 2023-05-16T10:14:28Z
          format: date-time
          type: string
        endDate:
          description: UTC end date of the data shown in the API output (ISO date-time
            format).
          example: 2023-05-16T10:14:28Z
          format: date-time
          type: string
        previousValue:
          description: Previous value if `compareToPreviousValue == true` in configuration.
          example: 500.0
          format: double
          type: number
        binSize:
          description: Duration of each bin.
          example: 3600
          format: int64
          type: integer
        timestamp:
          description: Timestamp of the aggregated data point.
          example: 1567620000
          format: int64
          type: integer
        numberOfDataPoints:
          description: Number of points aggregated into the data point
          example: 24192
          format: int64
          type: integer
        value:
          description: Aggregated value.
          example: 100.0
          format: double
          type: number
        status:
          description: Message for not fully configured card or no data.
          example: No data
          type: string
        alertSuppressionWindows:
          items:
            $ref: '#/components/schemas/ApiDashboardAsw'
          type: array
      type: object
    ApiReportDataComponentLabelMap:
      description: Map of group labels.
      properties:
        groupProperty:
          description: Defines the criterion used to aggregate data points under specific
            group values.
          example: AGENT
          type: string
        groupLabels:
          description: List of group labels.
          items:
            $ref: '#/components/schemas/ApiReportDataComponentLabelMapEntry'
          type: array
      type: object
    ApiReportDataComponentLabelMapEntry:
      description: Represents a mapping entry of a group label.
      properties:
        groupId:
          description: Identifier of the group.
          example: "2565"
          type: string
        groupLabel:
          description: Label of the group.
          example: "San Francisco, CA"
          type: string
      type: object
    ApiTestTableData:
      description: Data shown in a test table widget.
      properties:
        testId:
          description: Identifier of the test.
          example: "68256"
          type: string
        testName:
          description: Name of the test.
          example: Http Test Name
          type: string
        target:
          description: Configured target of the test.
          example: www.google.com
          type: string
        testType:
          description: Type of the test.
          example: Web - HTTP Server
          type: string
        alertCount:
          description: Number of active alerts of the test.
          example: 398
          format: int64
          type: integer
        isShared:
          description: "Set to `true` if test is shared, `false` otherwise."
          type: boolean
        graphlets:
          description: List of time series points for test metrics in the last 12
            hours.
          items:
            $ref: '#/components/schemas/ApiTestTableGraphletsData'
          type: array
      type: object
    ApiTestTableGraphletsData:
      description: Information displayed within a mini-graph associated with a specific
        test in a table.
      properties:
        metric:
          description: Name of the metric.
          example: Availability
          type: string
        testId:
          description: Identifier of the test.
          example: "68257"
          type: string
        points:
          items:
            $ref: '#/components/schemas/ApiGraphletPoint'
          type: array
      type: object
    ApiWidgetDataPoint:
      description: Data point of a widget.
      properties:
        timestamp:
          description: Timestamp of the aggregated data point.
          example: 1567620000
          format: int64
          type: integer
        numberOfDataPoints:
          description: Number of test data points aggregated into the widget data
            point.
          example: 23304
          format: int64
          type: integer
        value:
          description: Aggregated value.
          example: 100.0
          format: double
          type: number
        groups:
          items:
            $ref: '#/components/schemas/ApiDataPointGroup'
          type: array
      type: object
    ApiWidgetDataSnapshotResponse:
      allOf:
      - $ref: '#/components/schemas/ApiWidgetData'
      - properties:
          _links:
            $ref: '#/components/schemas/SelfLinks'
        type: object
    ApiWidgetDataResponse:
      allOf:
      - $ref: '#/components/schemas/ApiWidgetData'
      - properties:
          _links:
            $ref: '#/components/schemas/PaginationLinks'
        type: object
    ApiWidgetData:
      description: Response of a widget data request.
      properties:
        groupLabels:
          items:
            $ref: '#/components/schemas/ApiReportDataComponentLabelMap'
          type: array
        binSize:
          description: Duration of each bin.
          example: 3600
          format: int64
          type: integer
        data:
          $ref: '#/components/schemas/ApiWidgetsDataV2'
        startDate:
          description: "(Optional) When passing `window` or `startDate` parameter,\
            \  the client will also receive the `startDate` field indicating the UTC\
            \ start date of the data's time range being retrieved  (ISO date-time\
            \ format)."
          example: 2022-07-17T22:00:54Z
          format: date-time
          readOnly: true
          type: string
        endDate:
          description: "(Optional) When passing `window` or `endDate` parameter, \
            \ the client will also receive the `endDate` field indicating the UTC\
            \ end date of the data's time range being retrieved  (ISO date-time format)."
          example: 2022-07-18T22:00:54Z
          format: date-time
          readOnly: true
          type: string
      type: object
    ApiWidgetsDataV2:
      description: Data of a widget.
      properties:
        cards:
          items:
            $ref: '#/components/schemas/ApiNumbersCardData'
          type: array
        columns:
          items:
            $ref: '#/components/schemas/ApiMultiMetricColumnData'
          type: array
        points:
          items:
            $ref: '#/components/schemas/ApiWidgetDataPoint'
          type: array
        tests:
          items:
            $ref: '#/components/schemas/ApiTestTableData'
          type: array
        startRound:
          description: Epoch time (seconds) indicating the start time of the round.
          example: 1384309800
          format: int64
          type: integer
        alertSuppressionWindows:
          items:
            $ref: '#/components/schemas/ApiDashboardAsw'
          type: array
        totalAlerts:
          description: Total number of active alerts within configured timespan.
          example: 500
          format: int64
          type: integer
        activeAlerts:
          description: Total number of currently active alerts.
          example: 483
          format: int64
          type: integer
        alerts:
          items:
            $ref: '#/components/schemas/ApiAlertListAlert'
          type: array
        summary:
          $ref: '#/components/schemas/ApiAgentStatusSummary'
        agents:
          items:
            $ref: '#/components/schemas/ApiAgentStatusAgent'
          type: array
        status:
          description: Message for not fully configured card or no data.
          example: No data
          type: string
      type: object
    DashboardSnapshotResponse:
      properties:
        snapshotId:
          description: Identifier of the dashboard snapshot.
          example: d28bb71f-5a47-4783-8f12-d4b115e61b0c
          format: uuid
          type: string
        _links:
          $ref: '#/components/schemas/SelfLinks'
      type: object
    DashboardSnapshotId:
      description: Identifier of the dashboard snapshot.
      example: d28bb71f-5a47-4783-8f12-d4b115e61b0c
      format: uuid
      type: string
    DashboardGlobalFilterId:
      properties:
        globalFilterId:
          description: Default global dashboard filter ID (obtained from `/dashboards/filters`
            endpoint).
          example: 65babd9bb90bf55b17c96c8d
          type: string
    LegacyDashboardSnapshot:
      deprecated: true
      properties:
        accountId:
          description: "**(Deprecated)** Identifier of the account group that the snapshot belongs to."
          example: 1234
          format: int64
          type: integer
        createdDate:
          description: "**(Deprecated)** UTC date when dashboard snapshot was created."
          example: 2023-05-16 10:14:28
          type: string
        expirationDate:
          description: "**(Deprecated)** Expiration date of the snapshot. If unspecified, the snapshot\
            \ expires 1 year from its creation date. The expiration date must be set\
            \ within 5 years from the current date."
          example: 2023-05-16 10:14:28
          type: string
        permalink:
          description: "**(Deprecated)** Hyperlink to dashboard snapshot in ThousandEyes Application."
          example: https://app.thousandeyes.com/dashboard/?snapshotId=d28bb71f-5a47-4783-8f12-d4b115e61b0c
          type: string
        apiLinks:
          description: "**(Deprecated)** A links array containing the self link."
          items:
            additionalProperties: true
            type: object
          type: array
      type: object
    ApiDashboardSnapshot:
      allOf:
      - properties:
          snapshotId:
            $ref: '#/components/schemas/DashboardSnapshotId'
          snapshotName:
            description: Name of the dashboard snapshot.
            example: HTTP Server Dashboard Snapshot
            type: string
          aid:
            description: Identifier of the account group that the snapshot belongs
              to.
            example: "1234"
            type: string
          isShared:
            description: "Set `true` if dashboard snapshot is shared, `false` otherwise."
            type: boolean
          snapshotCreatedDate:
            description: UTC date when dashboard snapshot was created (ISO date-time
              format).
            example: 2023-05-16T10:14:28Z
            format: date-time
            type: string
          dashboard:
            $ref: '#/components/schemas/ApiDashboard'
          widgets:
            items:
              $ref: '#/components/schemas/ApiWidget'
            type: array
          isScheduled:
            description: "Set `true` if dashboard snapshot was generated from a schedule,\
              \ `false` otherwise."
            type: boolean
          timeSpan:
            $ref: '#/components/schemas/ApiReportSnapshotTimeSpan'
          snapshotExpirationDate:
            $ref: '#/components/schemas/SnapshotExpirationDate'
          _links:
            $ref: '#/components/schemas/AppAndSelfLinks'
        type: object
      - $ref: '#/components/schemas/LegacyDashboardSnapshot'
    ApiReportSnapshotTimeSpan:
      description: Time span of the dashboard snapshot.
      properties:
        startDate:
          deprecated: true
          description: "**(Deprecated)** UTC start date of dashboard snapshot."
          example: 2023-05-16 10:14:28
          type: string
        start:
          description: UTC start date of dashboard snapshot (ISO date-time format).
          example: 2023-05-16T10:14:28Z
          format: date-time
          type: string
        duration:
          description: Duration of dashboard snapshot in seconds.
          example: 60
          format: int64
          type: integer
      type: object
    DashboardSnapshotsPage:
      description: Dashboard snapshots page.
      properties:
        pages:
          additionalProperties: true
          deprecated: true
          type: object
        dashboardSnapshots:
          items:
            $ref: '#/components/schemas/ApiDashboardSnapshot'
          type: array
        _links:
          $ref: '#/components/schemas/PaginationLinks'
      type: object
    DashboardLinks:
      description: A links object containing the self and the snapshots links.
      properties:
        self:
          $ref: '#/components/schemas/Link'
        snapshots:
          $ref: '#/components/schemas/Link'
      readOnly: true
      type: object
    BinSize:
      description: Duration of each bin.
      example: 3600
      format: int64
      type: integer
    Timestamp:
      description: Timestamp of the aggregated data point.
      example: 1567620000
      format: int64
      type: integer
    WidgetValue:
      description: Aggregated value.
      example: 100.0
      format: double
      type: number
    WidgetStatus:
      description: Message for not fully configured card or no data.
      example: No data
      type: string
    ApiContextFiltersResponse:
      description: All global dashboard filters saved.
      properties:
        dashboardFilters:
          items:
            $ref: '#/components/schemas/ApiContextFilterResponse'
          type: array
      type: object
    ApiDashboardFilterName:
      description: "The name of the dashboard filter, this must be unique."
      example: cea-filter
      type: string
    ApiDashboardFilterDescription:
      description: An optional description of the filter.
      example: Global filter for CEA widgets
      type: string
    ApiDashboardFilterUserDetails:
      description: Details of user who created or modified the filter.
      properties:
        uid:
          description: Unique ID of the user.
          example: "1"
          type: string
        name:
          description: Name of the user.
          example: Test User
          type: string
      type: object
    ApiContextFilterRequest:
      description: "Request containing dashboard filter name, description and context\
        \ details."
      properties:
        context:
          description: List of filters to be applied to a dashboard.
          items:
            $ref: '#/components/schemas/ApiDataSourceFilters'
          type: array
          uniqueItems: true
        name:
          description: "The name of the dashboard filter, this must be unique."
          example: cea-filter
          type: string
        description:
          description: An optional description of the filter.
          example: Global filter for CEA widgets
          type: string
      required:
      - context
      - name
      type: object
    ApiContextFilterResponse:
      description: Response containing dashboard filter settings and context details.
      properties:
        context:
          description: List of filters to be applied to a dashboard.
          items:
            $ref: '#/components/schemas/ApiDataSourceFilters'
          type: array
          uniqueItems: true
        aid:
          description: Account group ID of the filter.
          example: "11"
          type: string
        id:
          description: Unique ID of the dashboard filter.
          example: 65bc18e8f2073a4a469cd958
          type: string
        name:
          description: "The name of the dashboard filter, this must be unique."
          example: cea-filter
          type: string
        description:
          description: An optional description of the filter.
          example: Global filter for CEA widgets
          type: string
        createdBy:
          $ref: '#/components/schemas/ApiDashboardFilterUserDetails'
        modifiedDate:
          description: Timestamp when the filter was last modified.
          example: 2024-02-01T22:19:19Z
          format: date-time
          type: string
        createdDate:
          description: Timestamp when the filter was created.
          example: 2024-02-01T22:19:19Z
          format: date-time
          type: string
        modifiedBy:
          $ref: '#/components/schemas/ApiDashboardFilterUserDetails'
        _links:
          $ref: '#/components/schemas/SelfLinks'
      required:
      - aid
      - context
      - id
      - name
      type: object
    ApiContextFilters:
      description: List of filters to be applied to a dashboard.
      items:
        $ref: '#/components/schemas/ApiDataSourceFilters'
      type: array
      uniqueItems: true
    ApiDataSourceFilters:
      description: List of different datasource filters.
      properties:
        dataSourceId:
          description: Types of data source.
          example: VIRTUAL_AGENT
          type: string
        filters:
          description: List of different filter properties.
          items:
            $ref: '#/components/schemas/ApiDataSourceFilter'
          type: array
          uniqueItems: true
      required:
      - dataSourceId
      - filters
      type: object
    ApiDataSourceFilter:
      description: List of different filter properties for a single datasource.
      properties:
        filterId:
          description: Data source property to filter by.
          example: TEST_LABEL
          type: string
        values:
          description: Values to filter by based on the specified `filterId`.
          example:
          - "45862"
          - "59749"
          items:
            type: string
          type: array
          uniqueItems: true
        metricIds:
          description: Dashboard metric associated with the filter property.
          example:
          - WEB_PAGE_LOAD_COMPLETION_RATE
          - WEB_TTFB
          - WEB_AVAILABILITY
          items:
            type: string
          type: array
          uniqueItems: true
      required:
      - filterId
      - metricIds
      - values
      type: object
    ValidationError:
      allOf:
      - $ref: '#/components/schemas/Error'
      - properties:
          errors:
            description: "(Optional) When multiple errors occur, the details for each\
              \ error are listed."
            items:
              $ref: '#/components/schemas/ValidationErrorItem'
            nullable: true
            type: array
        type: object
      type: object
    Error:
      properties:
        type:
          description: "A URI reference that identifies the problem type. When this\
            \ member is not present, its value is assumed to be \"about:blank\"."
          type: string
        title:
          description: "A short, human-readable summary of the problem type."
          type: string
        status:
          description: The HTTP status code generated by the origin server for this
            occurrence of the problem.
          type: integer
        detail:
          description: A human-readable explanation specific to this occurrence of
            the problem.
          type: string
        instance:
          description: A URI reference that identifies the specific occurrence of
            the problem.
          type: string
      type: object
    ValidationErrorItem:
      properties:
        code:
          description: (Optional) A unique error type/code that can be referenced
            in the documentation for further details.
          type: string
        field:
          description: Identifies the field that triggered this particular error.
          type: string
        message:
          description: "A short, human-readable summary of the error."
          type: string
      type: object
    UnauthorizedError:
      properties:
        error:
          example: invalid_token
          type: string
        error_description:
          example: Invalid access token
          type: string
      type: object
    SelfLinks:
      description: A links object containing the self link.
      properties:
        self:
          $ref: '#/components/schemas/Link'
      readOnly: true
      type: object
    Link:
      description: A hyperlink from the containing resource to a URI.
      properties:
        href:
          description: "Its value is either a URI [RFC3986] or a URI template [RFC6570]."
          example: https://api.thousandeyes.com/v7/link/to/resource/id
          type: string
        templated:
          description: Should be true when the link object's "href" property is a
            URI template.
          type: boolean
        type:
          description: Used as a hint to indicate the media type expected when dereferencing
            the target resource.
          type: string
        deprecation:
          description: Its presence indicates that the link is to be deprecated at
            a future date. Its value is a URL that should provide further information
            about the deprecation.
          type: string
        name:
          description: Its value may be used as a secondary key for selecting link
            objects that share the same relation type.
          type: string
        profile:
          description: A URI that hints about the profile of the target resource.
          type: string
        title:
          description: Intended for labelling the link with a human-readable identifier
          type: string
        hreflang:
          description: Indicates the language of the target resource
          type: string
      required:
      - href
      type: object
    EnterpriseAgentState:
      description: State of the agent.
      enum:
      - online
      - offline
      - disabled
      example: online
      readOnly: true
      type: string
    PaginationLinks:
      description: A links object containing pagination related link(s).
      properties:
        previous:
          $ref: '#/components/schemas/Link'
        next:
          $ref: '#/components/schemas/Link'
        self:
          $ref: '#/components/schemas/Link'
      type: object
    StartDate:
      description: "(Optional) When passing `window` or `startDate` parameter,  the\
        \ client will also receive the `startDate` field indicating the UTC start\
        \ date of the data's time range being retrieved  (ISO date-time format)."
      example: 2022-07-17T22:00:54Z
      format: date-time
      readOnly: true
      type: string
    EndDate:
      description: "(Optional) When passing `window` or `endDate` parameter,  the\
        \ client will also receive the `endDate` field indicating the UTC end date\
        \ of the data's time range being retrieved  (ISO date-time format)."
      example: 2022-07-18T22:00:54Z
      format: date-time
      readOnly: true
      type: string
    AppAndSelfLinks:
      description: A links object containing the ThousandEyes App link
      properties:
        appLink:
          $ref: '#/components/schemas/Link'
        self:
          $ref: '#/components/schemas/Link'
      readOnly: true
      type: object
  securitySchemes:
    BearerAuth:
      description: Bearer authentication token
      scheme: bearer
      type: http
