[GitHub Bot] Generated python SDK

This commit is contained in:
API Team 2025-07-02 15:51:18 +00:00
parent cd1d84e1a4
commit 40db810a2a
53 changed files with 644 additions and 247 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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - 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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - 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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - 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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - 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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - 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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -24,6 +24,7 @@ docs/EndpointHttpServerTest.md
docs/EndpointIpVersionTemplate.md docs/EndpointIpVersionTemplate.md
docs/EndpointNetworkTopologyResultRequest.md docs/EndpointNetworkTopologyResultRequest.md
docs/EndpointNetworkTopologyResultRequestFilter.md docs/EndpointNetworkTopologyResultRequestFilter.md
docs/EndpointNetworkTopologyThresholdFilter.md
docs/EndpointPathTrace.md docs/EndpointPathTrace.md
docs/EndpointPathVisHop.md docs/EndpointPathVisHop.md
docs/EndpointPathVisRoute.md docs/EndpointPathVisRoute.md
@ -80,6 +81,8 @@ docs/LocalNetworkTopologyDetailResults.md
docs/LocalNetworkTopologyResult.md docs/LocalNetworkTopologyResult.md
docs/LocalNetworkTopologyResultBase.md docs/LocalNetworkTopologyResultBase.md
docs/LocalNetworkTopologyResults.md docs/LocalNetworkTopologyResults.md
docs/LocalNetworksThresholdFilter.md
docs/LocalNetworksThresholdFilterName.md
docs/MultiTestIdEndpointTestsDataRoundsSearch.md docs/MultiTestIdEndpointTestsDataRoundsSearch.md
docs/MultiTestIdEndpointTestsDataSearchFilter.md docs/MultiTestIdEndpointTestsDataSearchFilter.md
docs/MultiTestIdNetworkEndpointTestResults.md docs/MultiTestIdNetworkEndpointTestResults.md
@ -189,6 +192,7 @@ src/thousandeyes_sdk/endpoint_test_results/models/endpoint_http_server_test.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_ip_version_template.py src/thousandeyes_sdk/endpoint_test_results/models/endpoint_ip_version_template.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_result_request.py src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_result_request.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_result_request_filter.py src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_result_request_filter.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_threshold_filter.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_path_trace.py 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_hop.py
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_path_vis_route.py src/thousandeyes_sdk/endpoint_test_results/models/endpoint_path_vis_route.py
@ -243,6 +247,8 @@ src/thousandeyes_sdk/endpoint_test_results/models/local_network_topology_detail_
src/thousandeyes_sdk/endpoint_test_results/models/local_network_topology_result.py src/thousandeyes_sdk/endpoint_test_results/models/local_network_topology_result.py
src/thousandeyes_sdk/endpoint_test_results/models/local_network_topology_result_base.py src/thousandeyes_sdk/endpoint_test_results/models/local_network_topology_result_base.py
src/thousandeyes_sdk/endpoint_test_results/models/local_network_topology_results.py src/thousandeyes_sdk/endpoint_test_results/models/local_network_topology_results.py
src/thousandeyes_sdk/endpoint_test_results/models/local_networks_threshold_filter.py
src/thousandeyes_sdk/endpoint_test_results/models/local_networks_threshold_filter_name.py
src/thousandeyes_sdk/endpoint_test_results/models/multi_test_id_endpoint_tests_data_rounds_search.py src/thousandeyes_sdk/endpoint_test_results/models/multi_test_id_endpoint_tests_data_rounds_search.py
src/thousandeyes_sdk/endpoint_test_results/models/multi_test_id_endpoint_tests_data_search_filter.py src/thousandeyes_sdk/endpoint_test_results/models/multi_test_id_endpoint_tests_data_search_filter.py
src/thousandeyes_sdk/endpoint_test_results/models/multi_test_id_network_endpoint_test_results.py src/thousandeyes_sdk/endpoint_test_results/models/multi_test_id_network_endpoint_test_results.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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
@ -145,6 +145,7 @@ Class | Method | HTTP request | Description
- [EndpointIpVersionTemplate](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointIpVersionTemplate.md) - [EndpointIpVersionTemplate](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointIpVersionTemplate.md)
- [EndpointNetworkTopologyResultRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyResultRequest.md) - [EndpointNetworkTopologyResultRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyResultRequest.md)
- [EndpointNetworkTopologyResultRequestFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyResultRequestFilter.md) - [EndpointNetworkTopologyResultRequestFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyResultRequestFilter.md)
- [EndpointNetworkTopologyThresholdFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyThresholdFilter.md)
- [EndpointPathTrace](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointPathTrace.md) - [EndpointPathTrace](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointPathTrace.md)
- [EndpointPathVisHop](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointPathVisHop.md) - [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) - [EndpointPathVisRoute](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointPathVisRoute.md)
@ -199,6 +200,8 @@ Class | Method | HTTP request | Description
- [LocalNetworkTopologyResult](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworkTopologyResult.md) - [LocalNetworkTopologyResult](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworkTopologyResult.md)
- [LocalNetworkTopologyResultBase](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworkTopologyResultBase.md) - [LocalNetworkTopologyResultBase](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworkTopologyResultBase.md)
- [LocalNetworkTopologyResults](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworkTopologyResults.md) - [LocalNetworkTopologyResults](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworkTopologyResults.md)
- [LocalNetworksThresholdFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworksThresholdFilter.md)
- [LocalNetworksThresholdFilterName](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworksThresholdFilterName.md)
- [MultiTestIdEndpointTestsDataRoundsSearch](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/MultiTestIdEndpointTestsDataRoundsSearch.md) - [MultiTestIdEndpointTestsDataRoundsSearch](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/MultiTestIdEndpointTestsDataRoundsSearch.md)
- [MultiTestIdEndpointTestsDataSearchFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/MultiTestIdEndpointTestsDataSearchFilter.md) - [MultiTestIdEndpointTestsDataSearchFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/MultiTestIdEndpointTestsDataSearchFilter.md)
- [MultiTestIdNetworkEndpointTestResults](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/MultiTestIdNetworkEndpointTestResults.md) - [MultiTestIdNetworkEndpointTestResults](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/MultiTestIdNetworkEndpointTestResults.md)

View File

@ -5,6 +5,7 @@
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**threshold_filter** | [**EndpointNetworkTopologyThresholdFilter**](EndpointNetworkTopologyThresholdFilter.md) | | [optional]
**search_filters** | [**EndpointNetworkTopologyResultRequestFilter**](EndpointNetworkTopologyResultRequestFilter.md) | | [optional] **search_filters** | [**EndpointNetworkTopologyResultRequestFilter**](EndpointNetworkTopologyResultRequestFilter.md) | | [optional]
## Example ## Example

View File

@ -0,0 +1,31 @@
# EndpointNetworkTopologyThresholdFilter
Applies all filters using the specified conditional operator (AND or OR).
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**filters** | [**List[LocalNetworksThresholdFilter]**](LocalNetworksThresholdFilter.md) | | [optional]
**conditional_operator** | [**ConditionalOperator**](ConditionalOperator.md) | | [optional]
## Example
```python
from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_threshold_filter import EndpointNetworkTopologyThresholdFilter
# TODO update the JSON string below
json = "{}"
# create an instance of EndpointNetworkTopologyThresholdFilter from a JSON string
endpoint_network_topology_threshold_filter_instance = EndpointNetworkTopologyThresholdFilter.from_json(json)
# print the JSON string representation of the object
print(EndpointNetworkTopologyThresholdFilter.to_json())
# convert the object into a dict
endpoint_network_topology_threshold_filter_dict = endpoint_network_topology_threshold_filter_instance.to_dict()
# create an instance of EndpointNetworkTopologyThresholdFilter from a dict
endpoint_network_topology_threshold_filter_from_dict = EndpointNetworkTopologyThresholdFilter.from_dict(endpoint_network_topology_threshold_filter_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

@ -7,6 +7,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**avg_rtt** | **int** | Ping average response time. | [optional] [readonly] **avg_rtt** | **int** | Ping average response time. | [optional] [readonly]
**max_rtt** | **int** | Ping maximum response time. | [optional] [readonly] **max_rtt** | **int** | Ping maximum response time. | [optional] [readonly]
**loss** | **float** | Network loss. | [optional] [readonly]
**mean_dev_rtt** | **int** | Ping mean standard deviation response time. | [optional] [readonly] **mean_dev_rtt** | **int** | Ping mean standard deviation response time. | [optional] [readonly]
**min_rtt** | **int** | Ping minimum response time. | [optional] [readonly] **min_rtt** | **int** | Ping minimum response time. | [optional] [readonly]
**pkts_received** | **int** | Ping packets received. | [optional] [readonly] **pkts_received** | **int** | Ping packets received. | [optional] [readonly]

View File

@ -29,6 +29,7 @@ Name | Type | Description | Notes
**total_time** | **int** | Total time is the response time + receive time. | [optional] [readonly] **total_time** | **int** | Total time is the response time + receive time. | [optional] [readonly]
**wait_time** | **int** | Time elapsed between completion of request and first byte of response in milliseconds. | [optional] [readonly] **wait_time** | **int** | Time elapsed between completion of request and first byte of response in milliseconds. | [optional] [readonly]
**wire_size** | **int** | Size of content in bytes. | [optional] [readonly] **wire_size** | **int** | Size of content in bytes. | [optional] [readonly]
**throughput** | **int** | Amount of data transmitted, in bytes. | [optional] [readonly]
## Example ## Example

View File

@ -0,0 +1,32 @@
# LocalNetworksThresholdFilter
Filters the metric using the specified operator and threshold value.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | [**LocalNetworksThresholdFilterName**](LocalNetworksThresholdFilterName.md) | | [optional]
**value** | **float** | The threshold value. | [optional]
**operator** | [**ThresholdFilterOperator**](ThresholdFilterOperator.md) | | [optional]
## Example
```python
from thousandeyes_sdk.endpoint_test_results.models.local_networks_threshold_filter import LocalNetworksThresholdFilter
# TODO update the JSON string below
json = "{}"
# create an instance of LocalNetworksThresholdFilter from a JSON string
local_networks_threshold_filter_instance = LocalNetworksThresholdFilter.from_json(json)
# print the JSON string representation of the object
print(LocalNetworksThresholdFilter.to_json())
# convert the object into a dict
local_networks_threshold_filter_dict = local_networks_threshold_filter_instance.to_dict()
# create an instance of LocalNetworksThresholdFilter from a dict
local_networks_threshold_filter_from_dict = LocalNetworksThresholdFilter.from_dict(local_networks_threshold_filter_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 @@
# LocalNetworksThresholdFilterName
Metric on which the threshold filter is applied.
## 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

@ -7,6 +7,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**avg_rtt** | **int** | Ping average response time. | [optional] [readonly] **avg_rtt** | **int** | Ping average response time. | [optional] [readonly]
**max_rtt** | **int** | Ping maximum response time. | [optional] [readonly] **max_rtt** | **int** | Ping maximum response time. | [optional] [readonly]
**loss** | **float** | Network loss. | [optional] [readonly]
**mean_dev_rtt** | **int** | Ping mean standard deviation response time. | [optional] [readonly] **mean_dev_rtt** | **int** | Ping mean standard deviation response time. | [optional] [readonly]
**min_rtt** | **int** | Ping minimum response time. | [optional] [readonly] **min_rtt** | **int** | Ping minimum response time. | [optional] [readonly]
**pkts_received** | **int** | Ping packets received. | [optional] [readonly] **pkts_received** | **int** | Ping packets received. | [optional] [readonly]

View File

@ -7,6 +7,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**avg_rtt** | **int** | Ping average response time. | [optional] [readonly] **avg_rtt** | **int** | Ping average response time. | [optional] [readonly]
**max_rtt** | **int** | Ping maximum response time. | [optional] [readonly] **max_rtt** | **int** | Ping maximum response time. | [optional] [readonly]
**loss** | **float** | Network loss. | [optional] [readonly]
**mean_dev_rtt** | **int** | Ping mean standard deviation response time. | [optional] [readonly] **mean_dev_rtt** | **int** | Ping mean standard deviation response time. | [optional] [readonly]
**min_rtt** | **int** | Ping minimum response time. | [optional] [readonly] **min_rtt** | **int** | Ping minimum response time. | [optional] [readonly]
**pkts_received** | **int** | Ping packets received. | [optional] [readonly] **pkts_received** | **int** | Ping packets received. | [optional] [readonly]

View File

@ -7,6 +7,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**avg_rtt** | **int** | Ping average response time. | [optional] [readonly] **avg_rtt** | **int** | Ping average response time. | [optional] [readonly]
**max_rtt** | **int** | Ping maximum response time. | [optional] [readonly] **max_rtt** | **int** | Ping maximum response time. | [optional] [readonly]
**loss** | **float** | Network loss. | [optional] [readonly]
**mean_dev_rtt** | **int** | Ping mean standard deviation response time. | [optional] [readonly] **mean_dev_rtt** | **int** | Ping mean standard deviation response time. | [optional] [readonly]
**min_rtt** | **int** | Ping minimum response time. | [optional] [readonly] **min_rtt** | **int** | Ping minimum response time. | [optional] [readonly]
**pkts_received** | **int** | Ping packets received. | [optional] [readonly] **pkts_received** | **int** | Ping packets received. | [optional] [readonly]

View File

@ -45,6 +45,7 @@ from thousandeyes_sdk.endpoint_test_results.models.endpoint_http_server_test imp
from thousandeyes_sdk.endpoint_test_results.models.endpoint_ip_version_template import EndpointIpVersionTemplate from thousandeyes_sdk.endpoint_test_results.models.endpoint_ip_version_template import EndpointIpVersionTemplate
from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_result_request import EndpointNetworkTopologyResultRequest from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_result_request import EndpointNetworkTopologyResultRequest
from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_result_request_filter import EndpointNetworkTopologyResultRequestFilter from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_result_request_filter import EndpointNetworkTopologyResultRequestFilter
from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_threshold_filter import EndpointNetworkTopologyThresholdFilter
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_trace import EndpointPathTrace from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_trace import EndpointPathTrace
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_vis_hop import EndpointPathVisHop 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_path_vis_route import EndpointPathVisRoute
@ -99,6 +100,8 @@ from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_detail
from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_result import LocalNetworkTopologyResult from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_result import LocalNetworkTopologyResult
from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_result_base import LocalNetworkTopologyResultBase from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_result_base import LocalNetworkTopologyResultBase
from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_results import LocalNetworkTopologyResults from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_results import LocalNetworkTopologyResults
from thousandeyes_sdk.endpoint_test_results.models.local_networks_threshold_filter import LocalNetworksThresholdFilter
from thousandeyes_sdk.endpoint_test_results.models.local_networks_threshold_filter_name import LocalNetworksThresholdFilterName
from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_endpoint_tests_data_rounds_search import MultiTestIdEndpointTestsDataRoundsSearch from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_endpoint_tests_data_rounds_search import MultiTestIdEndpointTestsDataRoundsSearch
from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_endpoint_tests_data_search_filter import MultiTestIdEndpointTestsDataSearchFilter from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_endpoint_tests_data_search_filter import MultiTestIdEndpointTestsDataSearchFilter
from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_network_endpoint_test_results import MultiTestIdNetworkEndpointTestResults from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_network_endpoint_test_results import MultiTestIdNetworkEndpointTestResults

View File

@ -36,6 +36,7 @@ from thousandeyes_sdk.endpoint_test_results.models.endpoint_http_server_test imp
from thousandeyes_sdk.endpoint_test_results.models.endpoint_ip_version_template import EndpointIpVersionTemplate from thousandeyes_sdk.endpoint_test_results.models.endpoint_ip_version_template import EndpointIpVersionTemplate
from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_result_request import EndpointNetworkTopologyResultRequest from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_result_request import EndpointNetworkTopologyResultRequest
from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_result_request_filter import EndpointNetworkTopologyResultRequestFilter from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_result_request_filter import EndpointNetworkTopologyResultRequestFilter
from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_threshold_filter import EndpointNetworkTopologyThresholdFilter
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_trace import EndpointPathTrace from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_trace import EndpointPathTrace
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_vis_hop import EndpointPathVisHop 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_path_vis_route import EndpointPathVisRoute
@ -90,6 +91,8 @@ from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_detail
from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_result import LocalNetworkTopologyResult from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_result import LocalNetworkTopologyResult
from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_result_base import LocalNetworkTopologyResultBase from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_result_base import LocalNetworkTopologyResultBase
from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_results import LocalNetworkTopologyResults from thousandeyes_sdk.endpoint_test_results.models.local_network_topology_results import LocalNetworkTopologyResults
from thousandeyes_sdk.endpoint_test_results.models.local_networks_threshold_filter import LocalNetworksThresholdFilter
from thousandeyes_sdk.endpoint_test_results.models.local_networks_threshold_filter_name import LocalNetworksThresholdFilterName
from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_endpoint_tests_data_rounds_search import MultiTestIdEndpointTestsDataRoundsSearch from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_endpoint_tests_data_rounds_search import MultiTestIdEndpointTestsDataRoundsSearch
from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_endpoint_tests_data_search_filter import MultiTestIdEndpointTestsDataSearchFilter from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_endpoint_tests_data_search_filter import MultiTestIdEndpointTestsDataSearchFilter
from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_network_endpoint_test_results import MultiTestIdNetworkEndpointTestResults from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_network_endpoint_test_results import MultiTestIdNetworkEndpointTestResults

View File

@ -19,6 +19,7 @@ import json
from pydantic import BaseModel, ConfigDict, Field from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Optional from typing import Any, ClassVar, Dict, List, Optional
from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_result_request_filter import EndpointNetworkTopologyResultRequestFilter from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_result_request_filter import EndpointNetworkTopologyResultRequestFilter
from thousandeyes_sdk.endpoint_test_results.models.endpoint_network_topology_threshold_filter import EndpointNetworkTopologyThresholdFilter
from typing import Optional, Set from typing import Optional, Set
from typing_extensions import Self from typing_extensions import Self
@ -26,8 +27,9 @@ class EndpointNetworkTopologyResultRequest(BaseModel):
""" """
EndpointNetworkTopologyResultRequest EndpointNetworkTopologyResultRequest
""" # noqa: E501 """ # noqa: E501
threshold_filter: Optional[EndpointNetworkTopologyThresholdFilter] = Field(default=None, alias="thresholdFilter")
search_filters: Optional[EndpointNetworkTopologyResultRequestFilter] = Field(default=None, alias="searchFilters") search_filters: Optional[EndpointNetworkTopologyResultRequestFilter] = Field(default=None, alias="searchFilters")
__properties: ClassVar[List[str]] = ["searchFilters"] __properties: ClassVar[List[str]] = ["thresholdFilter", "searchFilters"]
model_config = ConfigDict( model_config = ConfigDict(
populate_by_name=True, populate_by_name=True,
@ -69,6 +71,9 @@ class EndpointNetworkTopologyResultRequest(BaseModel):
exclude=excluded_fields, exclude=excluded_fields,
exclude_none=True, exclude_none=True,
) )
# override the default output from pydantic by calling `to_dict()` of threshold_filter
if self.threshold_filter:
_dict['thresholdFilter'] = self.threshold_filter.to_dict()
# override the default output from pydantic by calling `to_dict()` of search_filters # override the default output from pydantic by calling `to_dict()` of search_filters
if self.search_filters: if self.search_filters:
_dict['searchFilters'] = self.search_filters.to_dict() _dict['searchFilters'] = self.search_filters.to_dict()
@ -84,6 +89,7 @@ class EndpointNetworkTopologyResultRequest(BaseModel):
return cls.model_validate(obj) return cls.model_validate(obj)
_obj = cls.model_validate({ _obj = cls.model_validate({
"thresholdFilter": EndpointNetworkTopologyThresholdFilter.from_dict(obj["thresholdFilter"]) if obj.get("thresholdFilter") is not None else None,
"searchFilters": EndpointNetworkTopologyResultRequestFilter.from_dict(obj["searchFilters"]) if obj.get("searchFilters") is not None else None "searchFilters": EndpointNetworkTopologyResultRequestFilter.from_dict(obj["searchFilters"]) if obj.get("searchFilters") is not None else None
}) })
return _obj return _obj

View File

@ -0,0 +1,98 @@
# 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
from typing import Any, ClassVar, Dict, List, Optional
from thousandeyes_sdk.endpoint_test_results.models.conditional_operator import ConditionalOperator
from thousandeyes_sdk.endpoint_test_results.models.local_networks_threshold_filter import LocalNetworksThresholdFilter
from typing import Optional, Set
from typing_extensions import Self
class EndpointNetworkTopologyThresholdFilter(BaseModel):
"""
Applies all filters using the specified conditional operator (AND or OR).
""" # noqa: E501
filters: Optional[List[LocalNetworksThresholdFilter]] = None
conditional_operator: Optional[ConditionalOperator] = Field(default=None, alias="conditionalOperator")
__properties: ClassVar[List[str]] = ["filters", "conditionalOperator"]
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 EndpointNetworkTopologyThresholdFilter 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,
)
# override the default output from pydantic by calling `to_dict()` of each item in filters (list)
_items = []
if self.filters:
for _item in self.filters:
if _item:
_items.append(_item.to_dict())
_dict['filters'] = _items
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of EndpointNetworkTopologyThresholdFilter from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"filters": [LocalNetworksThresholdFilter.from_dict(_item) for _item in obj["filters"]] if obj.get("filters") is not None else None,
"conditionalOperator": obj.get("conditionalOperator")
})
return _obj

View File

@ -16,8 +16,8 @@ import pprint
import re # noqa: F401 import re # noqa: F401
import json import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional from typing import Any, ClassVar, Dict, List, Optional, Union
from typing import Optional, Set from typing import Optional, Set
from typing_extensions import Self from typing_extensions import Self
@ -27,13 +27,14 @@ class GatewayNetworkPing(BaseModel):
""" # noqa: E501 """ # noqa: E501
avg_rtt: Optional[StrictInt] = Field(default=None, description="Ping average response time.", alias="avgRtt") avg_rtt: Optional[StrictInt] = Field(default=None, description="Ping average response time.", alias="avgRtt")
max_rtt: Optional[StrictInt] = Field(default=None, description="Ping maximum response time.", alias="maxRtt") max_rtt: Optional[StrictInt] = Field(default=None, description="Ping maximum response time.", alias="maxRtt")
loss: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Network loss.")
mean_dev_rtt: Optional[StrictInt] = Field(default=None, description="Ping mean standard deviation response time.", alias="meanDevRtt") mean_dev_rtt: Optional[StrictInt] = Field(default=None, description="Ping mean standard deviation response time.", alias="meanDevRtt")
min_rtt: Optional[StrictInt] = Field(default=None, description="Ping minimum response time.", alias="minRtt") min_rtt: Optional[StrictInt] = Field(default=None, description="Ping minimum response time.", alias="minRtt")
pkts_received: Optional[StrictInt] = Field(default=None, description="Ping packets received.", alias="pktsReceived") pkts_received: Optional[StrictInt] = Field(default=None, description="Ping packets received.", alias="pktsReceived")
pkts_sent: Optional[StrictInt] = Field(default=None, description="Ping packets sent.", alias="pktsSent") pkts_sent: Optional[StrictInt] = Field(default=None, description="Ping packets sent.", alias="pktsSent")
error: Optional[StrictStr] = Field(default=None, description="Only present when there is an error.") error: Optional[StrictStr] = Field(default=None, description="Only present when there is an error.")
info_flags: Optional[List[StrictStr]] = Field(default=None, alias="infoFlags") info_flags: Optional[List[StrictStr]] = Field(default=None, alias="infoFlags")
__properties: ClassVar[List[str]] = ["avgRtt", "maxRtt", "meanDevRtt", "minRtt", "pktsReceived", "pktsSent", "error", "infoFlags"] __properties: ClassVar[List[str]] = ["avgRtt", "maxRtt", "loss", "meanDevRtt", "minRtt", "pktsReceived", "pktsSent", "error", "infoFlags"]
model_config = ConfigDict( model_config = ConfigDict(
populate_by_name=True, populate_by_name=True,
@ -74,10 +75,12 @@ class GatewayNetworkPing(BaseModel):
* OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded.
* OpenAPI `readOnly` fields are excluded. * 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([ excluded_fields: Set[str] = set([
"avg_rtt", "avg_rtt",
"max_rtt", "max_rtt",
"loss",
"mean_dev_rtt", "mean_dev_rtt",
"min_rtt", "min_rtt",
"pkts_received", "pkts_received",
@ -105,6 +108,7 @@ class GatewayNetworkPing(BaseModel):
_obj = cls.model_validate({ _obj = cls.model_validate({
"avgRtt": obj.get("avgRtt"), "avgRtt": obj.get("avgRtt"),
"maxRtt": obj.get("maxRtt"), "maxRtt": obj.get("maxRtt"),
"loss": obj.get("loss"),
"meanDevRtt": obj.get("meanDevRtt"), "meanDevRtt": obj.get("meanDevRtt"),
"minRtt": obj.get("minRtt"), "minRtt": obj.get("minRtt"),
"pktsReceived": obj.get("pktsReceived"), "pktsReceived": obj.get("pktsReceived"),

View File

@ -56,7 +56,8 @@ class HttpEndpointTestResult(BaseModel):
total_time: Optional[StrictInt] = Field(default=None, description="Total time is the response time + receive time.", alias="totalTime") 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") 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") 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", "score", "connectTime", "dnsTime", "errorType", "errorDetails", "headers", "numRedirects", "receiveTime", "redirectTime", "responseCode", "responseTime", "sslTime", "totalTime", "waitTime", "wireSize"] throughput: Optional[StrictInt] = Field(default=None, description="Amount of data transmitted, in bytes.")
__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", "throughput"]
model_config = ConfigDict( model_config = ConfigDict(
populate_by_name=True, populate_by_name=True,
@ -105,6 +106,7 @@ class HttpEndpointTestResult(BaseModel):
* OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded.
* OpenAPI `readOnly` fields are excluded. * 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([ excluded_fields: Set[str] = set([
"test_id", "test_id",
@ -123,6 +125,7 @@ class HttpEndpointTestResult(BaseModel):
"total_time", "total_time",
"wait_time", "wait_time",
"wire_size", "wire_size",
"throughput",
]) ])
_dict = self.model_dump( _dict = self.model_dump(
@ -183,7 +186,8 @@ class HttpEndpointTestResult(BaseModel):
"sslTime": obj.get("sslTime"), "sslTime": obj.get("sslTime"),
"totalTime": obj.get("totalTime"), "totalTime": obj.get("totalTime"),
"waitTime": obj.get("waitTime"), "waitTime": obj.get("waitTime"),
"wireSize": obj.get("wireSize") "wireSize": obj.get("wireSize"),
"throughput": obj.get("throughput")
}) })
return _obj return _obj

View File

@ -28,8 +28,10 @@ class HttpThresholdFilterName(str, Enum):
RESPONSE_MINUS_TIME = 'response-time' RESPONSE_MINUS_TIME = 'response-time'
DNS_MINUS_TIME = 'dns-time' DNS_MINUS_TIME = 'dns-time'
CONNECT_MINUS_TIME = 'connect-time' CONNECT_MINUS_TIME = 'connect-time'
THROUGHPUT = 'throughput'
SSL_MINUS_TIME = 'ssl-time' SSL_MINUS_TIME = 'ssl-time'
WAIT_MINUS_TIME = 'wait-time' WAIT_MINUS_TIME = 'wait-time'
APPLICATION_MINUS_SCORE = 'application-score'
UNKNOWN = 'unknown' UNKNOWN = 'unknown'
@classmethod @classmethod

View File

@ -0,0 +1,93 @@
# 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.local_networks_threshold_filter_name import LocalNetworksThresholdFilterName
from thousandeyes_sdk.endpoint_test_results.models.threshold_filter_operator import ThresholdFilterOperator
from typing import Optional, Set
from typing_extensions import Self
class LocalNetworksThresholdFilter(BaseModel):
"""
Filters the metric using the specified operator and threshold value.
""" # noqa: E501
name: Optional[LocalNetworksThresholdFilterName] = None
value: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The threshold value.")
operator: Optional[ThresholdFilterOperator] = None
__properties: ClassVar[List[str]] = ["name", "value", "operator"]
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 LocalNetworksThresholdFilter 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 LocalNetworksThresholdFilter from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"name": obj.get("name"),
"value": obj.get("value"),
"operator": obj.get("operator")
})
return _obj

View File

@ -0,0 +1,43 @@
# 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 LocalNetworksThresholdFilterName(str, Enum):
"""
Metric on which the threshold filter is applied.
"""
"""
allowed enum values
"""
VPN_MINUS_SCORE = 'vpn-score'
AVG_MINUS_RTT = 'avg-rtt'
MEAN_MINUS_DEV_MINUS_RTT = 'mean-dev-rtt'
LOSS = 'loss'
UNKNOWN = 'unknown'
@classmethod
def from_json(cls, json_str: str) -> Self:
"""Create an instance of LocalNetworksThresholdFilterName from a JSON string"""
return cls(json.loads(json_str))
@classmethod
def _missing_(cls, value):
"""Handle unknown values"""
return cls.UNKNOWN

View File

@ -16,8 +16,8 @@ import pprint
import re # noqa: F401 import re # noqa: F401
import json import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional from typing import Any, ClassVar, Dict, List, Optional, Union
from typing import Optional, Set from typing import Optional, Set
from typing_extensions import Self from typing_extensions import Self
@ -27,13 +27,14 @@ class NetworkPing(BaseModel):
""" # noqa: E501 """ # noqa: E501
avg_rtt: Optional[StrictInt] = Field(default=None, description="Ping average response time.", alias="avgRtt") avg_rtt: Optional[StrictInt] = Field(default=None, description="Ping average response time.", alias="avgRtt")
max_rtt: Optional[StrictInt] = Field(default=None, description="Ping maximum response time.", alias="maxRtt") max_rtt: Optional[StrictInt] = Field(default=None, description="Ping maximum response time.", alias="maxRtt")
loss: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Network loss.")
mean_dev_rtt: Optional[StrictInt] = Field(default=None, description="Ping mean standard deviation response time.", alias="meanDevRtt") mean_dev_rtt: Optional[StrictInt] = Field(default=None, description="Ping mean standard deviation response time.", alias="meanDevRtt")
min_rtt: Optional[StrictInt] = Field(default=None, description="Ping minimum response time.", alias="minRtt") min_rtt: Optional[StrictInt] = Field(default=None, description="Ping minimum response time.", alias="minRtt")
pkts_received: Optional[StrictInt] = Field(default=None, description="Ping packets received.", alias="pktsReceived") pkts_received: Optional[StrictInt] = Field(default=None, description="Ping packets received.", alias="pktsReceived")
pkts_sent: Optional[StrictInt] = Field(default=None, description="Ping packets sent.", alias="pktsSent") pkts_sent: Optional[StrictInt] = Field(default=None, description="Ping packets sent.", alias="pktsSent")
error: Optional[StrictStr] = Field(default=None, description="Only present when there is an error.") error: Optional[StrictStr] = Field(default=None, description="Only present when there is an error.")
info_flags: Optional[List[StrictStr]] = Field(default=None, alias="infoFlags") info_flags: Optional[List[StrictStr]] = Field(default=None, alias="infoFlags")
__properties: ClassVar[List[str]] = ["avgRtt", "maxRtt", "meanDevRtt", "minRtt", "pktsReceived", "pktsSent", "error", "infoFlags"] __properties: ClassVar[List[str]] = ["avgRtt", "maxRtt", "loss", "meanDevRtt", "minRtt", "pktsReceived", "pktsSent", "error", "infoFlags"]
model_config = ConfigDict( model_config = ConfigDict(
populate_by_name=True, populate_by_name=True,
@ -74,10 +75,12 @@ class NetworkPing(BaseModel):
* OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded.
* OpenAPI `readOnly` fields are excluded. * 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([ excluded_fields: Set[str] = set([
"avg_rtt", "avg_rtt",
"max_rtt", "max_rtt",
"loss",
"mean_dev_rtt", "mean_dev_rtt",
"min_rtt", "min_rtt",
"pkts_received", "pkts_received",
@ -105,6 +108,7 @@ class NetworkPing(BaseModel):
_obj = cls.model_validate({ _obj = cls.model_validate({
"avgRtt": obj.get("avgRtt"), "avgRtt": obj.get("avgRtt"),
"maxRtt": obj.get("maxRtt"), "maxRtt": obj.get("maxRtt"),
"loss": obj.get("loss"),
"meanDevRtt": obj.get("meanDevRtt"), "meanDevRtt": obj.get("meanDevRtt"),
"minRtt": obj.get("minRtt"), "minRtt": obj.get("minRtt"),
"pktsReceived": obj.get("pktsReceived"), "pktsReceived": obj.get("pktsReceived"),

View File

@ -16,8 +16,8 @@ import pprint
import re # noqa: F401 import re # noqa: F401
import json import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional from typing import Any, ClassVar, Dict, List, Optional, Union
from typing import Optional, Set from typing import Optional, Set
from typing_extensions import Self from typing_extensions import Self
@ -27,13 +27,14 @@ class TargetNetworkPing(BaseModel):
""" # noqa: E501 """ # noqa: E501
avg_rtt: Optional[StrictInt] = Field(default=None, description="Ping average response time.", alias="avgRtt") avg_rtt: Optional[StrictInt] = Field(default=None, description="Ping average response time.", alias="avgRtt")
max_rtt: Optional[StrictInt] = Field(default=None, description="Ping maximum response time.", alias="maxRtt") max_rtt: Optional[StrictInt] = Field(default=None, description="Ping maximum response time.", alias="maxRtt")
loss: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Network loss.")
mean_dev_rtt: Optional[StrictInt] = Field(default=None, description="Ping mean standard deviation response time.", alias="meanDevRtt") mean_dev_rtt: Optional[StrictInt] = Field(default=None, description="Ping mean standard deviation response time.", alias="meanDevRtt")
min_rtt: Optional[StrictInt] = Field(default=None, description="Ping minimum response time.", alias="minRtt") min_rtt: Optional[StrictInt] = Field(default=None, description="Ping minimum response time.", alias="minRtt")
pkts_received: Optional[StrictInt] = Field(default=None, description="Ping packets received.", alias="pktsReceived") pkts_received: Optional[StrictInt] = Field(default=None, description="Ping packets received.", alias="pktsReceived")
pkts_sent: Optional[StrictInt] = Field(default=None, description="Ping packets sent.", alias="pktsSent") pkts_sent: Optional[StrictInt] = Field(default=None, description="Ping packets sent.", alias="pktsSent")
error: Optional[StrictStr] = Field(default=None, description="Only present when there is an error.") error: Optional[StrictStr] = Field(default=None, description="Only present when there is an error.")
info_flags: Optional[List[StrictStr]] = Field(default=None, alias="infoFlags") info_flags: Optional[List[StrictStr]] = Field(default=None, alias="infoFlags")
__properties: ClassVar[List[str]] = ["avgRtt", "maxRtt", "meanDevRtt", "minRtt", "pktsReceived", "pktsSent", "error", "infoFlags"] __properties: ClassVar[List[str]] = ["avgRtt", "maxRtt", "loss", "meanDevRtt", "minRtt", "pktsReceived", "pktsSent", "error", "infoFlags"]
model_config = ConfigDict( model_config = ConfigDict(
populate_by_name=True, populate_by_name=True,
@ -74,10 +75,12 @@ class TargetNetworkPing(BaseModel):
* OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded.
* OpenAPI `readOnly` fields are excluded. * 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([ excluded_fields: Set[str] = set([
"avg_rtt", "avg_rtt",
"max_rtt", "max_rtt",
"loss",
"mean_dev_rtt", "mean_dev_rtt",
"min_rtt", "min_rtt",
"pkts_received", "pkts_received",
@ -105,6 +108,7 @@ class TargetNetworkPing(BaseModel):
_obj = cls.model_validate({ _obj = cls.model_validate({
"avgRtt": obj.get("avgRtt"), "avgRtt": obj.get("avgRtt"),
"maxRtt": obj.get("maxRtt"), "maxRtt": obj.get("maxRtt"),
"loss": obj.get("loss"),
"meanDevRtt": obj.get("meanDevRtt"), "meanDevRtt": obj.get("meanDevRtt"),
"minRtt": obj.get("minRtt"), "minRtt": obj.get("minRtt"),
"pktsReceived": obj.get("pktsReceived"), "pktsReceived": obj.get("pktsReceived"),

View File

@ -31,6 +31,13 @@ class ThresholdFilterName(str, Enum):
CPU = 'cpu' CPU = 'cpu'
MEMORY = 'memory' MEMORY = 'memory'
SIGNAL_MINUS_QUALITY = 'signal-quality' SIGNAL_MINUS_QUALITY = 'signal-quality'
APPLICATION_MINUS_SCORE = 'application-score'
ZTA_MINUS_INGRESS_MINUS_LOSS = 'zta-ingress-loss'
ZTA_MINUS_SERVICE_MINUS_LOSS = 'zta-service-loss'
ZTA_MINUS_INGRESS_MINUS_AVG_MINUS_LATENCY = 'zta-ingress-avg-latency'
ZTA_MINUS_SERVICE_MINUS_AVG_MINUS_LATENCY = 'zta-service-avg-latency'
ZTA_MINUS_INGRESS_MINUS_JITTER = 'zta-ingress-jitter'
ZTA_MINUS_SERVICE_MINUS_JITTER = 'zta-service-jitter'
UNKNOWN = 'unknown' UNKNOWN = 'unknown'
@classmethod @classmethod

View File

@ -16,8 +16,8 @@ import pprint
import re # noqa: F401 import re # noqa: F401
import json import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional from typing import Any, ClassVar, Dict, List, Optional, Union
from typing import Optional, Set from typing import Optional, Set
from typing_extensions import Self from typing_extensions import Self
@ -27,13 +27,14 @@ class VpnNetworkPing(BaseModel):
""" # noqa: E501 """ # noqa: E501
avg_rtt: Optional[StrictInt] = Field(default=None, description="Ping average response time.", alias="avgRtt") avg_rtt: Optional[StrictInt] = Field(default=None, description="Ping average response time.", alias="avgRtt")
max_rtt: Optional[StrictInt] = Field(default=None, description="Ping maximum response time.", alias="maxRtt") max_rtt: Optional[StrictInt] = Field(default=None, description="Ping maximum response time.", alias="maxRtt")
loss: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Network loss.")
mean_dev_rtt: Optional[StrictInt] = Field(default=None, description="Ping mean standard deviation response time.", alias="meanDevRtt") mean_dev_rtt: Optional[StrictInt] = Field(default=None, description="Ping mean standard deviation response time.", alias="meanDevRtt")
min_rtt: Optional[StrictInt] = Field(default=None, description="Ping minimum response time.", alias="minRtt") min_rtt: Optional[StrictInt] = Field(default=None, description="Ping minimum response time.", alias="minRtt")
pkts_received: Optional[StrictInt] = Field(default=None, description="Ping packets received.", alias="pktsReceived") pkts_received: Optional[StrictInt] = Field(default=None, description="Ping packets received.", alias="pktsReceived")
pkts_sent: Optional[StrictInt] = Field(default=None, description="Ping packets sent.", alias="pktsSent") pkts_sent: Optional[StrictInt] = Field(default=None, description="Ping packets sent.", alias="pktsSent")
error: Optional[StrictStr] = Field(default=None, description="Only present when there is an error.") error: Optional[StrictStr] = Field(default=None, description="Only present when there is an error.")
info_flags: Optional[List[StrictStr]] = Field(default=None, alias="infoFlags") info_flags: Optional[List[StrictStr]] = Field(default=None, alias="infoFlags")
__properties: ClassVar[List[str]] = ["avgRtt", "maxRtt", "meanDevRtt", "minRtt", "pktsReceived", "pktsSent", "error", "infoFlags"] __properties: ClassVar[List[str]] = ["avgRtt", "maxRtt", "loss", "meanDevRtt", "minRtt", "pktsReceived", "pktsSent", "error", "infoFlags"]
model_config = ConfigDict( model_config = ConfigDict(
populate_by_name=True, populate_by_name=True,
@ -74,10 +75,12 @@ class VpnNetworkPing(BaseModel):
* OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded.
* OpenAPI `readOnly` fields are excluded. * 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([ excluded_fields: Set[str] = set([
"avg_rtt", "avg_rtt",
"max_rtt", "max_rtt",
"loss",
"mean_dev_rtt", "mean_dev_rtt",
"min_rtt", "min_rtt",
"pkts_received", "pkts_received",
@ -105,6 +108,7 @@ class VpnNetworkPing(BaseModel):
_obj = cls.model_validate({ _obj = cls.model_validate({
"avgRtt": obj.get("avgRtt"), "avgRtt": obj.get("avgRtt"),
"maxRtt": obj.get("maxRtt"), "maxRtt": obj.get("maxRtt"),
"loss": obj.get("loss"),
"meanDevRtt": obj.get("meanDevRtt"), "meanDevRtt": obj.get("meanDevRtt"),
"minRtt": obj.get("minRtt"), "minRtt": obj.get("minRtt"),
"pktsReceived": obj.get("pktsReceived"), "pktsReceived": obj.get("pktsReceived"),

View File

@ -122,12 +122,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"remotePort" : 80, "remotePort" : 80,
"remoteIpAddress" : "120.98.134.7" "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", "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"redirectTime" : 10,
"numRedirects" : 0, "numRedirects" : 0,
"vpnProfile" : { "vpnProfile" : {
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
@ -136,38 +131,12 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
}, },
"errorType" : "connect", "errorType" : "connect",
"responseTime" : 14,
"totalTime" : 15,
"responseCode" : 200, "responseCode" : 200,
"receiveTime" : 1,
"score" : { "score" : {
"applicationScore" : 100.0, "applicationScore" : 100.0,
"quality" : "great" "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, "connectTime" : 2,
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"networkProfile" : { "networkProfile" : {
"previousInterface" : { "previousInterface" : {
"publicIpAddress" : "84.255.241.1", "publicIpAddress" : "84.255.241.1",
@ -214,10 +183,42 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ], "dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1" "gateway" : "10.0.0.1"
}, },
"throughput" : 190,
"roundId" : 1384309800,
"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"
},
"redirectTime" : 10,
"responseTime" : 14,
"totalTime" : 15,
"receiveTime" : 1,
"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
},
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"testId" : "584739201", "testId" : "584739201",
"sslTime" : 9, "sslTime" : 9,
"aid" : "1234", "aid" : "1234",
"roundId" : 1384309800,
"waitTime" : 3, "waitTime" : 3,
"errorDetails" : "errorDetails", "errorDetails" : "errorDetails",
"wireSize" : 9993 "wireSize" : 9993
@ -227,12 +228,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"remotePort" : 80, "remotePort" : 80,
"remoteIpAddress" : "120.98.134.7" "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", "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"redirectTime" : 10,
"numRedirects" : 0, "numRedirects" : 0,
"vpnProfile" : { "vpnProfile" : {
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
@ -241,38 +237,12 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
}, },
"errorType" : "connect", "errorType" : "connect",
"responseTime" : 14,
"totalTime" : 15,
"responseCode" : 200, "responseCode" : 200,
"receiveTime" : 1,
"score" : { "score" : {
"applicationScore" : 100.0, "applicationScore" : 100.0,
"quality" : "great" "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, "connectTime" : 2,
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"networkProfile" : { "networkProfile" : {
"previousInterface" : { "previousInterface" : {
"publicIpAddress" : "84.255.241.1", "publicIpAddress" : "84.255.241.1",
@ -319,10 +289,42 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ], "dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1" "gateway" : "10.0.0.1"
}, },
"throughput" : 190,
"roundId" : 1384309800,
"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"
},
"redirectTime" : 10,
"responseTime" : 14,
"totalTime" : 15,
"receiveTime" : 1,
"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
},
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"testId" : "584739201", "testId" : "584739201",
"sslTime" : 9, "sslTime" : 9,
"aid" : "1234", "aid" : "1234",
"roundId" : 1384309800,
"waitTime" : 3, "waitTime" : 3,
"errorDetails" : "errorDetails", "errorDetails" : "errorDetails",
"wireSize" : 9993 "wireSize" : 9993
@ -399,12 +401,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"remotePort" : 80, "remotePort" : 80,
"remoteIpAddress" : "120.98.134.7" "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", "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"redirectTime" : 10,
"numRedirects" : 0, "numRedirects" : 0,
"vpnProfile" : { "vpnProfile" : {
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
@ -413,38 +410,12 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
}, },
"errorType" : "connect", "errorType" : "connect",
"responseTime" : 14,
"totalTime" : 15,
"responseCode" : 200, "responseCode" : 200,
"receiveTime" : 1,
"score" : { "score" : {
"applicationScore" : 100.0, "applicationScore" : 100.0,
"quality" : "great" "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, "connectTime" : 2,
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"networkProfile" : { "networkProfile" : {
"previousInterface" : { "previousInterface" : {
"publicIpAddress" : "84.255.241.1", "publicIpAddress" : "84.255.241.1",
@ -491,10 +462,42 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ], "dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1" "gateway" : "10.0.0.1"
}, },
"throughput" : 190,
"roundId" : 1384309800,
"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"
},
"redirectTime" : 10,
"responseTime" : 14,
"totalTime" : 15,
"receiveTime" : 1,
"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
},
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"testId" : "584739201", "testId" : "584739201",
"sslTime" : 9, "sslTime" : 9,
"aid" : "1234", "aid" : "1234",
"roundId" : 1384309800,
"waitTime" : 3, "waitTime" : 3,
"errorDetails" : "errorDetails", "errorDetails" : "errorDetails",
"wireSize" : 9993 "wireSize" : 9993
@ -504,12 +507,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"remotePort" : 80, "remotePort" : 80,
"remoteIpAddress" : "120.98.134.7" "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", "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"redirectTime" : 10,
"numRedirects" : 0, "numRedirects" : 0,
"vpnProfile" : { "vpnProfile" : {
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
@ -518,38 +516,12 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
}, },
"errorType" : "connect", "errorType" : "connect",
"responseTime" : 14,
"totalTime" : 15,
"responseCode" : 200, "responseCode" : 200,
"receiveTime" : 1,
"score" : { "score" : {
"applicationScore" : 100.0, "applicationScore" : 100.0,
"quality" : "great" "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, "connectTime" : 2,
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"networkProfile" : { "networkProfile" : {
"previousInterface" : { "previousInterface" : {
"publicIpAddress" : "84.255.241.1", "publicIpAddress" : "84.255.241.1",
@ -596,10 +568,42 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ], "dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1" "gateway" : "10.0.0.1"
}, },
"throughput" : 190,
"roundId" : 1384309800,
"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"
},
"redirectTime" : 10,
"responseTime" : 14,
"totalTime" : 15,
"receiveTime" : 1,
"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
},
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"testId" : "584739201", "testId" : "584739201",
"sslTime" : 9, "sslTime" : 9,
"aid" : "1234", "aid" : "1234",
"roundId" : 1384309800,
"waitTime" : 3, "waitTime" : 3,
"errorDetails" : "errorDetails", "errorDetails" : "errorDetails",
"wireSize" : 9993 "wireSize" : 9993
@ -676,12 +680,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"remotePort" : 80, "remotePort" : 80,
"remoteIpAddress" : "120.98.134.7" "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", "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"redirectTime" : 10,
"numRedirects" : 0, "numRedirects" : 0,
"vpnProfile" : { "vpnProfile" : {
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
@ -690,38 +689,12 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
}, },
"errorType" : "connect", "errorType" : "connect",
"responseTime" : 14,
"totalTime" : 15,
"responseCode" : 200, "responseCode" : 200,
"receiveTime" : 1,
"score" : { "score" : {
"applicationScore" : 100.0, "applicationScore" : 100.0,
"quality" : "great" "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, "connectTime" : 2,
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"networkProfile" : { "networkProfile" : {
"previousInterface" : { "previousInterface" : {
"publicIpAddress" : "84.255.241.1", "publicIpAddress" : "84.255.241.1",
@ -768,10 +741,42 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ], "dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1" "gateway" : "10.0.0.1"
}, },
"throughput" : 190,
"roundId" : 1384309800,
"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"
},
"redirectTime" : 10,
"responseTime" : 14,
"totalTime" : 15,
"receiveTime" : 1,
"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
},
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"testId" : "584739201", "testId" : "584739201",
"sslTime" : 9, "sslTime" : 9,
"aid" : "1234", "aid" : "1234",
"roundId" : 1384309800,
"waitTime" : 3, "waitTime" : 3,
"errorDetails" : "errorDetails", "errorDetails" : "errorDetails",
"wireSize" : 9993 "wireSize" : 9993
@ -781,12 +786,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"remotePort" : 80, "remotePort" : 80,
"remoteIpAddress" : "120.98.134.7" "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", "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"redirectTime" : 10,
"numRedirects" : 0, "numRedirects" : 0,
"vpnProfile" : { "vpnProfile" : {
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
@ -795,38 +795,12 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
}, },
"errorType" : "connect", "errorType" : "connect",
"responseTime" : 14,
"totalTime" : 15,
"responseCode" : 200, "responseCode" : 200,
"receiveTime" : 1,
"score" : { "score" : {
"applicationScore" : 100.0, "applicationScore" : 100.0,
"quality" : "great" "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, "connectTime" : 2,
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"networkProfile" : { "networkProfile" : {
"previousInterface" : { "previousInterface" : {
"publicIpAddress" : "84.255.241.1", "publicIpAddress" : "84.255.241.1",
@ -873,10 +847,42 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ], "dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
"gateway" : "10.0.0.1" "gateway" : "10.0.0.1"
}, },
"throughput" : 190,
"roundId" : 1384309800,
"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"
},
"redirectTime" : 10,
"responseTime" : 14,
"totalTime" : 15,
"receiveTime" : 1,
"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
},
"dnsTime" : 0,
"serverIp" : "193.2.1.88",
"testId" : "584739201", "testId" : "584739201",
"sslTime" : 9, "sslTime" : 9,
"aid" : "1234", "aid" : "1234",
"roundId" : 1384309800,
"waitTime" : 3, "waitTime" : 3,
"errorDetails" : "errorDetails", "errorDetails" : "errorDetails",
"wireSize" : 9993 "wireSize" : 9993

View File

@ -44,6 +44,18 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"platform" : [ "mac", "mac" ], "platform" : [ "mac", "mac" ],
"gateway" : [ "78.153.54.204", "78.153.54.206" ], "gateway" : [ "78.153.54.204", "78.153.54.206" ],
"proxyTarget" : [ "78.153.54.204", "78.153.54.206" ] "proxyTarget" : [ "78.153.54.204", "78.153.54.206" ]
},
"thresholdFilter" : {
"conditionalOperator" : "and",
"filters" : [ {
"name" : "loss",
"value" : 10.0,
"operator" : "gte"
}, {
"name" : "loss",
"value" : 10.0,
"operator" : "gte"
} ]
} }
}""" }"""
@ -194,6 +206,7 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
}, },
"icmpPing" : { "icmpPing" : {
"maxRtt" : 66, "maxRtt" : 66,
"loss" : 1.0,
"pktsReceived" : 10, "pktsReceived" : 10,
"avgRtt" : 7, "avgRtt" : 7,
"meanDevRtt" : 11, "meanDevRtt" : 11,
@ -336,6 +349,7 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
}, },
"icmpPing" : { "icmpPing" : {
"maxRtt" : 66, "maxRtt" : 66,
"loss" : 1.0,
"pktsReceived" : 10, "pktsReceived" : 10,
"avgRtt" : 7, "avgRtt" : 7,
"meanDevRtt" : 11, "meanDevRtt" : 11,
@ -656,6 +670,7 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
}, },
"icmpPing" : { "icmpPing" : {
"maxRtt" : 66, "maxRtt" : 66,
"loss" : 1.0,
"pktsReceived" : 10, "pktsReceived" : 10,
"avgRtt" : 7, "avgRtt" : 7,
"meanDevRtt" : 11, "meanDevRtt" : 11,
@ -917,6 +932,7 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
}, },
"icmpPing" : { "icmpPing" : {
"maxRtt" : 66, "maxRtt" : 66,
"loss" : 1.0,
"pktsReceived" : 10, "pktsReceived" : 10,
"avgRtt" : 7, "avgRtt" : 7,
"meanDevRtt" : 11, "meanDevRtt" : 11,

View File

@ -660,6 +660,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase):
"isIcmpBlocked" : true, "isIcmpBlocked" : true,
"vpnPing" : { "vpnPing" : {
"maxRtt" : 66, "maxRtt" : 66,
"loss" : 1.0,
"pktsReceived" : 10, "pktsReceived" : 10,
"avgRtt" : 7, "avgRtt" : 7,
"meanDevRtt" : 11, "meanDevRtt" : 11,
@ -670,6 +671,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase):
}, },
"ping" : { "ping" : {
"maxRtt" : 66, "maxRtt" : 66,
"loss" : 1.0,
"pktsReceived" : 10, "pktsReceived" : 10,
"avgRtt" : 7, "avgRtt" : 7,
"meanDevRtt" : 11, "meanDevRtt" : 11,
@ -773,6 +775,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase):
"connectRtt" : 77.777, "connectRtt" : 77.777,
"gatewayPing" : { "gatewayPing" : {
"maxRtt" : 66, "maxRtt" : 66,
"loss" : 1.0,
"pktsReceived" : 10, "pktsReceived" : 10,
"avgRtt" : 7, "avgRtt" : 7,
"meanDevRtt" : 11, "meanDevRtt" : 11,
@ -851,6 +854,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase):
"isIcmpBlocked" : true, "isIcmpBlocked" : true,
"vpnPing" : { "vpnPing" : {
"maxRtt" : 66, "maxRtt" : 66,
"loss" : 1.0,
"pktsReceived" : 10, "pktsReceived" : 10,
"avgRtt" : 7, "avgRtt" : 7,
"meanDevRtt" : 11, "meanDevRtt" : 11,
@ -861,6 +865,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase):
}, },
"ping" : { "ping" : {
"maxRtt" : 66, "maxRtt" : 66,
"loss" : 1.0,
"pktsReceived" : 10, "pktsReceived" : 10,
"avgRtt" : 7, "avgRtt" : 7,
"meanDevRtt" : 11, "meanDevRtt" : 11,
@ -964,6 +969,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase):
"connectRtt" : 77.777, "connectRtt" : 77.777,
"gatewayPing" : { "gatewayPing" : {
"maxRtt" : 66, "maxRtt" : 66,
"loss" : 1.0,
"pktsReceived" : 10, "pktsReceived" : 10,
"avgRtt" : 7, "avgRtt" : 7,
"meanDevRtt" : 11, "meanDevRtt" : 11,

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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - 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: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -1,6 +1,6 @@
# ApiRequestAssertionOperator # ApiRequestAssertionOperator
If `name = status-code``, accepted values are [is, is-not]. If `name = response-body``, accepted values are [includes, not-includes]`. If `name = status-code``, accepted values are [is, is-not]. If `name = response-body``, accepted values are [includes, not-includes, matches, not-matches]`.
## Properties ## Properties

View File

@ -19,7 +19,7 @@ from typing_extensions import Self
class ApiRequestAssertionOperator(str, Enum): class ApiRequestAssertionOperator(str, Enum):
""" """
If `name = status-code``, accepted values are [is, is-not]. If `name = response-body``, accepted values are [includes, not-includes]`. If `name = status-code``, accepted values are [is, is-not]. If `name = response-body``, accepted values are [includes, not-includes, matches, not-matches]`.
""" """
""" """
@ -29,6 +29,8 @@ class ApiRequestAssertionOperator(str, Enum):
IS_MINUS_NOT = 'is-not' IS_MINUS_NOT = 'is-not'
INCLUDES = 'includes' INCLUDES = 'includes'
NOT_MINUS_INCLUDES = 'not-includes' NOT_MINUS_INCLUDES = 'not-includes'
MATCHES = 'matches'
NOT_MINUS_MATCHES = 'not-matches'
UNKNOWN = 'unknown' UNKNOWN = 'unknown'
@classmethod @classmethod

View File

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

View File

@ -3,7 +3,7 @@ Creates a new test snapshot in ThousandEyes.
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -15,7 +15,7 @@ For more information about ThousandEyes for OpenTelemetry, see the [documentatio
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
@ -107,11 +107,11 @@ All URIs are relative to *https://api.thousandeyes.com/v7*
Class | Method | HTTP request | Description Class | Method | HTTP request | Description
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
*StreamingApi* | [**create_stream**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#create_stream) | **POST** /stream | Create data stream *StreamingApi* | [**create_stream**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#create_stream) | **POST** /streams | Create data stream
*StreamingApi* | [**delete_stream**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#delete_stream) | **DELETE** /stream/{id} | Delete a data stream *StreamingApi* | [**delete_stream**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#delete_stream) | **DELETE** /streams/{id} | Delete a data stream
*StreamingApi* | [**get_stream**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#get_stream) | **GET** /stream/{id} | Retrieve data stream *StreamingApi* | [**get_stream**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#get_stream) | **GET** /streams/{id} | Retrieve data stream
*StreamingApi* | [**get_streams**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#get_streams) | **GET** /stream | List data streams *StreamingApi* | [**get_streams**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#get_streams) | **GET** /streams | List data streams
*StreamingApi* | [**update_stream**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#update_stream) | **PUT** /stream/{id} | Update data stream *StreamingApi* | [**update_stream**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#update_stream) | **PUT** /streams/{id} | Update data stream
## Documentation For Models ## Documentation For Models

View File

@ -4,11 +4,11 @@ All URIs are relative to *https://api.thousandeyes.com/v7*
Method | HTTP request | Description Method | HTTP request | Description
------------- | ------------- | ------------- ------------- | ------------- | -------------
[**create_stream**](StreamingApi.md#create_stream) | **POST** /stream | Create data stream [**create_stream**](StreamingApi.md#create_stream) | **POST** /streams | Create data stream
[**delete_stream**](StreamingApi.md#delete_stream) | **DELETE** /stream/{id} | Delete a data stream [**delete_stream**](StreamingApi.md#delete_stream) | **DELETE** /streams/{id} | Delete a data stream
[**get_stream**](StreamingApi.md#get_stream) | **GET** /stream/{id} | Retrieve data stream [**get_stream**](StreamingApi.md#get_stream) | **GET** /streams/{id} | Retrieve data stream
[**get_streams**](StreamingApi.md#get_streams) | **GET** /stream | List data streams [**get_streams**](StreamingApi.md#get_streams) | **GET** /streams | List data streams
[**update_stream**](StreamingApi.md#update_stream) | **PUT** /stream/{id} | Update data stream [**update_stream**](StreamingApi.md#update_stream) | **PUT** /streams/{id} | Update data stream
# **create_stream** # **create_stream**

View File

@ -337,7 +337,7 @@ class StreamingApi:
return self.api_client.param_serialize( return self.api_client.param_serialize(
method='POST', method='POST',
resource_path='/stream', resource_path='/streams',
path_params=_path_params, path_params=_path_params,
query_params=_query_params, query_params=_query_params,
header_params=_header_params, header_params=_header_params,
@ -630,7 +630,7 @@ class StreamingApi:
return self.api_client.param_serialize( return self.api_client.param_serialize(
method='DELETE', method='DELETE',
resource_path='/stream/{id}', resource_path='/streams/{id}',
path_params=_path_params, path_params=_path_params,
query_params=_query_params, query_params=_query_params,
header_params=_header_params, header_params=_header_params,
@ -941,7 +941,7 @@ class StreamingApi:
return self.api_client.param_serialize( return self.api_client.param_serialize(
method='GET', method='GET',
resource_path='/stream/{id}', resource_path='/streams/{id}',
path_params=_path_params, path_params=_path_params,
query_params=_query_params, query_params=_query_params,
header_params=_header_params, header_params=_header_params,
@ -1237,7 +1237,7 @@ class StreamingApi:
return self.api_client.param_serialize( return self.api_client.param_serialize(
method='GET', method='GET',
resource_path='/stream', resource_path='/streams',
path_params=_path_params, path_params=_path_params,
query_params=_query_params, query_params=_query_params,
header_params=_header_params, header_params=_header_params,
@ -1565,7 +1565,7 @@ class StreamingApi:
return self.api_client.param_serialize( return self.api_client.param_serialize(
method='PUT', method='PUT',
resource_path='/stream/{id}', resource_path='/streams/{id}',
path_params=_path_params, path_params=_path_params,
query_params=_query_params, query_params=_query_params,
header_params=_header_params, header_params=_header_params,

View File

@ -16,7 +16,7 @@ Things to note with the ThousandEyes Tags API:
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -3,7 +3,7 @@ Get test result metrics for Network and Application Synthetics tests.
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -4,7 +4,7 @@ This API allows you to list, create, edit, and delete Network and Application Sy
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

@ -1,6 +1,6 @@
# ApiRequestAssertionOperator # ApiRequestAssertionOperator
If `name = status-code``, accepted values are [is, is-not]. If `name = response-body``, accepted values are [includes, not-includes]`. If `name = status-code``, accepted values are [is, is-not]. If `name = response-body``, accepted values are [includes, not-includes, matches, not-matches]`.
## Properties ## Properties

View File

@ -19,7 +19,7 @@ from typing_extensions import Self
class ApiRequestAssertionOperator(str, Enum): class ApiRequestAssertionOperator(str, Enum):
""" """
If `name = status-code``, accepted values are [is, is-not]. If `name = response-body``, accepted values are [includes, not-includes]`. If `name = status-code``, accepted values are [is, is-not]. If `name = response-body``, accepted values are [includes, not-includes, matches, not-matches]`.
""" """
""" """
@ -29,6 +29,8 @@ class ApiRequestAssertionOperator(str, Enum):
IS_MINUS_NOT = 'is-not' IS_MINUS_NOT = 'is-not'
INCLUDES = 'includes' INCLUDES = 'includes'
NOT_MINUS_INCLUDES = 'not-includes' NOT_MINUS_INCLUDES = 'not-includes'
MATCHES = 'matches'
NOT_MINUS_MATCHES = 'not-matches'
UNKNOWN = 'unknown' UNKNOWN = 'unknown'
@classmethod @classmethod

View File

@ -17,7 +17,7 @@ Refer to the Usage API operations for detailed usage instructions and optional p
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.52 - API version: 7.0.53
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator