{"type":"api","title":"Create endpoint dynamic test","meta":{"id":"/apps/pubhub/media/000-v7-apis/5b3454a4300b838cc17f7b2cdc0690fdd15058d5/fb944e6d-6400-3b77-a981-83f695a8f9f8","info":{"description":"\nManage endpoint agent dynamic and scheduled tests using the Endpoint Tests API.\n","title":"Endpoint Tests API","version":"7.0.34"},"security":[{"BearerAuth":[]}],"tags":[{"name":"Endpoint Scheduled Tests"},{"name":"Agent to Server Endpoint Scheduled Tests"},{"name":"HTTP Server Endpoint Scheduled Tests"},{"name":"Agent To Server Endpoint Dynamic Tests"}],"externalDocs":{"description":"Find out more about Endpoint Agent Scheduled Tests","url":"https://docs.thousandeyes.com/product-documentation/end-user-monitoring/scheduled-tests"},"openapi":"3.0.1","servers":[{"description":"ThousandEyes API production URL","url":"https://api.thousandeyes.com/v7"}],"securitySchemes":{"BearerAuth":{"description":"Bearer authentication token","scheme":"bearer","type":"http"}}},"spec":{"description":"Create a new endpoint dynamic test in ThousandEyes using properties specified in the POST data.\nPlease note that only Account Admins have the authorization to create new tests; regular users are restricted from using POST-based methods.\n","operationId":"createAgentToServerEndpointDynamicTest","parameters":[{"description":"A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.","in":"query","name":"aid","required":false,"schema":{"example":"1234","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"agentSelectorType":{"default":"all-agents","description":"Retrieve either all available agents, a specific list of agents, or a list of agent labels.","enum":["all-agents","specific-agents","agent-labels"],"example":"all-agents","type":"string","$$ref":"#/components/schemas/EndpointTestAgentSelectorType"},"agents":{"description":"List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`.","example":["0a3b9998-dc3a-4ff2-b50d-ac4a7cd986e1","66eec0f1-72b4-4755-aa83-3aed61d17f3c"],"items":{"format":"uuid","type":"string"},"type":"array","$$ref":"#/components/schemas/EndpointTestAgents"},"endpointAgentLabels":{"description":"List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.","example":["567","214"],"items":{"type":"string"},"type":"array","$$ref":"#/components/schemas/EndpointAgentLabels"},"interval":{"default":60,"description":"Interval between test runs in seconds.","enum":[60,120,300,600,900,1800,3600],"example":60,"type":"integer","$$ref":"#/components/schemas/TestInterval"},"maxMachines":{"default":25,"description":"Maximum number of agents which can execute the test.","example":25,"type":"integer","$$ref":"#/components/schemas/EndpointTestMaxMachines"},"application":{"description":"Which supported application to monitor, can be one of `webex`, `zoom`, `microsoft-teams`.","example":"webex","type":"string","$$ref":"#/components/schemas/DynamicTestApplication"},"protocol":{"default":"icmp","description":"Protocol requested for the test.","enum":["icmp","icmp-with-tcp-connect","tcp","prefer-tcp","ast-autodetect","autodetect"],"example":"icmp","type":"string","$$ref":"#/components/schemas/EndpointTestProtocol"},"tcpProbeMode":{"default":"auto","description":"Probe mode used by network test, only valid when the protocol is set to TCP.","enum":["auto","sack","syn"],"example":"auto","type":"string","$$ref":"#/components/schemas/TestProbeMode"},"testName":{"description":"Name of the test.","example":"Test name","type":"string","$$ref":"#/components/schemas/TestName"},"hasPathTraceInSession":{"description":"Enables \"in session\" path trace. When enabled, this option initiates a TCP session with the target server and sends path trace packets within the established TCP session.","example":true,"type":"boolean","$$ref":"#/components/schemas/TestHasPathTraceInSession"}},"required":["application","testName"],"type":"object","$$ref":"#/components/schemas/DynamicTestRequest"}}},"required":true},"responses":{"201":{"content":{"application/hal+json":{"schema":{"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"},"_links":{"description":"A list of links that can be accessed to get more information.","properties":{"self":{"description":"A hyperlink from the containing resource to a URI.","example":{"href":"https://api.thousandeyes.com/v7/dynamic-tests/agent-to-server/281474976710706"},"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","$$ref":"#/components/schemas/DynamicTestSelfLink"},"testResults":{"description":"Reference to the test results.","example":[{"href":"https://api.thousandeyes.com/v7/endpoint/test-results/dynamic-tests/281474976710706/network/filter"},{"href":"https://api.thousandeyes.com/v7/endpoint/test-results/dynamic-tests/281474976710706/pathvis"}],"items":{"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","$$ref":"#/components/schemas/Link"},"type":"array"}},"readOnly":true,"type":"object","$$ref":"#/components/schemas/DynamicTestLinks"},"agentSelectorConfig":{"description":"Agents selection object based on agentSelectorType.","discriminator":{"mapping":{"all-agents":"#/components/schemas/EndpointAllAgentsSelectorConfig","specific-agents":"#/components/schemas/EndpointSpecificAgentsSelectorConfig","agent-labels":"#/components/schemas/EndpointAgentLabelsSelectorConfig"},"propertyName":"agentSelectorType"},"oneOf":[{"description":"Any agent selection object.","properties":{"agentSelectorType":{"example":"all-agents","pattern":"^all-agents$","type":"string"},"maxMachines":{"default":25,"description":"Maximum number of agents which can execute the test.","example":25,"type":"integer"}},"readOnly":true,"required":["agentSelectorType"],"type":"object","$$ref":"#/components/schemas/EndpointAllAgentsSelectorConfig"},{"description":"Agent labels selection object.","properties":{"agentSelectorType":{"example":"agent-labels","pattern":"^agent-labels$","type":"string"},"maxMachines":{"default":25,"description":"Maximum number of agents which can execute the test.","example":25,"type":"integer"},"endpointAgentLabels":{"description":"List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.","example":["567","214"],"items":{"type":"string"},"type":"array"}},"readOnly":true,"required":["agentSelectorType"],"type":"object","$$ref":"#/components/schemas/EndpointAgentLabelsSelectorConfig"},{"description":"Specific agents selection object.","properties":{"agentSelectorType":{"example":"specific-agents","pattern":"^specific-agents$","type":"string"},"maxMachines":{"default":25,"description":"Maximum number of agents which can execute the test.","example":25,"type":"integer"},"agents":{"description":"List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`.","example":["0a3b9998-dc3a-4ff2-b50d-ac4a7cd986e1","66eec0f1-72b4-4755-aa83-3aed61d17f3c"],"items":{"format":"uuid","type":"string"},"type":"array"}},"readOnly":true,"required":["agentSelectorType"],"type":"object","$$ref":"#/components/schemas/EndpointSpecificAgentsSelectorConfig"}],"readOnly":true,"required":["agentSelectorType"],"type":"object","$$ref":"#/components/schemas/EndpointAgentSelectorConfig"},"application":{"description":"Which supported application to monitor, can be one of `webex`, `zoom`, `microsoft-teams`.","example":"webex","type":"string"},"createdDate":{"description":"UTC created date (ISO date-time format).","example":"2022-07-17T22:00:54Z","format":"date-time","readOnly":true,"type":"string"},"interval":{"default":60,"description":"Interval between test runs in seconds.","enum":[60,120,300,600,900,1800,3600],"example":60,"type":"integer","$$ref":"#/components/schemas/TestInterval"},"isEnabled":{"default":true,"description":"Indicates if test is enabled.","example":true,"type":"boolean"},"hasPathTraceInSession":{"description":"Enables \"in session\" path trace. When enabled, this option initiates a TCP session with the target server and sends path trace packets within the established TCP session.","example":true,"type":"boolean"},"hasPing":{"default":true,"description":"Optional flag indicating if the test should run ping.","type":"boolean"},"hasTraceroute":{"default":true,"description":"Optional flag indicating if the test should run traceroute.","type":"boolean"},"modifiedDate":{"description":"UTC last modification date (ISO date-time format).","example":"2022-07-17T22:00:54Z","format":"date-time","readOnly":true,"type":"string"},"networkMeasurements":{"default":true,"description":"Enable or disable network measurements. Set to true to enable or false to disable network measurements.","example":true,"type":"boolean"},"protocol":{"default":"icmp","description":"Protocol requested for the test.","enum":["icmp","icmp-with-tcp-connect","tcp","prefer-tcp","ast-autodetect","autodetect"],"example":"icmp","type":"string","$$ref":"#/components/schemas/EndpointTestProtocol"},"ipVersion":{"description":"IP version the test should use for network tests.","enum":["V4_ONLY","V6_ONLY","V6_PREFER","OS_DEFAULT"],"example":"V4_ONLY","type":"string","$$ref":"#/components/schemas/EndpointIpVersionTemplate"},"tcpProbeMode":{"default":"auto","description":"Probe mode used by network test, only valid when the protocol is set to TCP.","enum":["auto","sack","syn","unknown"],"example":"auto","type":"string","$$ref":"#/components/schemas/TestProbeModeResponse"},"testId":{"description":"Each test is assigned a unique ID; this is used to access test information and results from other endpoints.","example":"281474976710706","readOnly":true,"type":"string"},"testName":{"description":"Name of the test.","example":"Test name","type":"string"},"labels":{"items":{"example":{"labelId":"961","name":"Artem label","isBuiltin":false},"properties":{"labelId":{"description":"Label ID.","type":"string"},"name":{"description":"Name of the label.","type":"string"},"isBuiltin":{"description":"Value indicating if the label in question is BuiltIn (Account Admin, Organization Admin, Regular User).","type":"boolean"}},"type":"object","$$ref":"#/components/schemas/TestLabel"},"readOnly":true,"type":"array"}},"type":"object","$$ref":"#/components/schemas/DynamicTest"}}},"description":"Created","headers":{"Location":{"description":"The absolute path to created resource.","schema":{"example":"https://api.thousandeyes.com/v7/link/to/resource/id","format":"uri","type":"string"},"$$ref":"#/components/headers/Location"}}},"400":{"content":{"application/problem+json":{"example":{"type":"about:blank","title":"Request validation failed. There are invalid or missing fields","status":400,"detail":"Your request object contains invalid fields.","instance":"/v7","errors":[{"code":"AM-5432","field":"firstName","message":"firstName cannot have fancy characters"},{"code":"DASH-5622","field":"password","message":"Password cannot be blank"}]},"schema":{"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"},"errors":{"description":"(Optional) When multiple errors occur, the details for each error are listed.","items":{"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","$$ref":"#/components/schemas/ValidationErrorItem"},"nullable":true,"type":"array"}},"type":"object","$$ref":"#/components/schemas/ValidationError"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"properties":{"error":{"example":"invalid_token","type":"string"},"error_description":{"example":"Invalid access token","type":"string"}},"type":"object","$$ref":"#/components/schemas/UnauthorizedError"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"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","$$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":{"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","$$ref":"#/components/schemas/Error"}}},"description":"Not found"},"429":{"content":{"application/problem+json":{"schema":{"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","$$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":{"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","$$ref":"#/components/schemas/Error"}}},"description":"Internal server error"},"502":{"content":{"application/problem+json":{"schema":{"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","$$ref":"#/components/schemas/Error"}}},"description":"Bad Gateway"},"default":{"description":"An error occurred"}},"summary":"Create endpoint dynamic test","tags":["Agent To Server Endpoint Dynamic Tests"],"__originalOperationId":"createAgentToServerEndpointDynamicTest","security":[{"BearerAuth":[]}],"method":"post","path":"/endpoint/tests/dynamic-tests/agent-to-server"}}