From b2a190c19ca950dcde7915354996593ef7ab366a Mon Sep 17 00:00:00 2001 From: Miguel Pragosa <154613770+mpragosa-te@users.noreply.github.com> Date: Tue, 15 Jul 2025 15:34:45 +0100 Subject: [PATCH] [GitHub Bot] Generated python SDK (#107) Co-authored-by: API Team --- thousandeyes-sdk-administrative/README.md | 2 +- thousandeyes-sdk-agents/README.md | 2 +- thousandeyes-sdk-alerts/README.md | 2 +- thousandeyes-sdk-bgp-monitors/README.md | 2 +- thousandeyes-sdk-credentials/README.md | 2 +- thousandeyes-sdk-dashboards/README.md | 2 +- thousandeyes-sdk-emulation/README.md | 2 +- thousandeyes-sdk-endpoint-agents/README.md | 2 +- .../README.md | 2 +- thousandeyes-sdk-endpoint-labels/README.md | 2 +- .../.openapi-generator/FILES | 6 + .../README.md | 5 +- .../EndpointNetworkTopologyResultRequest.md | 1 + .../EndpointNetworkTopologyThresholdFilter.md | 31 ++ .../docs/GatewayNetworkPing.md | 1 + .../docs/HttpEndpointTestResult.md | 1 + .../docs/LocalNetworksThresholdFilter.md | 32 ++ .../docs/LocalNetworksThresholdFilterName.md | 12 + .../docs/NetworkPing.md | 1 + .../docs/TargetNetworkPing.md | 1 + .../docs/VpnNetworkPing.md | 1 + .../endpoint_test_results/__init__.py | 3 + .../endpoint_test_results/models/__init__.py | 3 + ...ndpoint_network_topology_result_request.py | 8 +- ...point_network_topology_threshold_filter.py | 98 +++++ .../models/gateway_network_ping.py | 10 +- .../models/http_endpoint_test_result.py | 8 +- .../models/http_threshold_filter_name.py | 2 + .../models/local_networks_threshold_filter.py | 93 +++++ .../local_networks_threshold_filter_name.py | 43 ++ .../models/network_ping.py | 10 +- .../models/target_network_ping.py | 10 +- .../models/threshold_filter_name.py | 7 + .../models/vpn_network_ping.py | 10 +- ...ver_endpoint_scheduled_test_results_api.py | 390 +++++++++--------- ...local_network_endpoint_test_results_api.py | 16 + ...est_real_user_endpoint_test_results_api.py | 6 + thousandeyes-sdk-endpoint-tests/README.md | 2 +- thousandeyes-sdk-event-detection/README.md | 2 +- thousandeyes-sdk-instant-tests/README.md | 2 +- .../docs/ApiRequestAssertionOperator.md | 2 +- .../models/api_request_assertion_operator.py | 4 +- thousandeyes-sdk-internet-insights/README.md | 2 +- thousandeyes-sdk-snapshots/README.md | 2 +- thousandeyes-sdk-streaming/README.md | 12 +- .../docs/StreamingApi.md | 10 +- .../streaming/api/streaming_api.py | 10 +- thousandeyes-sdk-tags/README.md | 2 +- thousandeyes-sdk-test-results/README.md | 2 +- thousandeyes-sdk-tests/README.md | 2 +- .../docs/ApiRequestAssertionOperator.md | 2 +- .../models/api_request_assertion_operator.py | 4 +- thousandeyes-sdk-usage/README.md | 2 +- 53 files changed, 644 insertions(+), 247 deletions(-) create mode 100644 thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyThresholdFilter.md create mode 100644 thousandeyes-sdk-endpoint-test-results/docs/LocalNetworksThresholdFilter.md create mode 100644 thousandeyes-sdk-endpoint-test-results/docs/LocalNetworksThresholdFilterName.md create mode 100644 thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_threshold_filter.py create mode 100644 thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/local_networks_threshold_filter.py create mode 100644 thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/local_networks_threshold_filter_name.py diff --git a/thousandeyes-sdk-administrative/README.md b/thousandeyes-sdk-administrative/README.md index 24b1d74c..424acadb 100644 --- a/thousandeyes-sdk-administrative/README.md +++ b/thousandeyes-sdk-administrative/README.md @@ -12,7 +12,7 @@ This API provides the following operations to manage your organization: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-agents/README.md b/thousandeyes-sdk-agents/README.md index 872c7f24..8643216e 100644 --- a/thousandeyes-sdk-agents/README.md +++ b/thousandeyes-sdk-agents/README.md @@ -5,7 +5,7 @@ Manage Cloud and Enterprise Agents available to your account in ThousandEyes. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-alerts/README.md b/thousandeyes-sdk-alerts/README.md index 409e91fb..2e159272 100644 --- a/thousandeyes-sdk-alerts/README.md +++ b/thousandeyes-sdk-alerts/README.md @@ -12,7 +12,7 @@ For more information about the alerts, see [Alerts](https://docs.thousandeyes.co This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-bgp-monitors/README.md b/thousandeyes-sdk-bgp-monitors/README.md index a6b6547b..a3d73318 100644 --- a/thousandeyes-sdk-bgp-monitors/README.md +++ b/thousandeyes-sdk-bgp-monitors/README.md @@ -9,7 +9,7 @@ For more information about monitors, see [Inside-Out BGP Visibility](https://doc This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-credentials/README.md b/thousandeyes-sdk-credentials/README.md index 2d930ba3..aef21590 100644 --- a/thousandeyes-sdk-credentials/README.md +++ b/thousandeyes-sdk-credentials/README.md @@ -13,7 +13,7 @@ For more information about credentials, see [Working With Secure Credentials](ht This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-dashboards/README.md b/thousandeyes-sdk-dashboards/README.md index 63f05043..bd356b56 100644 --- a/thousandeyes-sdk-dashboards/README.md +++ b/thousandeyes-sdk-dashboards/README.md @@ -3,7 +3,7 @@ Manage ThousandEyes Dashboards. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-emulation/README.md b/thousandeyes-sdk-emulation/README.md index b98f4c3d..b13b8a8f 100644 --- a/thousandeyes-sdk-emulation/README.md +++ b/thousandeyes-sdk-emulation/README.md @@ -9,7 +9,7 @@ To access Emulation API operations, the following permissions are required: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-endpoint-agents/README.md b/thousandeyes-sdk-endpoint-agents/README.md index 6131762a..f7d50ec0 100644 --- a/thousandeyes-sdk-endpoint-agents/README.md +++ b/thousandeyes-sdk-endpoint-agents/README.md @@ -5,7 +5,7 @@ For more information about Endpoint Agents, see [Endpoint Agents](https://docs.t This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-endpoint-instant-tests/README.md b/thousandeyes-sdk-endpoint-instant-tests/README.md index 7045b614..bd2b2b37 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/README.md +++ b/thousandeyes-sdk-endpoint-instant-tests/README.md @@ -13,7 +13,7 @@ The URLs for these API test data endpoints are provided within the test definiti This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-endpoint-labels/README.md b/thousandeyes-sdk-endpoint-labels/README.md index 1c74d734..9f4ecf9c 100644 --- a/thousandeyes-sdk-endpoint-labels/README.md +++ b/thousandeyes-sdk-endpoint-labels/README.md @@ -4,7 +4,7 @@ Manage labels applied to endpoint agents using this API. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-endpoint-test-results/.openapi-generator/FILES b/thousandeyes-sdk-endpoint-test-results/.openapi-generator/FILES index 94a55d8c..8ed4d080 100644 --- a/thousandeyes-sdk-endpoint-test-results/.openapi-generator/FILES +++ b/thousandeyes-sdk-endpoint-test-results/.openapi-generator/FILES @@ -24,6 +24,7 @@ docs/EndpointHttpServerTest.md docs/EndpointIpVersionTemplate.md docs/EndpointNetworkTopologyResultRequest.md docs/EndpointNetworkTopologyResultRequestFilter.md +docs/EndpointNetworkTopologyThresholdFilter.md docs/EndpointPathTrace.md docs/EndpointPathVisHop.md docs/EndpointPathVisRoute.md @@ -80,6 +81,8 @@ docs/LocalNetworkTopologyDetailResults.md docs/LocalNetworkTopologyResult.md docs/LocalNetworkTopologyResultBase.md docs/LocalNetworkTopologyResults.md +docs/LocalNetworksThresholdFilter.md +docs/LocalNetworksThresholdFilterName.md docs/MultiTestIdEndpointTestsDataRoundsSearch.md docs/MultiTestIdEndpointTestsDataSearchFilter.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_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_threshold_filter.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_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_base.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_search_filter.py src/thousandeyes_sdk/endpoint_test_results/models/multi_test_id_network_endpoint_test_results.py diff --git a/thousandeyes-sdk-endpoint-test-results/README.md b/thousandeyes-sdk-endpoint-test-results/README.md index c1d14d68..4e5ccaa7 100644 --- a/thousandeyes-sdk-endpoint-test-results/README.md +++ b/thousandeyes-sdk-endpoint-test-results/README.md @@ -3,7 +3,7 @@ Retrieve results for scheduled and dynamic tests on endpoint agents. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - 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) - [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) + - [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) - [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) @@ -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) - [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) + - [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) - [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) diff --git a/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyResultRequest.md b/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyResultRequest.md index 95566224..7d297141 100644 --- a/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyResultRequest.md +++ b/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyResultRequest.md @@ -5,6 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**threshold_filter** | [**EndpointNetworkTopologyThresholdFilter**](EndpointNetworkTopologyThresholdFilter.md) | | [optional] **search_filters** | [**EndpointNetworkTopologyResultRequestFilter**](EndpointNetworkTopologyResultRequestFilter.md) | | [optional] ## Example diff --git a/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyThresholdFilter.md b/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyThresholdFilter.md new file mode 100644 index 00000000..47d3ad92 --- /dev/null +++ b/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyThresholdFilter.md @@ -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) + + diff --git a/thousandeyes-sdk-endpoint-test-results/docs/GatewayNetworkPing.md b/thousandeyes-sdk-endpoint-test-results/docs/GatewayNetworkPing.md index e95a7976..4ac5a848 100644 --- a/thousandeyes-sdk-endpoint-test-results/docs/GatewayNetworkPing.md +++ b/thousandeyes-sdk-endpoint-test-results/docs/GatewayNetworkPing.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **avg_rtt** | **int** | Ping average 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] **min_rtt** | **int** | Ping minimum response time. | [optional] [readonly] **pkts_received** | **int** | Ping packets received. | [optional] [readonly] diff --git a/thousandeyes-sdk-endpoint-test-results/docs/HttpEndpointTestResult.md b/thousandeyes-sdk-endpoint-test-results/docs/HttpEndpointTestResult.md index e99209d6..05e3a6ae 100644 --- a/thousandeyes-sdk-endpoint-test-results/docs/HttpEndpointTestResult.md +++ b/thousandeyes-sdk-endpoint-test-results/docs/HttpEndpointTestResult.md @@ -29,6 +29,7 @@ Name | Type | Description | Notes **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] **wire_size** | **int** | Size of content in bytes. | [optional] [readonly] +**throughput** | **int** | Amount of data transmitted, in bytes. | [optional] [readonly] ## Example diff --git a/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworksThresholdFilter.md b/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworksThresholdFilter.md new file mode 100644 index 00000000..38693d10 --- /dev/null +++ b/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworksThresholdFilter.md @@ -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) + + diff --git a/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworksThresholdFilterName.md b/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworksThresholdFilterName.md new file mode 100644 index 00000000..8f1dce19 --- /dev/null +++ b/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworksThresholdFilterName.md @@ -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) + + diff --git a/thousandeyes-sdk-endpoint-test-results/docs/NetworkPing.md b/thousandeyes-sdk-endpoint-test-results/docs/NetworkPing.md index 5b6522c7..e76ab42a 100644 --- a/thousandeyes-sdk-endpoint-test-results/docs/NetworkPing.md +++ b/thousandeyes-sdk-endpoint-test-results/docs/NetworkPing.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **avg_rtt** | **int** | Ping average 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] **min_rtt** | **int** | Ping minimum response time. | [optional] [readonly] **pkts_received** | **int** | Ping packets received. | [optional] [readonly] diff --git a/thousandeyes-sdk-endpoint-test-results/docs/TargetNetworkPing.md b/thousandeyes-sdk-endpoint-test-results/docs/TargetNetworkPing.md index 415fd691..42942d51 100644 --- a/thousandeyes-sdk-endpoint-test-results/docs/TargetNetworkPing.md +++ b/thousandeyes-sdk-endpoint-test-results/docs/TargetNetworkPing.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **avg_rtt** | **int** | Ping average 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] **min_rtt** | **int** | Ping minimum response time. | [optional] [readonly] **pkts_received** | **int** | Ping packets received. | [optional] [readonly] diff --git a/thousandeyes-sdk-endpoint-test-results/docs/VpnNetworkPing.md b/thousandeyes-sdk-endpoint-test-results/docs/VpnNetworkPing.md index 917be4ac..95da647a 100644 --- a/thousandeyes-sdk-endpoint-test-results/docs/VpnNetworkPing.md +++ b/thousandeyes-sdk-endpoint-test-results/docs/VpnNetworkPing.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **avg_rtt** | **int** | Ping average 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] **min_rtt** | **int** | Ping minimum response time. | [optional] [readonly] **pkts_received** | **int** | Ping packets received. | [optional] [readonly] diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/__init__.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/__init__.py index 9514b697..ffbe9ab4 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/__init__.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/__init__.py @@ -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_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_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_vis_hop import EndpointPathVisHop 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_base import LocalNetworkTopologyResultBase 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_search_filter import MultiTestIdEndpointTestsDataSearchFilter from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_network_endpoint_test_results import MultiTestIdNetworkEndpointTestResults diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/__init__.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/__init__.py index 0c54bf1c..7c849d4f 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/__init__.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/__init__.py @@ -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_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_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_vis_hop import EndpointPathVisHop 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_base import LocalNetworkTopologyResultBase 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_search_filter import MultiTestIdEndpointTestsDataSearchFilter from thousandeyes_sdk.endpoint_test_results.models.multi_test_id_network_endpoint_test_results import MultiTestIdNetworkEndpointTestResults diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_result_request.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_result_request.py index 5ca9c654..26443737 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_result_request.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_result_request.py @@ -19,6 +19,7 @@ import json from pydantic import BaseModel, ConfigDict, Field 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_threshold_filter import EndpointNetworkTopologyThresholdFilter from typing import Optional, Set from typing_extensions import Self @@ -26,8 +27,9 @@ class EndpointNetworkTopologyResultRequest(BaseModel): """ EndpointNetworkTopologyResultRequest """ # noqa: E501 + threshold_filter: Optional[EndpointNetworkTopologyThresholdFilter] = Field(default=None, alias="thresholdFilter") search_filters: Optional[EndpointNetworkTopologyResultRequestFilter] = Field(default=None, alias="searchFilters") - __properties: ClassVar[List[str]] = ["searchFilters"] + __properties: ClassVar[List[str]] = ["thresholdFilter", "searchFilters"] model_config = ConfigDict( populate_by_name=True, @@ -69,6 +71,9 @@ class EndpointNetworkTopologyResultRequest(BaseModel): exclude=excluded_fields, 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 if self.search_filters: _dict['searchFilters'] = self.search_filters.to_dict() @@ -84,6 +89,7 @@ class EndpointNetworkTopologyResultRequest(BaseModel): return cls.model_validate(obj) _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 }) return _obj diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_threshold_filter.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_threshold_filter.py new file mode 100644 index 00000000..afc2baa1 --- /dev/null +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_threshold_filter.py @@ -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 + + diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/gateway_network_ping.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/gateway_network_ping.py index e75cc606..cd7385ea 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/gateway_network_ping.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/gateway_network_ping.py @@ -16,8 +16,8 @@ import pprint import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional, Union from typing import Optional, Set from typing_extensions import Self @@ -27,13 +27,14 @@ class GatewayNetworkPing(BaseModel): """ # noqa: E501 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") + 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") 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_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.") 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( 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. """ excluded_fields: Set[str] = set([ "avg_rtt", "max_rtt", + "loss", "mean_dev_rtt", "min_rtt", "pkts_received", @@ -105,6 +108,7 @@ class GatewayNetworkPing(BaseModel): _obj = cls.model_validate({ "avgRtt": obj.get("avgRtt"), "maxRtt": obj.get("maxRtt"), + "loss": obj.get("loss"), "meanDevRtt": obj.get("meanDevRtt"), "minRtt": obj.get("minRtt"), "pktsReceived": obj.get("pktsReceived"), diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/http_endpoint_test_result.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/http_endpoint_test_result.py index 3d03f0a6..9768b149 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/http_endpoint_test_result.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/http_endpoint_test_result.py @@ -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") wait_time: Optional[StrictInt] = Field(default=None, description="Time elapsed between completion of request and first byte of response in milliseconds.", alias="waitTime") wire_size: Optional[StrictInt] = Field(default=None, description="Size of content in bytes.", alias="wireSize") - __properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "vpnProfile", "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( 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. """ excluded_fields: Set[str] = set([ "test_id", @@ -123,6 +125,7 @@ class HttpEndpointTestResult(BaseModel): "total_time", "wait_time", "wire_size", + "throughput", ]) _dict = self.model_dump( @@ -183,7 +186,8 @@ class HttpEndpointTestResult(BaseModel): "sslTime": obj.get("sslTime"), "totalTime": obj.get("totalTime"), "waitTime": obj.get("waitTime"), - "wireSize": obj.get("wireSize") + "wireSize": obj.get("wireSize"), + "throughput": obj.get("throughput") }) return _obj diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/http_threshold_filter_name.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/http_threshold_filter_name.py index dd89be0f..e8c74cfe 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/http_threshold_filter_name.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/http_threshold_filter_name.py @@ -28,8 +28,10 @@ class HttpThresholdFilterName(str, Enum): RESPONSE_MINUS_TIME = 'response-time' DNS_MINUS_TIME = 'dns-time' CONNECT_MINUS_TIME = 'connect-time' + THROUGHPUT = 'throughput' SSL_MINUS_TIME = 'ssl-time' WAIT_MINUS_TIME = 'wait-time' + APPLICATION_MINUS_SCORE = 'application-score' UNKNOWN = 'unknown' @classmethod diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/local_networks_threshold_filter.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/local_networks_threshold_filter.py new file mode 100644 index 00000000..c6ee5551 --- /dev/null +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/local_networks_threshold_filter.py @@ -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 + + diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/local_networks_threshold_filter_name.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/local_networks_threshold_filter_name.py new file mode 100644 index 00000000..4fa30e13 --- /dev/null +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/local_networks_threshold_filter_name.py @@ -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 + diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/network_ping.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/network_ping.py index bcc90165..9e2d0d4c 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/network_ping.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/network_ping.py @@ -16,8 +16,8 @@ import pprint import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional, Union from typing import Optional, Set from typing_extensions import Self @@ -27,13 +27,14 @@ class NetworkPing(BaseModel): """ # noqa: E501 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") + 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") 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_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.") 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( 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. """ excluded_fields: Set[str] = set([ "avg_rtt", "max_rtt", + "loss", "mean_dev_rtt", "min_rtt", "pkts_received", @@ -105,6 +108,7 @@ class NetworkPing(BaseModel): _obj = cls.model_validate({ "avgRtt": obj.get("avgRtt"), "maxRtt": obj.get("maxRtt"), + "loss": obj.get("loss"), "meanDevRtt": obj.get("meanDevRtt"), "minRtt": obj.get("minRtt"), "pktsReceived": obj.get("pktsReceived"), diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/target_network_ping.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/target_network_ping.py index 948beea6..bf3a20b4 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/target_network_ping.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/target_network_ping.py @@ -16,8 +16,8 @@ import pprint import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional, Union from typing import Optional, Set from typing_extensions import Self @@ -27,13 +27,14 @@ class TargetNetworkPing(BaseModel): """ # noqa: E501 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") + 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") 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_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.") 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( 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. """ excluded_fields: Set[str] = set([ "avg_rtt", "max_rtt", + "loss", "mean_dev_rtt", "min_rtt", "pkts_received", @@ -105,6 +108,7 @@ class TargetNetworkPing(BaseModel): _obj = cls.model_validate({ "avgRtt": obj.get("avgRtt"), "maxRtt": obj.get("maxRtt"), + "loss": obj.get("loss"), "meanDevRtt": obj.get("meanDevRtt"), "minRtt": obj.get("minRtt"), "pktsReceived": obj.get("pktsReceived"), diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/threshold_filter_name.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/threshold_filter_name.py index a7670a94..9bf0d08c 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/threshold_filter_name.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/threshold_filter_name.py @@ -31,6 +31,13 @@ class ThresholdFilterName(str, Enum): CPU = 'cpu' MEMORY = 'memory' 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' @classmethod diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/vpn_network_ping.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/vpn_network_ping.py index c0ae3b1c..fb833aed 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/vpn_network_ping.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/vpn_network_ping.py @@ -16,8 +16,8 @@ import pprint import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional, Union from typing import Optional, Set from typing_extensions import Self @@ -27,13 +27,14 @@ class VpnNetworkPing(BaseModel): """ # noqa: E501 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") + 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") 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_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.") 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( 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. """ excluded_fields: Set[str] = set([ "avg_rtt", "max_rtt", + "loss", "mean_dev_rtt", "min_rtt", "pkts_received", @@ -105,6 +108,7 @@ class VpnNetworkPing(BaseModel): _obj = cls.model_validate({ "avgRtt": obj.get("avgRtt"), "maxRtt": obj.get("maxRtt"), + "loss": obj.get("loss"), "meanDevRtt": obj.get("meanDevRtt"), "minRtt": obj.get("minRtt"), "pktsReceived": obj.get("pktsReceived"), diff --git a/thousandeyes-sdk-endpoint-test-results/test/test_http_server_endpoint_scheduled_test_results_api.py b/thousandeyes-sdk-endpoint-test-results/test/test_http_server_endpoint_scheduled_test_results_api.py index ed1df409..8153e38d 100644 --- a/thousandeyes-sdk-endpoint-test-results/test/test_http_server_endpoint_scheduled_test_results_api.py +++ b/thousandeyes-sdk-endpoint-test-results/test/test_http_server_endpoint_scheduled_test_results_api.py @@ -122,12 +122,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "remotePort" : 80, "remoteIpAddress" : "120.98.134.7" }, - "headers" : { - "requestHeaders" : "GET / HTTP/1.1\\r\\nHost: www.thousandeyes.com\\r\\nUser-Agent: curl/7.58.0-DEV\\r\\nAccept: */*\\r\\nAccept-Encoding: deflate, gzip\\r\\nX-ThousandEyes-Agent: yes\\r\\n", - "responseHeaders" : "HTTP/1.1 200 OK\\r\\nContent-Type: text/html;charset=UTF-8\\r\\nContent-Length: 9993\\r\\nConnection: keep-alive\\r\\nDate: Mon, 04 May 2020 16:13:00 GMT\\r\\nServer: Apache\\r\\nContent-Language: en-US\\r\\nContent-Encoding: gzip\\r\\nX-Frame-Options: sameorigin\\r\\nCache-Control: max-age=600, must-revalidate\\r\\nStrict-Transport-Security: max-age=31536000\\r\\nX-Content-Type-Options: nosniff\\r\\nX-XSS-Protection: 1; mode=block\\r\\nVary: Accept-Encoding\\r\\nX-Cache: Hit from cloudfront\\r\\nVia: 1.1 7ba3caf71ae7a52dd411d1a543e80cd8.cloudfront.net (CloudFront)\\r\\nX-Amz-Cf-Pop: SFO5-C3\\r\\nX-Amz-Cf-Id: w4h42tkoJD-rEpkRDZUvnQBmy26GVGe6pUsuRr1Dphf7oajYbjXaOA==\\r\\nAge: 132\\r\\n" - }, "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49", - "redirectTime" : 10, "numRedirects" : 0, "vpnProfile" : { "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], @@ -136,38 +131,12 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "errorType" : "connect", - "responseTime" : 14, - "totalTime" : 15, "responseCode" : 200, - "receiveTime" : 1, "score" : { "applicationScore" : 100.0, "quality" : "great" }, - "systemMetrics" : { - "cpuUtilization" : { - "min" : 0.22, - "median" : 0.61, - "max" : 0.75, - "mean" : 0.55, - "count" : 150, - "stdDev" : 0.01 - }, - "physicalMemoryTotalBytes" : 1024, - "startTimeMs" : 1581508857327, - "physicalMemoryUsedBytes" : { - "min" : 1.2, - "median" : 1.85, - "max" : 2.5, - "mean" : 1.77, - "count" : 155, - "stdDev" : 0.25 - }, - "endTimeMs" : 1581508867333 - }, "connectTime" : 2, - "dnsTime" : 0, - "serverIp" : "193.2.1.88", "networkProfile" : { "previousInterface" : { "publicIpAddress" : "84.255.241.1", @@ -214,10 +183,42 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "dnsServers" : [ "8.8.8.8", "8.8.8.4" ], "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", "sslTime" : 9, "aid" : "1234", - "roundId" : 1384309800, "waitTime" : 3, "errorDetails" : "errorDetails", "wireSize" : 9993 @@ -227,12 +228,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "remotePort" : 80, "remoteIpAddress" : "120.98.134.7" }, - "headers" : { - "requestHeaders" : "GET / HTTP/1.1\\r\\nHost: www.thousandeyes.com\\r\\nUser-Agent: curl/7.58.0-DEV\\r\\nAccept: */*\\r\\nAccept-Encoding: deflate, gzip\\r\\nX-ThousandEyes-Agent: yes\\r\\n", - "responseHeaders" : "HTTP/1.1 200 OK\\r\\nContent-Type: text/html;charset=UTF-8\\r\\nContent-Length: 9993\\r\\nConnection: keep-alive\\r\\nDate: Mon, 04 May 2020 16:13:00 GMT\\r\\nServer: Apache\\r\\nContent-Language: en-US\\r\\nContent-Encoding: gzip\\r\\nX-Frame-Options: sameorigin\\r\\nCache-Control: max-age=600, must-revalidate\\r\\nStrict-Transport-Security: max-age=31536000\\r\\nX-Content-Type-Options: nosniff\\r\\nX-XSS-Protection: 1; mode=block\\r\\nVary: Accept-Encoding\\r\\nX-Cache: Hit from cloudfront\\r\\nVia: 1.1 7ba3caf71ae7a52dd411d1a543e80cd8.cloudfront.net (CloudFront)\\r\\nX-Amz-Cf-Pop: SFO5-C3\\r\\nX-Amz-Cf-Id: w4h42tkoJD-rEpkRDZUvnQBmy26GVGe6pUsuRr1Dphf7oajYbjXaOA==\\r\\nAge: 132\\r\\n" - }, "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49", - "redirectTime" : 10, "numRedirects" : 0, "vpnProfile" : { "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], @@ -241,38 +237,12 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "errorType" : "connect", - "responseTime" : 14, - "totalTime" : 15, "responseCode" : 200, - "receiveTime" : 1, "score" : { "applicationScore" : 100.0, "quality" : "great" }, - "systemMetrics" : { - "cpuUtilization" : { - "min" : 0.22, - "median" : 0.61, - "max" : 0.75, - "mean" : 0.55, - "count" : 150, - "stdDev" : 0.01 - }, - "physicalMemoryTotalBytes" : 1024, - "startTimeMs" : 1581508857327, - "physicalMemoryUsedBytes" : { - "min" : 1.2, - "median" : 1.85, - "max" : 2.5, - "mean" : 1.77, - "count" : 155, - "stdDev" : 0.25 - }, - "endTimeMs" : 1581508867333 - }, "connectTime" : 2, - "dnsTime" : 0, - "serverIp" : "193.2.1.88", "networkProfile" : { "previousInterface" : { "publicIpAddress" : "84.255.241.1", @@ -319,10 +289,42 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "dnsServers" : [ "8.8.8.8", "8.8.8.4" ], "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", "sslTime" : 9, "aid" : "1234", - "roundId" : 1384309800, "waitTime" : 3, "errorDetails" : "errorDetails", "wireSize" : 9993 @@ -399,12 +401,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "remotePort" : 80, "remoteIpAddress" : "120.98.134.7" }, - "headers" : { - "requestHeaders" : "GET / HTTP/1.1\\r\\nHost: www.thousandeyes.com\\r\\nUser-Agent: curl/7.58.0-DEV\\r\\nAccept: */*\\r\\nAccept-Encoding: deflate, gzip\\r\\nX-ThousandEyes-Agent: yes\\r\\n", - "responseHeaders" : "HTTP/1.1 200 OK\\r\\nContent-Type: text/html;charset=UTF-8\\r\\nContent-Length: 9993\\r\\nConnection: keep-alive\\r\\nDate: Mon, 04 May 2020 16:13:00 GMT\\r\\nServer: Apache\\r\\nContent-Language: en-US\\r\\nContent-Encoding: gzip\\r\\nX-Frame-Options: sameorigin\\r\\nCache-Control: max-age=600, must-revalidate\\r\\nStrict-Transport-Security: max-age=31536000\\r\\nX-Content-Type-Options: nosniff\\r\\nX-XSS-Protection: 1; mode=block\\r\\nVary: Accept-Encoding\\r\\nX-Cache: Hit from cloudfront\\r\\nVia: 1.1 7ba3caf71ae7a52dd411d1a543e80cd8.cloudfront.net (CloudFront)\\r\\nX-Amz-Cf-Pop: SFO5-C3\\r\\nX-Amz-Cf-Id: w4h42tkoJD-rEpkRDZUvnQBmy26GVGe6pUsuRr1Dphf7oajYbjXaOA==\\r\\nAge: 132\\r\\n" - }, "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49", - "redirectTime" : 10, "numRedirects" : 0, "vpnProfile" : { "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], @@ -413,38 +410,12 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "errorType" : "connect", - "responseTime" : 14, - "totalTime" : 15, "responseCode" : 200, - "receiveTime" : 1, "score" : { "applicationScore" : 100.0, "quality" : "great" }, - "systemMetrics" : { - "cpuUtilization" : { - "min" : 0.22, - "median" : 0.61, - "max" : 0.75, - "mean" : 0.55, - "count" : 150, - "stdDev" : 0.01 - }, - "physicalMemoryTotalBytes" : 1024, - "startTimeMs" : 1581508857327, - "physicalMemoryUsedBytes" : { - "min" : 1.2, - "median" : 1.85, - "max" : 2.5, - "mean" : 1.77, - "count" : 155, - "stdDev" : 0.25 - }, - "endTimeMs" : 1581508867333 - }, "connectTime" : 2, - "dnsTime" : 0, - "serverIp" : "193.2.1.88", "networkProfile" : { "previousInterface" : { "publicIpAddress" : "84.255.241.1", @@ -491,10 +462,42 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "dnsServers" : [ "8.8.8.8", "8.8.8.4" ], "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", "sslTime" : 9, "aid" : "1234", - "roundId" : 1384309800, "waitTime" : 3, "errorDetails" : "errorDetails", "wireSize" : 9993 @@ -504,12 +507,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "remotePort" : 80, "remoteIpAddress" : "120.98.134.7" }, - "headers" : { - "requestHeaders" : "GET / HTTP/1.1\\r\\nHost: www.thousandeyes.com\\r\\nUser-Agent: curl/7.58.0-DEV\\r\\nAccept: */*\\r\\nAccept-Encoding: deflate, gzip\\r\\nX-ThousandEyes-Agent: yes\\r\\n", - "responseHeaders" : "HTTP/1.1 200 OK\\r\\nContent-Type: text/html;charset=UTF-8\\r\\nContent-Length: 9993\\r\\nConnection: keep-alive\\r\\nDate: Mon, 04 May 2020 16:13:00 GMT\\r\\nServer: Apache\\r\\nContent-Language: en-US\\r\\nContent-Encoding: gzip\\r\\nX-Frame-Options: sameorigin\\r\\nCache-Control: max-age=600, must-revalidate\\r\\nStrict-Transport-Security: max-age=31536000\\r\\nX-Content-Type-Options: nosniff\\r\\nX-XSS-Protection: 1; mode=block\\r\\nVary: Accept-Encoding\\r\\nX-Cache: Hit from cloudfront\\r\\nVia: 1.1 7ba3caf71ae7a52dd411d1a543e80cd8.cloudfront.net (CloudFront)\\r\\nX-Amz-Cf-Pop: SFO5-C3\\r\\nX-Amz-Cf-Id: w4h42tkoJD-rEpkRDZUvnQBmy26GVGe6pUsuRr1Dphf7oajYbjXaOA==\\r\\nAge: 132\\r\\n" - }, "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49", - "redirectTime" : 10, "numRedirects" : 0, "vpnProfile" : { "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], @@ -518,38 +516,12 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "errorType" : "connect", - "responseTime" : 14, - "totalTime" : 15, "responseCode" : 200, - "receiveTime" : 1, "score" : { "applicationScore" : 100.0, "quality" : "great" }, - "systemMetrics" : { - "cpuUtilization" : { - "min" : 0.22, - "median" : 0.61, - "max" : 0.75, - "mean" : 0.55, - "count" : 150, - "stdDev" : 0.01 - }, - "physicalMemoryTotalBytes" : 1024, - "startTimeMs" : 1581508857327, - "physicalMemoryUsedBytes" : { - "min" : 1.2, - "median" : 1.85, - "max" : 2.5, - "mean" : 1.77, - "count" : 155, - "stdDev" : 0.25 - }, - "endTimeMs" : 1581508867333 - }, "connectTime" : 2, - "dnsTime" : 0, - "serverIp" : "193.2.1.88", "networkProfile" : { "previousInterface" : { "publicIpAddress" : "84.255.241.1", @@ -596,10 +568,42 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "dnsServers" : [ "8.8.8.8", "8.8.8.4" ], "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", "sslTime" : 9, "aid" : "1234", - "roundId" : 1384309800, "waitTime" : 3, "errorDetails" : "errorDetails", "wireSize" : 9993 @@ -676,12 +680,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "remotePort" : 80, "remoteIpAddress" : "120.98.134.7" }, - "headers" : { - "requestHeaders" : "GET / HTTP/1.1\\r\\nHost: www.thousandeyes.com\\r\\nUser-Agent: curl/7.58.0-DEV\\r\\nAccept: */*\\r\\nAccept-Encoding: deflate, gzip\\r\\nX-ThousandEyes-Agent: yes\\r\\n", - "responseHeaders" : "HTTP/1.1 200 OK\\r\\nContent-Type: text/html;charset=UTF-8\\r\\nContent-Length: 9993\\r\\nConnection: keep-alive\\r\\nDate: Mon, 04 May 2020 16:13:00 GMT\\r\\nServer: Apache\\r\\nContent-Language: en-US\\r\\nContent-Encoding: gzip\\r\\nX-Frame-Options: sameorigin\\r\\nCache-Control: max-age=600, must-revalidate\\r\\nStrict-Transport-Security: max-age=31536000\\r\\nX-Content-Type-Options: nosniff\\r\\nX-XSS-Protection: 1; mode=block\\r\\nVary: Accept-Encoding\\r\\nX-Cache: Hit from cloudfront\\r\\nVia: 1.1 7ba3caf71ae7a52dd411d1a543e80cd8.cloudfront.net (CloudFront)\\r\\nX-Amz-Cf-Pop: SFO5-C3\\r\\nX-Amz-Cf-Id: w4h42tkoJD-rEpkRDZUvnQBmy26GVGe6pUsuRr1Dphf7oajYbjXaOA==\\r\\nAge: 132\\r\\n" - }, "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49", - "redirectTime" : 10, "numRedirects" : 0, "vpnProfile" : { "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], @@ -690,38 +689,12 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "errorType" : "connect", - "responseTime" : 14, - "totalTime" : 15, "responseCode" : 200, - "receiveTime" : 1, "score" : { "applicationScore" : 100.0, "quality" : "great" }, - "systemMetrics" : { - "cpuUtilization" : { - "min" : 0.22, - "median" : 0.61, - "max" : 0.75, - "mean" : 0.55, - "count" : 150, - "stdDev" : 0.01 - }, - "physicalMemoryTotalBytes" : 1024, - "startTimeMs" : 1581508857327, - "physicalMemoryUsedBytes" : { - "min" : 1.2, - "median" : 1.85, - "max" : 2.5, - "mean" : 1.77, - "count" : 155, - "stdDev" : 0.25 - }, - "endTimeMs" : 1581508867333 - }, "connectTime" : 2, - "dnsTime" : 0, - "serverIp" : "193.2.1.88", "networkProfile" : { "previousInterface" : { "publicIpAddress" : "84.255.241.1", @@ -768,10 +741,42 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "dnsServers" : [ "8.8.8.8", "8.8.8.4" ], "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", "sslTime" : 9, "aid" : "1234", - "roundId" : 1384309800, "waitTime" : 3, "errorDetails" : "errorDetails", "wireSize" : 9993 @@ -781,12 +786,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "remotePort" : 80, "remoteIpAddress" : "120.98.134.7" }, - "headers" : { - "requestHeaders" : "GET / HTTP/1.1\\r\\nHost: www.thousandeyes.com\\r\\nUser-Agent: curl/7.58.0-DEV\\r\\nAccept: */*\\r\\nAccept-Encoding: deflate, gzip\\r\\nX-ThousandEyes-Agent: yes\\r\\n", - "responseHeaders" : "HTTP/1.1 200 OK\\r\\nContent-Type: text/html;charset=UTF-8\\r\\nContent-Length: 9993\\r\\nConnection: keep-alive\\r\\nDate: Mon, 04 May 2020 16:13:00 GMT\\r\\nServer: Apache\\r\\nContent-Language: en-US\\r\\nContent-Encoding: gzip\\r\\nX-Frame-Options: sameorigin\\r\\nCache-Control: max-age=600, must-revalidate\\r\\nStrict-Transport-Security: max-age=31536000\\r\\nX-Content-Type-Options: nosniff\\r\\nX-XSS-Protection: 1; mode=block\\r\\nVary: Accept-Encoding\\r\\nX-Cache: Hit from cloudfront\\r\\nVia: 1.1 7ba3caf71ae7a52dd411d1a543e80cd8.cloudfront.net (CloudFront)\\r\\nX-Amz-Cf-Pop: SFO5-C3\\r\\nX-Amz-Cf-Id: w4h42tkoJD-rEpkRDZUvnQBmy26GVGe6pUsuRr1Dphf7oajYbjXaOA==\\r\\nAge: 132\\r\\n" - }, "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49", - "redirectTime" : 10, "numRedirects" : 0, "vpnProfile" : { "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], @@ -795,38 +795,12 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "errorType" : "connect", - "responseTime" : 14, - "totalTime" : 15, "responseCode" : 200, - "receiveTime" : 1, "score" : { "applicationScore" : 100.0, "quality" : "great" }, - "systemMetrics" : { - "cpuUtilization" : { - "min" : 0.22, - "median" : 0.61, - "max" : 0.75, - "mean" : 0.55, - "count" : 150, - "stdDev" : 0.01 - }, - "physicalMemoryTotalBytes" : 1024, - "startTimeMs" : 1581508857327, - "physicalMemoryUsedBytes" : { - "min" : 1.2, - "median" : 1.85, - "max" : 2.5, - "mean" : 1.77, - "count" : 155, - "stdDev" : 0.25 - }, - "endTimeMs" : 1581508867333 - }, "connectTime" : 2, - "dnsTime" : 0, - "serverIp" : "193.2.1.88", "networkProfile" : { "previousInterface" : { "publicIpAddress" : "84.255.241.1", @@ -873,10 +847,42 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "dnsServers" : [ "8.8.8.8", "8.8.8.4" ], "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", "sslTime" : 9, "aid" : "1234", - "roundId" : 1384309800, "waitTime" : 3, "errorDetails" : "errorDetails", "wireSize" : 9993 diff --git a/thousandeyes-sdk-endpoint-test-results/test/test_local_network_endpoint_test_results_api.py b/thousandeyes-sdk-endpoint-test-results/test/test_local_network_endpoint_test_results_api.py index 3f9f1122..ae7e3d79 100644 --- a/thousandeyes-sdk-endpoint-test-results/test/test_local_network_endpoint_test_results_api.py +++ b/thousandeyes-sdk-endpoint-test-results/test/test_local_network_endpoint_test_results_api.py @@ -44,6 +44,18 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): "platform" : [ "mac", "mac" ], "gateway" : [ "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" : { "maxRtt" : 66, + "loss" : 1.0, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -336,6 +349,7 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): }, "icmpPing" : { "maxRtt" : 66, + "loss" : 1.0, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -656,6 +670,7 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): }, "icmpPing" : { "maxRtt" : 66, + "loss" : 1.0, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -917,6 +932,7 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): }, "icmpPing" : { "maxRtt" : 66, + "loss" : 1.0, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, diff --git a/thousandeyes-sdk-endpoint-test-results/test/test_real_user_endpoint_test_results_api.py b/thousandeyes-sdk-endpoint-test-results/test/test_real_user_endpoint_test_results_api.py index a061d38b..36d931da 100644 --- a/thousandeyes-sdk-endpoint-test-results/test/test_real_user_endpoint_test_results_api.py +++ b/thousandeyes-sdk-endpoint-test-results/test/test_real_user_endpoint_test_results_api.py @@ -660,6 +660,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): "isIcmpBlocked" : true, "vpnPing" : { "maxRtt" : 66, + "loss" : 1.0, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -670,6 +671,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): }, "ping" : { "maxRtt" : 66, + "loss" : 1.0, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -773,6 +775,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): "connectRtt" : 77.777, "gatewayPing" : { "maxRtt" : 66, + "loss" : 1.0, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -851,6 +854,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): "isIcmpBlocked" : true, "vpnPing" : { "maxRtt" : 66, + "loss" : 1.0, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -861,6 +865,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): }, "ping" : { "maxRtt" : 66, + "loss" : 1.0, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -964,6 +969,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): "connectRtt" : 77.777, "gatewayPing" : { "maxRtt" : 66, + "loss" : 1.0, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, diff --git a/thousandeyes-sdk-endpoint-tests/README.md b/thousandeyes-sdk-endpoint-tests/README.md index 88b6ea17..2326b6a0 100644 --- a/thousandeyes-sdk-endpoint-tests/README.md +++ b/thousandeyes-sdk-endpoint-tests/README.md @@ -5,7 +5,7 @@ Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-event-detection/README.md b/thousandeyes-sdk-event-detection/README.md index fffc182f..a5caa0ea 100644 --- a/thousandeyes-sdk-event-detection/README.md +++ b/thousandeyes-sdk-event-detection/README.md @@ -12,7 +12,7 @@ With the Events API, you can perform the following tasks on the ThousandEyes pla This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-instant-tests/README.md b/thousandeyes-sdk-instant-tests/README.md index 77be6b65..a24e3c2b 100644 --- a/thousandeyes-sdk-instant-tests/README.md +++ b/thousandeyes-sdk-instant-tests/README.md @@ -6,7 +6,7 @@ The response does not include the immediate test results. Use the Test Results e This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-instant-tests/docs/ApiRequestAssertionOperator.md b/thousandeyes-sdk-instant-tests/docs/ApiRequestAssertionOperator.md index d7f32965..9b0afedf 100644 --- a/thousandeyes-sdk-instant-tests/docs/ApiRequestAssertionOperator.md +++ b/thousandeyes-sdk-instant-tests/docs/ApiRequestAssertionOperator.md @@ -1,6 +1,6 @@ # 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 diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_request_assertion_operator.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_request_assertion_operator.py index 679a6014..1718ed0c 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_request_assertion_operator.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_request_assertion_operator.py @@ -19,7 +19,7 @@ from typing_extensions import Self 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' INCLUDES = 'includes' NOT_MINUS_INCLUDES = 'not-includes' + MATCHES = 'matches' + NOT_MINUS_MATCHES = 'not-matches' UNKNOWN = 'unknown' @classmethod diff --git a/thousandeyes-sdk-internet-insights/README.md b/thousandeyes-sdk-internet-insights/README.md index 90a53916..fc012d9a 100644 --- a/thousandeyes-sdk-internet-insights/README.md +++ b/thousandeyes-sdk-internet-insights/README.md @@ -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: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-snapshots/README.md b/thousandeyes-sdk-snapshots/README.md index 702e40f6..563a324f 100644 --- a/thousandeyes-sdk-snapshots/README.md +++ b/thousandeyes-sdk-snapshots/README.md @@ -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: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-streaming/README.md b/thousandeyes-sdk-streaming/README.md index a14deb1d..e678d0ee 100644 --- a/thousandeyes-sdk-streaming/README.md +++ b/thousandeyes-sdk-streaming/README.md @@ -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: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - 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 ------------ | ------------- | ------------- | ------------- -*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* | [**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* | [**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_streams**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#get_streams) | **GET** /stream | 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* | [**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** /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** /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** /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** /streams/{id} | Update data stream ## Documentation For Models diff --git a/thousandeyes-sdk-streaming/docs/StreamingApi.md b/thousandeyes-sdk-streaming/docs/StreamingApi.md index a2091eac..ebf24a0c 100644 --- a/thousandeyes-sdk-streaming/docs/StreamingApi.md +++ b/thousandeyes-sdk-streaming/docs/StreamingApi.md @@ -4,11 +4,11 @@ All URIs are relative to *https://api.thousandeyes.com/v7* Method | HTTP request | Description ------------- | ------------- | ------------- -[**create_stream**](StreamingApi.md#create_stream) | **POST** /stream | Create data stream -[**delete_stream**](StreamingApi.md#delete_stream) | **DELETE** /stream/{id} | Delete a data stream -[**get_stream**](StreamingApi.md#get_stream) | **GET** /stream/{id} | Retrieve data stream -[**get_streams**](StreamingApi.md#get_streams) | **GET** /stream | List data streams -[**update_stream**](StreamingApi.md#update_stream) | **PUT** /stream/{id} | Update data stream +[**create_stream**](StreamingApi.md#create_stream) | **POST** /streams | Create data stream +[**delete_stream**](StreamingApi.md#delete_stream) | **DELETE** /streams/{id} | Delete a data stream +[**get_stream**](StreamingApi.md#get_stream) | **GET** /streams/{id} | Retrieve data stream +[**get_streams**](StreamingApi.md#get_streams) | **GET** /streams | List data streams +[**update_stream**](StreamingApi.md#update_stream) | **PUT** /streams/{id} | Update data stream # **create_stream** diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/api/streaming_api.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/api/streaming_api.py index c1161c69..4e9ba0f5 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/api/streaming_api.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/api/streaming_api.py @@ -337,7 +337,7 @@ class StreamingApi: return self.api_client.param_serialize( method='POST', - resource_path='/stream', + resource_path='/streams', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -630,7 +630,7 @@ class StreamingApi: return self.api_client.param_serialize( method='DELETE', - resource_path='/stream/{id}', + resource_path='/streams/{id}', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -941,7 +941,7 @@ class StreamingApi: return self.api_client.param_serialize( method='GET', - resource_path='/stream/{id}', + resource_path='/streams/{id}', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -1237,7 +1237,7 @@ class StreamingApi: return self.api_client.param_serialize( method='GET', - resource_path='/stream', + resource_path='/streams', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -1565,7 +1565,7 @@ class StreamingApi: return self.api_client.param_serialize( method='PUT', - resource_path='/stream/{id}', + resource_path='/streams/{id}', path_params=_path_params, query_params=_query_params, header_params=_header_params, diff --git a/thousandeyes-sdk-tags/README.md b/thousandeyes-sdk-tags/README.md index 9d7738c7..eecd8881 100644 --- a/thousandeyes-sdk-tags/README.md +++ b/thousandeyes-sdk-tags/README.md @@ -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: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-test-results/README.md b/thousandeyes-sdk-test-results/README.md index 15a42cc6..94aa82f2 100644 --- a/thousandeyes-sdk-test-results/README.md +++ b/thousandeyes-sdk-test-results/README.md @@ -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: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-tests/README.md b/thousandeyes-sdk-tests/README.md index b1fd3593..d7f8b4e0 100644 --- a/thousandeyes-sdk-tests/README.md +++ b/thousandeyes-sdk-tests/README.md @@ -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: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-tests/docs/ApiRequestAssertionOperator.md b/thousandeyes-sdk-tests/docs/ApiRequestAssertionOperator.md index d7f32965..9b0afedf 100644 --- a/thousandeyes-sdk-tests/docs/ApiRequestAssertionOperator.md +++ b/thousandeyes-sdk-tests/docs/ApiRequestAssertionOperator.md @@ -1,6 +1,6 @@ # 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 diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_request_assertion_operator.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_request_assertion_operator.py index 56bdfabe..f01d12e9 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_request_assertion_operator.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_request_assertion_operator.py @@ -19,7 +19,7 @@ from typing_extensions import Self 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' INCLUDES = 'includes' NOT_MINUS_INCLUDES = 'not-includes' + MATCHES = 'matches' + NOT_MINUS_MATCHES = 'not-matches' UNKNOWN = 'unknown' @classmethod diff --git a/thousandeyes-sdk-usage/README.md b/thousandeyes-sdk-usage/README.md index 1c4fe671..72877cf0 100644 --- a/thousandeyes-sdk-usage/README.md +++ b/thousandeyes-sdk-usage/README.md @@ -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: -- API version: 7.0.52 +- API version: 7.0.53 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator