ThousandEyes BGP Tests API

BGP test management operations

Operations 5

GET /tests/bgp List BGP tests #
POST /tests/bgp Create BGP test #
GET /tests/bgp/{testId} Get BGP test #
PUT /tests/bgp/{testId} Update BGP test #
DELETE /tests/bgp/{testId} Delete BGP test #

Documentation

📖
APIReference
https://developer.cisco.com/docs/thousandeyes/administration-administrative-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/api-token-management-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/agents-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/alerts-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/autonomous-systems-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/bgp-monitors-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/cloud-insights-integrations-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/credentials-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/dashboards-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/emulation-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/endpoint-agents-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/endpoint-instant-scheduled-tests-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/endpoint-labels-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/endpoint-test-results-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/endpoint-tests-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/event-detection-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/integrations-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/internet-insights-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/snapshots-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/tags-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/templates-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/tests-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/instant-tests-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/test-results-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/thousandeyes-for-opentelemetry-api-overview/
📖
APIReference
https://developer.cisco.com/docs/thousandeyes/usage-api-overview/

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/thousandeyes-bgp-tests-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

thousandeyes-bgp-tests-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 7.0.100
  title: BGP Tests API
  description: '**Note:** The Page Load Tests, API Tests, and Web Transaction Tests APIs are not available for ThousandEyes for Government instance.


    This API allows you to list, create, edit, and delete Network and Application Synthetics tests.

    '
  x-provenance:
    method: harvested
    authored_by: Cisco ThousandEyes
    harvested_by: API Evangelist
    harvested_on: '2026-08-19'
    first_party: true
    provider_published: true
    source_host: pubhub.devnetcloud.com
    note: 27 OpenAPI 3.0 documents (26 per-area plus a unified 326-operation document) served anonymously from Cisco's DevNet CDN. api.thousandeyes.com itself 401s every path, so the contract is public while the API host is gated.
  x-evidence:
  - type: source
    url: https://pubhub.devnetcloud.com/media/000-v7-apis/docs/reference/
  - type: source
    url: https://developer.cisco.com/docs/thousandeyes/
servers:
- description: ThousandEyes API production URL
  url: https://api.thousandeyes.com/v7
security:
- BearerAuth: []
tags:
- name: BGP Tests
  description: BGP test management operations
paths:
  /tests/bgp:
    get:
      tags:
      - BGP Tests
      summary: List BGP tests
      operationId: getBgpTests
      description: 'Returns a list of BGP tests and saved events.


        **Note**: **Saved Events** are now called **Private Snapshots** in the user interface. This change does not affect API.

        '
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BgpTests'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        default:
          $ref: '#/components/responses/GeneralError'
    post:
      tags:
      - BGP Tests
      summary: Create BGP test
      operationId: createBgpTest
      description: Creates a new BGP test. This method requires Account Admin permissions.
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      - $ref: '#/components/parameters/ExpandBgpTest'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BgpTestRequest'
      responses:
        '201':
          description: Created
          headers:
            Location:
              $ref: '#/components/headers/Location'
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BgpTestResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        default:
          $ref: '#/components/responses/GeneralError'
  /tests/bgp/{testId}:
    get:
      tags:
      - BGP Tests
      summary: Get BGP test
      operationId: getBgpTest
      description: Returns details for a BGP test, including name, intervals, targets, alert rules and agents.
      parameters:
      - $ref: '#/components/parameters/TestIdPath'
      - $ref: '#/components/parameters/AccountGroupId'
      - $ref: '#/components/parameters/ExpandBgpTest'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BgpTestResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        default:
          $ref: '#/components/responses/GeneralError'
    put:
      tags:
      - BGP Tests
      summary: Update BGP test
      operationId: updateBgpTest
      description: 'Updates a BGP test. Shared tests have limited updating capabilities. Only account-specific configurations may be updated, namely: alert rules, alert suppression windows, labels, tags. This method requires Account Admin permissions.

        **Note**: **Saved Events** are now called **Private Snapshots** in the user interface. This change does not affect API.'
      parameters:
      - $ref: '#/components/parameters/TestIdPath'
      - $ref: '#/components/parameters/AccountGroupId'
      - $ref: '#/components/parameters/ExpandBgpTest'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateBgpTestRequest'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BgpTestResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        default:
          $ref: '#/components/responses/GeneralError'
    delete:
      tags:
      - BGP Tests
      summary: Delete BGP test
      operationId: deleteBgpTest
      description: Deletes a BGP test. This method requires Account Admin permissions.
      parameters:
      - $ref: '#/components/parameters/TestIdPath'
      - $ref: '#/components/parameters/AccountGroupId'
      responses:
        '204':
          $ref: '#/components/responses/204'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        default:
          $ref: '#/components/responses/GeneralError'
components:
  schemas:
    ValidationError:
      type: object
      allOf:
      - $ref: '#/components/schemas/Error'
      - type: object
        properties:
          errors:
            type:
            - array
            - 'null'
            description: (Optional) When multiple errors occur, the details for each error are listed.
            items:
              $ref: '#/components/schemas/ValidationErrorItem'
    Severity:
      type: string
      description: The severity of the alert.
      enum:
      - info
      - major
      - minor
      - critical
      - unknown
      example: major
    MonitorsRequest:
      type: object
      properties:
        monitors:
          type: array
          description: Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)
          writeOnly: true
          readOnly: false
          items:
            type: string
          example:
          - '17410'
          - '5'
    AlertRule:
      type: object
      properties:
        ruleId:
          $ref: '#/components/schemas/RuleId'
        ruleName:
          type: string
          description: Name of the alert rule
          example: The End of the Internet
          readOnly: true
        expression:
          type: string
          description: String expression of alert rule
          example: ((hops((hopDelay >= 100 ms))))
          readOnly: true
        direction:
          $ref: '#/components/schemas/AlertDirection'
        isDefault:
          type: boolean
          description: Alert rules allow up to 1 alert rule to be selected as a default for each type. By checking the default option, this alert rule will be automatically included on subsequently created tests that test a metric used in alerting here
          example: true
          readOnly: true
        alertType:
          $ref: '#/components/schemas/AlertType'
        minimumSources:
          type: integer
          description: The minimum number of agents or monitors that must meet the specified criteria in order to trigger the alert
          example: 10
          readOnly: true
        minimumSourcesPct:
          type: integer
          description: the minimum percentage of all assigned agents or monitors that must meet the specified criteria in order to trigger the alert
          example: 99
          readOnly: true
        roundsViolatingMode:
          $ref: '#/components/schemas/AlertRoundsViolationMode'
        roundsViolatingOutOf:
          type: integer
          description: Specifies the divisor (y value) for the “X of Y times” condition.
          example: 5
          readOnly: true
        roundsViolatingRequired:
          type: integer
          description: Specifies the numerator (x value) for the “X of Y times” condition
          example: 2
          readOnly: true
        sensitivityLevel:
          $ref: '#/components/schemas/SensitivityLevel'
        severity:
          $ref: '#/components/schemas/Severity'
    TestTag:
      type: object
      readOnly: true
      properties:
        id:
          type: string
          description: Unique tag ID.
          example: 5aeab5d5-0d34-4d44-a7ac-fb440185295c
          format: uuid
        key:
          type: string
          description: Tag key. For example, "Location" or "Department".
          example: Location
        value:
          type: string
          description: Tag value. For example, "San Francisco" or "Engineering".
          example: San Francisco
    BaseBgpTest:
      allOf:
      - $ref: '#/components/schemas/InstantTest'
      - type: object
        properties:
          enabled:
            $ref: '#/components/schemas/Enabled'
          monitors:
            $ref: '#/components/schemas/TestBgpMonitors'
          includeCoveredPrefixes:
            type: boolean
            description: Indicate if queries for subprefixes detected under this prefix should included.
            example: true
          usePublicBgp:
            $ref: '#/components/schemas/TestUsePublicBgp'
          alertsEnabled:
            type: boolean
            description: Indicates if alerts are enabled.
            example: true
          alertRules:
            type: array
            description: A list of enabled alert rule objects.
            items:
              $ref: '#/components/schemas/AlertRule'
          createdBy:
            $ref: '#/components/schemas/TestCreatedBy'
          createdDate:
            $ref: '#/components/schemas/TestCreatedDate'
          type:
            $ref: '#/components/schemas/TestBgpType'
    Monitor:
      type: object
      properties:
        countryId:
          type: string
          description: Country ID
          example: GB
          readOnly: true
        monitorId:
          type: string
          description: BGP monitor ID
          example: '1234'
          readOnly: true
        ipAddress:
          type: string
          description: IP address of the BGP monitor
          example: 4.69.184.193
        network:
          type: string
          description: Name of the autonomous system in which the monitor is found
          example: Level 3 Communications, Inc. (AS 3356)
        monitorType:
          $ref: '#/components/schemas/MonitorType'
        monitorName:
          type: string
          description: Display name of the BGP monitor
          example: Seattle, WA
    BgpTestResponse:
      allOf:
      - $ref: '#/components/schemas/BgpTest'
    UpdateBgpTestRequest:
      allOf:
      - $ref: '#/components/schemas/BaseBgpRequest'
      - $ref: '#/components/schemas/BaseRequest'
      - $ref: '#/components/schemas/MonitorsRequest'
    TestUsePublicBgp:
      type: boolean
      description: Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.
      default: true
      example: true
    BaseRequest:
      type: object
      properties:
        labels:
          type: array
          description: Contains list of test label IDs (get `labelId` from `/labels` endpoint)
          writeOnly: true
          readOnly: false
          items:
            type: string
          example:
          - '9842'
          - '1283'
        tags:
          type: array
          description: Contains list of test tag IDs (get `id` from `/tags` endpoint).
          writeOnly: true
          readOnly: false
          items:
            type: string
          example:
          - c6b78e57-81a2-4c5f-a11a-d96c3c664d55
          - ec8e64fb-6f11-485c-a5d5-488098ad626a
        sharedWithAccounts:
          type: array
          description: Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)
          writeOnly: true
          readOnly: false
          items:
            type: string
          example:
          - '1234'
          - '12345'
        alertRules:
          type: array
          items:
            type: string
          description: List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)
          writeOnly: true
          readOnly: false
          example:
          - '344753'
          - '212697'
    TestCreatedDate:
      type: string
      format: date-time
      description: UTC created date (ISO date-time format).
      example: '2022-07-17T22:00:54Z'
      readOnly: true
    MonitorType:
      type: string
      description: Type of monitor
      enum:
      - public
      - private
      example: public
    TestBgpType:
      type: string
      example: bgp
      readOnly: true
    TestCreatedBy:
      type: string
      description: User that created the test.
      example: user@user.com
      readOnly: true
    ValidationErrorItem:
      type: object
      properties:
        code:
          type: string
          description: (Optional) A unique error type/code that can be referenced in the documentation for further details.
        field:
          type: string
          description: Identifies the field that triggered this particular error.
        message:
          type: string
          description: A short, human-readable summary of the error.
    TestLinks:
      type: object
      description: A list of links that can be accessed to get more information
      properties:
        self:
          $ref: '#/components/schemas/TestSelfLink'
        testResults:
          $ref: '#/components/schemas/TestResults'
      readOnly: true
    BaseBgpRequest:
      allOf:
      - $ref: '#/components/schemas/UnexpandedInstantTest'
      - type: object
        properties:
          enabled:
            $ref: '#/components/schemas/Enabled'
          includeCoveredPrefixes:
            type: boolean
            description: Indicate if queries for subprefixes detected under this prefix should included.
            example: true
          usePublicBgp:
            $ref: '#/components/schemas/TestUsePublicBgp'
          alertsEnabled:
            type: boolean
            description: Indicates if alerts are enabled.
            example: true
          createdBy:
            $ref: '#/components/schemas/TestCreatedBy'
          createdDate:
            $ref: '#/components/schemas/TestCreatedDate'
          type:
            $ref: '#/components/schemas/TestBgpType'
    BgpTest:
      allOf:
      - $ref: '#/components/schemas/BaseBgpTest'
      - type: object
        required:
        - prefix
        properties:
          prefix:
            type: string
            description: a.b.c.d is a network address, with the prefix length defined as e. Prefixes can be any length from 8 to 24.
    AlertType:
      type: string
      description: Type of alert being triggered. In multi-layered tests, this value represents the layer the alert relates to. See [Alert Details](https://developer.cisco.com/docs/thousandeyes/retrieve-alert-details/) documentation for a list of possible values
      example: http-server
      enum:
      - page-load
      - http-server
      - end-to-end-server
      - end-to-end-agent
      - voice
      - dns-server
      - dns-trace
      - dnssec
      - bgp
      - path-trace
      - ftp
      - sip-server
      - transactions
      - web-transactions
      - agent
      - network-outage
      - application-outage
      - device-device
      - device-interface
      - endpoint-network-server
      - endpoint-http-server
      - endpoint-path-trace
      - endpoint-browser-sessions-agent
      - endpoint-browser-sessions-application
      - api
      - web-transaction
      - unknown
    SensitivityLevel:
      type: string
      description: Used when `roundsViolatingMode` is set to `auto`. The default is `medium`. Higher sensitivity increases the likelihood of triggering alerts.
      enum:
      - high
      - medium
      - low
      example: medium
      readOnly: true
    TestLabels:
      type: array
      description: Labels to which the test is assigned. This field is not returned for Instant Tests.
      readOnly: true
      items:
        $ref: '#/components/schemas/TestLabel'
    TestSharedAccounts:
      type: array
      readOnly: true
      items:
        $ref: '#/components/schemas/SharedWithAccount'
    BgpTests:
      type: object
      properties:
        tests:
          type: array
          items:
            $ref: '#/components/schemas/UnexpandedBgpTest'
        _links:
          $ref: '#/components/schemas/SelfLinks'
    RuleId:
      type: string
      description: Unique ID of the rule.
      example: '127094'
      readOnly: true
    AlertRoundsViolationMode:
      type: string
      description: '`exact` requires the same agents to meet the threshold in consecutive rounds. `auto` is only enabled for CEA and Endpoint Scheduled test rules. The default is `any`.'
      enum:
      - exact
      - any
      - auto
      example: exact
      readOnly: true
    UnexpandedInstantTest:
      type: object
      properties:
        createdBy:
          $ref: '#/components/schemas/TestCreatedBy'
        createdDate:
          $ref: '#/components/schemas/TestCreatedDate'
        description:
          type: string
          description: A description of the test.
          example: ThousandEyes Test
        liveShare:
          type: boolean
          description: Indicates if the test is shared with the account group.
          example: false
          readOnly: true
        modifiedBy:
          type: string
          description: User that modified the test.
          example: user@user.com
          readOnly: true
        modifiedDate:
          type: string
          format: date-time
          description: UTC last modification date (ISO date-time format).
          readOnly: true
          example: '2022-07-17T22:00:54Z'
        savedEvent:
          type: boolean
          description: 'Indicates if the test is a saved event.


            **Note**: **Saved Events** are now called **Private Snapshots** in the user interface. This change does not affect API.

            '
          readOnly: true
        testId:
          type: string
          description: Each test is assigned an unique ID; this is used to access test information and results from other endpoints.
          readOnly: true
          example: '281474976710706'
        testName:
          type: string
          description: The name of the test. Test name must be unique.
          example: ThousandEyes Test
        type:
          $ref: '#/components/schemas/TestType'
        _links:
          $ref: '#/components/schemas/TestLinks'
    Enabled:
      type: boolean
      description: Test is enabled.
      example: true
      default: true
    TestType:
      type: string
      enum:
      - api
      - agent-to-agent
      - agent-to-server
      - bgp
      - http-server
      - page-load
      - web-transactions
      - ftp-server
      - dns-trace
      - dns-server
      - dnssec
      - sip-server
      - voice
      description: This is a read only value, as test type is implicit in the test creation url.
      readOnly: true
      example: agent-to-server
    ExpandBgpTestOptions:
      type: string
      enum:
      - alert-rule
      - monitor
      - label
      - tag
      - shared-with-account
      example: monitor
    UnauthorizedError:
      type: object
      properties:
        error:
          type: string
          example: invalid_token
        error_description:
          type: string
          example: Invalid access token
    InstantTest:
      allOf:
      - $ref: '#/components/schemas/UnexpandedInstantTest'
      - type: object
        properties:
          labels:
            $ref: '#/components/schemas/TestLabels'
          tags:
            $ref: '#/components/schemas/TestTags'
          sharedWithAccounts:
            $ref: '#/components/schemas/TestSharedAccounts'
    Link:
      type: object
      description: A hyperlink from the containing resource to a URI.
      required:
      - href
      properties:
        href:
          type: string
          description: Its value is either a URI [RFC3986] or a URI template [RFC6570].
          example: https://api.thousandeyes.com/v7/link/to/resource/id
        templated:
          type: boolean
          description: Should be true when the link object's "href" property is a URI template.
        type:
          type: string
          description: Used as a hint to indicate the media type expected when dereferencing the target resource.
        deprecation:
          type: string
          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.
        name:
          type: string
          description: Its value may be used as a secondary key for selecting link objects that share the same relation type.
        profile:
          type: string
          description: A URI that hints about the profile of the target resource.
        title:
          type: string
          description: Intended for labelling the link with a human-readable identifier
        hreflang:
          type: string
          description: Indicates the language of the target resource
    BgpTestRequest:
      allOf:
      - $ref: '#/components/schemas/UnexpandedBgpTest'
      - $ref: '#/components/schemas/BaseRequest'
      - $ref: '#/components/schemas/MonitorsRequest'
    TestResults:
      type: array
      description: Reference to the test results.
      items:
        $ref: '#/components/schemas/Link'
      example:
      - href: https://api.thousandeyes.com/v7/test-results/281474976710706/network
      - href: https://api.thousandeyes.com/v7/test-results/281474976710706/path-vis
    TestLabel:
      type: object
      properties:
        labelId:
          type: string
          description: Label ID.
        name:
          type: string
          description: Name of the label.
        isBuiltin:
          type: boolean
          description: Value indicating if the label in question is BuiltIn (Account Admin, Organization Admin, Regular User).
      example:
        labelId: '961'
        name: Artem label
        isBuiltin: false
    Error:
      type: object
      properties:
        type:
          type: string
          description: A URI reference that identifies the problem type. When this member is not present, its value is assumed to be "about:blank".
        title:
          type: string
          description: A short, human-readable summary of the problem type.
        status:
          type: integer
          description: The HTTP status code generated by the origin server for this occurrence of the problem.
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem.
    TestTags:
      type: array
      description: Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.
      readOnly: true
      items:
        $ref: '#/components/schemas/TestTag'
    TestSelfLink:
      allOf:
      - $ref: '#/components/schemas/Link'
      - description: Reference to the test.
        example:
          href: https://api.thousandeyes.com/v7/tests/{type}/281474976710706
    UnexpandedBgpTest:
      allOf:
      - $ref: '#/components/schemas/UnexpandedInstantTest'
      - type: object
        required:
        - prefix
        properties:
          enabled:
            $ref: '#/components/schemas/Enabled'
          includeCoveredPrefixes:
            type: boolean
            description: Indicate if queries for subprefixes detected under this prefix should included.
            example: true
          usePublicBgp:
            $ref: '#/components/schemas/TestUsePublicBgp'
          alertsEnabled:
            type: boolean
            description: Indicates if alerts are enabled.
            example: true
          createdBy:
            $ref: '#/components/schemas/TestCreatedBy'
          createdDate:
            $ref: '#/components/schemas/TestCreatedDate'
          type:
            type: string
            example: bgp
            readOnly: true
          prefix:
            type: string
            description: a.b.c.d is a network address, with the prefix length defined as e. Prefixes can be any length from 8 to 24.
    SelfLinks:
      type: object
      description: A links object containing the self link.
      readOnly: true
      properties:
        self:
          $ref: '#/components/schemas/Link'
    TestBgpMonitors:
      type: array
      description: Contains list of enabled BGP monitors.
      readOnly: true
      items:
        $ref: '#/components/schemas/Monitor'
    AlertDirection:
      type: string
      enum:
      - to-target
      - from-target
      - bidirectional
      description: Direction for applicable alert types (eg. path trace, End-to-End (Agent) etc.)
      example: to-target
    SharedWithAccount:
      type: object
      properties:
        aid:
          type: string
          description: Account group ID.
          example: '1234'
        name:
          type: string
          description: Account group name.
          example: Account name
  parameters:
    TestIdPath:
      name: testId
      description: Test ID
      required: true
      in: path
      schema:
        type: string
        example: '202701'
    ExpandBgpTest:
      name: expand
      in: query
      description: Optional parameter on whether or not to expand the test sub-resources. By default no expansion takes place if the query parameter is not present. To expand the `monitors` sub-resource, pass the `?expand=monitor` query.
      required: false
      style: form
      explode: false
      schema:
        type: array
        items:
          $ref: '#/components/schemas/ExpandBgpTestOptions'
        example:
        - alert-rule
        - monitor
    AccountGroupId:
      name: aid
      in: query
      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.
      required: false
      schema:
        type: string
        example: '1234'
  responses:
    GeneralError:
      description: An error occurred
    '502':
      description: Bad Gateway
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    '429':
      description: Exhausted rate limit for the organization
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    '404':
      description: Not found
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
          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
    '500':
      description: Internal server error
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            type: about:blank
            title: Internal server error
            status: 500
            detail: Optional detail about the internal error message.
            instance: /v7
    '400':
      description: Bad Request
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ValidationError'
          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
    '403':
      description: Insufficient permissions to query endpoint
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    '401':
      description: Unauthorized
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/UnauthorizedError'
    '204':
      description: No content
  headers:
    Location:
      schema:
        type: string
        format: uri
        example: https://api.thousandeyes.com/v7/link/to/resource/id
      description: The absolute path to created resource.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Bearer authentication token
externalDocs:
  description: Find out more about Network and Application Synthetics tests
  url: https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests#cloud-and-enterprise-agent-based-tests