[GitHub Bot] Generated python SDK (#106)
Some checks failed
Python CI / build (push) Has been cancelled

Co-authored-by: API Team <api-team@thousandeyes.com>
This commit is contained in:
Miguel Pragosa 2025-06-20 12:31:19 +01:00 committed by GitHub
parent 601dbe3a38
commit cd1d84e1a4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
227 changed files with 3507 additions and 185 deletions

View File

@ -12,7 +12,7 @@ This API provides the following operations to manage your organization:
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -5,7 +5,7 @@ Manage Cloud and Enterprise Agents available to your account in ThousandEyes.
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -34,6 +34,7 @@ docs/Error.md
docs/ExpandAlertTestOptions.md
docs/IntervalType.md
docs/LegacyAlert.md
docs/LegacyAlertDetail.md
docs/Link.md
docs/NotificationCustomWebhook.md
docs/NotificationEmail.md
@ -99,6 +100,7 @@ src/thousandeyes_sdk/alerts/models/error.py
src/thousandeyes_sdk/alerts/models/expand_alert_test_options.py
src/thousandeyes_sdk/alerts/models/interval_type.py
src/thousandeyes_sdk/alerts/models/legacy_alert.py
src/thousandeyes_sdk/alerts/models/legacy_alert_detail.py
src/thousandeyes_sdk/alerts/models/link.py
src/thousandeyes_sdk/alerts/models/notification_custom_webhook.py
src/thousandeyes_sdk/alerts/models/notification_email.py

View File

@ -12,7 +12,7 @@ For more information about the alerts, see [Alerts](https://docs.thousandeyes.co
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
@ -150,6 +150,7 @@ Class | Method | HTTP request | Description
- [ExpandAlertTestOptions](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/ExpandAlertTestOptions.md)
- [IntervalType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/IntervalType.md)
- [LegacyAlert](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/LegacyAlert.md)
- [LegacyAlertDetail](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/LegacyAlertDetail.md)
- [Link](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/Link.md)
- [NotificationCustomWebhook](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/NotificationCustomWebhook.md)
- [NotificationEmail](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/NotificationEmail.md)

View File

@ -16,6 +16,8 @@ Name | Type | Description | Notes
**links** | [**AlertLinks**](AlertLinks.md) | | [optional]
**state** | [**State**](State.md) | | [optional]
**severity** | [**Severity**](Severity.md) | | [optional]
**alert_state** | [**State**](State.md) | | [optional]
**alert_severity** | [**Severity**](Severity.md) | | [optional]
**details** | [**List[AlertMetricDetail]**](AlertMetricDetail.md) | | [optional]
## Example

View File

@ -13,7 +13,7 @@ Name | Type | Description | Notes
**duration** | **int** | Duration in seconds the suppression window is active. | [optional]
**repeat** | [**Repeat**](Repeat.md) | | [optional]
**end_repeat** | [**EndRepeat**](EndRepeat.md) | | [optional]
**tests** | **List[str]** | List of tests to assign to the alert suppression window. | [optional]
**test_ids** | **List[str]** | List of test IDs to assign to the alert suppression window. | [optional]
## Example

View File

@ -0,0 +1,30 @@
# LegacyAlertDetail
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**state** | [**State**](State.md) | | [optional]
**severity** | [**Severity**](Severity.md) | | [optional]
## Example
```python
from thousandeyes_sdk.alerts.models.legacy_alert_detail import LegacyAlertDetail
# TODO update the JSON string below
json = "{}"
# create an instance of LegacyAlertDetail from a JSON string
legacy_alert_detail_instance = LegacyAlertDetail.from_json(json)
# print the JSON string representation of the object
print(LegacyAlertDetail.to_json())
# convert the object into a dict
legacy_alert_detail_dict = legacy_alert_detail_instance.to_dict()
# create an instance of LegacyAlertDetail from a dict
legacy_alert_detail_from_dict = LegacyAlertDetail.from_dict(legacy_alert_detail_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -50,6 +50,7 @@ from thousandeyes_sdk.alerts.models.error import Error
from thousandeyes_sdk.alerts.models.expand_alert_test_options import ExpandAlertTestOptions
from thousandeyes_sdk.alerts.models.interval_type import IntervalType
from thousandeyes_sdk.alerts.models.legacy_alert import LegacyAlert
from thousandeyes_sdk.alerts.models.legacy_alert_detail import LegacyAlertDetail
from thousandeyes_sdk.alerts.models.link import Link
from thousandeyes_sdk.alerts.models.notification_custom_webhook import NotificationCustomWebhook
from thousandeyes_sdk.alerts.models.notification_email import NotificationEmail

View File

@ -43,6 +43,7 @@ from thousandeyes_sdk.alerts.models.error import Error
from thousandeyes_sdk.alerts.models.expand_alert_test_options import ExpandAlertTestOptions
from thousandeyes_sdk.alerts.models.interval_type import IntervalType
from thousandeyes_sdk.alerts.models.legacy_alert import LegacyAlert
from thousandeyes_sdk.alerts.models.legacy_alert_detail import LegacyAlertDetail
from thousandeyes_sdk.alerts.models.link import Link
from thousandeyes_sdk.alerts.models.notification_custom_webhook import NotificationCustomWebhook
from thousandeyes_sdk.alerts.models.notification_email import NotificationEmail

View File

@ -43,8 +43,10 @@ class AlertDetail(BaseModel):
links: Optional[AlertLinks] = Field(default=None, alias="_links")
state: Optional[State] = None
severity: Optional[Severity] = None
alert_state: Optional[State] = Field(default=None, alias="alertState")
alert_severity: Optional[Severity] = Field(default=None, alias="alertSeverity")
details: Optional[List[AlertMetricDetail]] = None
__properties: ClassVar[List[str]] = ["id", "alertType", "startDate", "endDate", "violationCount", "duration", "suppressed", "meta", "_links", "state", "severity", "details"]
__properties: ClassVar[List[str]] = ["id", "alertType", "startDate", "endDate", "violationCount", "duration", "suppressed", "meta", "_links", "state", "severity", "alertState", "alertSeverity", "details"]
model_config = ConfigDict(
populate_by_name=True,
@ -128,6 +130,8 @@ class AlertDetail(BaseModel):
"_links": AlertLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None,
"state": obj.get("state"),
"severity": obj.get("severity"),
"alertState": obj.get("alertState"),
"alertSeverity": obj.get("alertSeverity"),
"details": [AlertMetricDetail.from_dict(_item) for _item in obj["details"]] if obj.get("details") is not None else None
})
return _obj

View File

@ -37,8 +37,8 @@ class AlertSuppressionWindowRequest(BaseModel):
duration: Optional[StrictInt] = Field(default=None, description="Duration in seconds the suppression window is active.")
repeat: Optional[Repeat] = None
end_repeat: Optional[EndRepeat] = Field(default=None, alias="endRepeat")
tests: Optional[List[StrictStr]] = Field(default=None, description="List of tests to assign to the alert suppression window.")
__properties: ClassVar[List[str]] = ["alertSuppressionWindowId", "name", "isEnabled", "status", "startDate", "duration", "repeat", "endRepeat", "tests"]
test_ids: Optional[List[StrictStr]] = Field(default=None, description="List of test IDs to assign to the alert suppression window.", alias="testIds")
__properties: ClassVar[List[str]] = ["alertSuppressionWindowId", "name", "isEnabled", "status", "startDate", "duration", "repeat", "endRepeat", "testIds"]
model_config = ConfigDict(
populate_by_name=True,
@ -108,7 +108,7 @@ class AlertSuppressionWindowRequest(BaseModel):
"duration": obj.get("duration"),
"repeat": Repeat.from_dict(obj["repeat"]) if obj.get("repeat") is not None else None,
"endRepeat": EndRepeat.from_dict(obj["endRepeat"]) if obj.get("endRepeat") is not None else None,
"tests": obj.get("tests")
"testIds": obj.get("testIds")
})
return _obj

View File

@ -0,0 +1,91 @@
# coding: utf-8
"""
Alerts API
You can manage the following alert functionalities on the ThousandEyes platform using the Alerts API: * **Alerts**: Retrieve alert details. Alerts are assigned to tests through alert rules. * **Alert Rules**: Conditions that you configure in order to highlight or be notified of events of interest in your ThousandEyes tests. When an alert rules conditions are met, the associated alert is triggered and the alert becomes active. It remains active until the alert is cleared. Alert rules are reusable across multiple tests.. * **Alert Suppression Windows**: Suppress alerts for tests during periods such as planned maintenance. Windows can be one-time events or recurring events to handle periodic occurrences such as monthly downtime for maintenance. For more information about the alerts, see [Alerts](https://docs.thousandeyes.com/product-documentation/alerts).
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List, Optional
from thousandeyes_sdk.alerts.models.severity import Severity
from thousandeyes_sdk.alerts.models.state import State
from typing import Optional, Set
from typing_extensions import Self
class LegacyAlertDetail(BaseModel):
"""
LegacyAlertDetail
""" # noqa: E501
state: Optional[State] = None
severity: Optional[Severity] = None
__properties: ClassVar[List[str]] = ["state", "severity"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
extra="allow",
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True)
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of LegacyAlertDetail from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of LegacyAlertDetail from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"state": obj.get("state"),
"severity": obj.get("severity")
})
return _obj

View File

@ -33,8 +33,8 @@ class TestAlertSuppressionWindowsApi(unittest.TestCase):
request_body_json = """
{
"duration" : 0,
"testIds" : [ "71687", "71687" ],
"alertSuppressionWindowId" : "2411",
"tests" : [ "71687", "71687" ],
"isEnabled" : false,
"repeat" : {
"intervalType" : "day",
@ -352,8 +352,8 @@ class TestAlertSuppressionWindowsApi(unittest.TestCase):
request_body_json = """
{
"duration" : 0,
"testIds" : [ "71687", "71687" ],
"alertSuppressionWindowId" : "2411",
"tests" : [ "71687", "71687" ],
"isEnabled" : false,
"repeat" : {
"intervalType" : "day",

View File

@ -33,10 +33,8 @@ class TestAlertsApi(unittest.TestCase):
response_body_json = """
{
"duration" : 60,
"severity" : "major",
"alertType" : "http-server",
"violationCount" : 2,
"endDate" : "2022-07-18T22:00:54Z",
"_links" : {
"appLink" : {
@ -80,6 +78,9 @@ class TestAlertsApi(unittest.TestCase):
"title" : "title"
}
},
"alertSeverity" : "major",
"duration" : 60,
"violationCount" : 2,
"meta" : {
"version" : 1
},
@ -109,6 +110,7 @@ class TestAlertsApi(unittest.TestCase):
"id" : "e9c3bf02-a48c-4aa8-9e5f-898800d6f569",
"suppressed" : false,
"state" : "trigger",
"alertState" : "trigger",
"startDate" : "2022-07-17T22:00:54Z"
}"""

View File

@ -9,7 +9,7 @@ For more information about monitors, see [Inside-Out BGP Visibility](https://doc
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -13,7 +13,7 @@ For more information about credentials, see [Working With Secure Credentials](ht
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -3,7 +3,7 @@ Manage ThousandEyes Dashboards.
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -9,7 +9,7 @@ To access Emulation API operations, the following permissions are required:
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -5,7 +5,7 @@ For more information about Endpoint Agents, see [Endpoint Agents](https://docs.t
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -19,6 +19,7 @@ Name | Type | Description | Notes
**status** | [**Status**](Status.md) | | [optional]
**deleted** | **bool** | | [optional] [readonly]
**version** | **str** | Version of the agent software running. | [optional] [readonly]
**target_version** | **str** | The latest available version of the agent. This field is populated only if expand includes &#x60;targetVersion&#x60;. | [optional] [readonly]
**created_at** | **datetime** | | [optional] [readonly]
**number_of_clients** | **int** | | [optional] [readonly]
**public_ip** | **str** | | [optional] [readonly]

View File

@ -48,6 +48,7 @@ class EndpointAgent(BaseModel):
status: Optional[Status] = None
deleted: Optional[StrictBool] = None
version: Optional[StrictStr] = Field(default=None, description="Version of the agent software running.")
target_version: Optional[StrictStr] = Field(default=None, description="The latest available version of the agent. This field is populated only if expand includes `targetVersion`.", alias="targetVersion")
created_at: Optional[datetime] = Field(default=None, alias="createdAt")
number_of_clients: Optional[StrictInt] = Field(default=None, alias="numberOfClients")
public_ip: Optional[StrictStr] = Field(default=None, alias="publicIP")
@ -62,7 +63,7 @@ class EndpointAgent(BaseModel):
tcp_driver_available: Optional[StrictBool] = Field(default=None, description="Status of TCP test support on the agent.", alias="tcpDriverAvailable")
npcap_version: Optional[StrictStr] = Field(default=None, description="For Windows agents, the version of the NPCAP driver that the agent has loaded.", alias="npcapVersion")
links: Optional[SelfLinks] = Field(default=None, alias="_links")
__properties: ClassVar[List[str]] = ["id", "aid", "name", "computerName", "osVersion", "platform", "kernelVersion", "manufacturer", "model", "lastSeen", "status", "deleted", "version", "createdAt", "numberOfClients", "publicIP", "location", "clients", "totalMemory", "agentType", "vpnProfiles", "networkInterfaceProfiles", "asnDetails", "licenseType", "tcpDriverAvailable", "npcapVersion", "_links"]
__properties: ClassVar[List[str]] = ["id", "aid", "name", "computerName", "osVersion", "platform", "kernelVersion", "manufacturer", "model", "lastSeen", "status", "deleted", "version", "targetVersion", "createdAt", "numberOfClients", "publicIP", "location", "clients", "totalMemory", "agentType", "vpnProfiles", "networkInterfaceProfiles", "asnDetails", "licenseType", "tcpDriverAvailable", "npcapVersion", "_links"]
model_config = ConfigDict(
populate_by_name=True,
@ -114,6 +115,7 @@ class EndpointAgent(BaseModel):
* OpenAPI `readOnly` fields are excluded.
* OpenAPI `readOnly` fields are excluded.
* OpenAPI `readOnly` fields are excluded.
* OpenAPI `readOnly` fields are excluded.
"""
excluded_fields: Set[str] = set([
"id",
@ -125,6 +127,7 @@ class EndpointAgent(BaseModel):
"last_seen",
"deleted",
"version",
"target_version",
"created_at",
"number_of_clients",
"public_ip",
@ -197,6 +200,7 @@ class EndpointAgent(BaseModel):
"status": obj.get("status"),
"deleted": obj.get("deleted"),
"version": obj.get("version"),
"targetVersion": obj.get("targetVersion"),
"createdAt": obj.get("createdAt"),
"numberOfClients": obj.get("numberOfClients"),
"publicIP": obj.get("publicIP"),

View File

@ -98,6 +98,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -256,6 +257,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -466,6 +468,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -614,6 +617,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -773,6 +777,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -955,6 +960,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -1103,6 +1109,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -1295,6 +1302,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",

View File

@ -13,7 +13,7 @@ The URLs for these API test data endpoints are provided within the test definiti
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -10,7 +10,8 @@ Name | Type | Description | Notes
**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from &#x60;/endpoint/labels&#x60; endpoint), required when &#x60;agentSelectorType&#x60; is set to &#x60;agent-labels&#x60;. | [optional]
**max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25]
**test_name** | **str** | Name of the test. |
**server_name** | **str** | A server address without a protocol or IP address. |
**server_name** | **str** | A server address without a protocol or IP address. **Deprecated, use &#x60;server&#x60; instead**. | [optional]
**server** | **str** | Target domain name or IP address. |
**port** | **int** | Port number. | [optional] [default to 443]
## Example

View File

@ -31,9 +31,10 @@ class EndpointAgentToServerInstantTest(BaseModel):
endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels")
max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines")
test_name: StrictStr = Field(description="Name of the test.", alias="testName")
server_name: StrictStr = Field(description="A server address without a protocol or IP address.", alias="serverName")
server_name: Optional[StrictStr] = Field(default=None, description="A server address without a protocol or IP address. **Deprecated, use `server` instead**.", alias="serverName")
server: StrictStr = Field(description="Target domain name or IP address.")
port: Optional[StrictInt] = Field(default=443, description="Port number.")
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "serverName", "port"]
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "serverName", "server", "port"]
model_config = ConfigDict(
populate_by_name=True,
@ -93,6 +94,7 @@ class EndpointAgentToServerInstantTest(BaseModel):
"maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25,
"testName": obj.get("testName"),
"serverName": obj.get("serverName"),
"server": obj.get("server"),
"port": obj.get("port") if obj.get("port") is not None else 443
})
return _obj

View File

@ -32,6 +32,7 @@ class TestAgentToServerEndpointInstantScheduledTestsApi(unittest.TestCase):
"""Test case for create_agent_to_server_scheduled_instant_test request and response models"""
request_body_json = """
{
"server" : "www.example.com",
"port" : 443,
"agentSelectorType" : "all-agents",
"maxMachines" : 25,

View File

@ -4,7 +4,7 @@ Manage labels applied to endpoint agents using this API.
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -28,6 +28,11 @@ docs/EndpointPathTrace.md
docs/EndpointPathVisHop.md
docs/EndpointPathVisRoute.md
docs/EndpointPingDataPointScore.md
docs/EndpointProbeAgentScore.md
docs/EndpointProbeConnectionScore.md
docs/EndpointProbeGatewayScore.md
docs/EndpointProbeProxyScore.md
docs/EndpointProbeVpnScore.md
docs/EndpointResultRequestFilter.md
docs/EndpointScheduledTest.md
docs/EndpointScheduledTestType.md
@ -46,6 +51,8 @@ docs/EndpointTestsDataSearchSort.md
docs/EndpointTestsDataSearchSortKey.md
docs/EndpointTestsDataThresholdFilter.md
docs/EndpointTestsDataThresholdFilters.md
docs/EndpointZtaMetrics.md
docs/EndpointZtaSegmentType.md
docs/Error.md
docs/ExpandEndpointHttpServerOptions.md
docs/ExpandLocalNetworkTopologyOptions.md
@ -186,6 +193,11 @@ src/thousandeyes_sdk/endpoint_test_results/models/endpoint_path_trace.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_path_vis_hop.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_path_vis_route.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_ping_data_point_score.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_probe_agent_score.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_probe_connection_score.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_probe_gateway_score.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_probe_proxy_score.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_probe_vpn_score.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_result_request_filter.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_scheduled_test.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_scheduled_test_type.py
@ -204,6 +216,8 @@ src/thousandeyes_sdk/endpoint_test_results/models/endpoint_tests_data_search_sor
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_tests_data_search_sort_key.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_tests_data_threshold_filter.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_tests_data_threshold_filters.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_zta_metrics.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_zta_segment_type.py
src/thousandeyes_sdk/endpoint_test_results/models/error.py
src/thousandeyes_sdk/endpoint_test_results/models/expand_endpoint_http_server_options.py
src/thousandeyes_sdk/endpoint_test_results/models/expand_local_network_topology_options.py

View File

@ -3,7 +3,7 @@ Retrieve results for scheduled and dynamic tests on endpoint agents.
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
@ -102,6 +102,7 @@ Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*HTTPServerEndpointScheduledTestResultsApi* | [**get_http_server_scheduled_test_results**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/HTTPServerEndpointScheduledTestResultsApi.md#get_http_server_scheduled_test_results) | **GET** /endpoint/test-results/scheduled-tests/{testId}/http-server | Retrieve HTTP server scheduled test results
*HTTPServerEndpointScheduledTestResultsApi* | [**get_multi_test_filtered_http_server_scheduled_test_results**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/HTTPServerEndpointScheduledTestResultsApi.md#get_multi_test_filtered_http_server_scheduled_test_results) | **POST** /endpoint/test-results/scheduled-tests/http-server/filter | Filter HTTP server scheduled test results
*HTTPServerEndpointScheduledTestResultsApi* | [**get_single_test_filtered_http_server_scheduled_test_results**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/HTTPServerEndpointScheduledTestResultsApi.md#get_single_test_filtered_http_server_scheduled_test_results) | **POST** /endpoint/test-results/scheduled-tests/{testId}/http-server/filter | Filter HTTP server result for a scheduled test
*LocalNetworkEndpointTestResultsApi* | [**filter_local_networks_test_results_topologies**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworkEndpointTestResultsApi.md#filter_local_networks_test_results_topologies) | **POST** /endpoint/test-results/local-networks/topologies/filter | List endpoint network topologies probes
*LocalNetworkEndpointTestResultsApi* | [**get_local_networks_test_results**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworkEndpointTestResultsApi.md#get_local_networks_test_results) | **GET** /endpoint/test-results/local-networks | List local networks
*LocalNetworkEndpointTestResultsApi* | [**get_local_networks_test_results_topology**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworkEndpointTestResultsApi.md#get_local_networks_test_results_topology) | **GET** /endpoint/test-results/local-networks/topologies/{networkTopologyId} | Retrieve endpoint local network topology
@ -148,6 +149,11 @@ Class | Method | HTTP request | Description
- [EndpointPathVisHop](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointPathVisHop.md)
- [EndpointPathVisRoute](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointPathVisRoute.md)
- [EndpointPingDataPointScore](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointPingDataPointScore.md)
- [EndpointProbeAgentScore](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointProbeAgentScore.md)
- [EndpointProbeConnectionScore](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointProbeConnectionScore.md)
- [EndpointProbeGatewayScore](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointProbeGatewayScore.md)
- [EndpointProbeProxyScore](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointProbeProxyScore.md)
- [EndpointProbeVpnScore](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointProbeVpnScore.md)
- [EndpointResultRequestFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointResultRequestFilter.md)
- [EndpointScheduledTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointScheduledTest.md)
- [EndpointScheduledTestType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointScheduledTestType.md)
@ -166,6 +172,8 @@ Class | Method | HTTP request | Description
- [EndpointTestsDataSearchSortKey](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointTestsDataSearchSortKey.md)
- [EndpointTestsDataThresholdFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointTestsDataThresholdFilter.md)
- [EndpointTestsDataThresholdFilters](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointTestsDataThresholdFilters.md)
- [EndpointZtaMetrics](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointZtaMetrics.md)
- [EndpointZtaSegmentType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointZtaSegmentType.md)
- [Error](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/Error.md)
- [ExpandEndpointHttpServerOptions](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/ExpandEndpointHttpServerOptions.md)
- [ExpandLocalNetworkTopologyOptions](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/ExpandLocalNetworkTopologyOptions.md)

View File

@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**application_score** | **float** | Fine grained score between 0-100 based on &#x60;time to first byte&#x60; metric | [optional]
**application_score** | **float** | A fine-grained score between 0 and 100. | [optional]
**quality** | [**ApplicationScoreQuality**](ApplicationScoreQuality.md) | | [optional]
## Example

View File

@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**application_score** | **float** | Fine grained score between 0-100 based on metrics (latency, jitter, loss) | [optional]
**application_score** | **float** | A fine-grained score between 0 and 100. | [optional]
**quality** | [**ApplicationScoreQuality**](ApplicationScoreQuality.md) | | [optional]
## Example

View File

@ -0,0 +1,30 @@
# EndpointProbeAgentScore
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**score** | **float** | A fine-grained score between 0 and 100. | [optional]
**quality** | [**ApplicationScoreQuality**](ApplicationScoreQuality.md) | | [optional]
## Example
```python
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_agent_score import EndpointProbeAgentScore
# TODO update the JSON string below
json = "{}"
# create an instance of EndpointProbeAgentScore from a JSON string
endpoint_probe_agent_score_instance = EndpointProbeAgentScore.from_json(json)
# print the JSON string representation of the object
print(EndpointProbeAgentScore.to_json())
# convert the object into a dict
endpoint_probe_agent_score_dict = endpoint_probe_agent_score_instance.to_dict()
# create an instance of EndpointProbeAgentScore from a dict
endpoint_probe_agent_score_from_dict = EndpointProbeAgentScore.from_dict(endpoint_probe_agent_score_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,30 @@
# EndpointProbeConnectionScore
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**score** | **float** | A fine-grained score between 0 and 100. | [optional]
**quality** | [**ApplicationScoreQuality**](ApplicationScoreQuality.md) | | [optional]
## Example
```python
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_connection_score import EndpointProbeConnectionScore
# TODO update the JSON string below
json = "{}"
# create an instance of EndpointProbeConnectionScore from a JSON string
endpoint_probe_connection_score_instance = EndpointProbeConnectionScore.from_json(json)
# print the JSON string representation of the object
print(EndpointProbeConnectionScore.to_json())
# convert the object into a dict
endpoint_probe_connection_score_dict = endpoint_probe_connection_score_instance.to_dict()
# create an instance of EndpointProbeConnectionScore from a dict
endpoint_probe_connection_score_from_dict = EndpointProbeConnectionScore.from_dict(endpoint_probe_connection_score_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,30 @@
# EndpointProbeGatewayScore
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**score** | **float** | A fine-grained score between 0 and 100. | [optional]
**quality** | [**ApplicationScoreQuality**](ApplicationScoreQuality.md) | | [optional]
## Example
```python
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_gateway_score import EndpointProbeGatewayScore
# TODO update the JSON string below
json = "{}"
# create an instance of EndpointProbeGatewayScore from a JSON string
endpoint_probe_gateway_score_instance = EndpointProbeGatewayScore.from_json(json)
# print the JSON string representation of the object
print(EndpointProbeGatewayScore.to_json())
# convert the object into a dict
endpoint_probe_gateway_score_dict = endpoint_probe_gateway_score_instance.to_dict()
# create an instance of EndpointProbeGatewayScore from a dict
endpoint_probe_gateway_score_from_dict = EndpointProbeGatewayScore.from_dict(endpoint_probe_gateway_score_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,30 @@
# EndpointProbeProxyScore
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**score** | **float** | A fine-grained score between 0 and 100. | [optional]
**quality** | [**ApplicationScoreQuality**](ApplicationScoreQuality.md) | | [optional]
## Example
```python
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_proxy_score import EndpointProbeProxyScore
# TODO update the JSON string below
json = "{}"
# create an instance of EndpointProbeProxyScore from a JSON string
endpoint_probe_proxy_score_instance = EndpointProbeProxyScore.from_json(json)
# print the JSON string representation of the object
print(EndpointProbeProxyScore.to_json())
# convert the object into a dict
endpoint_probe_proxy_score_dict = endpoint_probe_proxy_score_instance.to_dict()
# create an instance of EndpointProbeProxyScore from a dict
endpoint_probe_proxy_score_from_dict = EndpointProbeProxyScore.from_dict(endpoint_probe_proxy_score_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,30 @@
# EndpointProbeVpnScore
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**score** | **float** | A fine-grained score between 0 and 100. | [optional]
**quality** | [**ApplicationScoreQuality**](ApplicationScoreQuality.md) | | [optional]
## Example
```python
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_vpn_score import EndpointProbeVpnScore
# TODO update the JSON string below
json = "{}"
# create an instance of EndpointProbeVpnScore from a JSON string
endpoint_probe_vpn_score_instance = EndpointProbeVpnScore.from_json(json)
# print the JSON string representation of the object
print(EndpointProbeVpnScore.to_json())
# convert the object into a dict
endpoint_probe_vpn_score_dict = endpoint_probe_vpn_score_instance.to_dict()
# create an instance of EndpointProbeVpnScore from a dict
endpoint_probe_vpn_score_from_dict = EndpointProbeVpnScore.from_dict(endpoint_probe_vpn_score_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,33 @@
# EndpointZtaMetrics
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**loss** | **float** | Percentage of packets that failed to reach the destination. | [optional]
**avg_latency** | **int** | Average latency in milliseconds. | [optional]
**jitter** | **int** | Standard deviation of latency in milliseconds. | [optional]
**error_message** | **str** | Error message if an error occurred. | [optional]
**type** | [**EndpointZtaSegmentType**](EndpointZtaSegmentType.md) | | [optional]
## Example
```python
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_metrics import EndpointZtaMetrics
# TODO update the JSON string below
json = "{}"
# create an instance of EndpointZtaMetrics from a JSON string
endpoint_zta_metrics_instance = EndpointZtaMetrics.from_json(json)
# print the JSON string representation of the object
print(EndpointZtaMetrics.to_json())
# convert the object into a dict
endpoint_zta_metrics_dict = endpoint_zta_metrics_instance.to_dict()
# create an instance of EndpointZtaMetrics from a dict
endpoint_zta_metrics_from_dict = EndpointZtaMetrics.from_dict(endpoint_zta_metrics_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,12 @@
# EndpointZtaSegmentType
Type of ZTA segment.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -6,6 +6,7 @@ Method | HTTP request | Description
------------- | ------------- | -------------
[**get_http_server_scheduled_test_results**](HTTPServerEndpointScheduledTestResultsApi.md#get_http_server_scheduled_test_results) | **GET** /endpoint/test-results/scheduled-tests/{testId}/http-server | Retrieve HTTP server scheduled test results
[**get_multi_test_filtered_http_server_scheduled_test_results**](HTTPServerEndpointScheduledTestResultsApi.md#get_multi_test_filtered_http_server_scheduled_test_results) | **POST** /endpoint/test-results/scheduled-tests/http-server/filter | Filter HTTP server scheduled test results
[**get_single_test_filtered_http_server_scheduled_test_results**](HTTPServerEndpointScheduledTestResultsApi.md#get_single_test_filtered_http_server_scheduled_test_results) | **POST** /endpoint/test-results/scheduled-tests/{testId}/http-server/filter | Filter HTTP server result for a scheduled test
# **get_http_server_scheduled_test_results**
@ -106,7 +107,7 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **get_multi_test_filtered_http_server_scheduled_test_results**
> HttpMultiEndpointTestResults get_multi_test_filtered_http_server_scheduled_test_results(aid=aid, window=window, start_date=start_date, end_date=end_date, cursor=cursor, expand=expand, http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search)
> HttpMultiEndpointTestResults get_multi_test_filtered_http_server_scheduled_test_results(aid=aid, window=window, start_date=start_date, end_date=end_date, cursor=cursor, use_all_permitted_aids=use_all_permitted_aids, expand=expand, http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search)
Filter HTTP server scheduled test results
@ -149,12 +150,13 @@ with thousandeyes_sdk.core.ApiClient(configuration) as api_client:
start_date = '2022-07-17T22:00:54Z' # datetime | Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
end_date = '2022-07-18T22:00:54Z' # datetime | Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
cursor = 'cursor_example' # str | (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. (optional)
use_all_permitted_aids = False # bool | Set to `true` to load data from all accounts the user has access to. (optional) (default to False)
expand = [thousandeyes_sdk.endpoint_test_results.ExpandEndpointHttpServerOptions()] # List[ExpandEndpointHttpServerOptions] | This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query. (optional)
http_endpoint_tests_data_rounds_search = thousandeyes_sdk.endpoint_test_results.HttpEndpointTestsDataRoundsSearch() # HttpEndpointTestsDataRoundsSearch | Test data search filters. (optional)
try:
# Filter HTTP server scheduled test results
api_response = api_instance.get_multi_test_filtered_http_server_scheduled_test_results(aid=aid, window=window, start_date=start_date, end_date=end_date, cursor=cursor, expand=expand, http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search)
api_response = api_instance.get_multi_test_filtered_http_server_scheduled_test_results(aid=aid, window=window, start_date=start_date, end_date=end_date, cursor=cursor, use_all_permitted_aids=use_all_permitted_aids, expand=expand, http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search)
print("The response of HTTPServerEndpointScheduledTestResultsApi->get_multi_test_filtered_http_server_scheduled_test_results:\n")
pprint(api_response)
except Exception as e:
@ -173,6 +175,7 @@ Name | Type | Description | Notes
**start_date** | **datetime**| Use with the &#x60;endDate&#x60; parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can&#39;t be used with &#x60;window&#x60;. | [optional]
**end_date** | **datetime**| Defaults to current time the request is made. Use with the &#x60;startDate&#x60; parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can&#39;t be used with &#x60;window&#x60;. | [optional]
**cursor** | **str**| (Optional) Opaque cursor used for pagination. Clients should use &#x60;next&#x60; value from &#x60;_links&#x60; instead of this parameter. | [optional]
**use_all_permitted_aids** | **bool**| Set to &#x60;true&#x60; to load data from all accounts the user has access to. | [optional] [default to False]
**expand** | [**List[ExpandEndpointHttpServerOptions]**](ExpandEndpointHttpServerOptions.md)| This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \&quot;header,\&quot; append &#x60;?expand&#x3D;header&#x60; to the query. | [optional]
**http_endpoint_tests_data_rounds_search** | [**HttpEndpointTestsDataRoundsSearch**](HttpEndpointTestsDataRoundsSearch.md)| Test data search filters. | [optional]
@ -204,3 +207,104 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **get_single_test_filtered_http_server_scheduled_test_results**
> HttpMultiEndpointTestResults get_single_test_filtered_http_server_scheduled_test_results(test_id, aid=aid, window=window, start_date=start_date, end_date=end_date, cursor=cursor, expand=expand, http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search)
Filter HTTP server result for a scheduled test
Returns component-level timings for an object load over HTTP. These include DNS, connect, wait, and receive times for a single scheduled test.
### Example
* Bearer Authentication (BearerAuth):
```python
import thousandeyes_sdk.endpoint_test_results
from thousandeyes_sdk.endpoint_test_results.models.expand_endpoint_http_server_options import ExpandEndpointHttpServerOptions
from thousandeyes_sdk.endpoint_test_results.models.http_endpoint_tests_data_rounds_search import HttpEndpointTestsDataRoundsSearch
from thousandeyes_sdk.endpoint_test_results.models.http_multi_endpoint_test_results import HttpMultiEndpointTestResults
from thousandeyes_sdk.endpoint_test_results.rest import ApiException
from pprint import pprint
# Defining the host is optional and defaults to https://api.thousandeyes.com/v7
# See configuration.py for a list of all supported configuration parameters.
configuration = thousandeyes_sdk.core.Configuration(
host = "https://api.thousandeyes.com/v7"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure Bearer authorization: BearerAuth
configuration = thousandeyes_sdk.core.Configuration(
access_token = os.environ["BEARER_TOKEN"]
)
# Enter a context with an instance of the API client
with thousandeyes_sdk.core.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = thousandeyes_sdk.endpoint_test_results.HTTPServerEndpointScheduledTestResultsApi(api_client)
test_id = '202701' # str | Test ID
aid = '1234' # str | 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. (optional)
window = '12h' # str | A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`. (optional)
start_date = '2022-07-17T22:00:54Z' # datetime | Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
end_date = '2022-07-18T22:00:54Z' # datetime | Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
cursor = 'cursor_example' # str | (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. (optional)
expand = [thousandeyes_sdk.endpoint_test_results.ExpandEndpointHttpServerOptions()] # List[ExpandEndpointHttpServerOptions] | This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query. (optional)
http_endpoint_tests_data_rounds_search = thousandeyes_sdk.endpoint_test_results.HttpEndpointTestsDataRoundsSearch() # HttpEndpointTestsDataRoundsSearch | Test result search filters. (optional)
try:
# Filter HTTP server result for a scheduled test
api_response = api_instance.get_single_test_filtered_http_server_scheduled_test_results(test_id, aid=aid, window=window, start_date=start_date, end_date=end_date, cursor=cursor, expand=expand, http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search)
print("The response of HTTPServerEndpointScheduledTestResultsApi->get_single_test_filtered_http_server_scheduled_test_results:\n")
pprint(api_response)
except Exception as e:
print("Exception when calling HTTPServerEndpointScheduledTestResultsApi->get_single_test_filtered_http_server_scheduled_test_results: %s\n" % e)
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**test_id** | **str**| Test ID |
**aid** | **str**| A unique identifier associated with your account group. You can retrieve your &#x60;AccountGroupId&#x60; from the &#x60;/account-groups&#x60; 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. | [optional]
**window** | **str**| A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: &#x60;s&#x60; for seconds (default if no type is specified), &#x60;m&#x60; for minutes, &#x60;h&#x60; for hours, &#x60;d&#x60; for days, and &#x60;w&#x60; for weeks. For a precise date range, use &#x60;startDate&#x60; and &#x60;endDate&#x60;. | [optional]
**start_date** | **datetime**| Use with the &#x60;endDate&#x60; parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can&#39;t be used with &#x60;window&#x60;. | [optional]
**end_date** | **datetime**| Defaults to current time the request is made. Use with the &#x60;startDate&#x60; parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can&#39;t be used with &#x60;window&#x60;. | [optional]
**cursor** | **str**| (Optional) Opaque cursor used for pagination. Clients should use &#x60;next&#x60; value from &#x60;_links&#x60; instead of this parameter. | [optional]
**expand** | [**List[ExpandEndpointHttpServerOptions]**](ExpandEndpointHttpServerOptions.md)| This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \&quot;header,\&quot; append &#x60;?expand&#x3D;header&#x60; to the query. | [optional]
**http_endpoint_tests_data_rounds_search** | [**HttpEndpointTestsDataRoundsSearch**](HttpEndpointTestsDataRoundsSearch.md)| Test result search filters. | [optional]
### Return type
[**HttpMultiEndpointTestResults**](HttpMultiEndpointTestResults.md)
### Authorization
[BearerAuth](../README.md#BearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/hal+json, application/json, application/problem+json
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**200** | OK | - |
**400** | Bad Request | - |
**401** | Unauthorized | - |
**403** | Insufficient permissions to query endpoint | - |
**404** | Not found | - |
**429** | Exhausted rate limit for the organization | - |
**500** | Internal server error | - |
**502** | Bad Gateway | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

View File

@ -14,6 +14,7 @@ Name | Type | Description | Notes
**system_metrics** | [**SystemMetrics**](SystemMetrics.md) | | [optional]
**original_target_profile** | [**TargetProfile**](TargetProfile.md) | | [optional]
**vpn_profile** | [**VpnProfile**](VpnProfile.md) | | [optional]
**score** | [**EndpointHttpDataPointScore**](EndpointHttpDataPointScore.md) | | [optional]
**connect_time** | **int** | Time required to establish a TCP connection to the server in milliseconds. | [optional] [readonly]
**dns_time** | **int** | Time required to resolve DNS in milliseconds. | [optional] [readonly]
**error_type** | [**HttpErrorType**](HttpErrorType.md) | | [optional]

View File

@ -17,6 +17,11 @@ Name | Type | Description | Notes
**tcp_connect** | [**TcpConnect**](TcpConnect.md) | | [optional]
**system_metrics** | [**SystemMetrics**](SystemMetrics.md) | | [optional]
**system_metric_details** | [**SystemMetricDetails**](SystemMetricDetails.md) | | [optional]
**vpn_score** | [**EndpointProbeVpnScore**](EndpointProbeVpnScore.md) | | [optional]
**gateway_score** | [**EndpointProbeGatewayScore**](EndpointProbeGatewayScore.md) | | [optional]
**proxy_score** | [**EndpointProbeProxyScore**](EndpointProbeProxyScore.md) | | [optional]
**connection_score** | [**EndpointProbeConnectionScore**](EndpointProbeConnectionScore.md) | | [optional]
**agent_score** | [**EndpointProbeAgentScore**](EndpointProbeAgentScore.md) | | [optional]
**coordinates** | [**RealUserEndpointTestCoordinates**](RealUserEndpointTestCoordinates.md) | | [optional]
**network_profile** | [**NetworkProfile**](NetworkProfile.md) | | [optional]
**icmp_traceroute** | [**Traceroute**](Traceroute.md) | | [optional]

View File

@ -17,6 +17,11 @@ Name | Type | Description | Notes
**tcp_connect** | [**TcpConnect**](TcpConnect.md) | | [optional]
**system_metrics** | [**SystemMetrics**](SystemMetrics.md) | | [optional]
**system_metric_details** | [**SystemMetricDetails**](SystemMetricDetails.md) | | [optional]
**vpn_score** | [**EndpointProbeVpnScore**](EndpointProbeVpnScore.md) | | [optional]
**gateway_score** | [**EndpointProbeGatewayScore**](EndpointProbeGatewayScore.md) | | [optional]
**proxy_score** | [**EndpointProbeProxyScore**](EndpointProbeProxyScore.md) | | [optional]
**connection_score** | [**EndpointProbeConnectionScore**](EndpointProbeConnectionScore.md) | | [optional]
**agent_score** | [**EndpointProbeAgentScore**](EndpointProbeAgentScore.md) | | [optional]
## Example

View File

@ -17,6 +17,8 @@ Name | Type | Description | Notes
**avg_latency** | **float** | Average RTT for packets sent to destination. | [optional] [readonly]
**error_details** | **str** | Error details, if an error was encountered. | [optional] [readonly]
**jitter** | **float** | Standard deviation of latency. | [optional] [readonly]
**score** | [**EndpointPingDataPointScore**](EndpointPingDataPointScore.md) | | [optional]
**zta_metrics** | [**List[EndpointZtaMetrics]**](EndpointZtaMetrics.md) | | [optional]
**is_icmp_blocked** | **bool** | Set to &#x60;true&#x60; if network target is blocking ICMP echo (ping) queries. | [optional] [readonly]
**loss** | **float** | Percentage of packets not reaching destination. | [optional] [readonly]
**max_latency** | **float** | Maximum RTT for packets sent to destination. | [optional] [readonly]

View File

@ -108,7 +108,7 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **filter_scheduled_tests_network_results**
> MultiTestIdNetworkEndpointTestResults filter_scheduled_tests_network_results(aid=aid, window=window, start_date=start_date, end_date=end_date, max=max, cursor=cursor, multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search)
> MultiTestIdNetworkEndpointTestResults filter_scheduled_tests_network_results(aid=aid, window=window, start_date=start_date, end_date=end_date, max=max, cursor=cursor, use_all_permitted_aids=use_all_permitted_aids, multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search)
Retrieve network scheduled test results from multiple tests
@ -151,11 +151,12 @@ with thousandeyes_sdk.core.ApiClient(configuration) as api_client:
end_date = '2022-07-18T22:00:54Z' # datetime | Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
max = 5 # int | (Optional) Maximum number of objects to return. (optional)
cursor = 'cursor_example' # str | (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. (optional)
use_all_permitted_aids = False # bool | Set to `true` to load data from all accounts the user has access to. (optional) (default to False)
multi_test_id_endpoint_tests_data_rounds_search = thousandeyes_sdk.endpoint_test_results.MultiTestIdEndpointTestsDataRoundsSearch() # MultiTestIdEndpointTestsDataRoundsSearch | Test data search filters. (optional)
try:
# Retrieve network scheduled test results from multiple tests
api_response = api_instance.filter_scheduled_tests_network_results(aid=aid, window=window, start_date=start_date, end_date=end_date, max=max, cursor=cursor, multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search)
api_response = api_instance.filter_scheduled_tests_network_results(aid=aid, window=window, start_date=start_date, end_date=end_date, max=max, cursor=cursor, use_all_permitted_aids=use_all_permitted_aids, multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search)
print("The response of NetworkEndpointScheduledTestResultsApi->filter_scheduled_tests_network_results:\n")
pprint(api_response)
except Exception as e:
@ -175,6 +176,7 @@ Name | Type | Description | Notes
**end_date** | **datetime**| Defaults to current time the request is made. Use with the &#x60;startDate&#x60; parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can&#39;t be used with &#x60;window&#x60;. | [optional]
**max** | **int**| (Optional) Maximum number of objects to return. | [optional]
**cursor** | **str**| (Optional) Opaque cursor used for pagination. Clients should use &#x60;next&#x60; value from &#x60;_links&#x60; instead of this parameter. | [optional]
**use_all_permitted_aids** | **bool**| Set to &#x60;true&#x60; to load data from all accounts the user has access to. | [optional] [default to False]
**multi_test_id_endpoint_tests_data_rounds_search** | [**MultiTestIdEndpointTestsDataRoundsSearch**](MultiTestIdEndpointTestsDataRoundsSearch.md)| Test data search filters. | [optional]
### Return type

View File

@ -17,6 +17,8 @@ Name | Type | Description | Notes
**avg_latency** | **float** | Average RTT for packets sent to destination. | [optional] [readonly]
**error_details** | **str** | Error details, if an error was encountered. | [optional] [readonly]
**jitter** | **float** | Standard deviation of latency. | [optional] [readonly]
**score** | [**EndpointPingDataPointScore**](EndpointPingDataPointScore.md) | | [optional]
**zta_metrics** | [**List[EndpointZtaMetrics]**](EndpointZtaMetrics.md) | | [optional]
**is_icmp_blocked** | **bool** | Set to &#x60;true&#x60; if network target is blocking ICMP echo (ping) queries. | [optional] [readonly]
**loss** | **float** | Percentage of packets not reaching destination. | [optional] [readonly]
**max_latency** | **float** | Maximum RTT for packets sent to destination. | [optional] [readonly]

View File

@ -49,6 +49,11 @@ from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_trace import En
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_vis_hop import EndpointPathVisHop
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_vis_route import EndpointPathVisRoute
from thousandeyes_sdk.endpoint_test_results.models.endpoint_ping_data_point_score import EndpointPingDataPointScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_agent_score import EndpointProbeAgentScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_connection_score import EndpointProbeConnectionScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_gateway_score import EndpointProbeGatewayScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_proxy_score import EndpointProbeProxyScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_vpn_score import EndpointProbeVpnScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_result_request_filter import EndpointResultRequestFilter
from thousandeyes_sdk.endpoint_test_results.models.endpoint_scheduled_test import EndpointScheduledTest
from thousandeyes_sdk.endpoint_test_results.models.endpoint_scheduled_test_type import EndpointScheduledTestType
@ -67,6 +72,8 @@ from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_search_so
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_search_sort_key import EndpointTestsDataSearchSortKey
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_threshold_filter import EndpointTestsDataThresholdFilter
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_threshold_filters import EndpointTestsDataThresholdFilters
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_metrics import EndpointZtaMetrics
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_segment_type import EndpointZtaSegmentType
from thousandeyes_sdk.endpoint_test_results.models.error import Error
from thousandeyes_sdk.endpoint_test_results.models.expand_endpoint_http_server_options import ExpandEndpointHttpServerOptions
from thousandeyes_sdk.endpoint_test_results.models.expand_local_network_topology_options import ExpandLocalNetworkTopologyOptions

View File

@ -19,7 +19,7 @@ from importlib.metadata import version
import thousandeyes_sdk.endpoint_test_results.models
from datetime import datetime
from pydantic import Field, StrictStr, field_validator
from pydantic import Field, StrictBool, StrictStr, field_validator
from typing import List, Optional
from typing_extensions import Annotated
from thousandeyes_sdk.endpoint_test_results.models.expand_endpoint_http_server_options import ExpandEndpointHttpServerOptions
@ -455,6 +455,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
use_all_permitted_aids: Annotated[Optional[StrictBool], Field(description="Set to `true` to load data from all accounts the user has access to.")] = None,
expand: Annotated[Optional[List[ExpandEndpointHttpServerOptions]], Field(description="This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.")] = None,
http_endpoint_tests_data_rounds_search: Annotated[Optional[HttpEndpointTestsDataRoundsSearch], Field(description="Test data search filters.")] = None,
_request_timeout: Union[
@ -484,6 +485,8 @@ class HTTPServerEndpointScheduledTestResultsApi:
:type end_date: datetime
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
:type cursor: str
:param use_all_permitted_aids: Set to `true` to load data from all accounts the user has access to.
:type use_all_permitted_aids: bool
:param expand: This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.
:type expand: List[ExpandEndpointHttpServerOptions]
:param http_endpoint_tests_data_rounds_search: Test data search filters.
@ -516,6 +519,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
start_date=start_date,
end_date=end_date,
cursor=cursor,
use_all_permitted_aids=use_all_permitted_aids,
expand=expand,
http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search,
_request_auth=_request_auth,
@ -554,6 +558,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
use_all_permitted_aids: Annotated[Optional[StrictBool], Field(description="Set to `true` to load data from all accounts the user has access to.")] = None,
expand: Annotated[Optional[List[ExpandEndpointHttpServerOptions]], Field(description="This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.")] = None,
http_endpoint_tests_data_rounds_search: Annotated[Optional[HttpEndpointTestsDataRoundsSearch], Field(description="Test data search filters.")] = None,
_request_timeout: Union[
@ -583,6 +588,8 @@ class HTTPServerEndpointScheduledTestResultsApi:
:type end_date: datetime
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
:type cursor: str
:param use_all_permitted_aids: Set to `true` to load data from all accounts the user has access to.
:type use_all_permitted_aids: bool
:param expand: This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.
:type expand: List[ExpandEndpointHttpServerOptions]
:param http_endpoint_tests_data_rounds_search: Test data search filters.
@ -615,6 +622,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
start_date=start_date,
end_date=end_date,
cursor=cursor,
use_all_permitted_aids=use_all_permitted_aids,
expand=expand,
http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search,
_request_auth=_request_auth,
@ -653,6 +661,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
use_all_permitted_aids: Annotated[Optional[StrictBool], Field(description="Set to `true` to load data from all accounts the user has access to.")] = None,
expand: Annotated[Optional[List[ExpandEndpointHttpServerOptions]], Field(description="This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.")] = None,
http_endpoint_tests_data_rounds_search: Annotated[Optional[HttpEndpointTestsDataRoundsSearch], Field(description="Test data search filters.")] = None,
_request_timeout: Union[
@ -682,6 +691,8 @@ class HTTPServerEndpointScheduledTestResultsApi:
:type end_date: datetime
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
:type cursor: str
:param use_all_permitted_aids: Set to `true` to load data from all accounts the user has access to.
:type use_all_permitted_aids: bool
:param expand: This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.
:type expand: List[ExpandEndpointHttpServerOptions]
:param http_endpoint_tests_data_rounds_search: Test data search filters.
@ -714,6 +725,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
start_date=start_date,
end_date=end_date,
cursor=cursor,
use_all_permitted_aids=use_all_permitted_aids,
expand=expand,
http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search,
_request_auth=_request_auth,
@ -746,6 +758,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
start_date,
end_date,
cursor,
use_all_permitted_aids,
expand,
http_endpoint_tests_data_rounds_search,
_request_auth,
@ -807,6 +820,442 @@ class HTTPServerEndpointScheduledTestResultsApi:
_query_params.append(('cursor', cursor))
if use_all_permitted_aids is not None:
_query_params.append(('useAllPermittedAids', use_all_permitted_aids))
if expand is not None:
_query_params.append(('expand', expand))
# process the header parameters
# process the form parameters
# process the body parameter
if http_endpoint_tests_data_rounds_search is not None:
_body_params = http_endpoint_tests_data_rounds_search
# set the HTTP header `Accept`
_header_params['Accept'] = self.api_client.select_header_accept(
[
'application/hal+json',
'application/json',
'application/problem+json'
]
)
# set the HTTP header `Content-Type`
if _content_type:
_header_params['Content-Type'] = _content_type
else:
_default_content_type = (
self.api_client.select_header_content_type(
[
'application/json'
]
)
)
if _default_content_type is not None:
_header_params['Content-Type'] = _default_content_type
# authentication setting
_auth_settings: List[str] = [
'BearerAuth'
]
return self.api_client.param_serialize(
method='POST',
resource_path='/endpoint/test-results/scheduled-tests/http-server/filter',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
body=_body_params,
post_params=_form_params,
files=_files,
auth_settings=_auth_settings,
collection_formats=_collection_formats,
_host=_host,
_request_auth=_request_auth
)
@validate_call
def get_single_test_filtered_http_server_scheduled_test_results(
self,
test_id: Annotated[StrictStr, Field(description="Test ID")],
aid: Annotated[Optional[StrictStr], Field(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.")] = None,
window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None,
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
expand: Annotated[Optional[List[ExpandEndpointHttpServerOptions]], Field(description="This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.")] = None,
http_endpoint_tests_data_rounds_search: Annotated[Optional[HttpEndpointTestsDataRoundsSearch], Field(description="Test result search filters.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Tuple[
Annotated[StrictFloat, Field(gt=0)],
Annotated[StrictFloat, Field(gt=0)]
]
] = None,
_request_auth: Optional[Dict[StrictStr, Any]] = None,
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> HttpMultiEndpointTestResults:
"""Filter HTTP server result for a scheduled test
Returns component-level timings for an object load over HTTP. These include DNS, connect, wait, and receive times for a single scheduled test.
:param test_id: Test ID (required)
:type test_id: str
:param aid: 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.
:type aid: str
:param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.
:type window: str
:param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
:type start_date: datetime
:param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
:type end_date: datetime
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
:type cursor: str
:param expand: This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.
:type expand: List[ExpandEndpointHttpServerOptions]
:param http_endpoint_tests_data_rounds_search: Test result search filters.
:type http_endpoint_tests_data_rounds_search: HttpEndpointTestsDataRoundsSearch
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:param _request_auth: set to override the auth_settings for an a single
request; this effectively ignores the
authentication in the spec for a single request.
:type _request_auth: dict, optional
:param _content_type: force content-type for the request.
:type _content_type: str, Optional
:param _headers: set to override the headers for a single
request; this effectively ignores the headers
in the spec for a single request.
:type _headers: dict, optional
:param _host_index: set to override the host_index for a single
request; this effectively ignores the host_index
in the spec for a single request.
:type _host_index: int, optional
:return: Returns the result object.
""" # noqa: E501
_param = self._get_single_test_filtered_http_server_scheduled_test_results_serialize(
test_id=test_id,
aid=aid,
window=window,
start_date=start_date,
end_date=end_date,
cursor=cursor,
expand=expand,
http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "HttpMultiEndpointTestResults",
'400': "ValidationError",
'401': "UnauthorizedError",
'403': "Error",
'404': "Error",
'429': "Error",
'500': "Error",
'502': "Error",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
response_data.read()
return self.api_client.response_deserialize(
response_data=response_data,
response_types_map=_response_types_map,
models=thousandeyes_sdk.endpoint_test_results.models,
).data
@validate_call
def get_single_test_filtered_http_server_scheduled_test_results_with_http_info(
self,
test_id: Annotated[StrictStr, Field(description="Test ID")],
aid: Annotated[Optional[StrictStr], Field(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.")] = None,
window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None,
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
expand: Annotated[Optional[List[ExpandEndpointHttpServerOptions]], Field(description="This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.")] = None,
http_endpoint_tests_data_rounds_search: Annotated[Optional[HttpEndpointTestsDataRoundsSearch], Field(description="Test result search filters.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Tuple[
Annotated[StrictFloat, Field(gt=0)],
Annotated[StrictFloat, Field(gt=0)]
]
] = None,
_request_auth: Optional[Dict[StrictStr, Any]] = None,
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[HttpMultiEndpointTestResults]:
"""Filter HTTP server result for a scheduled test
Returns component-level timings for an object load over HTTP. These include DNS, connect, wait, and receive times for a single scheduled test.
:param test_id: Test ID (required)
:type test_id: str
:param aid: 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.
:type aid: str
:param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.
:type window: str
:param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
:type start_date: datetime
:param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
:type end_date: datetime
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
:type cursor: str
:param expand: This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.
:type expand: List[ExpandEndpointHttpServerOptions]
:param http_endpoint_tests_data_rounds_search: Test result search filters.
:type http_endpoint_tests_data_rounds_search: HttpEndpointTestsDataRoundsSearch
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:param _request_auth: set to override the auth_settings for an a single
request; this effectively ignores the
authentication in the spec for a single request.
:type _request_auth: dict, optional
:param _content_type: force content-type for the request.
:type _content_type: str, Optional
:param _headers: set to override the headers for a single
request; this effectively ignores the headers
in the spec for a single request.
:type _headers: dict, optional
:param _host_index: set to override the host_index for a single
request; this effectively ignores the host_index
in the spec for a single request.
:type _host_index: int, optional
:return: Returns the result object.
""" # noqa: E501
_param = self._get_single_test_filtered_http_server_scheduled_test_results_serialize(
test_id=test_id,
aid=aid,
window=window,
start_date=start_date,
end_date=end_date,
cursor=cursor,
expand=expand,
http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "HttpMultiEndpointTestResults",
'400': "ValidationError",
'401': "UnauthorizedError",
'403': "Error",
'404': "Error",
'429': "Error",
'500': "Error",
'502': "Error",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
response_data.read()
return self.api_client.response_deserialize(
response_data=response_data,
response_types_map=_response_types_map,
models=thousandeyes_sdk.endpoint_test_results.models,
)
@validate_call
def get_single_test_filtered_http_server_scheduled_test_results_without_preload_content(
self,
test_id: Annotated[StrictStr, Field(description="Test ID")],
aid: Annotated[Optional[StrictStr], Field(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.")] = None,
window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None,
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
expand: Annotated[Optional[List[ExpandEndpointHttpServerOptions]], Field(description="This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.")] = None,
http_endpoint_tests_data_rounds_search: Annotated[Optional[HttpEndpointTestsDataRoundsSearch], Field(description="Test result search filters.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Tuple[
Annotated[StrictFloat, Field(gt=0)],
Annotated[StrictFloat, Field(gt=0)]
]
] = None,
_request_auth: Optional[Dict[StrictStr, Any]] = None,
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
"""Filter HTTP server result for a scheduled test
Returns component-level timings for an object load over HTTP. These include DNS, connect, wait, and receive times for a single scheduled test.
:param test_id: Test ID (required)
:type test_id: str
:param aid: 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.
:type aid: str
:param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.
:type window: str
:param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
:type start_date: datetime
:param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
:type end_date: datetime
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
:type cursor: str
:param expand: This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.
:type expand: List[ExpandEndpointHttpServerOptions]
:param http_endpoint_tests_data_rounds_search: Test result search filters.
:type http_endpoint_tests_data_rounds_search: HttpEndpointTestsDataRoundsSearch
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:param _request_auth: set to override the auth_settings for an a single
request; this effectively ignores the
authentication in the spec for a single request.
:type _request_auth: dict, optional
:param _content_type: force content-type for the request.
:type _content_type: str, Optional
:param _headers: set to override the headers for a single
request; this effectively ignores the headers
in the spec for a single request.
:type _headers: dict, optional
:param _host_index: set to override the host_index for a single
request; this effectively ignores the host_index
in the spec for a single request.
:type _host_index: int, optional
:return: Returns the result object.
""" # noqa: E501
_param = self._get_single_test_filtered_http_server_scheduled_test_results_serialize(
test_id=test_id,
aid=aid,
window=window,
start_date=start_date,
end_date=end_date,
cursor=cursor,
expand=expand,
http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "HttpMultiEndpointTestResults",
'400': "ValidationError",
'401': "UnauthorizedError",
'403': "Error",
'404': "Error",
'429': "Error",
'500': "Error",
'502': "Error",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
return response_data.response
def _get_single_test_filtered_http_server_scheduled_test_results_serialize(
self,
test_id,
aid,
window,
start_date,
end_date,
cursor,
expand,
http_endpoint_tests_data_rounds_search,
_request_auth,
_content_type,
_headers,
_host_index,
) -> RequestSerialized:
_host = None
_collection_formats: Dict[str, str] = {
'expand': 'csv',
}
_path_params: Dict[str, str] = {}
_query_params: List[Tuple[str, str]] = []
_header_params: Dict[str, Optional[str]] = _headers or {}
_form_params: List[Tuple[str, str]] = []
_files: Dict[str, Union[str, bytes]] = {}
_body_params: Optional[bytes] = None
# process the path parameters
if test_id is not None:
_path_params['testId'] = test_id
# process the query parameters
if aid is not None:
_query_params.append(('aid', aid))
if window is not None:
_query_params.append(('window', window))
if start_date is not None:
if isinstance(start_date, datetime):
_query_params.append(
(
'startDate',
start_date.strftime(
self.api_client.configuration.datetime_format
)
)
)
else:
_query_params.append(('startDate', start_date))
if end_date is not None:
if isinstance(end_date, datetime):
_query_params.append(
(
'endDate',
end_date.strftime(
self.api_client.configuration.datetime_format
)
)
)
else:
_query_params.append(('endDate', end_date))
if cursor is not None:
_query_params.append(('cursor', cursor))
if expand is not None:
_query_params.append(('expand', expand))
@ -848,7 +1297,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
return self.api_client.param_serialize(
method='POST',
resource_path='/endpoint/test-results/scheduled-tests/http-server/filter',
resource_path='/endpoint/test-results/scheduled-tests/{testId}/http-server/filter',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,

View File

@ -19,7 +19,7 @@ from importlib.metadata import version
import thousandeyes_sdk.endpoint_test_results.models
from datetime import datetime
from pydantic import Field, StrictInt, StrictStr, field_validator
from pydantic import Field, StrictBool, StrictInt, StrictStr, field_validator
from typing import Optional
from typing_extensions import Annotated
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_rounds_search import EndpointTestsDataRoundsSearch
@ -468,6 +468,7 @@ class NetworkEndpointScheduledTestResultsApi:
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
max: Annotated[Optional[StrictInt], Field(description="(Optional) Maximum number of objects to return.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
use_all_permitted_aids: Annotated[Optional[StrictBool], Field(description="Set to `true` to load data from all accounts the user has access to.")] = None,
multi_test_id_endpoint_tests_data_rounds_search: Annotated[Optional[MultiTestIdEndpointTestsDataRoundsSearch], Field(description="Test data search filters.")] = None,
_request_timeout: Union[
None,
@ -498,6 +499,8 @@ class NetworkEndpointScheduledTestResultsApi:
:type max: int
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
:type cursor: str
:param use_all_permitted_aids: Set to `true` to load data from all accounts the user has access to.
:type use_all_permitted_aids: bool
:param multi_test_id_endpoint_tests_data_rounds_search: Test data search filters.
:type multi_test_id_endpoint_tests_data_rounds_search: MultiTestIdEndpointTestsDataRoundsSearch
:param _request_timeout: timeout setting for this request. If one
@ -529,6 +532,7 @@ class NetworkEndpointScheduledTestResultsApi:
end_date=end_date,
max=max,
cursor=cursor,
use_all_permitted_aids=use_all_permitted_aids,
multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search,
_request_auth=_request_auth,
_content_type=_content_type,
@ -566,6 +570,7 @@ class NetworkEndpointScheduledTestResultsApi:
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
max: Annotated[Optional[StrictInt], Field(description="(Optional) Maximum number of objects to return.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
use_all_permitted_aids: Annotated[Optional[StrictBool], Field(description="Set to `true` to load data from all accounts the user has access to.")] = None,
multi_test_id_endpoint_tests_data_rounds_search: Annotated[Optional[MultiTestIdEndpointTestsDataRoundsSearch], Field(description="Test data search filters.")] = None,
_request_timeout: Union[
None,
@ -596,6 +601,8 @@ class NetworkEndpointScheduledTestResultsApi:
:type max: int
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
:type cursor: str
:param use_all_permitted_aids: Set to `true` to load data from all accounts the user has access to.
:type use_all_permitted_aids: bool
:param multi_test_id_endpoint_tests_data_rounds_search: Test data search filters.
:type multi_test_id_endpoint_tests_data_rounds_search: MultiTestIdEndpointTestsDataRoundsSearch
:param _request_timeout: timeout setting for this request. If one
@ -627,6 +634,7 @@ class NetworkEndpointScheduledTestResultsApi:
end_date=end_date,
max=max,
cursor=cursor,
use_all_permitted_aids=use_all_permitted_aids,
multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search,
_request_auth=_request_auth,
_content_type=_content_type,
@ -664,6 +672,7 @@ class NetworkEndpointScheduledTestResultsApi:
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
max: Annotated[Optional[StrictInt], Field(description="(Optional) Maximum number of objects to return.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
use_all_permitted_aids: Annotated[Optional[StrictBool], Field(description="Set to `true` to load data from all accounts the user has access to.")] = None,
multi_test_id_endpoint_tests_data_rounds_search: Annotated[Optional[MultiTestIdEndpointTestsDataRoundsSearch], Field(description="Test data search filters.")] = None,
_request_timeout: Union[
None,
@ -694,6 +703,8 @@ class NetworkEndpointScheduledTestResultsApi:
:type max: int
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
:type cursor: str
:param use_all_permitted_aids: Set to `true` to load data from all accounts the user has access to.
:type use_all_permitted_aids: bool
:param multi_test_id_endpoint_tests_data_rounds_search: Test data search filters.
:type multi_test_id_endpoint_tests_data_rounds_search: MultiTestIdEndpointTestsDataRoundsSearch
:param _request_timeout: timeout setting for this request. If one
@ -725,6 +736,7 @@ class NetworkEndpointScheduledTestResultsApi:
end_date=end_date,
max=max,
cursor=cursor,
use_all_permitted_aids=use_all_permitted_aids,
multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search,
_request_auth=_request_auth,
_content_type=_content_type,
@ -756,6 +768,7 @@ class NetworkEndpointScheduledTestResultsApi:
end_date,
max,
cursor,
use_all_permitted_aids,
multi_test_id_endpoint_tests_data_rounds_search,
_request_auth,
_content_type,
@ -819,6 +832,10 @@ class NetworkEndpointScheduledTestResultsApi:
_query_params.append(('cursor', cursor))
if use_all_permitted_aids is not None:
_query_params.append(('useAllPermittedAids', use_all_permitted_aids))
# process the header parameters
# process the form parameters
# process the body parameter

View File

@ -40,6 +40,11 @@ from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_trace import En
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_vis_hop import EndpointPathVisHop
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_vis_route import EndpointPathVisRoute
from thousandeyes_sdk.endpoint_test_results.models.endpoint_ping_data_point_score import EndpointPingDataPointScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_agent_score import EndpointProbeAgentScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_connection_score import EndpointProbeConnectionScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_gateway_score import EndpointProbeGatewayScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_proxy_score import EndpointProbeProxyScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_vpn_score import EndpointProbeVpnScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_result_request_filter import EndpointResultRequestFilter
from thousandeyes_sdk.endpoint_test_results.models.endpoint_scheduled_test import EndpointScheduledTest
from thousandeyes_sdk.endpoint_test_results.models.endpoint_scheduled_test_type import EndpointScheduledTestType
@ -58,6 +63,8 @@ from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_search_so
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_search_sort_key import EndpointTestsDataSearchSortKey
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_threshold_filter import EndpointTestsDataThresholdFilter
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_threshold_filters import EndpointTestsDataThresholdFilters
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_metrics import EndpointZtaMetrics
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_segment_type import EndpointZtaSegmentType
from thousandeyes_sdk.endpoint_test_results.models.error import Error
from thousandeyes_sdk.endpoint_test_results.models.expand_endpoint_http_server_options import ExpandEndpointHttpServerOptions
from thousandeyes_sdk.endpoint_test_results.models.expand_local_network_topology_options import ExpandLocalNetworkTopologyOptions

View File

@ -26,7 +26,7 @@ class EndpointHttpDataPointScore(BaseModel):
"""
EndpointHttpDataPointScore
""" # noqa: E501
application_score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Fine grained score between 0-100 based on `time to first byte` metric", alias="applicationScore")
application_score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="A fine-grained score between 0 and 100.", alias="applicationScore")
quality: Optional[ApplicationScoreQuality] = None
__properties: ClassVar[List[str]] = ["applicationScore", "quality"]

View File

@ -26,7 +26,7 @@ class EndpointPingDataPointScore(BaseModel):
"""
EndpointPingDataPointScore
""" # noqa: E501
application_score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Fine grained score between 0-100 based on metrics (latency, jitter, loss)", alias="applicationScore")
application_score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="A fine-grained score between 0 and 100.", alias="applicationScore")
quality: Optional[ApplicationScoreQuality] = None
__properties: ClassVar[List[str]] = ["applicationScore", "quality"]

View File

@ -0,0 +1,90 @@
# coding: utf-8
"""
Endpoint Test Results API
Retrieve results for scheduled and dynamic tests on endpoint agents.
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt
from typing import Any, ClassVar, Dict, List, Optional, Union
from thousandeyes_sdk.endpoint_test_results.models.application_score_quality import ApplicationScoreQuality
from typing import Optional, Set
from typing_extensions import Self
class EndpointProbeAgentScore(BaseModel):
"""
EndpointProbeAgentScore
""" # noqa: E501
score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="A fine-grained score between 0 and 100.")
quality: Optional[ApplicationScoreQuality] = None
__properties: ClassVar[List[str]] = ["score", "quality"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
extra="allow",
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True)
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of EndpointProbeAgentScore from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of EndpointProbeAgentScore from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"score": obj.get("score"),
"quality": obj.get("quality")
})
return _obj

View File

@ -0,0 +1,90 @@
# coding: utf-8
"""
Endpoint Test Results API
Retrieve results for scheduled and dynamic tests on endpoint agents.
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt
from typing import Any, ClassVar, Dict, List, Optional, Union
from thousandeyes_sdk.endpoint_test_results.models.application_score_quality import ApplicationScoreQuality
from typing import Optional, Set
from typing_extensions import Self
class EndpointProbeConnectionScore(BaseModel):
"""
EndpointProbeConnectionScore
""" # noqa: E501
score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="A fine-grained score between 0 and 100.")
quality: Optional[ApplicationScoreQuality] = None
__properties: ClassVar[List[str]] = ["score", "quality"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
extra="allow",
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True)
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of EndpointProbeConnectionScore from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of EndpointProbeConnectionScore from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"score": obj.get("score"),
"quality": obj.get("quality")
})
return _obj

View File

@ -0,0 +1,90 @@
# coding: utf-8
"""
Endpoint Test Results API
Retrieve results for scheduled and dynamic tests on endpoint agents.
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt
from typing import Any, ClassVar, Dict, List, Optional, Union
from thousandeyes_sdk.endpoint_test_results.models.application_score_quality import ApplicationScoreQuality
from typing import Optional, Set
from typing_extensions import Self
class EndpointProbeGatewayScore(BaseModel):
"""
EndpointProbeGatewayScore
""" # noqa: E501
score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="A fine-grained score between 0 and 100.")
quality: Optional[ApplicationScoreQuality] = None
__properties: ClassVar[List[str]] = ["score", "quality"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
extra="allow",
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True)
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of EndpointProbeGatewayScore from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of EndpointProbeGatewayScore from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"score": obj.get("score"),
"quality": obj.get("quality")
})
return _obj

View File

@ -0,0 +1,90 @@
# coding: utf-8
"""
Endpoint Test Results API
Retrieve results for scheduled and dynamic tests on endpoint agents.
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt
from typing import Any, ClassVar, Dict, List, Optional, Union
from thousandeyes_sdk.endpoint_test_results.models.application_score_quality import ApplicationScoreQuality
from typing import Optional, Set
from typing_extensions import Self
class EndpointProbeProxyScore(BaseModel):
"""
EndpointProbeProxyScore
""" # noqa: E501
score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="A fine-grained score between 0 and 100.")
quality: Optional[ApplicationScoreQuality] = None
__properties: ClassVar[List[str]] = ["score", "quality"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
extra="allow",
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True)
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of EndpointProbeProxyScore from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of EndpointProbeProxyScore from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"score": obj.get("score"),
"quality": obj.get("quality")
})
return _obj

View File

@ -0,0 +1,90 @@
# coding: utf-8
"""
Endpoint Test Results API
Retrieve results for scheduled and dynamic tests on endpoint agents.
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt
from typing import Any, ClassVar, Dict, List, Optional, Union
from thousandeyes_sdk.endpoint_test_results.models.application_score_quality import ApplicationScoreQuality
from typing import Optional, Set
from typing_extensions import Self
class EndpointProbeVpnScore(BaseModel):
"""
EndpointProbeVpnScore
""" # noqa: E501
score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="A fine-grained score between 0 and 100.")
quality: Optional[ApplicationScoreQuality] = None
__properties: ClassVar[List[str]] = ["score", "quality"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
extra="allow",
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True)
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of EndpointProbeVpnScore from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of EndpointProbeVpnScore from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"score": obj.get("score"),
"quality": obj.get("quality")
})
return _obj

View File

@ -0,0 +1,96 @@
# coding: utf-8
"""
Endpoint Test Results API
Retrieve results for scheduled and dynamic tests on endpoint agents.
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional, Union
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_segment_type import EndpointZtaSegmentType
from typing import Optional, Set
from typing_extensions import Self
class EndpointZtaMetrics(BaseModel):
"""
EndpointZtaMetrics
""" # noqa: E501
loss: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Percentage of packets that failed to reach the destination.")
avg_latency: Optional[StrictInt] = Field(default=None, description="Average latency in milliseconds.", alias="avgLatency")
jitter: Optional[StrictInt] = Field(default=None, description="Standard deviation of latency in milliseconds.")
error_message: Optional[StrictStr] = Field(default=None, description="Error message if an error occurred.", alias="errorMessage")
type: Optional[EndpointZtaSegmentType] = None
__properties: ClassVar[List[str]] = ["loss", "avgLatency", "jitter", "errorMessage", "type"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
extra="allow",
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True)
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of EndpointZtaMetrics from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of EndpointZtaMetrics from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"loss": obj.get("loss"),
"avgLatency": obj.get("avgLatency"),
"jitter": obj.get("jitter"),
"errorMessage": obj.get("errorMessage"),
"type": obj.get("type")
})
return _obj

View File

@ -0,0 +1,41 @@
# coding: utf-8
"""
Endpoint Test Results API
Retrieve results for scheduled and dynamic tests on endpoint agents.
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import json
from enum import Enum
from typing_extensions import Self
class EndpointZtaSegmentType(str, Enum):
"""
Type of ZTA segment.
"""
"""
allowed enum values
"""
ZTA_INGRESS = 'zta_ingress'
ZTA_SERVICE = 'zta_service'
UNKNOWN = 'unknown'
@classmethod
def from_json(cls, json_str: str) -> Self:
"""Create an instance of EndpointZtaSegmentType from a JSON string"""
return cls(json.loads(json_str))
@classmethod
def _missing_(cls, value):
"""Handle unknown values"""
return cls.UNKNOWN

View File

@ -18,6 +18,7 @@ import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from thousandeyes_sdk.endpoint_test_results.models.endpoint_http_data_point_score import EndpointHttpDataPointScore
from thousandeyes_sdk.endpoint_test_results.models.http_endpoint_test_result_headers import HttpEndpointTestResultHeaders
from thousandeyes_sdk.endpoint_test_results.models.http_error_type import HttpErrorType
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
@ -40,6 +41,7 @@ class HttpEndpointTestResult(BaseModel):
system_metrics: Optional[SystemMetrics] = Field(default=None, alias="systemMetrics")
original_target_profile: Optional[TargetProfile] = Field(default=None, alias="originalTargetProfile")
vpn_profile: Optional[VpnProfile] = Field(default=None, alias="vpnProfile")
score: Optional[EndpointHttpDataPointScore] = None
connect_time: Optional[StrictInt] = Field(default=None, description="Time required to establish a TCP connection to the server in milliseconds.", alias="connectTime")
dns_time: Optional[StrictInt] = Field(default=None, description="Time required to resolve DNS in milliseconds.", alias="dnsTime")
error_type: Optional[HttpErrorType] = Field(default=None, alias="errorType")
@ -54,7 +56,7 @@ class HttpEndpointTestResult(BaseModel):
total_time: Optional[StrictInt] = Field(default=None, description="Total time is the response time + receive time.", alias="totalTime")
wait_time: Optional[StrictInt] = Field(default=None, description="Time elapsed between completion of request and first byte of response in milliseconds.", alias="waitTime")
wire_size: Optional[StrictInt] = Field(default=None, description="Size of content in bytes.", alias="wireSize")
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "vpnProfile", "connectTime", "dnsTime", "errorType", "errorDetails", "headers", "numRedirects", "receiveTime", "redirectTime", "responseCode", "responseTime", "sslTime", "totalTime", "waitTime", "wireSize"]
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "vpnProfile", "score", "connectTime", "dnsTime", "errorType", "errorDetails", "headers", "numRedirects", "receiveTime", "redirectTime", "responseCode", "responseTime", "sslTime", "totalTime", "waitTime", "wireSize"]
model_config = ConfigDict(
populate_by_name=True,
@ -140,6 +142,9 @@ class HttpEndpointTestResult(BaseModel):
# override the default output from pydantic by calling `to_dict()` of vpn_profile
if self.vpn_profile:
_dict['vpnProfile'] = self.vpn_profile.to_dict()
# override the default output from pydantic by calling `to_dict()` of score
if self.score:
_dict['score'] = self.score.to_dict()
# override the default output from pydantic by calling `to_dict()` of headers
if self.headers:
_dict['headers'] = self.headers.to_dict()
@ -164,6 +169,7 @@ class HttpEndpointTestResult(BaseModel):
"systemMetrics": SystemMetrics.from_dict(obj["systemMetrics"]) if obj.get("systemMetrics") is not None else None,
"originalTargetProfile": TargetProfile.from_dict(obj["originalTargetProfile"]) if obj.get("originalTargetProfile") is not None else None,
"vpnProfile": VpnProfile.from_dict(obj["vpnProfile"]) if obj.get("vpnProfile") is not None else None,
"score": EndpointHttpDataPointScore.from_dict(obj["score"]) if obj.get("score") is not None else None,
"connectTime": obj.get("connectTime"),
"dnsTime": obj.get("dnsTime"),
"errorType": obj.get("errorType"),

View File

@ -19,6 +19,11 @@ import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_agent_score import EndpointProbeAgentScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_connection_score import EndpointProbeConnectionScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_gateway_score import EndpointProbeGatewayScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_proxy_score import EndpointProbeProxyScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_vpn_score import EndpointProbeVpnScore
from thousandeyes_sdk.endpoint_test_results.models.network_ping import NetworkPing
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
from thousandeyes_sdk.endpoint_test_results.models.network_topology_type import NetworkTopologyType
@ -46,11 +51,16 @@ class LocalNetworkTopologyResult(BaseModel):
tcp_connect: Optional[TcpConnect] = Field(default=None, alias="tcpConnect")
system_metrics: Optional[SystemMetrics] = Field(default=None, alias="systemMetrics")
system_metric_details: Optional[SystemMetricDetails] = Field(default=None, alias="systemMetricDetails")
vpn_score: Optional[EndpointProbeVpnScore] = Field(default=None, alias="vpnScore")
gateway_score: Optional[EndpointProbeGatewayScore] = Field(default=None, alias="gatewayScore")
proxy_score: Optional[EndpointProbeProxyScore] = Field(default=None, alias="proxyScore")
connection_score: Optional[EndpointProbeConnectionScore] = Field(default=None, alias="connectionScore")
agent_score: Optional[EndpointProbeAgentScore] = Field(default=None, alias="agentScore")
coordinates: Optional[RealUserEndpointTestCoordinates] = None
network_profile: Optional[NetworkProfile] = Field(default=None, alias="networkProfile")
icmp_traceroute: Optional[Traceroute] = Field(default=None, alias="icmpTraceroute")
icmp_traceroutes: Optional[List[Traceroute]] = Field(default=None, alias="icmpTraceroutes")
__properties: ClassVar[List[str]] = ["agentId", "date", "networkTopologyId", "roundId", "target", "targetPort", "type", "icmpPing", "isIcmpBlocked", "tcpConnect", "systemMetrics", "systemMetricDetails", "coordinates", "networkProfile", "icmpTraceroute", "icmpTraceroutes"]
__properties: ClassVar[List[str]] = ["agentId", "date", "networkTopologyId", "roundId", "target", "targetPort", "type", "icmpPing", "isIcmpBlocked", "tcpConnect", "systemMetrics", "systemMetricDetails", "vpnScore", "gatewayScore", "proxyScore", "connectionScore", "agentScore", "coordinates", "networkProfile", "icmpTraceroute", "icmpTraceroutes"]
model_config = ConfigDict(
populate_by_name=True,
@ -118,6 +128,21 @@ class LocalNetworkTopologyResult(BaseModel):
# override the default output from pydantic by calling `to_dict()` of system_metric_details
if self.system_metric_details:
_dict['systemMetricDetails'] = self.system_metric_details.to_dict()
# override the default output from pydantic by calling `to_dict()` of vpn_score
if self.vpn_score:
_dict['vpnScore'] = self.vpn_score.to_dict()
# override the default output from pydantic by calling `to_dict()` of gateway_score
if self.gateway_score:
_dict['gatewayScore'] = self.gateway_score.to_dict()
# override the default output from pydantic by calling `to_dict()` of proxy_score
if self.proxy_score:
_dict['proxyScore'] = self.proxy_score.to_dict()
# override the default output from pydantic by calling `to_dict()` of connection_score
if self.connection_score:
_dict['connectionScore'] = self.connection_score.to_dict()
# override the default output from pydantic by calling `to_dict()` of agent_score
if self.agent_score:
_dict['agentScore'] = self.agent_score.to_dict()
# override the default output from pydantic by calling `to_dict()` of coordinates
if self.coordinates:
_dict['coordinates'] = self.coordinates.to_dict()
@ -158,6 +183,11 @@ class LocalNetworkTopologyResult(BaseModel):
"tcpConnect": TcpConnect.from_dict(obj["tcpConnect"]) if obj.get("tcpConnect") is not None else None,
"systemMetrics": SystemMetrics.from_dict(obj["systemMetrics"]) if obj.get("systemMetrics") is not None else None,
"systemMetricDetails": SystemMetricDetails.from_dict(obj["systemMetricDetails"]) if obj.get("systemMetricDetails") is not None else None,
"vpnScore": EndpointProbeVpnScore.from_dict(obj["vpnScore"]) if obj.get("vpnScore") is not None else None,
"gatewayScore": EndpointProbeGatewayScore.from_dict(obj["gatewayScore"]) if obj.get("gatewayScore") is not None else None,
"proxyScore": EndpointProbeProxyScore.from_dict(obj["proxyScore"]) if obj.get("proxyScore") is not None else None,
"connectionScore": EndpointProbeConnectionScore.from_dict(obj["connectionScore"]) if obj.get("connectionScore") is not None else None,
"agentScore": EndpointProbeAgentScore.from_dict(obj["agentScore"]) if obj.get("agentScore") is not None else None,
"coordinates": RealUserEndpointTestCoordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
"networkProfile": NetworkProfile.from_dict(obj["networkProfile"]) if obj.get("networkProfile") is not None else None,
"icmpTraceroute": Traceroute.from_dict(obj["icmpTraceroute"]) if obj.get("icmpTraceroute") is not None else None,

View File

@ -19,6 +19,11 @@ import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_agent_score import EndpointProbeAgentScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_connection_score import EndpointProbeConnectionScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_gateway_score import EndpointProbeGatewayScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_proxy_score import EndpointProbeProxyScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_vpn_score import EndpointProbeVpnScore
from thousandeyes_sdk.endpoint_test_results.models.network_ping import NetworkPing
from thousandeyes_sdk.endpoint_test_results.models.network_topology_type import NetworkTopologyType
from thousandeyes_sdk.endpoint_test_results.models.system_metric_details import SystemMetricDetails
@ -43,7 +48,12 @@ class LocalNetworkTopologyResultBase(BaseModel):
tcp_connect: Optional[TcpConnect] = Field(default=None, alias="tcpConnect")
system_metrics: Optional[SystemMetrics] = Field(default=None, alias="systemMetrics")
system_metric_details: Optional[SystemMetricDetails] = Field(default=None, alias="systemMetricDetails")
__properties: ClassVar[List[str]] = ["agentId", "date", "networkTopologyId", "roundId", "target", "targetPort", "type", "icmpPing", "isIcmpBlocked", "tcpConnect", "systemMetrics", "systemMetricDetails"]
vpn_score: Optional[EndpointProbeVpnScore] = Field(default=None, alias="vpnScore")
gateway_score: Optional[EndpointProbeGatewayScore] = Field(default=None, alias="gatewayScore")
proxy_score: Optional[EndpointProbeProxyScore] = Field(default=None, alias="proxyScore")
connection_score: Optional[EndpointProbeConnectionScore] = Field(default=None, alias="connectionScore")
agent_score: Optional[EndpointProbeAgentScore] = Field(default=None, alias="agentScore")
__properties: ClassVar[List[str]] = ["agentId", "date", "networkTopologyId", "roundId", "target", "targetPort", "type", "icmpPing", "isIcmpBlocked", "tcpConnect", "systemMetrics", "systemMetricDetails", "vpnScore", "gatewayScore", "proxyScore", "connectionScore", "agentScore"]
model_config = ConfigDict(
populate_by_name=True,
@ -111,6 +121,21 @@ class LocalNetworkTopologyResultBase(BaseModel):
# override the default output from pydantic by calling `to_dict()` of system_metric_details
if self.system_metric_details:
_dict['systemMetricDetails'] = self.system_metric_details.to_dict()
# override the default output from pydantic by calling `to_dict()` of vpn_score
if self.vpn_score:
_dict['vpnScore'] = self.vpn_score.to_dict()
# override the default output from pydantic by calling `to_dict()` of gateway_score
if self.gateway_score:
_dict['gatewayScore'] = self.gateway_score.to_dict()
# override the default output from pydantic by calling `to_dict()` of proxy_score
if self.proxy_score:
_dict['proxyScore'] = self.proxy_score.to_dict()
# override the default output from pydantic by calling `to_dict()` of connection_score
if self.connection_score:
_dict['connectionScore'] = self.connection_score.to_dict()
# override the default output from pydantic by calling `to_dict()` of agent_score
if self.agent_score:
_dict['agentScore'] = self.agent_score.to_dict()
return _dict
@classmethod
@ -134,7 +159,12 @@ class LocalNetworkTopologyResultBase(BaseModel):
"isIcmpBlocked": obj.get("isIcmpBlocked"),
"tcpConnect": TcpConnect.from_dict(obj["tcpConnect"]) if obj.get("tcpConnect") is not None else None,
"systemMetrics": SystemMetrics.from_dict(obj["systemMetrics"]) if obj.get("systemMetrics") is not None else None,
"systemMetricDetails": SystemMetricDetails.from_dict(obj["systemMetricDetails"]) if obj.get("systemMetricDetails") is not None else None
"systemMetricDetails": SystemMetricDetails.from_dict(obj["systemMetricDetails"]) if obj.get("systemMetricDetails") is not None else None,
"vpnScore": EndpointProbeVpnScore.from_dict(obj["vpnScore"]) if obj.get("vpnScore") is not None else None,
"gatewayScore": EndpointProbeGatewayScore.from_dict(obj["gatewayScore"]) if obj.get("gatewayScore") is not None else None,
"proxyScore": EndpointProbeProxyScore.from_dict(obj["proxyScore"]) if obj.get("proxyScore") is not None else None,
"connectionScore": EndpointProbeConnectionScore.from_dict(obj["connectionScore"]) if obj.get("connectionScore") is not None else None,
"agentScore": EndpointProbeAgentScore.from_dict(obj["agentScore"]) if obj.get("agentScore") is not None else None
})
return _obj

View File

@ -19,7 +19,9 @@ import json
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional, Union
from thousandeyes_sdk.endpoint_test_results.models.dynamic_endpoint_test_webex import DynamicEndpointTestWebex
from thousandeyes_sdk.endpoint_test_results.models.endpoint_ping_data_point_score import EndpointPingDataPointScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_test_result_protocol import EndpointTestResultProtocol
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_metrics import EndpointZtaMetrics
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
from thousandeyes_sdk.endpoint_test_results.models.target_profile import TargetProfile
@ -45,6 +47,8 @@ class NetworkDynamicEndpointTestResult(BaseModel):
avg_latency: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Average RTT for packets sent to destination.", alias="avgLatency")
error_details: Optional[StrictStr] = Field(default=None, description="Error details, if an error was encountered.", alias="errorDetails")
jitter: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Standard deviation of latency.")
score: Optional[EndpointPingDataPointScore] = None
zta_metrics: Optional[List[EndpointZtaMetrics]] = Field(default=None, alias="ztaMetrics")
is_icmp_blocked: Optional[StrictBool] = Field(default=None, description="Set to `true` if network target is blocking ICMP echo (ping) queries.", alias="isIcmpBlocked")
loss: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Percentage of packets not reaching destination.")
max_latency: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Maximum RTT for packets sent to destination.", alias="maxLatency")
@ -54,7 +58,7 @@ class NetworkDynamicEndpointTestResult(BaseModel):
tcp_probe_mode: Optional[TestProbeModeResponse] = Field(default=None, alias="tcpProbeMode")
udp_probe_mode: Optional[UdpProbeModeResponse] = Field(default=None, alias="udpProbeMode")
webex: Optional[DynamicEndpointTestWebex] = None
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "vpnProfile", "avgLatency", "errorDetails", "jitter", "isIcmpBlocked", "loss", "maxLatency", "minLatency", "application", "protocol", "tcpProbeMode", "udpProbeMode", "webex"]
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "vpnProfile", "avgLatency", "errorDetails", "jitter", "score", "ztaMetrics", "isIcmpBlocked", "loss", "maxLatency", "minLatency", "application", "protocol", "tcpProbeMode", "udpProbeMode", "webex"]
model_config = ConfigDict(
populate_by_name=True,
@ -130,6 +134,16 @@ class NetworkDynamicEndpointTestResult(BaseModel):
# override the default output from pydantic by calling `to_dict()` of vpn_profile
if self.vpn_profile:
_dict['vpnProfile'] = self.vpn_profile.to_dict()
# override the default output from pydantic by calling `to_dict()` of score
if self.score:
_dict['score'] = self.score.to_dict()
# override the default output from pydantic by calling `to_dict()` of each item in zta_metrics (list)
_items = []
if self.zta_metrics:
for _item in self.zta_metrics:
if _item:
_items.append(_item.to_dict())
_dict['ztaMetrics'] = _items
# override the default output from pydantic by calling `to_dict()` of webex
if self.webex:
_dict['webex'] = self.webex.to_dict()
@ -157,6 +171,8 @@ class NetworkDynamicEndpointTestResult(BaseModel):
"avgLatency": obj.get("avgLatency"),
"errorDetails": obj.get("errorDetails"),
"jitter": obj.get("jitter"),
"score": EndpointPingDataPointScore.from_dict(obj["score"]) if obj.get("score") is not None else None,
"ztaMetrics": [EndpointZtaMetrics.from_dict(_item) for _item in obj["ztaMetrics"]] if obj.get("ztaMetrics") is not None else None,
"isIcmpBlocked": obj.get("isIcmpBlocked"),
"loss": obj.get("loss"),
"maxLatency": obj.get("maxLatency"),

View File

@ -18,6 +18,8 @@ import json
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional, Union
from thousandeyes_sdk.endpoint_test_results.models.endpoint_ping_data_point_score import EndpointPingDataPointScore
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_metrics import EndpointZtaMetrics
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
from thousandeyes_sdk.endpoint_test_results.models.target_profile import TargetProfile
@ -41,11 +43,13 @@ class NetworkEndpointTestResult(BaseModel):
avg_latency: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Average RTT for packets sent to destination.", alias="avgLatency")
error_details: Optional[StrictStr] = Field(default=None, description="Error details, if an error was encountered.", alias="errorDetails")
jitter: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Standard deviation of latency.")
score: Optional[EndpointPingDataPointScore] = None
zta_metrics: Optional[List[EndpointZtaMetrics]] = Field(default=None, alias="ztaMetrics")
is_icmp_blocked: Optional[StrictBool] = Field(default=None, description="Set to `true` if network target is blocking ICMP echo (ping) queries.", alias="isIcmpBlocked")
loss: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Percentage of packets not reaching destination.")
max_latency: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Maximum RTT for packets sent to destination.", alias="maxLatency")
min_latency: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Minimum RTT for packets sent to destination.", alias="minLatency")
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "vpnProfile", "avgLatency", "errorDetails", "jitter", "isIcmpBlocked", "loss", "maxLatency", "minLatency"]
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "vpnProfile", "avgLatency", "errorDetails", "jitter", "score", "ztaMetrics", "isIcmpBlocked", "loss", "maxLatency", "minLatency"]
model_config = ConfigDict(
populate_by_name=True,
@ -121,6 +125,16 @@ class NetworkEndpointTestResult(BaseModel):
# override the default output from pydantic by calling `to_dict()` of vpn_profile
if self.vpn_profile:
_dict['vpnProfile'] = self.vpn_profile.to_dict()
# override the default output from pydantic by calling `to_dict()` of score
if self.score:
_dict['score'] = self.score.to_dict()
# override the default output from pydantic by calling `to_dict()` of each item in zta_metrics (list)
_items = []
if self.zta_metrics:
for _item in self.zta_metrics:
if _item:
_items.append(_item.to_dict())
_dict['ztaMetrics'] = _items
return _dict
@classmethod
@ -145,6 +159,8 @@ class NetworkEndpointTestResult(BaseModel):
"avgLatency": obj.get("avgLatency"),
"errorDetails": obj.get("errorDetails"),
"jitter": obj.get("jitter"),
"score": EndpointPingDataPointScore.from_dict(obj["score"]) if obj.get("score") is not None else None,
"ztaMetrics": [EndpointZtaMetrics.from_dict(_item) for _item in obj["ztaMetrics"]] if obj.get("ztaMetrics") is not None else None,
"isIcmpBlocked": obj.get("isIcmpBlocked"),
"loss": obj.get("loss"),
"maxLatency": obj.get("maxLatency"),

View File

@ -28,6 +28,7 @@ class NetworkTopologyType(str, Enum):
VPN = 'vpn'
PROXY = 'proxy'
GATEWAY = 'gateway'
DNS = 'dns'
UNKNOWN = 'unknown'
@classmethod

View File

@ -140,6 +140,10 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"totalTime" : 15,
"responseCode" : 200,
"receiveTime" : 1,
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@ -241,6 +245,10 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"totalTime" : 15,
"responseCode" : 200,
"receiveTime" : 1,
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@ -409,6 +417,10 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"totalTime" : 15,
"responseCode" : 200,
"receiveTime" : 1,
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@ -510,6 +522,287 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"totalTime" : 15,
"responseCode" : 200,
"receiveTime" : 1,
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
"median" : 0.61,
"max" : 0.75,
"mean" : 0.55,
"count" : 150,
"stdDev" : 0.01
},
"physicalMemoryTotalBytes" : 1024,
"startTimeMs" : 1581508857327,
"physicalMemoryUsedBytes" : {
"min" : 1.2,
"median" : 1.85,
"max" : 2.5,
"mean" : 1.77,
"count" : 155,
"stdDev" : 0.25
},
"endTimeMs" : 1581508867333
},
"connectTime" : 2,
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"networkProfile" : {
"previousInterface" : {
"publicIpAddress" : "84.255.241.1",
"publicIpRange" : "84.255.241.0-84.255.241.255",
"ipAddress" : "10.0.0.13",
"hardwareType" : "wireless",
"localPrefix" : "10.0.0.0",
"interfaceName" : "en0",
"subnetMask" : "255.255.255.0",
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ]
},
"ethernetProfile" : {
"linkSpeed" : 860
},
"publicIpAddress" : "84.255.241.1",
"publicIpRange" : "84.255.241.0-84.255.241.255",
"ipAddress" : "10.0.0.13",
"hardwareType" : "wireless",
"localPrefix" : "10.0.0.0",
"proxyProfile" : {
"method" : "System",
"proxies" : [ {
"bypass" : "*.local;169.254/16",
"proxy" : "<direct>"
}, {
"bypass" : "*.local;169.254/16",
"proxy" : "<direct>"
} ]
},
"subnetMask" : "255.255.255.0",
"error" : "An operation timed out.",
"wirelessProfile" : {
"rssi" : -38,
"bssid" : "4c:ba:ba:f4:fa:fa",
"vendor" : "Cisco",
"txRate" : 130,
"channel" : 1,
"noise" : -95,
"phyMode" : "802.11n",
"ssid" : "Internet for the masses",
"quality" : 100
},
"interfaceName" : "en0",
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1"
},
"testId" : "584739201",
"sslTime" : 9,
"aid" : "1234",
"roundId" : 1384309800,
"waitTime" : 3,
"errorDetails" : "errorDetails",
"wireSize" : 9993
} ],
"startDate" : "2022-07-17T22:00:54Z"
}"""
response_loaded_json = json.loads(response_body_json)
response_from_json = thousandeyes_sdk.endpoint_test_results.models.HttpMultiEndpointTestResults.from_json(response_body_json)
assert_constructed_model_matches_example_json(response_from_json, response_loaded_json)
def test_get_single_test_filtered_http_server_scheduled_test_results_models_validation(self) -> None:
"""Test case for get_single_test_filtered_http_server_scheduled_test_results request and response models"""
request_body_json = """
{
"searchSort" : [ {
"sort" : "round-id",
"order" : "desc"
}, {
"sort" : "round-id",
"order" : "desc"
} ],
"searchFilters" : {
"agentId" : [ "52455b09-ff1b-4849-8194-99026cc890e0", "52455b09-ff1b-4849-8194-99026cc890e0" ],
"testId" : [ "5", "5" ]
},
"thresholdFilter" : {
"conditionalOperator" : "and",
"filters" : [ {
"name" : "response-time",
"value" : 10.0,
"operator" : "gte"
}, {
"name" : "response-time",
"value" : 10.0,
"operator" : "gte"
} ]
}
}"""
request_loaded_json = json.loads(request_body_json)
request_from_json = thousandeyes_sdk.endpoint_test_results.models.HttpEndpointTestsDataRoundsSearch.from_json(request_body_json)
assert_constructed_model_matches_example_json(request_from_json, request_loaded_json)
response_body_json = """
{
"totalHits" : 12,
"endDate" : "2022-07-18T22:00:54Z",
"_links" : {
"next" : {
"hreflang" : "hreflang",
"templated" : true,
"profile" : "profile",
"name" : "name",
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
"type" : "type",
"deprecation" : "deprecation",
"title" : "title"
},
"self" : {
"hreflang" : "hreflang",
"templated" : true,
"profile" : "profile",
"name" : "name",
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
"type" : "type",
"deprecation" : "deprecation",
"title" : "title"
}
},
"results" : [ {
"originalTargetProfile" : {
"protocol" : "tcp",
"remotePort" : 80,
"remoteIpAddress" : "120.98.134.7"
},
"headers" : {
"requestHeaders" : "GET / HTTP/1.1\\r\\nHost: www.thousandeyes.com\\r\\nUser-Agent: curl/7.58.0-DEV\\r\\nAccept: */*\\r\\nAccept-Encoding: deflate, gzip\\r\\nX-ThousandEyes-Agent: yes\\r\\n",
"responseHeaders" : "HTTP/1.1 200 OK\\r\\nContent-Type: text/html;charset=UTF-8\\r\\nContent-Length: 9993\\r\\nConnection: keep-alive\\r\\nDate: Mon, 04 May 2020 16:13:00 GMT\\r\\nServer: Apache\\r\\nContent-Language: en-US\\r\\nContent-Encoding: gzip\\r\\nX-Frame-Options: sameorigin\\r\\nCache-Control: max-age=600, must-revalidate\\r\\nStrict-Transport-Security: max-age=31536000\\r\\nX-Content-Type-Options: nosniff\\r\\nX-XSS-Protection: 1; mode=block\\r\\nVary: Accept-Encoding\\r\\nX-Cache: Hit from cloudfront\\r\\nVia: 1.1 7ba3caf71ae7a52dd411d1a543e80cd8.cloudfront.net (CloudFront)\\r\\nX-Amz-Cf-Pop: SFO5-C3\\r\\nX-Amz-Cf-Id: w4h42tkoJD-rEpkRDZUvnQBmy26GVGe6pUsuRr1Dphf7oajYbjXaOA==\\r\\nAge: 132\\r\\n"
},
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"redirectTime" : 10,
"numRedirects" : 0,
"vpnProfile" : {
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
"vpnGatewayAddress" : "120.98.134.7",
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
"responseTime" : 14,
"totalTime" : 15,
"responseCode" : 200,
"receiveTime" : 1,
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
"median" : 0.61,
"max" : 0.75,
"mean" : 0.55,
"count" : 150,
"stdDev" : 0.01
},
"physicalMemoryTotalBytes" : 1024,
"startTimeMs" : 1581508857327,
"physicalMemoryUsedBytes" : {
"min" : 1.2,
"median" : 1.85,
"max" : 2.5,
"mean" : 1.77,
"count" : 155,
"stdDev" : 0.25
},
"endTimeMs" : 1581508867333
},
"connectTime" : 2,
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"networkProfile" : {
"previousInterface" : {
"publicIpAddress" : "84.255.241.1",
"publicIpRange" : "84.255.241.0-84.255.241.255",
"ipAddress" : "10.0.0.13",
"hardwareType" : "wireless",
"localPrefix" : "10.0.0.0",
"interfaceName" : "en0",
"subnetMask" : "255.255.255.0",
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ]
},
"ethernetProfile" : {
"linkSpeed" : 860
},
"publicIpAddress" : "84.255.241.1",
"publicIpRange" : "84.255.241.0-84.255.241.255",
"ipAddress" : "10.0.0.13",
"hardwareType" : "wireless",
"localPrefix" : "10.0.0.0",
"proxyProfile" : {
"method" : "System",
"proxies" : [ {
"bypass" : "*.local;169.254/16",
"proxy" : "<direct>"
}, {
"bypass" : "*.local;169.254/16",
"proxy" : "<direct>"
} ]
},
"subnetMask" : "255.255.255.0",
"error" : "An operation timed out.",
"wirelessProfile" : {
"rssi" : -38,
"bssid" : "4c:ba:ba:f4:fa:fa",
"vendor" : "Cisco",
"txRate" : 130,
"channel" : 1,
"noise" : -95,
"phyMode" : "802.11n",
"ssid" : "Internet for the masses",
"quality" : 100
},
"interfaceName" : "en0",
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1"
},
"testId" : "584739201",
"sslTime" : 9,
"aid" : "1234",
"roundId" : 1384309800,
"waitTime" : 3,
"errorDetails" : "errorDetails",
"wireSize" : 9993
}, {
"originalTargetProfile" : {
"protocol" : "tcp",
"remotePort" : 80,
"remoteIpAddress" : "120.98.134.7"
},
"headers" : {
"requestHeaders" : "GET / HTTP/1.1\\r\\nHost: www.thousandeyes.com\\r\\nUser-Agent: curl/7.58.0-DEV\\r\\nAccept: */*\\r\\nAccept-Encoding: deflate, gzip\\r\\nX-ThousandEyes-Agent: yes\\r\\n",
"responseHeaders" : "HTTP/1.1 200 OK\\r\\nContent-Type: text/html;charset=UTF-8\\r\\nContent-Length: 9993\\r\\nConnection: keep-alive\\r\\nDate: Mon, 04 May 2020 16:13:00 GMT\\r\\nServer: Apache\\r\\nContent-Language: en-US\\r\\nContent-Encoding: gzip\\r\\nX-Frame-Options: sameorigin\\r\\nCache-Control: max-age=600, must-revalidate\\r\\nStrict-Transport-Security: max-age=31536000\\r\\nX-Content-Type-Options: nosniff\\r\\nX-XSS-Protection: 1; mode=block\\r\\nVary: Accept-Encoding\\r\\nX-Cache: Hit from cloudfront\\r\\nVia: 1.1 7ba3caf71ae7a52dd411d1a543e80cd8.cloudfront.net (CloudFront)\\r\\nX-Amz-Cf-Pop: SFO5-C3\\r\\nX-Amz-Cf-Id: w4h42tkoJD-rEpkRDZUvnQBmy26GVGe6pUsuRr1Dphf7oajYbjXaOA==\\r\\nAge: 132\\r\\n"
},
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"redirectTime" : 10,
"numRedirects" : 0,
"vpnProfile" : {
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
"vpnGatewayAddress" : "120.98.134.7",
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
"responseTime" : 14,
"totalTime" : 15,
"responseCode" : 200,
"receiveTime" : 1,
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,

View File

@ -69,6 +69,28 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"results" : [ {
"date" : "2022-07-17T22:00:54Z",
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"isIcmpBlocked" : true,
"gatewayScore" : {
"score" : 100.0,
"quality" : "great"
},
"tcpConnect" : {
"rtt" : 77.777,
"errorCode" : "ERR_TIMED_OUT",
"error" : "An operation timed out.",
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ]
},
"vpnScore" : {
"score" : 100.0,
"quality" : "great"
},
"proxyScore" : {
"score" : 100.0,
"quality" : "great"
},
"type" : "vpn",
"targetPort" : 80,
"target" : "10.0.2.2",
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@ -166,12 +188,9 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"totalMemoryPercentage" : 0.22
} ]
},
"isIcmpBlocked" : true,
"tcpConnect" : {
"rtt" : 77.777,
"errorCode" : "ERR_TIMED_OUT",
"error" : "An operation timed out.",
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ]
"connectionScore" : {
"score" : 100.0,
"quality" : "great"
},
"icmpPing" : {
"maxRtt" : 66,
@ -183,14 +202,37 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ],
"pktsSent" : 10
},
"type" : "vpn",
"networkTopologyId" : "00160:54c3a4b180c6:1490536500:c7a58c49",
"roundId" : 1384309800,
"targetPort" : 80,
"target" : "10.0.2.2"
"agentScore" : {
"score" : 100.0,
"quality" : "great"
}
}, {
"date" : "2022-07-17T22:00:54Z",
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"isIcmpBlocked" : true,
"gatewayScore" : {
"score" : 100.0,
"quality" : "great"
},
"tcpConnect" : {
"rtt" : 77.777,
"errorCode" : "ERR_TIMED_OUT",
"error" : "An operation timed out.",
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ]
},
"vpnScore" : {
"score" : 100.0,
"quality" : "great"
},
"proxyScore" : {
"score" : 100.0,
"quality" : "great"
},
"type" : "vpn",
"targetPort" : 80,
"target" : "10.0.2.2",
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@ -288,12 +330,9 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"totalMemoryPercentage" : 0.22
} ]
},
"isIcmpBlocked" : true,
"tcpConnect" : {
"rtt" : 77.777,
"errorCode" : "ERR_TIMED_OUT",
"error" : "An operation timed out.",
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ]
"connectionScore" : {
"score" : 100.0,
"quality" : "great"
},
"icmpPing" : {
"maxRtt" : 66,
@ -305,11 +344,12 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ],
"pktsSent" : 10
},
"type" : "vpn",
"networkTopologyId" : "00160:54c3a4b180c6:1490536500:c7a58c49",
"roundId" : 1384309800,
"targetPort" : 80,
"target" : "10.0.2.2"
"agentScore" : {
"score" : 100.0,
"quality" : "great"
}
} ],
"startDate" : "2022-07-17T22:00:54Z"
}"""
@ -373,12 +413,24 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"date" : "2022-07-17T22:00:54Z",
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"isIcmpBlocked" : true,
"gatewayScore" : {
"score" : 100.0,
"quality" : "great"
},
"tcpConnect" : {
"rtt" : 77.777,
"errorCode" : "ERR_TIMED_OUT",
"error" : "An operation timed out.",
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ]
},
"vpnScore" : {
"score" : 100.0,
"quality" : "great"
},
"proxyScore" : {
"score" : 100.0,
"quality" : "great"
},
"coordinates" : {
"latitude" : 46.0552778,
"location" : "Slovenia",
@ -598,6 +650,10 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1"
},
"connectionScore" : {
"score" : 100.0,
"quality" : "great"
},
"icmpPing" : {
"maxRtt" : 66,
"pktsReceived" : 10,
@ -609,17 +665,33 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"pktsSent" : 10
},
"networkTopologyId" : "00160:54c3a4b180c6:1490536500:c7a58c49",
"roundId" : 1384309800
"roundId" : 1384309800,
"agentScore" : {
"score" : 100.0,
"quality" : "great"
}
}, {
"date" : "2022-07-17T22:00:54Z",
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"isIcmpBlocked" : true,
"gatewayScore" : {
"score" : 100.0,
"quality" : "great"
},
"tcpConnect" : {
"rtt" : 77.777,
"errorCode" : "ERR_TIMED_OUT",
"error" : "An operation timed out.",
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ]
},
"vpnScore" : {
"score" : 100.0,
"quality" : "great"
},
"proxyScore" : {
"score" : 100.0,
"quality" : "great"
},
"coordinates" : {
"latitude" : 46.0552778,
"location" : "Slovenia",
@ -839,6 +911,10 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1"
},
"connectionScore" : {
"score" : 100.0,
"quality" : "great"
},
"icmpPing" : {
"maxRtt" : 66,
"pktsReceived" : 10,
@ -850,7 +926,11 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"pktsSent" : 10
},
"networkTopologyId" : "00160:54c3a4b180c6:1490536500:c7a58c49",
"roundId" : 1384309800
"roundId" : 1384309800,
"agentScore" : {
"score" : 100.0,
"quality" : "great"
}
} ]
}"""

View File

@ -144,6 +144,10 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
},
"maxLatency" : 168.0,
"tcpProbeMode" : "auto",
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"loss" : 0.0,
"protocol" : "tcp",
"systemMetrics" : {
@ -216,6 +220,19 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1"
},
"ztaMetrics" : [ {
"loss" : 50.0,
"jitter" : 5,
"avgLatency" : 3,
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
}, {
"loss" : 50.0,
"jitter" : 5,
"avgLatency" : 3,
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
} ],
"testId" : "584739201",
"webex" : {
"remoteSipSessionId" : "22581707460321454",
@ -245,6 +262,10 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
},
"maxLatency" : 168.0,
"tcpProbeMode" : "auto",
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"loss" : 0.0,
"protocol" : "tcp",
"systemMetrics" : {
@ -317,6 +338,19 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1"
},
"ztaMetrics" : [ {
"loss" : 50.0,
"jitter" : 5,
"avgLatency" : 3,
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
}, {
"loss" : 50.0,
"jitter" : 5,
"avgLatency" : 3,
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
} ],
"testId" : "584739201",
"webex" : {
"remoteSipSessionId" : "22581707460321454",

View File

@ -142,6 +142,10 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"loss" : 0.0,
"systemMetrics" : {
"cpuUtilization" : {
@ -212,6 +216,19 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1"
},
"ztaMetrics" : [ {
"loss" : 50.0,
"jitter" : 5,
"avgLatency" : 3,
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
}, {
"loss" : 50.0,
"jitter" : 5,
"avgLatency" : 3,
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
} ],
"testId" : "584739201",
"aid" : "1234",
"roundId" : 1384309800,
@ -233,6 +250,10 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"loss" : 0.0,
"systemMetrics" : {
"cpuUtilization" : {
@ -303,6 +324,19 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1"
},
"ztaMetrics" : [ {
"loss" : 50.0,
"jitter" : 5,
"avgLatency" : 3,
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
}, {
"loss" : 50.0,
"jitter" : 5,
"avgLatency" : 3,
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
} ],
"testId" : "584739201",
"aid" : "1234",
"roundId" : 1384309800,
@ -381,6 +415,10 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"loss" : 0.0,
"systemMetrics" : {
"cpuUtilization" : {
@ -451,6 +489,19 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1"
},
"ztaMetrics" : [ {
"loss" : 50.0,
"jitter" : 5,
"avgLatency" : 3,
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
}, {
"loss" : 50.0,
"jitter" : 5,
"avgLatency" : 3,
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
} ],
"testId" : "584739201",
"aid" : "1234",
"roundId" : 1384309800,
@ -472,6 +523,10 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"loss" : 0.0,
"systemMetrics" : {
"cpuUtilization" : {
@ -542,6 +597,19 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1"
},
"ztaMetrics" : [ {
"loss" : 50.0,
"jitter" : 5,
"avgLatency" : 3,
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
}, {
"loss" : 50.0,
"jitter" : 5,
"avgLatency" : 3,
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
} ],
"testId" : "584739201",
"aid" : "1234",
"roundId" : 1384309800,

View File

@ -5,7 +5,7 @@ Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API.
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -10,7 +10,8 @@ Name | Type | Description | Notes
**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from &#x60;/endpoint/labels&#x60; endpoint), required when &#x60;agentSelectorType&#x60; is set to &#x60;agent-labels&#x60;. | [optional]
**max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25]
**test_name** | **str** | Name of the test. |
**server_name** | **str** | A server address without a protocol or IP address. |
**server_name** | **str** | A server address without a protocol or IP address. **Deprecated, use &#x60;server&#x60; instead**. | [optional]
**server** | **str** | Target domain name or IP address. |
**port** | **int** | Port number. | [optional] [default to 443]
## Example

View File

@ -10,7 +10,8 @@ Name | Type | Description | Notes
**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from &#x60;/endpoint/labels&#x60; endpoint), required when &#x60;agentSelectorType&#x60; is set to &#x60;agent-labels&#x60;. | [optional]
**max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25]
**test_name** | **str** | Name of the test. |
**server_name** | **str** | A server address without a protocol or IP address. |
**server_name** | **str** | A server address without a protocol or IP address. **Deprecated, use &#x60;server&#x60; instead**. | [optional]
**server** | **str** | Target domain name or IP address. |
**port** | **int** | Port number. | [optional] [default to 443]
**is_prioritized** | **bool** | Indicates whether the test should be prioritized when the number of tests assigned to an agent exceeds the license limit. | [optional] [default to False]
**interval** | [**TestInterval**](TestInterval.md) | | [optional]

View File

@ -31,9 +31,10 @@ class EndpointAgentToServerInstantTest(BaseModel):
endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels")
max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines")
test_name: StrictStr = Field(description="Name of the test.", alias="testName")
server_name: StrictStr = Field(description="A server address without a protocol or IP address.", alias="serverName")
server_name: Optional[StrictStr] = Field(default=None, description="A server address without a protocol or IP address. **Deprecated, use `server` instead**.", alias="serverName")
server: StrictStr = Field(description="Target domain name or IP address.")
port: Optional[StrictInt] = Field(default=443, description="Port number.")
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "serverName", "port"]
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "serverName", "server", "port"]
model_config = ConfigDict(
populate_by_name=True,
@ -93,6 +94,7 @@ class EndpointAgentToServerInstantTest(BaseModel):
"maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25,
"testName": obj.get("testName"),
"serverName": obj.get("serverName"),
"server": obj.get("server"),
"port": obj.get("port") if obj.get("port") is not None else 443
})
return _obj

View File

@ -33,12 +33,13 @@ class EndpointAgentToServerTestRequest(BaseModel):
endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels")
max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines")
test_name: StrictStr = Field(description="Name of the test.", alias="testName")
server_name: StrictStr = Field(description="A server address without a protocol or IP address.", alias="serverName")
server_name: Optional[StrictStr] = Field(default=None, description="A server address without a protocol or IP address. **Deprecated, use `server` instead**.", alias="serverName")
server: StrictStr = Field(description="Target domain name or IP address.")
port: Optional[StrictInt] = Field(default=443, description="Port number.")
is_prioritized: Optional[StrictBool] = Field(default=False, description="Indicates whether the test should be prioritized when the number of tests assigned to an agent exceeds the license limit.", alias="isPrioritized")
interval: Optional[TestInterval] = None
protocol: Optional[EndpointTestProtocol] = None
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "serverName", "port", "isPrioritized", "interval", "protocol"]
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "serverName", "server", "port", "isPrioritized", "interval", "protocol"]
model_config = ConfigDict(
populate_by_name=True,
@ -98,6 +99,7 @@ class EndpointAgentToServerTestRequest(BaseModel):
"maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25,
"testName": obj.get("testName"),
"serverName": obj.get("serverName"),
"server": obj.get("server"),
"port": obj.get("port") if obj.get("port") is not None else 443,
"isPrioritized": obj.get("isPrioritized") if obj.get("isPrioritized") is not None else False,
"interval": obj.get("interval"),

View File

@ -32,6 +32,7 @@ class TestAgentToServerEndpointScheduledTestsApi(unittest.TestCase):
"""Test case for create_agent_to_server_endpoint_scheduled_test request and response models"""
request_body_json = """
{
"server" : "www.example.com",
"protocol" : "icmp",
"port" : 443,
"agentSelectorType" : "all-agents",

View File

@ -12,7 +12,7 @@ With the Events API, you can perform the following tasks on the ThousandEyes pla
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -6,7 +6,7 @@ The response does not include the immediate test results. Use the Test Results e
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44
- API version: 7.0.52
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -18,7 +18,10 @@ Name | Type | Description | Notes
**links** | [**TestLinks**](TestLinks.md) | | [optional]
**labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly]
**shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly]
**client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional]
**client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional]
**collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False]
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**follow_redirects** | **bool** | To disable following HTTP/301 or HTTP/302 redirect directives, set this parameter to &#x60;false&#x60;. | [optional] [default to True]
**mtu_measurements** | **bool** | Set &#x60;true&#x60; to measure MTU sizes on network from agents to the target. | [optional]
**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True]

View File

@ -18,7 +18,10 @@ Name | Type | Description | Notes
**links** | [**TestLinks**](TestLinks.md) | | [optional]
**labels** | **List[str]** | A list of test label identifiers (get &#x60;labelId&#x60; from &#x60;/labels&#x60; endpoint). | [optional]
**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get &#x60;aid&#x60; from &#x60;/account-groups&#x60; endpoint). | [optional]
**client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional]
**client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional]
**collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False]
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**follow_redirects** | **bool** | To disable following HTTP/301 or HTTP/302 redirect directives, set this parameter to &#x60;false&#x60;. | [optional] [default to True]
**mtu_measurements** | **bool** | Set &#x60;true&#x60; to measure MTU sizes on network from agents to the target. | [optional]
**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True]

View File

@ -18,7 +18,10 @@ Name | Type | Description | Notes
**links** | [**TestLinks**](TestLinks.md) | | [optional]
**labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly]
**shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly]
**client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional]
**client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional]
**collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False]
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**follow_redirects** | **bool** | To disable following HTTP/301 or HTTP/302 redirect directives, set this parameter to &#x60;false&#x60;. | [optional] [default to True]
**mtu_measurements** | **bool** | Set &#x60;true&#x60; to measure MTU sizes on network from agents to the target. | [optional]
**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True]

View File

@ -5,7 +5,10 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional]
**client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional]
**collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False]
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**follow_redirects** | **bool** | To disable following HTTP/301 or HTTP/302 redirect directives, set this parameter to &#x60;false&#x60;. | [optional] [default to True]
**mtu_measurements** | **bool** | Set &#x60;true&#x60; to measure MTU sizes on network from agents to the target. | [optional]
**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True]
@ -21,8 +24,8 @@ Name | Type | Description | Notes
**ssl_version_id** | [**TestSslVersionId**](TestSslVersionId.md) | | [optional]
**target_time** | **int** | Target time for completion metric, defaults to 50% of time limit specified in seconds. (0 means default behavior) | [optional]
**time_limit** | **int** | Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error. | [optional] [default to 30]
**url** | **str** | Target for the test. |
**type** | **str** | | [optional] [readonly]
**url** | **str** | Target for the test. |
## Example

View File

@ -22,6 +22,7 @@ Name | Type | Description | Notes
**url** | **str** | Request url. Supports variables in the format &#x60;{{variableName}}&#x60;. |
**username** | **str** | The username if &#x60;authType &#x3D; basic&#x60;. | [optional]
**variables** | [**List[ApiRequestVariable]**](ApiRequestVariable.md) | Array of API post request variable objects. | [optional]
**verify_certificate** | **bool** | Ignore or acknowledge certificate errors. Set to false to ignore certificate errors. | [optional] [default to False]
**wait_time_ms** | **int** | Post request delay before executing the next API requests, in milliseconds. | [optional]
## Example

View File

@ -12,6 +12,7 @@ Name | Type | Description | Notes
**content_regex** | **str** | Content regex, this field does not require escaping. | [optional]
**custom_headers** | [**TestCustomHeaders**](TestCustomHeaders.md) | | [optional]
**desired_status_code** | **str** | Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code. | [optional] [default to 'default']
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**download_limit** | **int** | Specifies maximum number of bytes to download from the target object. | [optional]
**dns_override** | **str** | IP address to use for DNS override. | [optional]
**http_target_time** | **int** | Target time for HTTP server completion, specified in milliseconds. | [optional]

View File

@ -25,6 +25,7 @@ Name | Type | Description | Notes
**content_regex** | **str** | Content regex, this field does not require escaping. | [optional]
**custom_headers** | [**TestCustomHeaders**](TestCustomHeaders.md) | | [optional]
**desired_status_code** | **str** | Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code. | [optional] [default to 'default']
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**download_limit** | **int** | Specifies maximum number of bytes to download from the target object. | [optional]
**dns_override** | **str** | IP address to use for DNS override. | [optional]
**http_target_time** | **int** | Target time for HTTP server completion, specified in milliseconds. | [optional]

View File

@ -25,6 +25,7 @@ Name | Type | Description | Notes
**content_regex** | **str** | Content regex, this field does not require escaping. | [optional]
**custom_headers** | [**TestCustomHeaders**](TestCustomHeaders.md) | | [optional]
**desired_status_code** | **str** | Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code. | [optional] [default to 'default']
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**download_limit** | **int** | Specifies maximum number of bytes to download from the target object. | [optional]
**dns_override** | **str** | IP address to use for DNS override. | [optional]
**http_target_time** | **int** | Target time for HTTP server completion, specified in milliseconds. | [optional]

View File

@ -25,6 +25,7 @@ Name | Type | Description | Notes
**content_regex** | **str** | Content regex, this field does not require escaping. | [optional]
**custom_headers** | [**TestCustomHeaders**](TestCustomHeaders.md) | | [optional]
**desired_status_code** | **str** | Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code. | [optional] [default to 'default']
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**download_limit** | **int** | Specifies maximum number of bytes to download from the target object. | [optional]
**dns_override** | **str** | IP address to use for DNS override. | [optional]
**http_target_time** | **int** | Target time for HTTP server completion, specified in milliseconds. | [optional]

View File

@ -12,6 +12,7 @@ Name | Type | Description | Notes
**content_regex** | **str** | Content regex, this field does not require escaping. | [optional]
**custom_headers** | [**TestCustomHeaders**](TestCustomHeaders.md) | | [optional]
**desired_status_code** | **str** | Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code. | [optional] [default to 'default']
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**download_limit** | **int** | Specifies maximum number of bytes to download from the target object. | [optional]
**dns_override** | **str** | IP address to use for DNS override. | [optional]
**http_target_time** | **int** | Target time for HTTP server completion, specified in milliseconds. | [optional]

View File

@ -25,6 +25,7 @@ Name | Type | Description | Notes
**content_regex** | **str** | Content regex, this field does not require escaping. | [optional]
**custom_headers** | [**TestCustomHeaders**](TestCustomHeaders.md) | | [optional]
**desired_status_code** | **str** | Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code. | [optional] [default to 'default']
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**download_limit** | **int** | Specifies maximum number of bytes to download from the target object. | [optional]
**dns_override** | **str** | IP address to use for DNS override. | [optional]
**http_target_time** | **int** | Target time for HTTP server completion, specified in milliseconds. | [optional]

View File

@ -25,6 +25,7 @@ Name | Type | Description | Notes
**content_regex** | **str** | Content regex, this field does not require escaping. | [optional]
**custom_headers** | [**TestCustomHeaders**](TestCustomHeaders.md) | | [optional]
**desired_status_code** | **str** | Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code. | [optional] [default to 'default']
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**download_limit** | **int** | Specifies maximum number of bytes to download from the target object. | [optional]
**dns_override** | **str** | IP address to use for DNS override. | [optional]
**http_target_time** | **int** | Target time for HTTP server completion, specified in milliseconds. | [optional]

View File

@ -25,6 +25,7 @@ Name | Type | Description | Notes
**content_regex** | **str** | Content regex, this field does not require escaping. | [optional]
**custom_headers** | [**TestCustomHeaders**](TestCustomHeaders.md) | | [optional]
**desired_status_code** | **str** | Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code. | [optional] [default to 'default']
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**download_limit** | **int** | Specifies maximum number of bytes to download from the target object. | [optional]
**dns_override** | **str** | IP address to use for DNS override. | [optional]
**http_target_time** | **int** | Target time for HTTP server completion, specified in milliseconds. | [optional]

View File

@ -12,6 +12,7 @@ Name | Type | Description | Notes
**content_regex** | **str** | Content regex, this field does not require escaping. | [optional]
**custom_headers** | [**TestCustomHeaders**](TestCustomHeaders.md) | | [optional]
**desired_status_code** | **str** | Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code. | [optional] [default to 'default']
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**download_limit** | **int** | Specifies maximum number of bytes to download from the target object. | [optional]
**dns_override** | **str** | IP address to use for DNS override. | [optional]
**http_target_time** | **int** | Target time for HTTP server completion, specified in milliseconds. | [optional]

View File

@ -25,6 +25,7 @@ Name | Type | Description | Notes
**content_regex** | **str** | Content regex, this field does not require escaping. | [optional]
**custom_headers** | [**TestCustomHeaders**](TestCustomHeaders.md) | | [optional]
**desired_status_code** | **str** | Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code. | [optional] [default to 'default']
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**download_limit** | **int** | Specifies maximum number of bytes to download from the target object. | [optional]
**dns_override** | **str** | IP address to use for DNS override. | [optional]
**http_target_time** | **int** | Target time for HTTP server completion, specified in milliseconds. | [optional]

View File

@ -25,6 +25,7 @@ Name | Type | Description | Notes
**content_regex** | **str** | Content regex, this field does not require escaping. | [optional]
**custom_headers** | [**TestCustomHeaders**](TestCustomHeaders.md) | | [optional]
**desired_status_code** | **str** | Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code. | [optional] [default to 'default']
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**download_limit** | **int** | Specifies maximum number of bytes to download from the target object. | [optional]
**dns_override** | **str** | IP address to use for DNS override. | [optional]
**http_target_time** | **int** | Target time for HTTP server completion, specified in milliseconds. | [optional]

View File

@ -25,6 +25,7 @@ Name | Type | Description | Notes
**content_regex** | **str** | Content regex, this field does not require escaping. | [optional]
**custom_headers** | [**TestCustomHeaders**](TestCustomHeaders.md) | | [optional]
**desired_status_code** | **str** | Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code. | [optional] [default to 'default']
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**download_limit** | **int** | Specifies maximum number of bytes to download from the target object. | [optional]
**dns_override** | **str** | IP address to use for DNS override. | [optional]
**http_target_time** | **int** | Target time for HTTP server completion, specified in milliseconds. | [optional]

View File

@ -12,6 +12,7 @@ Name | Type | Description | Notes
**content_regex** | **str** | Content regex, this field does not require escaping. | [optional]
**custom_headers** | [**TestCustomHeaders**](TestCustomHeaders.md) | | [optional]
**desired_status_code** | **str** | Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code. | [optional] [default to 'default']
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
**download_limit** | **int** | Specifies maximum number of bytes to download from the target object. | [optional]
**dns_override** | **str** | IP address to use for DNS override. | [optional]
**http_target_time** | **int** | Target time for HTTP server completion, specified in milliseconds. | [optional]

View File

@ -49,7 +49,10 @@ class ApiInstantTest(BaseModel):
links: Optional[TestLinks] = Field(default=None, alias="_links")
labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.")
shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts")
client_certificate: Optional[StrictStr] = Field(default=None, description="String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate.", alias="clientCertificate")
client_cert_domains_allow_list: Optional[StrictStr] = Field(default=None, description="Comma separated list of domains to send the client certificate.", alias="clientCertDomainsAllowList")
collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData")
distributed_tracing: Optional[StrictBool] = Field(default=None, description="Adds distributed tracing headers to API requests using B3 and W3C standards.", alias="distributedTracing")
follow_redirects: Optional[StrictBool] = Field(default=True, description="To disable following HTTP/301 or HTTP/302 redirect directives, set this parameter to `false`.", alias="followRedirects")
mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements")
network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements")
@ -67,7 +70,7 @@ class ApiInstantTest(BaseModel):
time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error.", alias="timeLimit")
url: StrictStr = Field(description="Target for the test.")
credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).")
__properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "collectProxyNetworkData", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials"]
__properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials"]
model_config = ConfigDict(
populate_by_name=True,
@ -185,7 +188,10 @@ class ApiInstantTest(BaseModel):
"_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None,
"labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None,
"sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None,
"clientCertificate": obj.get("clientCertificate"),
"clientCertDomainsAllowList": obj.get("clientCertDomainsAllowList"),
"collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False,
"distributedTracing": obj.get("distributedTracing"),
"followRedirects": obj.get("followRedirects") if obj.get("followRedirects") is not None else True,
"mtuMeasurements": obj.get("mtuMeasurements"),
"networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True,

View File

@ -48,7 +48,10 @@ class ApiInstantTestRequest(BaseModel):
links: Optional[TestLinks] = Field(default=None, alias="_links")
labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).")
shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts")
client_certificate: Optional[StrictStr] = Field(default=None, description="String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate.", alias="clientCertificate")
client_cert_domains_allow_list: Optional[StrictStr] = Field(default=None, description="Comma separated list of domains to send the client certificate.", alias="clientCertDomainsAllowList")
collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData")
distributed_tracing: Optional[StrictBool] = Field(default=None, description="Adds distributed tracing headers to API requests using B3 and W3C standards.", alias="distributedTracing")
follow_redirects: Optional[StrictBool] = Field(default=True, description="To disable following HTTP/301 or HTTP/302 redirect directives, set this parameter to `false`.", alias="followRedirects")
mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements")
network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements")
@ -67,7 +70,7 @@ class ApiInstantTestRequest(BaseModel):
url: StrictStr = Field(description="Target for the test.")
credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).")
agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).")
__properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "collectProxyNetworkData", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "agents"]
__properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "agents"]
model_config = ConfigDict(
populate_by_name=True,
@ -174,7 +177,10 @@ class ApiInstantTestRequest(BaseModel):
"_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None,
"labels": obj.get("labels"),
"sharedWithAccounts": obj.get("sharedWithAccounts"),
"clientCertificate": obj.get("clientCertificate"),
"clientCertDomainsAllowList": obj.get("clientCertDomainsAllowList"),
"collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False,
"distributedTracing": obj.get("distributedTracing"),
"followRedirects": obj.get("followRedirects") if obj.get("followRedirects") is not None else True,
"mtuMeasurements": obj.get("mtuMeasurements"),
"networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True,

View File

@ -50,7 +50,10 @@ class ApiInstantTestResponse(BaseModel):
links: Optional[TestLinks] = Field(default=None, alias="_links")
labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.")
shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts")
client_certificate: Optional[StrictStr] = Field(default=None, description="String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate.", alias="clientCertificate")
client_cert_domains_allow_list: Optional[StrictStr] = Field(default=None, description="Comma separated list of domains to send the client certificate.", alias="clientCertDomainsAllowList")
collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData")
distributed_tracing: Optional[StrictBool] = Field(default=None, description="Adds distributed tracing headers to API requests using B3 and W3C standards.", alias="distributedTracing")
follow_redirects: Optional[StrictBool] = Field(default=True, description="To disable following HTTP/301 or HTTP/302 redirect directives, set this parameter to `false`.", alias="followRedirects")
mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements")
network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements")
@ -69,7 +72,7 @@ class ApiInstantTestResponse(BaseModel):
url: StrictStr = Field(description="Target for the test.")
credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).")
agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.")
__properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "collectProxyNetworkData", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "agents"]
__properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "agents"]
model_config = ConfigDict(
populate_by_name=True,
@ -194,7 +197,10 @@ class ApiInstantTestResponse(BaseModel):
"_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None,
"labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None,
"sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None,
"clientCertificate": obj.get("clientCertificate"),
"clientCertDomainsAllowList": obj.get("clientCertDomainsAllowList"),
"collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False,
"distributedTracing": obj.get("distributedTracing"),
"followRedirects": obj.get("followRedirects") if obj.get("followRedirects") is not None else True,
"mtuMeasurements": obj.get("mtuMeasurements"),
"networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True,

View File

@ -32,7 +32,10 @@ class ApiProperties(BaseModel):
"""
ApiProperties
""" # noqa: E501
client_certificate: Optional[StrictStr] = Field(default=None, description="String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate.", alias="clientCertificate")
client_cert_domains_allow_list: Optional[StrictStr] = Field(default=None, description="Comma separated list of domains to send the client certificate.", alias="clientCertDomainsAllowList")
collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData")
distributed_tracing: Optional[StrictBool] = Field(default=None, description="Adds distributed tracing headers to API requests using B3 and W3C standards.", alias="distributedTracing")
follow_redirects: Optional[StrictBool] = Field(default=True, description="To disable following HTTP/301 or HTTP/302 redirect directives, set this parameter to `false`.", alias="followRedirects")
mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements")
network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements")
@ -48,9 +51,9 @@ class ApiProperties(BaseModel):
ssl_version_id: Optional[TestSslVersionId] = Field(default=None, alias="sslVersionId")
target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=0)]] = Field(default=None, description="Target time for completion metric, defaults to 50% of time limit specified in seconds. (0 means default behavior)", alias="targetTime")
time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error.", alias="timeLimit")
url: StrictStr = Field(description="Target for the test.")
type: Optional[StrictStr] = None
__properties: ClassVar[List[str]] = ["collectProxyNetworkData", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "type"]
url: StrictStr = Field(description="Target for the test.")
__properties: ClassVar[List[str]] = ["clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "type", "url"]
model_config = ConfigDict(
populate_by_name=True,
@ -120,7 +123,10 @@ class ApiProperties(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"clientCertificate": obj.get("clientCertificate"),
"clientCertDomainsAllowList": obj.get("clientCertDomainsAllowList"),
"collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False,
"distributedTracing": obj.get("distributedTracing"),
"followRedirects": obj.get("followRedirects") if obj.get("followRedirects") is not None else True,
"mtuMeasurements": obj.get("mtuMeasurements"),
"networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True,
@ -136,8 +142,8 @@ class ApiProperties(BaseModel):
"sslVersionId": obj.get("sslVersionId"),
"targetTime": obj.get("targetTime"),
"timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30,
"url": obj.get("url"),
"type": obj.get("type")
"type": obj.get("type"),
"url": obj.get("url")
})
return _obj

View File

@ -48,8 +48,9 @@ class ApiRequest(BaseModel):
url: StrictStr = Field(description="Request url. Supports variables in the format `{{variableName}}`.")
username: Optional[StrictStr] = Field(default=None, description="The username if `authType = basic`.")
variables: Optional[List[ApiRequestVariable]] = Field(default=None, description="Array of API post request variable objects.")
verify_certificate: Optional[StrictBool] = Field(default=False, description="Ignore or acknowledge certificate errors. Set to false to ignore certificate errors.", alias="verifyCertificate")
wait_time_ms: Optional[StrictInt] = Field(default=None, description="Post request delay before executing the next API requests, in milliseconds.", alias="waitTimeMs")
__properties: ClassVar[List[str]] = ["assertions", "authType", "bearerToken", "body", "clientAuthentication", "clientId", "clientSecret", "collectApiResponse", "headers", "method", "name", "password", "scope", "tokenUrl", "url", "username", "variables", "waitTimeMs"]
__properties: ClassVar[List[str]] = ["assertions", "authType", "bearerToken", "body", "clientAuthentication", "clientId", "clientSecret", "collectApiResponse", "headers", "method", "name", "password", "scope", "tokenUrl", "url", "username", "variables", "verifyCertificate", "waitTimeMs"]
model_config = ConfigDict(
populate_by_name=True,
@ -141,6 +142,7 @@ class ApiRequest(BaseModel):
"url": obj.get("url"),
"username": obj.get("username"),
"variables": [ApiRequestVariable.from_dict(_item) for _item in obj["variables"]] if obj.get("variables") is not None else None,
"verifyCertificate": obj.get("verifyCertificate") if obj.get("verifyCertificate") is not None else False,
"waitTimeMs": obj.get("waitTimeMs")
})
return _obj

View File

@ -41,6 +41,7 @@ class HttpServerBaseProperties(BaseModel):
content_regex: Optional[StrictStr] = Field(default=None, description="Content regex, this field does not require escaping.", alias="contentRegex")
custom_headers: Optional[TestCustomHeaders] = Field(default=None, alias="customHeaders")
desired_status_code: Optional[StrictStr] = Field(default='default', description="Specify the HTTP status code value that indicates a successful response. The default value accepts any 2xx or 3xx status code.", alias="desiredStatusCode")
distributed_tracing: Optional[StrictBool] = Field(default=None, description="Adds distributed tracing headers to API requests using B3 and W3C standards.", alias="distributedTracing")
download_limit: Optional[StrictInt] = Field(default=None, description="Specifies maximum number of bytes to download from the target object.", alias="downloadLimit")
dns_override: Optional[StrictStr] = Field(default=None, description="IP address to use for DNS override.", alias="dnsOverride")
http_target_time: Optional[Annotated[int, Field(le=5000, strict=True, ge=100)]] = Field(default=None, description="Target time for HTTP server completion, specified in milliseconds.", alias="httpTargetTime")
@ -68,7 +69,7 @@ class HttpServerBaseProperties(BaseModel):
override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy")
override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId")
collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData")
__properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData"]
__properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData"]
model_config = ConfigDict(
populate_by_name=True,
@ -140,6 +141,7 @@ class HttpServerBaseProperties(BaseModel):
"contentRegex": obj.get("contentRegex"),
"customHeaders": TestCustomHeaders.from_dict(obj["customHeaders"]) if obj.get("customHeaders") is not None else None,
"desiredStatusCode": obj.get("desiredStatusCode") if obj.get("desiredStatusCode") is not None else 'default',
"distributedTracing": obj.get("distributedTracing"),
"downloadLimit": obj.get("downloadLimit"),
"dnsOverride": obj.get("dnsOverride"),
"httpTargetTime": obj.get("httpTargetTime"),

Some files were not shown because too many files have changed in this diff Show More