{"type":"api","title":"Create HTTP server endpoint scheduled 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":"Creates a new HTTP server endpoint test in ThousandEyes, using properties specified in the POST data.\nPlease note that only users with Account Admin privileges have the authorization to create new tests; regular users are restricted from using POST-based methods.\n","operationId":"createHttpServerEndpointScheduledTest","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"},"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"},"maxMachines":{"default":25,"description":"Maximum number of agents which can execute the test.","example":25,"type":"integer"},"testName":{"description":"Name of the test.","example":"Test name","type":"string"},"authType":{"default":"none","description":"HTTP authentication type.","enum":["none","basic","ntlm"],"example":"none","type":"string","$$ref":"#/components/schemas/EndpointTestAuthType"},"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"},"httpTimeLimit":{"default":5000,"description":"Maximum amount of time in milliseconds the agents wait before a request times out.","example":5000,"type":"integer"},"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"},"username":{"description":"Username for Basic/NTLM authentication.","example":"username","type":"string"},"sslVersionId":{"default":"0","description":"SSL version options:\n\n* Use '0' for automatic selection.\n* Use '3' for SSLv3.\n* Use '4' for TLS v1.0.\n* Use '5' for TLS v1.1.\n* Use '6' for TLS v1.2.\n","enum":["0","3","4","5","6"],"example":"0","type":"string","$$ref":"#/components/schemas/TestSslVersionId"},"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"},"verifyCertificate":{"default":true,"description":"Flag indicating if a certificate should be verified.","example":true,"type":"boolean"},"url":{"description":"The test target URL. You can optionally specify the protocol (`http` or `https`). \n\n- **Default Protocol:** If no protocol is specified, `https` is used by default.\n\n- **Port Number:** To specify a port, append it to the URL with a colon after the hostname or IP address (e.g., `https://example.com:443`).\n\n - If no port is specified in the URL, the `port` is determined by the default for protocol (HTTP: 80, HTTPS: 443).\n","example":"https://example.com:443","type":"string","$$ref":"#/components/schemas/EndpointHttpServerTestUrl"},"hasPing":{"default":true,"deprecated":true,"description":"**(Deprecated)** Optional flag indicating if the test should run ping.","type":"boolean","$$ref":"#/components/schemas/TestRequestHasPing"},"hasTraceroute":{"default":true,"deprecated":true,"description":"**(Deprecated)** Optional flag indicating if the test should run traceroute.","type":"boolean","$$ref":"#/components/schemas/TestRequestHasTraceRoute"},"networkMeasurements":{"default":true,"description":"Enable or disable network measurements. Set to true to enable or false to disable network measurements.","example":true,"type":"boolean","$$ref":"#/components/schemas/TestNetworkMeasurements"},"targetResponseTime":{"default":1000,"description":"Response time target in milliseconds. Affects the colors of agents and legends on the view page. The value is compared with actual response time in order to determine the color scale (from green to red).","example":1000,"type":"integer"},"password":{"description":"Password for Basic/NTLM authentication.","example":"password","type":"string","writeOnly":true,"$$ref":"#/components/schemas/TestPassword"},"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"}},"required":["testName","url"],"type":"object","$$ref":"#/components/schemas/EndpointHttpServerTestRequest"}}},"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/endpoint/tests/{type}/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/EndpointTestSelfLink"},"testResults":{"description":"Reference to the test results.","example":[{"href":"https://api.thousandeyes.com/v7/endpoint/test-results/scheduled-tests/281474976710706/network/filter"},{"href":"https://api.thousandeyes.com/v7/endpoint/test-results/scheduled-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/EndpointTestLinks"},"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"},"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,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"},"isSavedEvent":{"description":"Indicates if the test is a saved event.","example":false,"readOnly":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"},"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","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"},"server":{"description":"Target domain name or IP address.","example":"www.example.com","type":"string"},"testId":{"description":"Each test is assigned a unique ID to access test data from other endpoints.","example":"281474976710706","readOnly":true,"type":"string"},"testName":{"description":"Name of the test.","example":"Test name","type":"string"},"type":{"description":"Type of test being queried.","enum":["agent-to-server","http-server"],"example":"http-server","readOnly":true,"type":"string","$$ref":"#/components/schemas/EndpointHttpServerType","pattern":"^http-server$"},"tcpProbeMode":{"default":"auto","description":"Probe mode used by network test, only valid when the protocol is set to TCP.","enum":["auto","sack","syn","unknown","auto","sack","syn","unknown"],"example":"auto","type":"string","$$ref":"#/components/schemas/TestProbeModeResponse"},"port":{"default":443,"description":"Port number.","example":443,"type":"integer"},"authType":{"default":"none","description":"HTTP authentication type.","enum":["none","basic","ntlm"],"example":"none","type":"string","$$ref":"#/components/schemas/EndpointTestAuthType"},"httpTimeLimit":{"default":5000,"description":"Maximum amount of time in milliseconds the agents wait before a request times out.","example":5000,"type":"integer"},"username":{"description":"Username for Basic/NTLM authentication.","example":"username","type":"string"},"sslVersionId":{"default":"0","description":"SSL version options:\n\n* Use '0' for automatic selection.\n* Use '3' for SSLv3.\n* Use '4' for TLS v1.0.\n* Use '5' for TLS v1.1.\n* Use '6' for TLS v1.2.\n","enum":["0","3","4","5","6"],"example":"0","type":"string","$$ref":"#/components/schemas/TestSslVersionId"},"verifyCertificate":{"default":true,"description":"Flag indicating if a certificate should be verified.","example":true,"type":"boolean"},"url":{"description":"The test target URL.","example":"https://example.com:443","type":"string"},"followRedirects":{"default":true,"description":"To disable following HTTP/301 or HTTP/302 redirect directives, set this parameter to `false`.","example":true,"type":"boolean","$$ref":"#/components/schemas/TestFollowRedirects"},"httpTargetTime":{"description":"Target time for HTTP server completion, specified in milliseconds.","example":100,"maximum":5000,"minimum":100,"type":"integer","$$ref":"#/components/schemas/TestHttpTargetTime"},"httpVersion":{"default":2,"description":"HTTP protocol version. Set to '2' to prefer HTTP/2, or '1' to use only HTTP/1.1.","example":2,"maximum":2,"minimum":1,"type":"integer","$$ref":"#/components/schemas/TestHttpVersion"},"sslVersion":{"description":"Reflects the verbose SSL protocol version used by a test.","example":"Auto","readOnly":true,"type":"string","$$ref":"#/components/schemas/TestSslVersion"},"useNtlm":{"description":"Set to true to use NTLM, false to use Basic Authentication. Requires username and password to be set.","example":false,"type":"boolean","$$ref":"#/components/schemas/TestUseNtlm"},"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","$$ref":"#/components/schemas/TestLabels"}},"required":["type"],"type":"object","$$ref":"#/components/schemas/EndpointHttpServerTest"}}},"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 HTTP server endpoint scheduled test","tags":["HTTP Server Endpoint Scheduled Tests"],"__originalOperationId":"createHttpServerEndpointScheduledTest","security":[{"BearerAuth":[]}],"method":"post","path":"/endpoint/tests/scheduled-tests/http-server"}}