ThousandEyes Templates API

The Templates API from ThousandEyes — 4 operation(s) for templates.

Operations 8

POST /templates Create template #
GET /templates List templates #
GET /templates/{id} Get template #
PUT /templates/{id} Update template #
DELETE /templates/{id} Delete template #
POST /templates/{id}/deploy Deploy template #
GET /templates/{id}/sharing-settings Get template sharing settings #
PUT /templates/{id}/sharing-settings Update template sharing settings #

Documentation

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

Specifications

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

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

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

Get an API key

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

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

OpenAPI Specification

thousandeyes-templates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Templates API
  version: 7.0.100
  description: "**Note:** API operations for the creation or retrieval of API tests, Page Load tests, or Transaction tests are not available for ThousandEyes for Government instance.\n\nTemplates provide a streamlined approach to creating multiple tests (Synthetic/CEA and Endpoint), tags, alert rules, dashboards, labels (deprecated) and other assets within ThousandEyes from a single configuration file.\nTemplates make it easy to configure monitoring for even the most complex monitoring scenarios.\nThe following applies to templates:\n* ThousandEyes provides a pre-defined set of templates for monitoring common services and applications like Office365, Webex, Atlassian, Slack, custom network, HTTP, API, and Web targets.\n* You can easily create tests for monitoring common services and applications such as Office365, Webex, and others using the predefined set of ThousandEyes built-in templates.\n* Users can create their own templates, which are visible to any other users in the account group the template was created in, provided they have the `View Templates Read` permission.\n* Templates support dynamic user inputs, which are values provided by users when a template is deployed. Templates leverage Handlebars templating notation to allow dynamically configuring ThousandEyes resources based on user provided inputs.\n* Templates can be deployed from the UI or the API.\n* Credentials (usernames, passwords, tokens, etc.) may be included in a template only as placeholders whose value is provided by user input when deployed. Creating or updating a template that contains a credentials field in plain text will result in a bad request (ie, HTTP 400).\n* Templates can also use Handlebars template notation to reference fields of other assets defined in the template. To support this, assets are created in the order below, which also determines what other assets a given asset can reference\n(ex. Labels cannot reference other assets, Tests can reference labels and tags, etc.)\n  1. Labels\n  2. Tags\n  3. Tests\n  4. Endpoint Tests\n  5. Connected Devices Tests\n  6. Alert Rules\n  7. Dashboard Filters\n  8. Dashboards\n\nFor more information about Templates, see the [product documentation](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/test-templates).\n"
  x-provenance:
    method: harvested
    authored_by: Cisco ThousandEyes
    harvested_by: API Evangelist
    harvested_on: '2026-08-19'
    first_party: true
    provider_published: true
    source_host: pubhub.devnetcloud.com
    note: 27 OpenAPI 3.0 documents (26 per-area plus a unified 326-operation document) served anonymously from Cisco's DevNet CDN. api.thousandeyes.com itself 401s every path, so the contract is public while the API host is gated.
  x-evidence:
  - type: source
    url: https://pubhub.devnetcloud.com/media/000-v7-apis/docs/reference/
  - type: source
    url: https://developer.cisco.com/docs/thousandeyes/
servers:
- description: ThousandEyes API production URL
  url: https://api.thousandeyes.com/v7
security:
- BearerAuth: []
tags:
- name: Templates
paths:
  /templates:
    post:
      tags:
      - Templates
      summary: Create template
      description: Creates a template.
      operationId: createTemplate
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      requestBody:
        description: The template to create or update.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Template'
        required: true
      responses:
        '201':
          description: Created
          headers:
            Location:
              style: simple
              schema:
                type: string
                example: https://api.thousandeyes.com/v7/templates/fcbb89a7-61cf-4616-9c4f-828fa3cb4684
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/TemplateResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
    get:
      tags:
      - Templates
      summary: List templates
      description: Retrieves a list of all your templates
      operationId: getTemplates
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      - name: certificationLevel
        in: query
        description: Optional parameter to filter Templates by certification level
        required: false
        schema:
          $ref: '#/components/schemas/CertificationLevel'
      - name: module
        in: query
        description: Optional parameter to filter Templates by module
        required: false
        schema:
          $ref: '#/components/schemas/TemplateModule'
      - name: name
        in: query
        description: Optional parameter to filter the Templates by name; the search is case insensitive
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/TemplatesResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
  /templates/{id}:
    get:
      tags:
      - Templates
      summary: Get template
      description: Gets a template using its ID.
      operationId: getTemplate
      parameters:
      - $ref: '#/components/parameters/IdTemplate'
      - $ref: '#/components/parameters/AccountGroupId'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/TemplateResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
    put:
      tags:
      - Templates
      summary: Update template
      operationId: updateTemplate
      description: Updates an existing template. This operation overwrites the existing template object with the object sent in the request. If a partial update is required, it is recommended that you retrieve the template and modify the template object before updating it.
      parameters:
      - $ref: '#/components/parameters/IdTemplate'
      - $ref: '#/components/parameters/AccountGroupId'
      requestBody:
        description: The template to create or update.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Template'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/TemplateResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
    delete:
      tags:
      - Templates
      summary: Delete template
      description: Deletes a template using its ID.
      operationId: deleteTemplate
      parameters:
      - $ref: '#/components/parameters/IdTemplate'
      - $ref: '#/components/parameters/AccountGroupId'
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
  /templates/{id}/deploy:
    post:
      tags:
      - Templates
      summary: Deploy template
      description: "Deploys a template, which will result in creating any of the tests, tags, alert rules, dashboards or other assets defined in the template.\nYou must specify any `userInputValues` required by the template in the request body. `userInputValues` enables you to specify a minimum set of user values required to configure the tests from a template. This way, you do not have to edit all the details of each test configuration. If necessary, you can edit the test details directly in the template.\n### Considerations\nConsider the following when deploying a template:\n* To deploy a template, you must first create a template or use one of ThousandEyes' built-in templates.\n* The deployment strategy allows you to specify what should happen to a particular asset in the event that a template is redeployed.\n  When you attempt to deploy a template that has already been deployed, the API service compares any assets that have not yet been deployed with the assets that were deployed in the previous deployment (the comparison is done using the **asset key**; the asset keys are simply the object keys used in the `tests`, `labels`, `tags`, `alertRules`, and `dashboards` fields). By default, if the configuration of a particular asset has not changed from the previous deployment, that asset is ignored.\n    If a change is detected:\n  * If the asset is a test, a new test is created with the new configuration.\n  * If the asset is not a test, the asset is updated.\n* Tags are deployed in two phases. Every field on the tag configuration except `assignments` (`key`, `value`, `objectType`, `accessType`, and optional `color`) is applied before dependent assets so that tag IDs are available for Handlebars references (for example, `{{tags.myTag.id}}`). The `assignments` field is applied after those assets exist (for example, after the tests you reference have been created), so it can resolve deployed IDs such as `{{tests.myTest.testId}}`. When tags are shared across multiple template deployments, existing assignments from other deployments are preserved because assignments are additive.\n* You can create new resources such as tests, tags, alert rules, labels, dashboards, and modify existing resources defined in templates, overwriting the default configurations.\n* You can also use existing resources (such as those created outside the template deployment flow) by adding their ID either in the raw template or using the overrides when deploying the template. See example usage below for the raw template sample.\n**Note**: The template API does not currently track \"live\" configuration of assets. Any changes made to assets outside of the template API will not be considered when comparing changes during the redeployment scenario.\n### Example usage:\n```POST\n/v7/tests/templates/fcbb89a7-61cf-4616-9c4f-828fa3cb4684/deploy\n{\n  \"userInputValues\": {\n    \"interval\": 120,\n    \"target\": \"https://microsoft.com\",\n    \"agents\": [{\"agentId\":11}],\n    \"domain\": \"microsoft.com\"\n  },\n  \"name\":\"Microsoft Suite\",\n  \"tests\": {\n    \"secondPageLoadTest\": {\n      \"httpInterval\": 120,\n      \"interval\": 120,\n      \"testId\": 182481,\n      \"type\": \"page-load\",\n      \"url\": \"https://microsoft.com\",\n      \"testName\": \"Microsoft Suite - Second Page Load\",\n      \"agents\": [\n        {\n          \"agentId\": 11\n        }\n      ]\n    }\n  }\n}\n```\n#### Raw Template Sample\n```\n{\n  ...\n  \"tests\": {\n      \"existingTest\": {\n          \"testId\": \"123\", //The API will only try to update this test; will never create it\n          \"type\": \"http-server\",\n          ....\n      },\n      ...\n  },\n  ...\n}\n```"
      operationId: deployTemplate
      parameters:
      - $ref: '#/components/parameters/IdTemplate'
      - $ref: '#/components/parameters/AccountGroupId'
      requestBody:
        description: Deploy template
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeployTemplate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/TemplateResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
  /templates/{id}/sharing-settings:
    get:
      tags:
      - Templates
      summary: Get template sharing settings
      operationId: getSharingSettings
      parameters:
      - $ref: '#/components/parameters/IdTemplate'
      - $ref: '#/components/parameters/AccountGroupId'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/SharingSettingsResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
    put:
      tags:
      - Templates
      summary: Update template sharing settings
      operationId: updateSharingSettings
      parameters:
      - $ref: '#/components/parameters/IdTemplate'
      - $ref: '#/components/parameters/AccountGroupId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SharingSettings'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/SharingSettingsResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
components:
  schemas:
    TagIdListTemplate:
      description: A list of tag IDs identifying tags to be assigned.
      type: array
      items:
        $ref: '#/components/schemas/TagIdTemplate'
    DnsServersTemplate:
      description: DNS Servers to target
      type: array
      items:
        $ref: '#/components/schemas/DnsServerEntryTemplate'
    EndpointTestConfigProtocolTemplate:
      type: string
      description: The protocol to use for ping/traceroute tests.
      example: AUTODETECT
      enum:
      - UNKNOWN
      - ICMP
      - TCP
      - UDP
      - PREFER_TCP
      - AUTODETECT
    VoiceTestTemplate:
      allOf:
      - $ref: '#/components/schemas/TestBaseTemplate'
      - type: object
        required:
        - type
        - agents
        - interval
        - targetAgentId
        properties:
          type:
            $ref: '#/components/schemas/VoiceTestTypeTemplate'
          interval:
            description: How often the Voice test will run, in seconds.
            anyOf:
            - $ref: '#/components/schemas/VoiceIntervalTemplate'
            - $ref: '#/components/schemas/HandlebarsExpression'
          dscpId:
            $ref: '#/components/schemas/NumberTemplate'
            description: The DSCP value.
            default: 46
          dscp:
            $ref: '#/components/schemas/StringTemplate'
            description: The DSCP string.
          port:
            $ref: '#/components/schemas/NumberTemplate'
            description: The Port to target.
            default: 49152
            minimum: 1024
            maximum: 65535
            example: 49152
          targetAgentId:
            $ref: '#/components/schemas/NumberTemplate'
            description: Id of the target agent for the test.
    HttpServerTestTypeTemplate:
      type: string
      description: The type of test. Cannot be templated with Handlebars.
      example: http-server
      default: http-server
    TagAssignmentTemplate:
      type: object
      description: Identifies an object to assign a tag to.
      required:
      - id
      - type
      properties:
        id:
          description: The object ID, typically a Handlebars reference to a deployed test.
          anyOf:
          - type: string
          - $ref: '#/components/schemas/HandlebarsExpression'
          example: '{{tests.httpServerTest.testId}}'
        type:
          description: The type of object being assigned.
          anyOf:
          - $ref: '#/components/schemas/TagAssignmentObjectType'
          - $ref: '#/components/schemas/HandlebarsExpression'
          example: test
    DnsTraceTestTemplate:
      allOf:
      - $ref: '#/components/schemas/TestBaseTemplate'
      - type: object
        required:
        - type
        - agents
        - domain
        - interval
        properties:
          type:
            $ref: '#/components/schemas/DnsTraceTestTypeTemplate'
          dnsTransportProtocolTemplate:
            $ref: '#/components/schemas/TransportProtocolTemplate'
          domain:
            $ref: '#/components/schemas/DnsTargetDomainTemplate'
    SharingScope:
      type: string
      description: 'The scope of the template sharing. The accepted values are:

        - `default`: The template is visible only within the account group that owns it.

        - `organization`: The template is visible by all the users within the organization that owns it.

        '
      example: organization
      enum:
      - default
      - organization
    SchemaVersionConfig:
      title: SchemaVersionConfig
      description: "Configuration for resource schema versions. Specifies which schema version (`v6` or `v7`)\nto use for each resource type in a template. If a field is omitted, the default version is used.\nDefaults: `tests`=v6, `alertRules`=v6. Other resources default internally (`labels`=v6; \n`tags`, `dashboards`, `endpointTests`, `connectedDevicesTests`=v7).\n"
      type: object
      properties:
        tests:
          $ref: '#/components/schemas/TestsSchemaVersion'
        alertRules:
          $ref: '#/components/schemas/AlertRulesSchemaVersion'
    CertificationLevel:
      type: string
      description: 'The certification level of the Template. The accepted values are:

        - `user`: User created template; not verified by ThousandEyes

        - `thousandeyes`: Created by ThousandEyes

        - `partner`: Created by ThousandEyes and approved by Partner/Vendor

        - `certified`: Created and certified by ThousandEyes using included best practice guide (see `documentation` link).

        '
      example: user
      enum:
      - user
      - thousandeyes
      - partner
      - certified
    VoiceIntervalTemplate:
      description: Voice test interval in seconds.
      type: integer
      enum:
      - 300
      - 600
      - 900
      - 1800
      - 3600
      example: 300
    AgentToAgentTestTemplate:
      allOf:
      - $ref: '#/components/schemas/TestBaseTemplate'
      - $ref: '#/components/schemas/NetworkTestBaseTemplate'
      - type: object
        required:
        - type
        - agents
        - interval
        - targetAgentId
        properties:
          type:
            $ref: '#/components/schemas/AgentToAgentTestTypeTemplate'
          direction:
            anyOf:
            - $ref: '#/components/schemas/AgentToAgentTestDirectionTemplate'
            - $ref: '#/components/schemas/HandlebarsExpression'
          dscpId:
            $ref: '#/components/schemas/NumberTemplate'
          targetAgentId:
            $ref: '#/components/schemas/NumberTemplate'
            description: ID of the target agent for the test.
          throughputMeasurements:
            anyOf:
            - $ref: '#/components/schemas/BooleanNumber'
            - $ref: '#/components/schemas/HandlebarsExpression'
          throughputDuration:
            $ref: '#/components/schemas/NumberTemplate'
            minimum: 5000
            maximum: 30000
            default: 10000
            example: 10000
          throughputRate:
            $ref: '#/components/schemas/NumberTemplate'
            description: Throughput rate; For UDP only.
            minimum: 1
            maximum: 1000
            example: 10
    ResourceInclusion:
      type: string
      description: The deployment inclusion configuration for the asset.
      example: included
      enum:
      - skipped
      - included
    EndpointAuthTypeTemplate:
      description: The authentication type.
      anyOf:
      - $ref: '#/components/schemas/EndpointAuthTypeEnumTemplate'
      - $ref: '#/components/schemas/HandlebarsExpression'
    UserInputValue:
      description: A user input value. The type of object depends on the user input `type` field.
      anyOf:
      - type: string
      - type: number
      - type: object
      - type: array
        items:
          type: string
      - type: array
        items:
          type: number
      - type: array
        items:
          type: object
      example: us-west-1
    EndpointTestTypeTemplate:
      description: 'The type of Endpoint scheduled test.


        Possible values are:


        - `Network` - endpoint network test

        - `Http` - endpoint http test

        '
      anyOf:
      - $ref: '#/components/schemas/EndpointTestTypeOptionsTemplate'
      - $ref: '#/components/schemas/HandlebarsExpression'
    AlertRulesSchemaVersion:
      type: string
      description: Schema version for alert rule resources.
      default: v6
      example: v7
      enum:
      - v6
      - v7
    TemplateGroupingType:
      type: string
      description: The type of resources included in the grouping. Supported types are `Tests` and `User Inputs`. Grouped tests are displayed under a shared `title` in the template test list view, while grouped user inputs are organized into sections in the Global Inputs area, using the provided `title` and `description`.
      enum:
      - test
      - user-input
      example: user-input
    FilterContextDataSourceTemplate:
      description: Type of data source for dashboard global filter.
      type: string
      example: VIRTUAL_AGENT
      enum:
      - ALERT
      - APPDYNAMICS_SERVICE_HEALTH
      - DEVICES
      - DNSP
      - ENDPOINT_AGENTS
      - INTERNET_INSIGHTS
      - ROUTING
      - THIRD_PARTY_APPLICATIONS
      - VIRTUAL_AGENT
    AlertRuleSeverityTemplate:
      type: string
      example: MINOR
      enum:
      - INFO
      - MAJOR
      - MINOR
      - CRITICAL
    SslVersionIdTemplate:
      description: The SSL Version; `0` for auto, `3` for SSLv3, `4` for TLS v1.0, `5` for TLS v1.1, `6` for TLS v1.2.
      type: integer
      default: 0
      example: 0
      enum:
      - 0
      - 3
      - 4
      - 5
      - 6
      - 7
    CustomHeadersTemplate:
      description: Custom headers to use in HTTP request.
      type: object
      properties:
        all:
          type: object
          additionalProperties:
            type: string
        domains:
          type: object
          additionalProperties:
            type: string
        root:
          type: object
          additionalProperties:
            type: string
    HttpVersionTemplate:
      description: The HTTP Version; 2 for default (prefer HTTP/2), 1 for HTTP/1.1 only.
      type: integer
      default: 2
      example: 2
      enum:
      - 1
      - 2
    PageLoadTestTypeTemplate:
      type: string
      description: The type of test. Cannot be templated with Handlebars.
      example: page-load
      default: page-load
    TargetSipCredentialsTemplate:
      type: object
      properties:
        authUser:
          $ref: '#/components/schemas/StringTemplate'
        password:
          $ref: '#/components/schemas/StringTemplate'
        port:
          $ref: '#/components/schemas/PortTemplate'
        protocol:
          $ref: '#/components/schemas/SipProtocolTemplate'
        sipRegistrar:
          $ref: '#/components/schemas/SipRegistrarTemplate'
      required:
      - sipRegistrar
      - port
    TargetServerTemplate:
      description: Target host name or IP address. Example "app.thousandeyes.com".
      anyOf:
      - type: string
      - $ref: '#/components/schemas/HandlebarsExpression'
    LabelTypeTemplate:
      description: 'The type of label. Acceptable values are:

        - `tests` - A Label that can be assigned to CEA/Synthetic tests

        - `endpoint_tests` - A Label that can be assigned to Endpoint tests

        '
      type: string
      example: tests
      enum:
      - tests
      - endpoint_tests
    DnsServerTestTemplate:
      allOf:
      - $ref: '#/components/schemas/TestBaseTemplate'
      - $ref: '#/components/schemas/NetworkTestBaseTemplate'
      - type: object
        required:
        - type
        - agents
        - dnsServers
        - domain
        - interval
        properties:
          type:
            $ref: '#/components/schemas/DnsServerTestTypeTemplate'
          dnsServers:
            anyOf:
            - $ref: '#/components/schemas/DnsServersTemplate'
            - $ref: '#/components/schemas/HandlebarsExpression'
          domain:
            $ref: '#/components/schemas/DnsTargetDomainTemplate'
    TransactionTestTemplate:
      allOf:
      - $ref: '#/components/schemas/TestBaseTemplate'
      - $ref: '#/components/schemas/NetworkTestBaseTemplate'
      - $ref: '#/components/schemas/HttpServerTestBaseTemplate'
      - $ref: '#/components/schemas/BrowserTestBaseTemplate'
      - $ref: '#/components/schemas/TransactionTestBaseTemplate'
    AuthTypeTestTemplate:
      description: Authentication type to use when establishing connection.
      type: string
      enum:
      - NONE
      - BASIC
      - NTLM
      - KERBEROS
      default: NONE
      example: NONE
    TemplateResponseBase:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The ID of the template.
          example: fcbb89a7-61cf-4616-9c4f-828fa3cb4684
        dateCreated:
          type: string
          format: date-time
          description: The date and time the template was created.
          example: '2023-07-17T22:00:54Z'
    LabelConfigurationTemplate:
      type: object
      description: 'A label object that is compatible with [ThousandEyes V6 API](https://developer.cisco.com/docs/thousandeyes/v6/create-a-label/#request).

        All field values can be templated with Handlebars expression unless otherwise noted.

        '
      required:
      - name
      properties:
        name:
          description: The name of the label.
          anyOf:
          - type: string
          - $ref: '#/components/schemas/HandlebarsExpression'
        type:
          anyOf:
          - $ref: '#/components/schemas/LabelTypeTemplate'
          - $ref: '#/components/schemas/HandlebarsExpression'
        tests:
          description: Array of CEA/Synthetic testId objects, if the type specified is `tests`.
          title: Label_tests
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/TestIdTemplate'
          - $ref: '#/components/schemas/HandlebarsExpression'
        endpointTests:
          description: Array of Endpoint testId objects, if the type specified is `endpoint_tests`.
          title: Label_endpointTests
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/TestIdTemplate'
          - $ref: '#/components/schemas/HandlebarsExpression'
    TestInterval:
      type: integer
      enum:
      - 60
      - 120
      - 300
      - 600
      - 900
      - 1800
      - 3600
      description: Interval between test runs in seconds.
      default: 60
      example: 60
    Templates:
      type: object
      properties:
        templates:
          type: array
          items:
            $ref: '#/components/schemas/TemplateResponse'
    ProbeModeTemplate:
      description: The probe mode used by the end-to-end Network test. Only valid if the protocol is set to `TCP`. Defaults to `AUTO`.
      type: string
      default: AUTO
      example: AUTO
      enum:
      - AUTO
      - SACK
      - SYN
    TagAssignmentObjectType:
      type: string
      description: The type of object that can be assigned a tag.
      enum:
      - test
      - endpoint-test
      - connected-devices-test
      - dashboard
      example: test
    SipServerTestBaseTemplate:
      type: object
      required:
      - type
      - agents
      - targetSipCredentials
      properties:
        type:
          $ref: '#/components/schemas/SipServerTestTypeTemplate'
        desiredStatusCode:
          $ref: '#/components/schemas/NumberTemplate'
          description: The expected SIP response code.
        server:
          $ref: '#/components/schemas/StringTemplate'
          description: The domain and port of the target SIP server.
        protocol:
          $ref: '#/components/schemas/SipProtocolTemplate'
        targetSipCredentials:
          $ref: '#/components/schemas/TargetSipCredentialsTemplate'
    AgentToServerTestTypeTemplate:
      type: string
      description: The type of test. Cannot be templated with Handlebars.
      example: agent-to-server
      default: agent-to-server
    DeploymentStrategy:
      type: string
      description: The deployment strategy to apply to the asset.
      example:
        pageLoadTest: update
        httpAlert: ignore
      enum:
      - create
      - update
      - ignore
    BgpTestTypeTemplate:
      type: string
      description: The type of test. Cannot be templated with Handlebars.
      example: bgp
      default: bgp
    SelfLinks:
      type: object
      description: A links object containing the self link.
      readOnly: true
      properties:
        self:
          $ref: '#/components/schemas/Link'
    WidgetMeasureType:
      type: string
      description: Determines how to aggregate the the metric.
      example: MEAN
      enum:
      - MINIMUM
      - MAXIMUM
      - MEAN
      - MEDIAN
      - NTH_PERCENTILE
      - PERCPOSITIVE
      - PERCZERO
      - STDDEV
      - TOTAL
      - VALUES
      - SUM
      - CLOUD_NATIVE_MONITORING-MEAN
      - CLOUD_NATIVE_MONITORING-SUM
      - TRAFFIC_INSIGHTS_MONITORING-SUM
      - TRAFFIC_INSIGHTS_MONITORING-MEAN
    TemplateModule:
      type: string
      description: A ThousandEyes module this template belongs to. Regular users can only set to `default`.
      example: default
      enum:
      - default
    EndpointTestTypeOptionsTemplate:
      type: string
      enum:
      - Http
      - Network
      example: Http
    TestIdTemplate:
      description: Test identified by the test's ID.
      type: object
      properties:
        testId:
          $ref: '#/components/schemas/StringTemplate'
          description: ID of the test.
    TemplateResponse:
      allOf:
      - $ref: '#/components/schemas/TemplateResponseBase'
      - $ref: '#/components/schemas/Template'
      - type: object
        properties:
          _links:
            $ref: '#/components/schemas/SelfLinks'
    TransactionTestTypeTemplate:
      type: string
      description: The type of test. Cannot be templated with Handlebars.
      example: web-transactions
      default: web-transactions
    PageLoadTestTemplate:
      allOf:
      - $ref: '#/components/schemas/TestBaseTemplate'
      - $ref: '#/components/schemas/NetworkTestBaseTemplate'
      - $ref: '#/components/schemas/HttpServerTestBaseTemplate'
      - $ref: '#/components/schemas/BrowserTestBaseTemplate'
      - $ref: '#/components/schemas/PageLoadTestBaseTemplate'
    WidgetFilters:
      type: object
      description: '(Optional) Specifies the filters applied to the widget. When present, the `filters` property displays. Each filter object has two properties: `filterProperty` and `filterValue`. The `filterProperty` can be values like `AGENT`, `ENDPOINT_MACHINE_ID`, `TEST`, `MONITOR`, etc.  The `filterValue` represents an identifier array of the

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