ThousandEyes Endpoint Agents API

Manage ThousandEyes Endpoint Agents using this API. For more information about Endpoint Agents, see Endpoint Agents.

OpenAPI Specification

thousandeyes-endpoint-agents-openapi.yml Raw ↑
openapi: 3.0.1
security:
- BearerAuth: []
servers:
- description: ThousandEyes API production URL
  url: https://api.thousandeyes.com/v7
info:
  version: 7.0.100
  title: Endpoint Agents API
  description: "**Note:** The Endpoint Agents Transfer APIs are not available for ThousandEyes for Government instance.\n\n\
    Manage ThousandEyes Endpoint Agents using this API. \n\nFor more information about Endpoint Agents, see [Endpoint Agents](https://docs.thousandeyes.com/product-documentation/global-vantage-points/endpoint-agents)."
  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/
tags:
- name: Endpoint Agents
- name: Endpoint Agent Log Items
- name: Endpoint Proxies
- name: Endpoint Agents Transfer
paths:
  /endpoint/agents:
    get:
      summary: List endpoint agents
      tags:
      - Endpoint Agents
      description: 'Retrieves a list of endpoint agents in a given account group.


        If there are no agents in the specified account group, it returns an empty array.

        '
      operationId: getEndpointAgents
      parameters:
      - $ref: '#/components/parameters/PaginationMax'
      - $ref: '#/components/parameters/PaginationCursor'
      - $ref: '#/components/parameters/AccountGroupId'
      - $ref: '#/components/parameters/ExpandEndpointAgent'
      - $ref: '#/components/parameters/IncludeDeleted'
      - $ref: '#/components/parameters/UseAllPermittedAids'
      - in: query
        name: agentName
        required: false
        description: "Returns only agents with the specified name. \nThis is an exact match only.\n"
        schema:
          $ref: '#/components/schemas/AgentName'
      - in: query
        name: computerName
        required: false
        description: 'Returns only agents with the specified computer name.

          This is an exact match only.

          '
        schema:
          $ref: '#/components/schemas/ComputerName'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ListEndpointAgentsResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
  /endpoint/agents/{agentId}:
    parameters:
    - $ref: '#/components/parameters/AccountGroupId'
    - $ref: '#/components/parameters/EndpointAgentIdPath'
    - $ref: '#/components/parameters/ExpandEndpointAgent'
    get:
      summary: Retrieve endpoint agent
      tags:
      - Endpoint Agents
      description: Retrieves details of an agent with the specified `agent_id`.
      operationId: getEndpointAgent
      parameters:
      - $ref: '#/components/parameters/IncludeDeleted'
      responses:
        '200':
          $ref: '#/components/responses/SingleAgent'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
    patch:
      summary: Update endpoint agent
      tags:
      - Endpoint Agents
      description: 'Updates the agent with the specified `agent_id`. This API supports the modification of the following fields:


        * `name`


        * `licenseType`


        Any attempt to update fields other than those listed above, with a value different from their current value, will
        result in a 400 Bad Request response.

        '
      operationId: updateEndpointAgent
      requestBody:
        description: Fields to modify on the agent
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EndpointAgentUpdate'
      responses:
        '200':
          $ref: '#/components/responses/SingleAgent'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
    delete:
      summary: Delete endpoint agent
      tags:
      - Endpoint Agents
      description: 'Deletes the agent with the specified `agent_id`.

        '
      operationId: deleteEndpointAgent
      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'
  /endpoint/agents/{agentId}/logs:
    get:
      tags:
      - Endpoint Agent Log Items
      summary: List endpoint agent log items
      operationId: getEndpointAgentLogItems
      description: Returns paginated logs for an endpoint agent within the requested time range.
      parameters:
      - $ref: '#/components/parameters/EndpointAgentIdPath'
      - $ref: '#/components/parameters/AccountGroupId'
      - $ref: '#/components/parameters/LogItemsMax'
      - $ref: '#/components/parameters/LogItemsCursor'
      - $ref: '#/components/parameters/Window'
      - $ref: '#/components/parameters/StartDateParameter'
      - $ref: '#/components/parameters/EndDateParameter'
      responses:
        '200':
          description: Paginated logs for the endpoint agent.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EndpointAgentLogItemsResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        default:
          $ref: '#/components/responses/GeneralError'
  /endpoint/agents/filter:
    post:
      summary: Filter endpoint agents
      tags:
      - Endpoint Agents
      description: 'Retrieves a list of endpoint agents within the specified account group that match the specified filters.


        If no agents meet the filter criteria, the API returns an empty array.

        '
      requestBody:
        $ref: '#/components/requestBodies/AgentSearch'
      operationId: filterEndpointAgents
      parameters:
      - $ref: '#/components/parameters/PaginationMax'
      - $ref: '#/components/parameters/PaginationCursor'
      - $ref: '#/components/parameters/AccountGroupId'
      - $ref: '#/components/parameters/ExpandEndpointAgent'
      - $ref: '#/components/parameters/IncludeDeleted'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/FilterEndpointAgentsResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
  /endpoint/agents/connection-string:
    get:
      tags:
      - Endpoint Agents
      operationId: getEndpointAgentsConnectionString
      summary: Get agent connection string
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ConnectionString'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
  /endpoint/proxies:
    get:
      tags:
      - Endpoint Proxies
      summary: List endpoint proxy settings
      operationId: getEndpointProxies
      description: Returns proxy settings for endpoint agents. Proxy passwords are never returned.
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      responses:
        '200':
          description: Proxy settings for endpoint agents.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndpointProxiesResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/GeneralError'
  /endpoint/agents/{agentId}/enable:
    post:
      summary: Enable endpoint agent
      operationId: enableEndpointAgent
      tags:
      - Endpoint Agents
      description: Enables an endpoint agent. If it's already enabled, it has no effect (no operation).
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      - $ref: '#/components/parameters/EndpointAgentIdPath'
      responses:
        '200':
          $ref: '#/components/responses/SingleAgent'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
  /endpoint/agents/{agentId}/disable:
    post:
      summary: Disable endpoint agent
      tags:
      - Endpoint Agents
      description: Disables an endpoint agent. If it's already disabled, it has no effect (no operation).
      operationId: disableEndpointAgent
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      - $ref: '#/components/parameters/EndpointAgentIdPath'
      responses:
        '200':
          $ref: '#/components/responses/SingleAgent'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
  /endpoint/agents/{agentId}/transfer:
    post:
      summary: Transfer endpoint agent
      operationId: transferEndpointAgent
      tags:
      - Endpoint Agents Transfer
      description: 'Initiates the transfer of an agent from its current account, which must correspond to the provided aid,
        to the target account.


        **Note:** It is essential to ensure that the `aid` parameter matches the current account of the agent for this operation
        to succeed.

        '
      requestBody:
        $ref: '#/components/requestBodies/AgentTransfer'
      parameters:
      - $ref: '#/components/parameters/EndpointAgentIdPath'
      - $ref: '#/components/parameters/AccountGroupId'
      responses:
        '202':
          description: Transfer initiated
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
  /endpoint/agents/transfer/bulk:
    post:
      summary: Bulk transfer agents
      operationId: transferEndpointAgents
      tags:
      - Endpoint Agents Transfer
      description: 'Initiates the transfer of multiple agents between accounts. The following conditions apply:


        * The requester must possess ''write'' permissions for both the ''from'' and ''to'' accounts involved in each transfer.


        * Multiple transfers may involve a mix of different source and destination accounts.

        * For each transfer request, the ''from'' account must match the current account of the respective agent.

        * Transfers are executed asynchronously.

        * Progress tracking is not intended, but users can monitor the progress by periodically polling the ''get agent''
        endpoint.

        * Each transfer request is individually validated and completed; this operation is not atomic, meaning transfers can
        succeed or fail individually.

        * The API response provides the status of each transfer request.

        * There are no performance concerns for this API; any number of agents can be transferred in bulk.

        '
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      requestBody:
        $ref: '#/components/requestBodies/AgentTransfers'
      responses:
        '207':
          description: Transfer initiated
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BulkAgentTransferResponse'
        '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'
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Bearer authentication token
  parameters:
    IncludeDeleted:
      name: includeDeleted
      in: query
      description: When requesting entities, set to `true` if you want to see deleted entities.
      example: false
      required: false
      schema:
        type: boolean
    EndpointAgentIdPath:
      name: agentId
      in: path
      required: true
      description: The identifier of the agent to operate on.
      schema:
        $ref: '#/components/schemas/EndpointAgentId'
    LogItemsMax:
      name: max
      in: query
      required: false
      description: Maximum number of log items returned per page.
      schema:
        type: integer
        minimum: 1
        maximum: 5000
        default: 1000
        example: 1000
    LogItemsCursor:
      name: cursor
      in: query
      required: false
      description: Opaque cursor from the `_links.next.href` URL in the previous response.
      schema:
        type: string
        example: WyIxNzA5MjQwMDAwMDAwIl0=
    ExpandEndpointAgent:
      name: expand
      in: query
      description: "This optional parameter allows you to control the expansion of test resources associated with the agent.\
        \ By default, no expansion occurs when this query parameter is omitted.\nTo expand the \"clients\" resource, include\
        \ the query parameter `?expand=clients`.\n\nFor multiple expansions, you have two options:\n  \n* Separate the values\
        \ with commas. For example, `?expandAgent=clients,tasks`.\n* Specify the parameter multiple times. For example, `?expandAgent=clients&expandAgent=tasks`.\n\
        \nThis parameter offers flexibility for users to customize the expansion of specific resources related to the agent.\n"
      required: false
      style: form
      explode: false
      schema:
        type: array
        items:
          $ref: '#/components/schemas/ExpandEndpointAgentOptions'
      example:
      - clients
      - targetVersion
      - vpnProfiles
      - networkInterfaceProfiles
      - externalMetadata
    PaginationMax:
      name: max
      in: query
      description: (Optional) Maximum number of objects to return.
      schema:
        type: integer
        example: 5
    PaginationCursor:
      name: cursor
      in: query
      example: null
      description: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of
        this parameter.
      schema:
        type: string
        example: null
    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'
    UseAllPermittedAids:
      name: useAllPermittedAids
      in: query
      required: false
      description: Set to `true` to load data from all accounts the user has access to.
      schema:
        type: boolean
        example: false
        default: false
    Window:
      name: window
      in: query
      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`.'
      schema:
        type: string
        pattern: ^\d+(?:[smhdw]{1})?$
        example: 12h
    StartDateParameter:
      name: startDate
      in: query
      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`.
      schema:
        type: string
        format: date-time
        example: '2022-07-17T22:00:54Z'
    EndDateParameter:
      name: endDate
      in: query
      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`.
      schema:
        type: string
        format: date-time
        example: '2022-07-18T22:00:54Z'
  requestBodies:
    AgentSearch:
      description: The filter options for advanced search filtering for agents.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AgentSearchRequest'
    AgentTransfer:
      description: The request to move an agent between accounts.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AgentTransferRequest'
    AgentTransfers:
      description: A collection of `AgentTransfers`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BulkAgentTransferRequest'
        text/csv:
          schema:
            type: string
          examples:
            CSV File:
              $ref: '#/components/examples/TransferCSV'
        text/plain:
          schema:
            type: string
          examples:
            CSV File:
              $ref: '#/components/examples/TransferCSV'
  responses:
    '204':
      description: No content
    '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
    '401':
      description: Unauthorized
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/UnauthorizedError'
    '403':
      description: Insufficient permissions to query endpoint
      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
    '429':
      description: Exhausted rate limit for the organization
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    '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
    '502':
      description: Bad Gateway
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    SingleAgent:
      description: The agent's current state.
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/EndpointAgent'
    GeneralError:
      description: An error occurred
  examples:
    TransferCSV:
      value: 'agent_id,from_aid,to_aid

        5d0764ac-7e42-4ec8-a0d4-39fc53edccba,111,222

        1234abcd-7e42-4ec8-a0d4-39fc53abcdef,222,333

        '
  schemas:
    EndpointProxiesResponse:
      type: object
      required:
      - proxies
      properties:
        proxies:
          type: array
          description: Proxy settings configured for endpoint agents.
          items:
            $ref: '#/components/schemas/EndpointProxy'
    EndpointProxy:
      type: object
      properties:
        proxyId:
          type: string
          description: Unique ID of the proxy setting.
          example: '101498'
          readOnly: true
        name:
          type: string
          description: Proxy setting name.
          example: Local Mitmproxy
          readOnly: true
        type:
          $ref: '#/components/schemas/EndpointProxyType'
        host:
          type: string
          nullable: true
          description: Static proxy host name or IP address.
          example: localhost
          readOnly: true
        port:
          type: integer
          nullable: true
          description: Static proxy port.
          example: 8080
          readOnly: true
        pac:
          type: string
          nullable: true
          description: PAC URL or PAC script location.
          example: https://example.com/proxy.pac
          readOnly: true
        userName:
          type: string
          nullable: true
          description: Proxy authentication user name.
          example: endpoint-proxy-user
          readOnly: true
        bypassList:
          type: string
          nullable: true
          description: Comma-separated proxy bypass list.
          example: localhost,127.0.0.1
          readOnly: true
        authType:
          $ref: '#/components/schemas/EndpointProxyAuthType'
        agentIds:
          type: array
          nullable: true
          description: Endpoint Agent IDs assigned to the proxy setting.
          items:
            $ref: '#/components/schemas/EndpointAgentId'
        testIds:
          type: array
          nullable: true
          description: Endpoint scheduled test IDs assigned to the proxy setting.
          items:
            type: string
            example: '9923667'
            readOnly: true
    EndpointProxyType:
      type: string
      description: Proxy setting type.
      enum:
      - static
      - pac
      - direct
      - system
      - interactive-user-proxy
      example: static
      readOnly: true
    EndpointProxyAuthType:
      type: string
      description: Proxy authentication type.
      enum:
      - none
      - basic
      - ntlm
      example: none
      readOnly: true
    EndpointAgentLogItemsResponse:
      type: object
      required:
      - logs
      properties:
        logs:
          x-paginated-items: true
          type: array
          description: Log items for the endpoint agent.
          items:
            $ref: '#/components/schemas/EndpointAgentLogItem'
        _links:
          $ref: '#/components/schemas/PaginationNextAndSelfLink'
    EndpointAgentLogItem:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the log item.
          example: 8d23f1b7-74ef-4e0c-925c-58601fc0662d
          readOnly: true
        agentLogItemType:
          $ref: '#/components/schemas/EndpointAgentLogItemType'
        timestampMs:
          type: integer
          format: int64
          description: Time when the log item was recorded, in milliseconds since the Unix epoch.
          example: 1709240000000
          readOnly: true
        wifiLogItem:
          $ref: '#/components/schemas/EndpointWifiLogItem'
        vpnLogItem:
          $ref: '#/components/schemas/EndpointVpnLogItem'
        onlineOfflineLogItem:
          $ref: '#/components/schemas/EndpointOnlineOfflineLogItem'
        stateChangesLogItem:
          $ref: '#/components/schemas/EndpointStateChangesLogItem'
    EndpointAgentLogItemType:
      type: string
      description: Agent log item category.
      enum:
      - wifi
      - vpn
      - online-offline
      - state-changes
      example: wifi
      readOnly: true
    EndpointWifiLogItem:
      type: object
      nullable: true
      properties:
        logItemType:
          $ref: '#/components/schemas/EndpointWifiLogItemType'
        ssid:
          type: string
          nullable: true
          description: Wireless network SSID.
          example: CorpWiFi
          readOnly: true
        bssid:
          type: string
          nullable: true
          description: Wireless access point BSSID.
          example: 00:11:22:33:44:55
          readOnly: true
        bssidFrom:
          type: string
          nullable: true
          description: Previous wireless access point BSSID.
          example: 00:11:22:33:44:54
          readOnly: true
        channel:
          type: string
          nullable: true
          description: Wireless channel.
          example: '36'
          readOnly: true
        channelFrom:
          type: string
          nullable: true
          description: Previous wireless channel.
          example: '11'
          readOnly: true
        physicalMode:
          type: string
          nullable: true
          description: Wireless physical mode.
          example: 802.11ac
          readOnly: true
        physicalModeFrom:
          type: string
          nullable: true
          description: Previous wireless physical mode.
          example: 802.11n
          readOnly: true
        failure:
          $ref: '#/components/schemas/EndpointWirelessConnectionFailure'
    EndpointWifiLogItemType:
      type: string
      description: Wi-Fi log item type.
      enum:
      - wifi-change
      - wifi-connect
      - wifi-disconnect
      - wifi-connection-failure
      - unknown
      example: wifi-connect
      readOnly: true
    EndpointWirelessConnectionFailure:
      type: object
      nullable: true
      properties:
        type:
          $ref: '#/components/schemas/EndpointWirelessConnectionFailureType'
        context:
          type: string
          nullable: true
          description: Additional context for the wireless connection failure.
          example: WPA authentication failed
          readOnly: true
        code:
          type: integer
          format: int64
          nullable: true
          description: Wireless connection failure code.
          example: 4
          readOnly: true
    EndpointWirelessConnectionFailureType:
      type: string
      description: Wireless connection failure phase.
      enum:
      - init
      - auth
      - assoc
      - eap
      - dhcp
      - unknown
      example: auth
      readOnly: true
    EndpointVpnLogItem:
      type: object
      nullable: true
      properties:
        logItemType:
          $ref: '#/components/schemas/EndpointVpnLogItemType'
        vpnType:
          $ref: '#/components/schemas/EndpointVpnType'
        vpnServerName:
          type: string
          nullable: true
          description: VPN server name.
          example: vpn-us-west
          readOnly: true
        vpnServerAddress:
          type: string
          nullable: true
          description: VPN server address.
          example: 192.0.2.10
          readOnly: true
    EndpointVpnLogItemType:
      type: string
      description: VPN log item type.
      enum:
      - vpn-connect
      - vpn-disconnect
      - unknown
      example: vpn-connect
      readOnly: true
    EndpointVpnType:
      type: string
      description: VPN vendor or type.
      enum:
      - openvpn
      - cisco-anyconnect
      - palo-alto-globalprotect
      - viscosity
      - ivanti-connect-secure
      - zscaler-internet-access
      - f5-big-ip
      - pptp
      - l2tp
      - sstp
      - ikev2
      - auto
      - unknown
      example: cisco-anyconnect
      readOnly: true
    EndpointOnlineOfflineLogItem:
      type: object
      nullable: true
      properties:
        logItemType:
          $ref: '#/components/schemas/EndpointOnlineOfflineLogItemType'
    EndpointOnlineOfflineLogItemType:
      type: string
      description: Online/offline log item type.
      enum:
      - online
      - offline
      - unknown
      example: online
      readOnly: true
    EndpointStateChangesLogItem:
      type: object
      nullable: true
      properties:
        logItemType:
          $ref: '#/components/schemas/EndpointStateChangesLogItemType'
    EndpointStateChangesLogItemType:
      type: string
      description: State change log item type.
      enum:
      - recover
      - enabled
      - deleted
      - disabled
      example: enabled
      readOnly: true
    ExpandEndpointAgentOptions:
      type: string
      enum:
      - clients
      - vpnProfiles
      - networkInterfaceProfiles
    FilterEndpointAgentsResponse:
      allOf:
      - $ref: '#/components/schemas/EndpointAgents'
      - type: object
        properties:
          _links:
            $ref: '#/components/schemas/PaginationNextLink'
    ListEndpointAgentsResponse:
      allOf:
      - $ref: '#/components/schemas/EndpointAgents'
      - type: object
        properties:
          _links:
            $ref: '#/components/schemas/PaginationNextAndSelfLink'
    EndpointAgents:
      description: A list of `EndpointAgents`.
      type: object
      properties:
        totalAgents:
          type: integer
          example: 1
          description: The total number of agents.
        agents:
          x-paginated-items: true
          type: array
          items:
            $ref: '#/components/schemas/EndpointAgent'
    AgentSearchRequest:
      description: Parameters for filtering a list of agents.
      type: object
      properties:
        searchFilters:
          $ref: '#/components/schemas/AgentSearchFilters'
        thresholdFilter:
          $ref: '#/components/schemas/AgentThresholdFilters'
        searchSort:
          type: array
          items:
            $ref: '#/components/schemas/AgentSearchSort'
    AgentSearchFilters:
      type: object
      properties:
        id:
          description: Returns only agents that are an exact match of the provided identifiers.
          type: array
          items:
            $ref: '#/components/schemas/EndpointAgentId'
        agentName:
          description: "Returns only agents with the given name. \nThis is an exact match only.\n"
          type: array
          items:
            $ref: '#/components/schemas/AgentName'
        computerName:
          description: 'Returns only agents with the given computer name.

            This is an exact match only.

            '
          type: array
          items:
            $ref: '#/components/schemas/ComputerName'
        username:
          description: 'Returns only agents that have at least one user with a name.

            starting with the provided string. This is a case-insensitive prefix match.

            '
          type: array
          item

# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/thousandeyes/refs/heads/main/openapi/thousandeyes-endpoint-agents-openapi.yml