openapi: 3.0.1
info:
  description: |2-

    ## Overview
    Manage all agents available to your account in ThousandEyes, including both Cloud and Enterprise Agents.
  title: Agents API
  version: 7.0.34
externalDocs:
  description: Find out more about Agents & Monitors
  url: https://docs.thousandeyes.com/product-documentation/global-vantage-points/working-with-agent-settings
servers:
- description: ThousandEyes API production URL
  url: https://api.thousandeyes.com/v7
security:
- BearerAuth: []
tags:
- name: Cloud and Enterprise Agents
- name: Enterprise Agent Cluster
- name: Cloud and Enterprise Agent Notification Rules
- name: Agent Proxies
paths:
  /agents:
    get:
      description: |
        Returns a list of all agents available to your ThousandEyes account, including both Enterprise and Cloud Agents.

        If an agent is an Enterprise Agent, this operation returns the agent’s public and private IP addresses, as well as the public network where the agent is located.
      operationId: getAgents
      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: "Optional parameter, off by default. Indicates which agent sub-resource\
          \ to expand. For example, if you wish to expand the `clusterMembers` sub-resource,\
          \ pass the `?expand=cluster-member` query."
        explode: false
        in: query
        name: expand
        required: false
        schema:
          example:
          - cluster-member
          items:
            $ref: '#/components/schemas/AgentListExpand'
          type: array
        style: form
      - description: Specifies the type of agent to request.
        explode: false
        in: query
        name: agentTypes
        required: false
        schema:
          example:
          - enterprise
          items:
            $ref: '#/components/schemas/CloudEnterpriseAgentType'
          type: array
        style: form
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CloudEnterpriseAgents'
          description: OK
        "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
        "502":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Gateway
        default:
          description: An error occurred
      summary: List Cloud and Enterprise Agents
      tags:
      - Cloud and Enterprise Agents
  /agents/{agentId}:
    delete:
      description: |-
        Deletes an Enterprise Agent.

        Important notes related to agent removal:
        * If an agent is deleted, the modification date for tests using that agent at the time it was deleted will be changed.
        * If a deleted agent is the final remaining agent on a test, then the test will be disabled when the agent is removed.
        * If an agent is removed, it must be re-initialized to use the same machine again in different context. Virtual Appliances can be updated using the Reset State button in the Advanced tab of the agent management interface. Users running packaged versions of Linux will need to remove /var/lib/te-agent/\*.sqlite in order to reinitialize an agent.
      operationId: deleteAgent
      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: Unique ID for the agent.
        example: "281474976710706"
        explode: false
        in: path
        name: agentId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: No content
        "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
        "502":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Gateway
        default:
          description: An error occurred
      summary: Delete Enterprise Agent
      tags:
      - Cloud and Enterprise Agents
    get:
      description: |
        Returns details for an agent, including assigned tests.

        For Enterprise Agents, this operation returns additional details, including utilization data, assigned accounts, a list of account groups the agent is assigned to, and utilization details.
      operationId: getAgent
      parameters:
      - description: Unique ID for the agent.
        example: "281474976710706"
        explode: false
        in: path
        name: agentId
        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: "Optional parameter, off by default. Indicates which agent sub-resource\
          \ to expand. For example, if you wish to expand the `clusterMembers` sub-resource,\
          \ pass the `?expand=cluster-member` query."
        explode: false
        in: query
        name: expand
        required: false
        schema:
          example:
          - cluster-member
          items:
            $ref: '#/components/schemas/AgentDetailsExpand'
          type: array
        style: form
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/AgentDetails'
          description: OK
        "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
        "502":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Gateway
        default:
          description: An error occurred
      summary: Retrieve Cloud and Enterprise Agent
      tags:
      - Cloud and Enterprise Agents
    put:
      description: |-
        Updates details for an Enterprise Agent. This operation can only be used for Enterprise Agents, and only for users in a role that permits modification of Enterprise Agents.

        Important notes related to agent modification on tests:
        * if an agent is removed from a test, the modification date for tests using that agent at the time it was removed will be changed.
        * If an agent is removed from an entire account group, then all tests using this agent in the removed account group will be updated to reflect the removed agent.
        * If a removed agent is the final remaining agent on a test, then the test will be disabled when the agent is removed.

        Users can update the following fields:
        * `agentName`: String representation of an agent. No two agents can have the same display name.
        * `enabled`: Boolean representation of agent state.
        * `accountGroups`: An array of account group ids. See `v7/account-groups` to pull a list of account IDs.
        * `tests`: An array of test Is. See `v7/tests` to retrieve a list tests available in the current account context.
        * `ipv6Policy`: Enum representation of the IP version policy.
        * `keepBrowserCache`: Boolean representation of the Keep browser cache state.
        * `targetForTests`: String representation of the target IP address or domain name. This represents the test destination when agent is acting as a test target in an agent-to-agent test.
        * `localResolutionPrefixes`: This array of strings represents the public IP ranges where the Enterprise Agent performs rDNS (Reverse DNS) lookups. The range should be in CIDR notation, such as `10.1.1.0/24`. Please note that a maximum of 5 prefixes is allowed. This only applies to Enterprise Agents and Enterprise Agent clusters.
      operationId: updateAgent
      parameters:
      - description: Unique ID for the agent.
        example: "281474976710706"
        explode: false
        in: path
        name: agentId
        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: "Optional parameter, off by default. Indicates which agent sub-resource\
          \ to expand. For example, if you wish to expand the `clusterMembers` sub-resource,\
          \ pass the `?expand=cluster-member` query."
        explode: false
        in: query
        name: expand
        required: false
        schema:
          example:
          - cluster-member
          items:
            $ref: '#/components/schemas/AgentDetailsExpand'
          type: array
        style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentRequest'
        required: true
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/AgentDetails'
          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
        "502":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Gateway
        default:
          description: An error occurred
      summary: Update Enterprise Agent
      tags:
      - Cloud and Enterprise Agents
  /agents/{agentId}/cluster/assign:
    post:
      description: "Adding a member to an Enterprise Agent cluster converts a standalone\
        \ Enterprise Agent to an Enterprise Agent cluster. If the agent represented\
        \ by the path {agentId} is not already a cluster, it will be converted to\
        \ a cluster.\n\nThe response will be a single Enterprise Agent Cluster. The\
        \ converted Enterprise Agents will become cluster members, and can be returned\
        \ using the `?expand=cluster-member` parameter.\n\nThis operation requires\
        \ users to have the `Edit agents in account group` permission.\n\nUpon successful\
        \ cluster creation, the response includes:\n\n* Information about the new\
        \ cluster in the response body.\n\n* Each cluster member receives a unique\
        \ `memberId` within the cluster.\n\n* The `memberId` value is not linked to\
        \ the original `agentId` used in the request URL or POST body.\n\n* The cluster\
        \ name is based on the agent whose `agentId` is present in the request URL.\n\
        \n**Example - converting a single agent**\n```\ncurl -X POST https://api.thousandeyes.com/v7/agents/64965/cluster/assign\
        \  -H \"Authorization: Bearer $Bearer_token\" \n````\n\n**Example - converting\
        \ multiple agents**\n```\ncurl https://api.thousandeyes.com/v7/agents/64965/cluster/assign\
        \ \\\n'{\"agents\":[\n  \"2277\",\n  \"1234\"\n]}' \\\n-H \"content-type:application/json\"\
        \ \\\n-H \"Authorization: Bearer $Bearer_token\" \n````"
      operationId: assignAgentToCluster
      parameters:
      - description: Unique ID for the Enterprise Agent cluster to add new agents
          to.
        example: "281474976710706"
        explode: false
        in: path
        name: agentId
        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: "Optional parameter, off by default. Indicates which agent sub-resource\
          \ to expand. For example, if you wish to expand the `clusterMembers` sub-resource,\
          \ pass the `?expand=cluster-member` query."
        explode: false
        in: query
        name: expand
        required: false
        schema:
          example:
          - cluster-member
          items:
            $ref: '#/components/schemas/AgentDetailsExpand'
          type: array
        style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentClusterAssignRequest'
        required: true
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/AgentDetails'
          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
        "502":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Gateway
        default:
          description: An error occurred
      summary: Add member to Enterprise Agent cluster
      tags:
      - Enterprise Agent Cluster
  /agents/{agentId}/cluster/unassign:
    post:
      description: "Converts a cluster with a single or multiple Enterprise Agent\
        \ members back to a standalone Enterprise Agent(s). This operation can also\
        \ be used to remove one or more members from an Enterprise Agent cluster.\
        \ Removed members revert to being standalone Enterprise Agents. If all members\
        \ are removed from the cluster, the Enterprise Agent Cluster is deleted.\n\
        \nThe response is an list of agents, containing both the Enterprise Agent\
        \ Cluster (if it still exists), and the removed members, now as standalone\
        \ Enterprise Agents. This operation is exclusive to Enterprise Agent clusters\
        \ and can be accessed only by users with the `Edit agents in account group`\
        \ permission.\n\nOn successful completion, the response contains the following\
        \ information:\n\n* The updated cluster information is provided in the response\
        \ body, unless all members are removed from the cluster.\n\n* Information\
        \ about each removed member, now a standalone agent.\n\n* When a non-last\
        \ member is removed from the cluster, it receives a new `agentId` value. This\
        \ new `agentId` is different from the `agentId` the agent had before joining\
        \ the cluster, and it is also unrelated to the `memberId` value the agent\
        \ had while being a part of the cluster.\n\n* If all members are removed from\
        \ the cluster, the cluster itself is converted back to a standalone Enterprise\
        \ Agent too. Such standalone agent inherits the old cluster’s `agentId` value.\
        \ The last `memberId` listed in the POST body inherits the cluster’s `agentId`\
        \ value.\n\n**Example - removing a single member**\n```\ncurl -X POST https://api.thousandeyes.com/v7/agents/64965/cluster/unassign\
        \   \\\n'{\"members\":[\"55974\"]}' \\\n-H \"content-type:application/json\"\
        \ \\\n-H \"Authorization: Bearer $Bearer_token\" \n```\n\n**Example - removing\
        \ multiple members**\n```\ncurl https://api.thousandeyes.com/v7/agents/64965/cluster/unassign\
        \ \\\n'{\"members\":[\n    \"55974\",\n    \"12313\"]\n }' \\\n-H \"content-type:application/json\"\
        \ \\\n-H \"Authorization: Bearer $Bearer_token\" \n```"
      operationId: unassignAgentFromCluster
      parameters:
      - description: Unique ID for the Enterprise Agent cluster to remove agents from.
        example: "281474976710706"
        explode: false
        in: path
        name: agentId
        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: "Optional parameter, off by default. Indicates which agent sub-resource\
          \ to expand. For example, if you wish to expand the `clusterMembers` sub-resource,\
          \ pass the `?expand=cluster-member` query."
        explode: false
        in: query
        name: expand
        required: false
        schema:
          example:
          - cluster-member
          items:
            $ref: '#/components/schemas/AgentDetailsExpand'
          type: array
        style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentClusterUnassignRequest'
        required: true
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CloudEnterpriseAgents'
          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
        "502":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Gateway
        default:
          description: An error occurred
      summary: Remove member from Enterprise Agent cluster
      tags:
      - Enterprise Agent Cluster
  /agents/notification-rules:
    get:
      description: Returns a list of all agent notification rules configured under
        the account.
      operationId: getAgentsNotificationRules
      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/ListNotificationRulesResponse'
          description: OK
        "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
        "502":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Gateway
        default:
          description: An error occurred
      summary: List agent notification rules
      tags:
      - Cloud and Enterprise Agent Notification Rules
  /agents/notification-rules/{notificationRuleId}:
    get:
      description: |
        Returns details of an agent notification rule, including agents it is assigned to.
      operationId: getAgentsNotificationRule
      parameters:
      - description: Unique ID for the agent notification rule.
        example: "281474976710706"
        explode: false
        in: path
        name: notificationRuleId
        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/NotificationRuleDetail'
          description: OK
        "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
        "502":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Gateway
        default:
          description: An error occurred
      summary: Retrieve agent notification rule
      tags:
      - Cloud and Enterprise Agent Notification Rules
  /agents/proxies:
    get:
      description: |
        List all agent proxies available under the account group.
      operationId: getAgentsProxies
      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/AgentProxies'
          description: OK
        "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
        "502":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Gateway
        default:
          description: An error occurred
      summary: List agent proxies
      tags:
      - Agent Proxies
components:
  parameters:
    AgentId:
      description: Unique ID for the agent.
      example: "281474976710706"
      explode: false
      in: path
      name: agentId
      required: true
      schema:
        type: string
      style: simple
    AssignAgentId:
      description: Unique ID for the Enterprise Agent cluster to add new agents to.
      example: "281474976710706"
      explode: false
      in: path
      name: agentId
      required: true
      schema:
        type: string
      style: simple
    UnassignAgentId:
      description: Unique ID for the Enterprise Agent cluster to remove agents from.
      example: "281474976710706"
      explode: false
      in: path
      name: agentId
      required: true
      schema:
        type: string
      style: simple
    NotificationRuleId:
      description: Unique ID for the agent notification rule.
      example: "281474976710706"
      explode: false
      in: path
      name: notificationRuleId
      required: true
      schema:
        type: string
      style: simple
    ExpandAgent:
      description: "Optional parameter, off by default. Indicates which agent sub-resource\
        \ to expand. For example, if you wish to expand the `clusterMembers` sub-resource,\
        \ pass the `?expand=cluster-member` query."
      explode: false
      in: query
      name: expand
      required: false
      schema:
        example:
        - cluster-member
        items:
          $ref: '#/components/schemas/AgentListExpand'
        type: array
      style: form
    ExpandAgentDetails:
      description: "Optional parameter, off by default. Indicates which agent sub-resource\
        \ to expand. For example, if you wish to expand the `clusterMembers` sub-resource,\
        \ pass the `?expand=cluster-member` query."
      explode: false
      in: query
      name: expand
      required: false
      schema:
        example:
        - cluster-member
        items:
          $ref: '#/components/schemas/AgentDetailsExpand'
        type: array
      style: form
    AgentTypes:
      description: Specifies the type of agent to request.
      explode: false
      in: query
      name: agentTypes
      required: false
      schema:
        example:
        - enterprise
        items:
          $ref: '#/components/schemas/CloudEnterpriseAgentType'
        type: array
      style: form
    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
  responses:
    "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
    "502":
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Bad Gateway
    GeneralError:
      description: An error occurred
    "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
    "204":
      description: No content
  schemas:
    CloudEnterpriseAgents:
      properties:
        agents:
          items:
            $ref: '#/components/schemas/CloudEnterpriseAgent'
          type: array
        _links:
          $ref: '#/components/schemas/SelfLinks'
      type: object
    CloudEnterpriseAgent:
      anyOf:
      - $ref: '#/components/schemas/AgentResponse'
      - $ref: '#/components/schemas/EnterpriseAgent'
    CloudAgentType:
      description: Cloud agent type.
      example: cloud
      pattern: ^cloud$
      type: string
    EnterpriseAgentType:
      description: Enterprise agent type.
      example: enterprise
      pattern: ^enterprise$
      type: string
    EnterpriseClusterAgentType:
      description: Enterprise Cluster agent type.
      example: enterprise-cluster
      pattern: ^enterprise-cluster$
      type: string
    AgentClusterAssignRequest:
      properties:
        agents:
          description: Contains list of agent IDs (get `agentId` from `/agents` operation)
          example:
          - "281474976710706"
          items:
            description: Agent ID
            type: string
          type: array
      type: object
    AgentClusterUnassignRequest:
      properties:
        members:
          description: "Contains list of member IDs. (get `memberId` from `/agents/{agentId}`\
            \ operation)"
          example:
          - "281474976710706"
          items:
            description: member ID
            type: string
          type: array
      type: object
    AgentDetails:
      discriminator:
        mapping:
          cloud: '#/components/schemas/CloudAgentDetail'
          enterprise: '#/components/schemas/EnterpriseAgentDetail'
          enterprise-cluster: '#/components/schemas/EnterpriseAgentClusterDetail'
        propertyName: agentType
      oneOf:
      - $ref: '#/components/schemas/CloudAgentDetail'
      - $ref: '#/components/schemas/EnterpriseAgentDetail'
      - $ref: '#/components/schemas/EnterpriseAgentClusterDetail'
    CloudAgentDetail:
      allOf:
      - $ref: '#/components/schemas/SimpleAgent'
      - properties:
          agentType:
            $ref: '#/components/schemas/CloudAgentType'
          tests:
            description: List of tests. See `/tests` for more information.
            items:
              $ref: '#/components/schemas/SimpleTest'
            type: array
          labels:
            description: List of labels - see `/labels` for more information.
            items:
              $ref: '#/components/schemas/AgentLabel'
            readOnly: true
            type: array
          _links:
            $ref: '#/components/schemas/SelfLinks'
        required:
        - agentType
        type: object
      type: object
    EnterpriseAgentDetail:
      allOf:
      - properties:
          agentType:
            $ref: '#/components/schemas/EnterpriseAgentType'
          _links:
            $ref: '#/components/schemas/SelfLinks'
        required:
        - agentType
        type: object
      - $ref: '#/components/schemas/SimpleEnterpriseAgent'
      - $ref: '#/components/schemas/EnterpriseAgentResponseExpands'
    EnterpriseAgentClusterDetail:
      allOf:
      - properties:
          agentType:
            $ref: '#/components/schemas/EnterpriseClusterAgentType'
          _links:
            $ref: '#/components/schemas/SelfLinks'
        required:
        - agentType
        type: object
      - $ref: '#/components/schemas/SimpleEnterpriseAgent'
      - $ref: '#/components/schemas/EnterpriseAgentResponseExpands'
    EnterpriseAgentResponseExpands:
      properties:
        tests:
          description: List of tests. See `/tests` for more information.
          items:
            $ref: '#/components/schemas/SimpleTest'
          type: array
        notificationRules:
          description: List of notification rule objects configured on agent
          items:
            $ref: '#/components/schemas/NotificationRules'
          type: array
        labels:
          description: List of labels. See `/labels` for more information.
          items:
            $ref: '#/components/schemas/AgentLabel'
          readOnly: true
          type: array
      type: object
    AgentRequest:
      properties:
        agentName:
          description: Name of the agent.
          example: thousandeyes-stg-va-254
          type: string
        enabled:
          description: Flag indicating if the agent is enabled.
          example: true
          type: boolean
        accountGroups:
          description: Contains a list of account groups IDs. See `/accounts-groups`
            for a list of account IDs
          example:
          - "1234"
          - "1"
          items:
            type: string
          type: array
        ipv6Policy:
          $ref: '#/components/schemas/AgentIpv6Policy'
        keepBrowserCache:
          description: Flag indicating if the agent retains cache.
          example: true
          type: boolean
        targetForTests:
          description: Test target IP address.
          example: 1.1.1.1
          format: ipv4
          type: string
        localResolutionPrefixes:
          description: "Public IP ranges for rDNS lookups. The range must be in CIDR\
            \ notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise\
            \ Agents and Enterprise Agent clusters only)."
          example:
          - 10.2.3.3/24
          - 10.2.3.3/25
          items:
            type: string
          type: array
        tests:
          description: Contains list of test IDs. See `/tests` to pull a list of available
            tests.
          example:
          - "12313145"
          - "12345"
          items:
            type: string
          type: array
      type: object
    AgentIpv6Policy:
      description: "IP version policy, (Enterprise Agents and Enterprise Clusters\
        \ only)"
      enum:
      - force-ipv4
      - prefer-ipv6
      - force-ipv6
      example: force-ipv4
      type: string
    ListNotificationRulesResponse:
      allOf:
      - $ref: '#/components/schemas/NotificationRules'
      - properties:
          _links:
            $ref: '#/components/schemas/SelfLinks'
        type: object
    NotificationRules:
      properties:
        agentAlertRules:
          example:
          - ruleId: "281474976710706"
            ruleName: Default Agent Offline Notification
            expression: ((lastContact >= 30 min))
            notifyOnClear: true
            isDefault: false
          - ruleId: "281474976710709"
            ruleName: Test Rule
            expression: ((lastContact >= 40 min))
            notifyOnClear: true
            isDefault: true
          items:
            $ref: '#/components/schemas/NotificationRule'
          type: array
      type: object
    NotificationRule:
      properties:
        ruleId:
          description: Agent notification rule ID
          example: "281474976710706"
          readOnly: true
          type: string
        ruleName:
          description: Name of the agent notification rule
          example: Default Agent Offline Notification
          type: string
        expression:
          description: Expression of agent notification rule
          example: ((lastContact >= 30 min))
          type: string
        notifyOnClear:
          description: Send notification when notification clears
          example: true
          type: boolean
        isDefault:
          description: Agent notification rule will be automatically included on all
            new Enterprise Agents.
          example: false
          type: boolean
      type: object
    NotificationRuleDetail:
      allOf:
      - $ref: '#/components/schemas/NotificationRule'
      - properties:
          notifications:
            $ref: '#/components/schemas/AgentNotification'
          agents:
            items:
              $ref: '#/components/schemas/AgentResponse'
            type: array
          _links:
            $ref: '#/components/schemas/SelfLinks'
        type: object
    AgentNotification:
      description: Alert notification object.
      properties:
        email:
          $ref: '#/components/schemas/AlertEmail'
        thirdParty:
          items:
            $ref: '#/components/schemas/AlertIntegrationBase'
          type: array
        webhook:
          items:
            $ref: '#/components/schemas/AlertIntegrationBase'
          type: array
      type: object
    AgentProxies:
      properties:
        agentProxies:
          items:
            $ref: '#/components/schemas/AgentProxy'
          type: array
        _links:
          $ref: '#/components/schemas/SelfLinks'
      type: object
    AgentProxy:
      properties:
        aid:
          description: Account id that this proxy configuration belongs to
          example: "1234"
          type: string
        authType:
          $ref: '#/components/schemas/ProxyAuthType'
        bypassList:
          description: "A list of hostnames, network prefixes, or wildcards used to\
            \ determine which test targets should not be proxied. If all tests should\
            \ be proxied, leave empty."
          example:
          - 10.0.0.0/16
          - '*.thousandeyes.com'
          items:
            type: string
          type: array
        lastModified:
          description: Last modification timestamp of the proxy. Expressed in UTC
            (ISO date-time format).
          example: 2022-07-17T22:00:54Z
          format: date-time
          type: string
        location:
          description: "The location of the proxy. If proxyType is `static` use the\
            \ format `hostname:port`. If location is `pac`, then specify the URL where\
            \ the PAC file can be obtained."
          example: proxy.thousandeyes.com:3128
          type: string
        isLocalConfigured:
          description: Set to `true` if this proxy configuration comes from the agent’s
            config file. Specify `false` if the proxy configuration was created in
            the ThousandEyes application.
          example: true
          type: boolean
        name:
          description: Expression of agent notification rule.
          example: Test Proxy - Auth Type - BASIC
          type: string
        password:
          description: Password for proxy authentication
          example: '**********'
          format: password
          type: string
        proxyId:
          description: Agent proxy's unique ID.
          example: "281474976710706"
          type: string
        type:
          $ref: '#/components/schemas/ProxyType'
        user:
          description: Username for proxy authentication.
          example: user1
          type: string
      type: object
    ProxyAuthType:
      description: The type of authentication the proxy requires
      enum:
      - basic
      - ntlm
      - kerberos
      - unknown
      example: basic
      type: string
    ProxyType:
      description: "The type of proxy, STATIC or PAC."
      enum:
      - static
      - pac
      example: static
      type: string
    AlertEmail:
      properties:
        message:
          description: Message used for email notification.
          example: "This test is failing, check as soon as possible."
          type: string
        recipients:
          description: List of recipients emails that will be notified.
          example:
          - user1@thousandeyes.com
          - user2@cisco.com
          items:
            type: string
          type: array
      type: object
    AlertIntegrationBase:
      properties:
        integrationId:
          description: Unique ID of the integration.
          example: wb-78
          type: string
        integrationName:
          description: Name of the integration.
          example: integrationSlack1
          type: string
        integrationType:
          $ref: '#/components/schemas/AlertIntegrationType'
        target:
          description: Target URL of the integration.
          example: https://hooks.slack.com/services/asd/0VqDYEpidpHVAK397x8PBsmZ
          type: string
        authMethod:
          description: (PagerDuty only) Authentication method.
          example: Basic
          type: string
        authUser:
          description: (PagerDuty only) Authentication user.
          example: user123
          type: string
        authToken:
          description: (PagerDuty only) Authentication token.
          example: 0VqDYEpidpHVAK397x8PBsmZ
          type: string
        channel:
          description: (Slack only) Slack `#channel` or `@user`.
          example: '#slackChannel'
          type: string
      type: object
    AlertIntegrationType:
      description: Type of the alert integration
      enum:
      - pager-duty
      - slack
      example: slack
      type: string
    AgentLabel:
      properties:
        labelId:
          description: Label Id.
          example: "11"
          type: string
        name:
          description: Name of the label.
          example: Label name
          type: string
      readOnly: true
      type: object
    AgentListExpand:
      enum:
      - cluster-member
      type: string
    AgentDetailsExpand:
      enum:
      - cluster-member
      - test
      - notification-rule
      type: string
    CloudEnterpriseAgentType:
      description: Type of the agent.
      enum:
      - cloud
      - enterprise-cluster
      - enterprise
      example: enterprise-cluster
      readOnly: true
      type: string
    UnauthorizedError:
      properties:
        error:
          example: invalid_token
          type: string
        error_description:
          example: Invalid access token
          type: string
      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
    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
    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
    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
    AgentResponse:
      allOf:
      - properties:
          agentType:
            $ref: '#/components/schemas/CloudEnterpriseAgentType'
        required:
        - agentType
      - $ref: '#/components/schemas/SimpleAgent'
    SimpleAgent:
      allOf:
      - $ref: '#/components/schemas/AgentBase'
      - properties:
          agentId:
            description: Unique ID of the agent.
            example: "281474976710706"
            readOnly: true
            type: string
          agentName:
            description: Name of the agent.
            example: thousandeyes-stg-va-254
            type: string
          location:
            description: Location of the agent.
            example: San Francisco Bay Area
            readOnly: true
            type: string
          countryId:
            description: 2-digit ISO country code
            example: US
            readOnly: true
            type: string
          enabled:
            description: Flag indicating if the agent is enabled.
            example: true
            type: boolean
          prefix:
            description: Prefix containing agents public IP address.
            example: 99.128.0.0/11
            readOnly: true
            type: string
          verifySslCertificates:
            description: Flag indicating if has normal SSL operations or  if instead
              it's set to ignore SSL errors on browserbot-based tests.
            example: true
            readOnly: true
            type: boolean
        type: object
      type: object
    AgentBase:
      properties:
        ipAddresses:
          description: Array of private IP addresses.
          example:
          - 99.139.65.220
          - 9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce
          items:
            type: string
          readOnly: true
          type: array
        publicIpAddresses:
          description: Array of public IP addresses.
          example:
          - 192.168.1.78
          - f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c
          items:
            type: string
          readOnly: true
          type: array
        network:
          description: Network (including ASN) of agent’s public IP.
          example: "AT&T Services, Inc. (AS 7018)"
          readOnly: true
          type: string
      type: object
    EnterpriseAgent:
      allOf:
      - $ref: '#/components/schemas/AgentResponse'
      - $ref: '#/components/schemas/EnterpriseAgentData'
    EnterpriseAgentData:
      properties:
        clusterMembers:
          description: "If an enterprise agent is clustered, detailed information\
            \ about each cluster member will be shown as array entries in the clusterMembers\
            \ field. This field is not shown for Enterprise Agents in standalone mode,\
            \ or for Cloud Agents."
          items:
            $ref: '#/components/schemas/ClusterMember'
          readOnly: true
          type: array
        utilization:
          description: Shows overall utilization percentage (online Enterprise Agents
            and Enterprise Clusters only).
          example: 25
          readOnly: true
          type: integer
        accountGroups:
          description: List of account groups. See /accounts-groups to pull a list
            of account IDs
          items:
            $ref: '#/components/schemas/AccountGroup'
          type: array
        ipv6Policy:
          $ref: '#/components/schemas/EnterpriseAgentIpv6Policy'
        errorDetails:
          description: "If an enterprise agent or a cluster member presents at least\
            \ one error, the errors will be shown as an array of entries in the errorDetails\
            \ field (Enterprise Agents and Enterprise Cluster members only)"
          items:
            $ref: '#/components/schemas/ErrorDetail'
          readOnly: true
          type: array
        hostname:
          description: Fully qualified domain name of the agent (Enterprise Agents
            only)
          example: thousandeyes.com
          readOnly: true
          type: string
        lastSeen:
          description: UTC last seen date (ISO date-time format).
          example: 2022-07-17T22:00:54Z
          format: date-time
          readOnly: true
          type: string
        agentState:
          $ref: '#/components/schemas/EnterpriseAgentState'
        keepBrowserCache:
          description: Flag indicating if the agent retains cache.
          example: true
          type: boolean
        createdDate:
          description: UTC Agent creation date (ISO date-time format).
          example: 2022-07-17T22:00:54Z
          format: date-time
          readOnly: true
          type: string
        targetForTests:
          description: Test target IP address.
          example: 1.1.1.1
          format: ipv4
          type: string
        localResolutionPrefixes:
          description: "To perform rDNS lookups for public IP ranges, this field represents\
            \ the public IP ranges. The range must be in CIDR notation; for example,\
            \ 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise\
            \ Agent clusters only)."
          items:
            example: 10.2.3.3/24
            type: string
          type: array
        interfaceIpMappings:
          items:
            $ref: '#/components/schemas/InterfaceIpMapping'
          readOnly: true
          type: array
      type: object
    ClusterMembers:
      description: "If an enterprise agent is clustered, detailed information about\
        \ each cluster member will be shown as array entries in the clusterMembers\
        \ field. This field is not shown for Enterprise Agents in standalone mode,\
        \ or for Cloud Agents."
      items:
        $ref: '#/components/schemas/ClusterMember'
      readOnly: true
      type: array
    ClusterMember:
      allOf:
      - $ref: '#/components/schemas/AgentBase'
      - properties:
          memberId:
            description: Unique ID of the cluster member
            example: "10"
            readOnly: true
            type: string
          name:
            description: Name of the cluster member
            example: Cluster member name
            readOnly: true
            type: string
          errorDetails:
            description: "If an enterprise agent or a cluster member presents at least\
              \ one error, the errors will be shown as an array of entries in the\
              \ errorDetails field (Enterprise Agents and Enterprise Cluster members\
              \ only)"
            items:
              $ref: '#/components/schemas/ErrorDetail'
            readOnly: true
            type: array
          lastSeen:
            description: UTC last seen date (ISO date-time format).
            example: 2022-07-17T22:00:54Z
            format: date-time
            readOnly: true
            type: string
          agentState:
            $ref: '#/components/schemas/EnterpriseAgentState'
          targetForTests:
            description: Test target IP address.
            example: 1.1.1.1
            format: ipv4
            type: string
          utilization:
            description: Shows overall utilization percentage (online Enterprise Agents
              and Enterprise Clusters only).
            example: 25
            readOnly: true
            type: integer
        type: object
    ErrorDetail:
      properties:
        code:
          $ref: '#/components/schemas/ErrorDetailCode'
        description:
          description: Description for the agent error.
          example: "Agent Version 0.1.1 (latest: 1.0.0)"
          readOnly: true
          type: string
      type: object
    ErrorDetailCode:
      description: Code for the agent error.
      enum:
      - agent-version-outdated
      - browserbot-version-outdated
      - appliance-version-outdated
      - clock-offset
      - os-end-of-installation-support
      - os-end-of-support
      - os-end-of-life
      - nat-traversal-error
      example: agent-version-outdated
      readOnly: true
      type: string
    EnterpriseAgentState:
      description: State of the agent.
      enum:
      - online
      - offline
      - disabled
      example: online
      readOnly: true
      type: string
    AccountGroup:
      properties:
        aid:
          description: A unique identifier associated with your account group. You
            can retrieve your `AccountGroupId` from the `/account-groups` endpoint.
          example: "1234"
          type: string
        accountGroupName:
          description: Account group name
          example: Account A
          type: string
      type: object
    AccountGroupId:
      description: A unique identifier associated with your account group. You can
        retrieve your `AccountGroupId` from the `/account-groups` endpoint.
      example: "1234"
      type: string
    EnterpriseAgentIpv6Policy:
      description: "IP version policy, (Enterprise Agents and Enterprise Clusters\
        \ only)"
      enum:
      - force-ipv4
      - prefer-ipv6
      - force-ipv6
      example: force-ipv4
      type: string
    InterfaceIpMapping:
      properties:
        interfaceName:
          description: Name of the mapping
          example: wlp4s0
          readOnly: true
          type: string
        ipAddresses:
          description: Array of ipAddress entries
          example:
          - 73.252.207.219
          - 2601:646:300:3ae0::b977
          items:
            type: string
          readOnly: true
          type: array
      type: object
    SimpleTest:
      additionalProperties: true
      description: "Each test includes additional fields depending on its `type`.\
        \ Refer `/tests/{type}` endpoint to know the set of fields returned by a given\
        \ `type`."
      properties:
        interval:
          $ref: '#/components/schemas/TestInterval'
        alertsEnabled:
          description: Indicates if alerts are enabled.
          example: true
          type: boolean
        enabled:
          default: true
          description: Test is enabled.
          example: true
          type: boolean
        createdBy:
          description: User that created the test.
          example: user@user.com
          readOnly: true
          type: string
        createdDate:
          description: UTC created date (ISO date-time format).
          example: 2022-07-17T22:00:54Z
          format: date-time
          readOnly: true
          type: string
        description:
          description: A description of the test.
          example: ThousandEyes Test
          type: string
        liveShare:
          description: Indicates if the test is shared with the account group.
          example: false
          readOnly: true
          type: boolean
        modifiedBy:
          description: User that modified the test.
          example: user@user.com
          readOnly: true
          type: string
        modifiedDate:
          description: UTC last modification date (ISO date-time format).
          example: 2022-07-17T22:00:54Z
          format: date-time
          readOnly: true
          type: string
        savedEvent:
          description: Indicates if the test is a saved event.
          readOnly: true
          type: boolean
        testId:
          description: Each test is assigned an unique ID; this is used to access
            test information and results from other endpoints.
          example: "281474976710706"
          readOnly: true
          type: string
        testName:
          description: The name of the test. Test name must be unique.
          example: ThousandEyes Test
          type: string
        type:
          $ref: '#/components/schemas/TestType'
        _links:
          $ref: '#/components/schemas/TestLinks'
      type: object
    TestInterval:
      default: 60
      description: Interval between test runs in seconds.
      enum:
      - 60
      - 120
      - 300
      - 600
      - 900
      - 1800
      - 3600
      example: 60
      type: integer
    Enabled:
      default: true
      description: Test is enabled.
      example: true
      type: boolean
    TestCreatedBy:
      description: User that created the test.
      example: user@user.com
      readOnly: true
      type: string
    TestCreatedDate:
      description: UTC created date (ISO date-time format).
      example: 2022-07-17T22:00:54Z
      format: date-time
      readOnly: true
      type: string
    TestType:
      description: "This is a read only value, as test type is implicit in the test\
        \ creation url."
      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
      example: agent-to-server
      readOnly: true
      type: string
    TestLinks:
      description: A list of links that can be accessed to get more information
      properties:
        self:
          $ref: '#/components/schemas/TestSelfLink'
        testResults:
          description: Reference to the test results.
          example:
          - href: https://api.thousandeyes.com/v7/test-results/281474976710706/network
          - href: https://api.thousandeyes.com/v7/test-results/281474976710706/path-vis
          items:
            $ref: '#/components/schemas/Link'
          type: array
      readOnly: true
      type: object
    TestSelfLink:
      allOf:
      - $ref: '#/components/schemas/Link'
      - description: Reference to the test.
        example:
          href: "https://api.thousandeyes.com/v7/tests/{type}/281474976710706"
    TestResults:
      description: Reference to the test results.
      example:
      - href: https://api.thousandeyes.com/v7/test-results/281474976710706/network
      - href: https://api.thousandeyes.com/v7/test-results/281474976710706/path-vis
      items:
        $ref: '#/components/schemas/Link'
      type: array
    SimpleEnterpriseAgent:
      allOf:
      - $ref: '#/components/schemas/SimpleAgent'
      - $ref: '#/components/schemas/EnterpriseAgentData'
  securitySchemes:
    BearerAuth:
      description: Bearer authentication token
      scheme: bearer
      type: http
