[GitHub Bot] Generated python SDK

This commit is contained in:
API Team 2025-06-18 13:45:38 +00:00
parent 601dbe3a38
commit 17cd157f54
251 changed files with 3702 additions and 262 deletions

View File

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

View File

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

View File

@ -11,7 +11,9 @@ docs/AlertMetricDetail.md
docs/AlertNotification.md docs/AlertNotification.md
docs/AlertRoundsViolationMode.md docs/AlertRoundsViolationMode.md
docs/AlertRulesApi.md docs/AlertRulesApi.md
docs/AlertSeverity.md
docs/AlertSimpleTest.md docs/AlertSimpleTest.md
docs/AlertState.md
docs/AlertSuppressionWindow.md docs/AlertSuppressionWindow.md
docs/AlertSuppressionWindowDetail.md docs/AlertSuppressionWindowDetail.md
docs/AlertSuppressionWindowRequest.md docs/AlertSuppressionWindowRequest.md
@ -78,7 +80,9 @@ src/thousandeyes_sdk/alerts/models/alert_meta.py
src/thousandeyes_sdk/alerts/models/alert_metric_detail.py src/thousandeyes_sdk/alerts/models/alert_metric_detail.py
src/thousandeyes_sdk/alerts/models/alert_notification.py src/thousandeyes_sdk/alerts/models/alert_notification.py
src/thousandeyes_sdk/alerts/models/alert_rounds_violation_mode.py src/thousandeyes_sdk/alerts/models/alert_rounds_violation_mode.py
src/thousandeyes_sdk/alerts/models/alert_severity.py
src/thousandeyes_sdk/alerts/models/alert_simple_test.py src/thousandeyes_sdk/alerts/models/alert_simple_test.py
src/thousandeyes_sdk/alerts/models/alert_state.py
src/thousandeyes_sdk/alerts/models/alert_suppression_window.py src/thousandeyes_sdk/alerts/models/alert_suppression_window.py
src/thousandeyes_sdk/alerts/models/alert_suppression_window_detail.py src/thousandeyes_sdk/alerts/models/alert_suppression_window_detail.py
src/thousandeyes_sdk/alerts/models/alert_suppression_window_request.py src/thousandeyes_sdk/alerts/models/alert_suppression_window_request.py

View File

@ -12,7 +12,7 @@ For more information about the alerts, see [Alerts](https://docs.thousandeyes.co
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.44 - API version: 7.0.51
- Generator version: 7.6.0 - Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
@ -129,7 +129,9 @@ Class | Method | HTTP request | Description
- [AlertMetricDetail](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertMetricDetail.md) - [AlertMetricDetail](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertMetricDetail.md)
- [AlertNotification](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertNotification.md) - [AlertNotification](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertNotification.md)
- [AlertRoundsViolationMode](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertRoundsViolationMode.md) - [AlertRoundsViolationMode](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertRoundsViolationMode.md)
- [AlertSeverity](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertSeverity.md)
- [AlertSimpleTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertSimpleTest.md) - [AlertSimpleTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertSimpleTest.md)
- [AlertState](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertState.md)
- [AlertSuppressionWindow](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertSuppressionWindow.md) - [AlertSuppressionWindow](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertSuppressionWindow.md)
- [AlertSuppressionWindowDetail](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertSuppressionWindowDetail.md) - [AlertSuppressionWindowDetail](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertSuppressionWindowDetail.md)
- [AlertSuppressionWindowRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertSuppressionWindowRequest.md) - [AlertSuppressionWindowRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-alerts/docs/AlertSuppressionWindowRequest.md)

View File

@ -23,8 +23,8 @@ Name | Type | Description | Notes
**permalink** | **str** | Hyperlink to alerts list, with row expanded | [optional] **permalink** | **str** | Hyperlink to alerts list, with row expanded | [optional]
**api_links** | **List[Dict[str, object]]** | List of hyperlinks to other areas of the API | [optional] **api_links** | **List[Dict[str, object]]** | List of hyperlinks to other areas of the API | [optional]
**alert_rule_id** | **str** | Unique ID of the rule. | [optional] [readonly] **alert_rule_id** | **str** | Unique ID of the rule. | [optional] [readonly]
**alert_state** | [**State**](State.md) | | [optional] **alert_state** | [**AlertState**](AlertState.md) | | [optional]
**alert_severity** | [**Severity**](Severity.md) | | [optional] **alert_severity** | [**AlertSeverity**](AlertSeverity.md) | | [optional]
## Example ## Example

View File

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

View File

@ -9,7 +9,7 @@ Name | Type | Description | Notes
**id** | **str** | Unique metric detail id. | [optional] **id** | **str** | Unique metric detail id. | [optional]
**name** | **str** | Geolocation of the alert. | [optional] **name** | **str** | Geolocation of the alert. | [optional]
**start** | [**StartAlertMetrics**](StartAlertMetrics.md) | | [optional] **start** | [**StartAlertMetrics**](StartAlertMetrics.md) | | [optional]
**state** | [**State**](State.md) | | [optional] **state** | [**AlertState**](AlertState.md) | | [optional]
**type** | **str** | Type of the alert metric. | [optional] **type** | **str** | Type of the alert metric. | [optional]
## Example ## Example

View File

@ -1,4 +1,4 @@
# Severity # AlertSeverity
The severity of the alert. The severity of the alert.

View File

@ -0,0 +1,12 @@
# AlertState
Current state of the alert. Possible values: clear or trigger.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

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

View File

@ -136,7 +136,7 @@ with thousandeyes_sdk.core.ApiClient(configuration) as api_client:
end_date = '2022-07-18T22:00:54Z' # datetime | Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional) end_date = '2022-07-18T22:00:54Z' # datetime | Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
max = 5 # int | (Optional) Maximum number of objects to return. (optional) max = 5 # int | (Optional) Maximum number of objects to return. (optional)
cursor = 'cursor_example' # str | (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. (optional) cursor = 'cursor_example' # str | (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. (optional)
state = thousandeyes_sdk.alerts.State() # State | Optional parameter to match a specific alert state. If not specified, it defaults to `trigger`. (optional) state = thousandeyes_sdk.alerts.AlertState() # AlertState | Optional parameter to match a specific alert state. If not specified, it defaults to `trigger`. (optional)
try: try:
# List active alerts # List active alerts
@ -160,7 +160,7 @@ Name | Type | Description | Notes
**end_date** | **datetime**| Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. | [optional] **end_date** | **datetime**| Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. | [optional]
**max** | **int**| (Optional) Maximum number of objects to return. | [optional] **max** | **int**| (Optional) Maximum number of objects to return. | [optional]
**cursor** | **str**| (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. | [optional] **cursor** | **str**| (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. | [optional]
**state** | [**State**](.md)| Optional parameter to match a specific alert state. If not specified, it defaults to `trigger`. | [optional] **state** | [**AlertState**](.md)| Optional parameter to match a specific alert state. If not specified, it defaults to `trigger`. | [optional]
### Return type ### Return type

View File

@ -20,7 +20,7 @@ Name | Type | Description | Notes
**rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. | **rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. |
**include_covered_prefixes** | **bool** | Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules. | [optional] **include_covered_prefixes** | **bool** | Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules. | [optional]
**sensitivity_level** | [**SensitivityLevel**](SensitivityLevel.md) | | [optional] **sensitivity_level** | [**SensitivityLevel**](SensitivityLevel.md) | | [optional]
**severity** | [**Severity**](Severity.md) | | [optional] **severity** | [**AlertSeverity**](AlertSeverity.md) | | [optional]
**endpoint_agent_ids** | **List[str]** | An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`. | [optional] **endpoint_agent_ids** | **List[str]** | An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`. | [optional]
**endpoint_label_ids** | **List[str]** | An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`. | [optional] **endpoint_label_ids** | **List[str]** | An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`. | [optional]
**visited_sites_filter** | **List[str]** | A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`. | [optional] **visited_sites_filter** | **List[str]** | A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`. | [optional]

View File

@ -20,7 +20,7 @@ Name | Type | Description | Notes
**rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. | **rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. |
**include_covered_prefixes** | **bool** | Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules. | [optional] **include_covered_prefixes** | **bool** | Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules. | [optional]
**sensitivity_level** | [**SensitivityLevel**](SensitivityLevel.md) | | [optional] **sensitivity_level** | [**SensitivityLevel**](SensitivityLevel.md) | | [optional]
**severity** | [**Severity**](Severity.md) | | [optional] **severity** | [**AlertSeverity**](AlertSeverity.md) | | [optional]
**endpoint_agent_ids** | **List[str]** | An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`. | [optional] **endpoint_agent_ids** | **List[str]** | An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`. | [optional]
**endpoint_label_ids** | **List[str]** | An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`. | [optional] **endpoint_label_ids** | **List[str]** | An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`. | [optional]
**visited_sites_filter** | **List[str]** | A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`. | [optional] **visited_sites_filter** | **List[str]** | A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`. | [optional]

View File

@ -20,7 +20,7 @@ Name | Type | Description | Notes
**rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. | **rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. |
**include_covered_prefixes** | **bool** | Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules. | [optional] **include_covered_prefixes** | **bool** | Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules. | [optional]
**sensitivity_level** | [**SensitivityLevel**](SensitivityLevel.md) | | [optional] **sensitivity_level** | [**SensitivityLevel**](SensitivityLevel.md) | | [optional]
**severity** | [**Severity**](Severity.md) | | [optional] **severity** | [**AlertSeverity**](AlertSeverity.md) | | [optional]
**endpoint_agent_ids** | **List[str]** | An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`. | [optional] **endpoint_agent_ids** | **List[str]** | An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`. | [optional]
**endpoint_label_ids** | **List[str]** | An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`. | [optional] **endpoint_label_ids** | **List[str]** | An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`. | [optional]
**visited_sites_filter** | **List[str]** | A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`. | [optional] **visited_sites_filter** | **List[str]** | A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`. | [optional]

View File

@ -20,7 +20,7 @@ Name | Type | Description | Notes
**rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. | **rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. |
**include_covered_prefixes** | **bool** | Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules. | [optional] **include_covered_prefixes** | **bool** | Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules. | [optional]
**sensitivity_level** | [**SensitivityLevel**](SensitivityLevel.md) | | [optional] **sensitivity_level** | [**SensitivityLevel**](SensitivityLevel.md) | | [optional]
**severity** | [**Severity**](Severity.md) | | [optional] **severity** | [**AlertSeverity**](AlertSeverity.md) | | [optional]
**endpoint_agent_ids** | **List[str]** | An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`. | [optional] **endpoint_agent_ids** | **List[str]** | An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`. | [optional]
**endpoint_label_ids** | **List[str]** | An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`. | [optional] **endpoint_label_ids** | **List[str]** | An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`. | [optional]
**visited_sites_filter** | **List[str]** | A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`. | [optional] **visited_sites_filter** | **List[str]** | A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`. | [optional]

View File

@ -1,12 +1,28 @@
# Severity # Severity
The severity of the alert.
## Properties ## Properties
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
## Example
```python
from thousandeyes_sdk.alerts.models.severity import Severity
# TODO update the JSON string below
json = "{}"
# create an instance of Severity from a JSON string
severity_instance = Severity.from_json(json)
# print the JSON string representation of the object
print(Severity.to_json())
# convert the object into a dict
severity_dict = severity_instance.to_dict()
# create an instance of Severity from a dict
severity_from_dict = Severity.from_dict(severity_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) [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,12 +1,28 @@
# State # State
Current state of the alert. Possible values: clear or trigger.
## Properties ## Properties
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
## Example
```python
from thousandeyes_sdk.alerts.models.state import State
# TODO update the JSON string below
json = "{}"
# create an instance of State from a JSON string
state_instance = State.from_json(json)
# print the JSON string representation of the object
print(State.to_json())
# convert the object into a dict
state_dict = state_instance.to_dict()
# create an instance of State from a dict
state_from_dict = State.from_dict(state_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) [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -29,7 +29,9 @@ from thousandeyes_sdk.alerts.models.alert_meta import AlertMeta
from thousandeyes_sdk.alerts.models.alert_metric_detail import AlertMetricDetail from thousandeyes_sdk.alerts.models.alert_metric_detail import AlertMetricDetail
from thousandeyes_sdk.alerts.models.alert_notification import AlertNotification from thousandeyes_sdk.alerts.models.alert_notification import AlertNotification
from thousandeyes_sdk.alerts.models.alert_rounds_violation_mode import AlertRoundsViolationMode from thousandeyes_sdk.alerts.models.alert_rounds_violation_mode import AlertRoundsViolationMode
from thousandeyes_sdk.alerts.models.alert_severity import AlertSeverity
from thousandeyes_sdk.alerts.models.alert_simple_test import AlertSimpleTest from thousandeyes_sdk.alerts.models.alert_simple_test import AlertSimpleTest
from thousandeyes_sdk.alerts.models.alert_state import AlertState
from thousandeyes_sdk.alerts.models.alert_suppression_window import AlertSuppressionWindow from thousandeyes_sdk.alerts.models.alert_suppression_window import AlertSuppressionWindow
from thousandeyes_sdk.alerts.models.alert_suppression_window_detail import AlertSuppressionWindowDetail from thousandeyes_sdk.alerts.models.alert_suppression_window_detail import AlertSuppressionWindowDetail
from thousandeyes_sdk.alerts.models.alert_suppression_window_request import AlertSuppressionWindowRequest from thousandeyes_sdk.alerts.models.alert_suppression_window_request import AlertSuppressionWindowRequest

View File

@ -378,7 +378,7 @@ class AlertsApi:
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. :param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
:type cursor: str :type cursor: str
:param state: Optional parameter to match a specific alert state. If not specified, it defaults to `trigger`. :param state: Optional parameter to match a specific alert state. If not specified, it defaults to `trigger`.
:type state: State :type state: AlertState
:param _request_timeout: timeout setting for this request. If one :param _request_timeout: timeout setting for this request. If one
number provided, it will be total request number provided, it will be total request
timeout. It can also be a pair (tuple) of timeout. It can also be a pair (tuple) of
@ -475,7 +475,7 @@ class AlertsApi:
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. :param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
:type cursor: str :type cursor: str
:param state: Optional parameter to match a specific alert state. If not specified, it defaults to `trigger`. :param state: Optional parameter to match a specific alert state. If not specified, it defaults to `trigger`.
:type state: State :type state: AlertState
:param _request_timeout: timeout setting for this request. If one :param _request_timeout: timeout setting for this request. If one
number provided, it will be total request number provided, it will be total request
timeout. It can also be a pair (tuple) of timeout. It can also be a pair (tuple) of
@ -572,7 +572,7 @@ class AlertsApi:
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. :param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
:type cursor: str :type cursor: str
:param state: Optional parameter to match a specific alert state. If not specified, it defaults to `trigger`. :param state: Optional parameter to match a specific alert state. If not specified, it defaults to `trigger`.
:type state: State :type state: AlertState
:param _request_timeout: timeout setting for this request. If one :param _request_timeout: timeout setting for this request. If one
number provided, it will be total request number provided, it will be total request
timeout. It can also be a pair (tuple) of timeout. It can also be a pair (tuple) of

View File

@ -22,7 +22,9 @@ from thousandeyes_sdk.alerts.models.alert_meta import AlertMeta
from thousandeyes_sdk.alerts.models.alert_metric_detail import AlertMetricDetail from thousandeyes_sdk.alerts.models.alert_metric_detail import AlertMetricDetail
from thousandeyes_sdk.alerts.models.alert_notification import AlertNotification from thousandeyes_sdk.alerts.models.alert_notification import AlertNotification
from thousandeyes_sdk.alerts.models.alert_rounds_violation_mode import AlertRoundsViolationMode from thousandeyes_sdk.alerts.models.alert_rounds_violation_mode import AlertRoundsViolationMode
from thousandeyes_sdk.alerts.models.alert_severity import AlertSeverity
from thousandeyes_sdk.alerts.models.alert_simple_test import AlertSimpleTest from thousandeyes_sdk.alerts.models.alert_simple_test import AlertSimpleTest
from thousandeyes_sdk.alerts.models.alert_state import AlertState
from thousandeyes_sdk.alerts.models.alert_suppression_window import AlertSuppressionWindow from thousandeyes_sdk.alerts.models.alert_suppression_window import AlertSuppressionWindow
from thousandeyes_sdk.alerts.models.alert_suppression_window_detail import AlertSuppressionWindowDetail from thousandeyes_sdk.alerts.models.alert_suppression_window_detail import AlertSuppressionWindowDetail
from thousandeyes_sdk.alerts.models.alert_suppression_window_request import AlertSuppressionWindowRequest from thousandeyes_sdk.alerts.models.alert_suppression_window_request import AlertSuppressionWindowRequest

View File

@ -21,9 +21,9 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, Strict
from typing import Any, ClassVar, Dict, List, Optional from typing import Any, ClassVar, Dict, List, Optional
from thousandeyes_sdk.alerts.models.alert_links import AlertLinks from thousandeyes_sdk.alerts.models.alert_links import AlertLinks
from thousandeyes_sdk.alerts.models.alert_meta import AlertMeta from thousandeyes_sdk.alerts.models.alert_meta import AlertMeta
from thousandeyes_sdk.alerts.models.alert_severity import AlertSeverity
from thousandeyes_sdk.alerts.models.alert_state import AlertState
from thousandeyes_sdk.alerts.models.alert_type import AlertType from thousandeyes_sdk.alerts.models.alert_type import AlertType
from thousandeyes_sdk.alerts.models.severity import Severity
from thousandeyes_sdk.alerts.models.state import State
from typing import Optional, Set from typing import Optional, Set
from typing_extensions import Self from typing_extensions import Self
@ -49,8 +49,8 @@ class Alert(BaseModel):
permalink: Optional[StrictStr] = Field(default=None, description="Hyperlink to alerts list, with row expanded") permalink: Optional[StrictStr] = Field(default=None, description="Hyperlink to alerts list, with row expanded")
api_links: Optional[List[Dict[str, Any]]] = Field(default=None, description="List of hyperlinks to other areas of the API", alias="apiLinks") api_links: Optional[List[Dict[str, Any]]] = Field(default=None, description="List of hyperlinks to other areas of the API", alias="apiLinks")
alert_rule_id: Optional[StrictStr] = Field(default=None, description="Unique ID of the rule.", alias="alertRuleId") alert_rule_id: Optional[StrictStr] = Field(default=None, description="Unique ID of the rule.", alias="alertRuleId")
alert_state: Optional[State] = Field(default=None, alias="alertState") alert_state: Optional[AlertState] = Field(default=None, alias="alertState")
alert_severity: Optional[Severity] = Field(default=None, alias="alertSeverity") alert_severity: Optional[AlertSeverity] = Field(default=None, alias="alertSeverity")
__properties: ClassVar[List[str]] = ["id", "alertType", "startDate", "endDate", "violationCount", "duration", "suppressed", "meta", "_links", "alertId", "dateStart", "dateEnd", "ruleId", "state", "severity", "permalink", "apiLinks", "alertRuleId", "alertState", "alertSeverity"] __properties: ClassVar[List[str]] = ["id", "alertType", "startDate", "endDate", "violationCount", "duration", "suppressed", "meta", "_links", "alertId", "dateStart", "dateEnd", "ruleId", "state", "severity", "permalink", "apiLinks", "alertRuleId", "alertState", "alertSeverity"]
@field_validator('state') @field_validator('state')

View File

@ -22,6 +22,8 @@ from typing import Any, ClassVar, Dict, List, Optional
from thousandeyes_sdk.alerts.models.alert_links import AlertLinks from thousandeyes_sdk.alerts.models.alert_links import AlertLinks
from thousandeyes_sdk.alerts.models.alert_meta import AlertMeta from thousandeyes_sdk.alerts.models.alert_meta import AlertMeta
from thousandeyes_sdk.alerts.models.alert_metric_detail import AlertMetricDetail from thousandeyes_sdk.alerts.models.alert_metric_detail import AlertMetricDetail
from thousandeyes_sdk.alerts.models.alert_severity import AlertSeverity
from thousandeyes_sdk.alerts.models.alert_state import AlertState
from thousandeyes_sdk.alerts.models.alert_type import AlertType from thousandeyes_sdk.alerts.models.alert_type import AlertType
from thousandeyes_sdk.alerts.models.severity import Severity from thousandeyes_sdk.alerts.models.severity import Severity
from thousandeyes_sdk.alerts.models.state import State from thousandeyes_sdk.alerts.models.state import State
@ -43,8 +45,10 @@ class AlertDetail(BaseModel):
links: Optional[AlertLinks] = Field(default=None, alias="_links") links: Optional[AlertLinks] = Field(default=None, alias="_links")
state: Optional[State] = None state: Optional[State] = None
severity: Optional[Severity] = None severity: Optional[Severity] = None
alert_state: Optional[AlertState] = Field(default=None, alias="alertState")
alert_severity: Optional[AlertSeverity] = Field(default=None, alias="alertSeverity")
details: Optional[List[AlertMetricDetail]] = None details: Optional[List[AlertMetricDetail]] = None
__properties: ClassVar[List[str]] = ["id", "alertType", "startDate", "endDate", "violationCount", "duration", "suppressed", "meta", "_links", "state", "severity", "details"] __properties: ClassVar[List[str]] = ["id", "alertType", "startDate", "endDate", "violationCount", "duration", "suppressed", "meta", "_links", "state", "severity", "alertState", "alertSeverity", "details"]
model_config = ConfigDict( model_config = ConfigDict(
populate_by_name=True, populate_by_name=True,
@ -98,6 +102,12 @@ class AlertDetail(BaseModel):
# override the default output from pydantic by calling `to_dict()` of links # override the default output from pydantic by calling `to_dict()` of links
if self.links: if self.links:
_dict['_links'] = self.links.to_dict() _dict['_links'] = self.links.to_dict()
# override the default output from pydantic by calling `to_dict()` of state
if self.state:
_dict['state'] = self.state.to_dict()
# override the default output from pydantic by calling `to_dict()` of severity
if self.severity:
_dict['severity'] = self.severity.to_dict()
# override the default output from pydantic by calling `to_dict()` of each item in details (list) # override the default output from pydantic by calling `to_dict()` of each item in details (list)
_items = [] _items = []
if self.details: if self.details:
@ -126,8 +136,10 @@ class AlertDetail(BaseModel):
"suppressed": obj.get("suppressed"), "suppressed": obj.get("suppressed"),
"meta": AlertMeta.from_dict(obj["meta"]) if obj.get("meta") is not None else None, "meta": AlertMeta.from_dict(obj["meta"]) if obj.get("meta") is not None else None,
"_links": AlertLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "_links": AlertLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None,
"state": obj.get("state"), "state": State.from_dict(obj["state"]) if obj.get("state") is not None else None,
"severity": obj.get("severity"), "severity": Severity.from_dict(obj["severity"]) if obj.get("severity") is not None else None,
"alertState": obj.get("alertState"),
"alertSeverity": obj.get("alertSeverity"),
"details": [AlertMetricDetail.from_dict(_item) for _item in obj["details"]] if obj.get("details") is not None else None "details": [AlertMetricDetail.from_dict(_item) for _item in obj["details"]] if obj.get("details") is not None else None
}) })
return _obj return _obj

View File

@ -18,9 +18,9 @@ import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional from typing import Any, ClassVar, Dict, List, Optional
from thousandeyes_sdk.alerts.models.alert_state import AlertState
from thousandeyes_sdk.alerts.models.end_alert_metrics import EndAlertMetrics from thousandeyes_sdk.alerts.models.end_alert_metrics import EndAlertMetrics
from thousandeyes_sdk.alerts.models.start_alert_metrics import StartAlertMetrics from thousandeyes_sdk.alerts.models.start_alert_metrics import StartAlertMetrics
from thousandeyes_sdk.alerts.models.state import State
from typing import Optional, Set from typing import Optional, Set
from typing_extensions import Self from typing_extensions import Self
@ -32,7 +32,7 @@ class AlertMetricDetail(BaseModel):
id: Optional[StrictStr] = Field(default=None, description="Unique metric detail id.") id: Optional[StrictStr] = Field(default=None, description="Unique metric detail id.")
name: Optional[StrictStr] = Field(default=None, description="Geolocation of the alert.") name: Optional[StrictStr] = Field(default=None, description="Geolocation of the alert.")
start: Optional[StartAlertMetrics] = None start: Optional[StartAlertMetrics] = None
state: Optional[State] = None state: Optional[AlertState] = None
type: Optional[StrictStr] = Field(default=None, description="Type of the alert metric.") type: Optional[StrictStr] = Field(default=None, description="Type of the alert metric.")
__properties: ClassVar[List[str]] = ["end", "id", "name", "start", "state", "type"] __properties: ClassVar[List[str]] = ["end", "id", "name", "start", "state", "type"]

View File

@ -0,0 +1,43 @@
# coding: utf-8
"""
Alerts API
You can manage the following alert functionalities on the ThousandEyes platform using the Alerts API: * **Alerts**: Retrieve alert details. Alerts are assigned to tests through alert rules. * **Alert Rules**: Conditions that you configure in order to highlight or be notified of events of interest in your ThousandEyes tests. When an alert rules conditions are met, the associated alert is triggered and the alert becomes active. It remains active until the alert is cleared. Alert rules are reusable across multiple tests.. * **Alert Suppression Windows**: Suppress alerts for tests during periods such as planned maintenance. Windows can be one-time events or recurring events to handle periodic occurrences such as monthly downtime for maintenance. For more information about the alerts, see [Alerts](https://docs.thousandeyes.com/product-documentation/alerts).
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import json
from enum import Enum
from typing_extensions import Self
class AlertSeverity(str, Enum):
"""
The severity of the alert.
"""
"""
allowed enum values
"""
INFO = 'info'
MAJOR = 'major'
MINOR = 'minor'
CRITICAL = 'critical'
UNKNOWN = 'unknown'
@classmethod
def from_json(cls, json_str: str) -> Self:
"""Create an instance of AlertSeverity from a JSON string"""
return cls(json.loads(json_str))
@classmethod
def _missing_(cls, value):
"""Handle unknown values"""
return cls.UNKNOWN

View File

@ -0,0 +1,41 @@
# coding: utf-8
"""
Alerts API
You can manage the following alert functionalities on the ThousandEyes platform using the Alerts API: * **Alerts**: Retrieve alert details. Alerts are assigned to tests through alert rules. * **Alert Rules**: Conditions that you configure in order to highlight or be notified of events of interest in your ThousandEyes tests. When an alert rules conditions are met, the associated alert is triggered and the alert becomes active. It remains active until the alert is cleared. Alert rules are reusable across multiple tests.. * **Alert Suppression Windows**: Suppress alerts for tests during periods such as planned maintenance. Windows can be one-time events or recurring events to handle periodic occurrences such as monthly downtime for maintenance. For more information about the alerts, see [Alerts](https://docs.thousandeyes.com/product-documentation/alerts).
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import json
from enum import Enum
from typing_extensions import Self
class AlertState(str, Enum):
"""
Current state of the alert. Possible values: clear or trigger.
"""
"""
allowed enum values
"""
CLEAR = 'clear'
TRIGGER = 'trigger'
UNKNOWN = 'unknown'
@classmethod
def from_json(cls, json_str: str) -> Self:
"""Create an instance of AlertState from a JSON string"""
return cls(json.loads(json_str))
@classmethod
def _missing_(cls, value):
"""Handle unknown values"""
return cls.UNKNOWN

View File

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

View File

@ -21,9 +21,9 @@ from typing import Any, ClassVar, Dict, List, Optional
from thousandeyes_sdk.alerts.models.alert_direction import AlertDirection from thousandeyes_sdk.alerts.models.alert_direction import AlertDirection
from thousandeyes_sdk.alerts.models.alert_group_type import AlertGroupType from thousandeyes_sdk.alerts.models.alert_group_type import AlertGroupType
from thousandeyes_sdk.alerts.models.alert_rounds_violation_mode import AlertRoundsViolationMode from thousandeyes_sdk.alerts.models.alert_rounds_violation_mode import AlertRoundsViolationMode
from thousandeyes_sdk.alerts.models.alert_severity import AlertSeverity
from thousandeyes_sdk.alerts.models.alert_type import AlertType from thousandeyes_sdk.alerts.models.alert_type import AlertType
from thousandeyes_sdk.alerts.models.sensitivity_level import SensitivityLevel from thousandeyes_sdk.alerts.models.sensitivity_level import SensitivityLevel
from thousandeyes_sdk.alerts.models.severity import Severity
from typing import Optional, Set from typing import Optional, Set
from typing_extensions import Self from typing_extensions import Self
@ -46,7 +46,7 @@ class BaseRule(BaseModel):
rounds_violating_required: StrictInt = Field(description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired") rounds_violating_required: StrictInt = Field(description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired")
include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules.", alias="includeCoveredPrefixes") include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules.", alias="includeCoveredPrefixes")
sensitivity_level: Optional[SensitivityLevel] = Field(default=None, alias="sensitivityLevel") sensitivity_level: Optional[SensitivityLevel] = Field(default=None, alias="sensitivityLevel")
severity: Optional[Severity] = None severity: Optional[AlertSeverity] = None
endpoint_agent_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointAgentIds") endpoint_agent_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointAgentIds")
endpoint_label_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointLabelIds") endpoint_label_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointLabelIds")
visited_sites_filter: Optional[List[StrictStr]] = Field(default=None, description="A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`.", alias="visitedSitesFilter") visited_sites_filter: Optional[List[StrictStr]] = Field(default=None, description="A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`.", alias="visitedSitesFilter")

View File

@ -22,10 +22,10 @@ from thousandeyes_sdk.alerts.models.alert_direction import AlertDirection
from thousandeyes_sdk.alerts.models.alert_group_type import AlertGroupType from thousandeyes_sdk.alerts.models.alert_group_type import AlertGroupType
from thousandeyes_sdk.alerts.models.alert_notification import AlertNotification from thousandeyes_sdk.alerts.models.alert_notification import AlertNotification
from thousandeyes_sdk.alerts.models.alert_rounds_violation_mode import AlertRoundsViolationMode from thousandeyes_sdk.alerts.models.alert_rounds_violation_mode import AlertRoundsViolationMode
from thousandeyes_sdk.alerts.models.alert_severity import AlertSeverity
from thousandeyes_sdk.alerts.models.alert_type import AlertType from thousandeyes_sdk.alerts.models.alert_type import AlertType
from thousandeyes_sdk.alerts.models.self_links import SelfLinks from thousandeyes_sdk.alerts.models.self_links import SelfLinks
from thousandeyes_sdk.alerts.models.sensitivity_level import SensitivityLevel from thousandeyes_sdk.alerts.models.sensitivity_level import SensitivityLevel
from thousandeyes_sdk.alerts.models.severity import Severity
from typing import Optional, Set from typing import Optional, Set
from typing_extensions import Self from typing_extensions import Self
@ -48,7 +48,7 @@ class Rule(BaseModel):
rounds_violating_required: StrictInt = Field(description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired") rounds_violating_required: StrictInt = Field(description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired")
include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules.", alias="includeCoveredPrefixes") include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules.", alias="includeCoveredPrefixes")
sensitivity_level: Optional[SensitivityLevel] = Field(default=None, alias="sensitivityLevel") sensitivity_level: Optional[SensitivityLevel] = Field(default=None, alias="sensitivityLevel")
severity: Optional[Severity] = None severity: Optional[AlertSeverity] = None
endpoint_agent_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointAgentIds") endpoint_agent_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointAgentIds")
endpoint_label_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointLabelIds") endpoint_label_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointLabelIds")
visited_sites_filter: Optional[List[StrictStr]] = Field(default=None, description="A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`.", alias="visitedSitesFilter") visited_sites_filter: Optional[List[StrictStr]] = Field(default=None, description="A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`.", alias="visitedSitesFilter")

View File

@ -22,11 +22,11 @@ from thousandeyes_sdk.alerts.models.alert_direction import AlertDirection
from thousandeyes_sdk.alerts.models.alert_group_type import AlertGroupType from thousandeyes_sdk.alerts.models.alert_group_type import AlertGroupType
from thousandeyes_sdk.alerts.models.alert_notification import AlertNotification from thousandeyes_sdk.alerts.models.alert_notification import AlertNotification
from thousandeyes_sdk.alerts.models.alert_rounds_violation_mode import AlertRoundsViolationMode from thousandeyes_sdk.alerts.models.alert_rounds_violation_mode import AlertRoundsViolationMode
from thousandeyes_sdk.alerts.models.alert_severity import AlertSeverity
from thousandeyes_sdk.alerts.models.alert_simple_test import AlertSimpleTest from thousandeyes_sdk.alerts.models.alert_simple_test import AlertSimpleTest
from thousandeyes_sdk.alerts.models.alert_type import AlertType from thousandeyes_sdk.alerts.models.alert_type import AlertType
from thousandeyes_sdk.alerts.models.self_links import SelfLinks from thousandeyes_sdk.alerts.models.self_links import SelfLinks
from thousandeyes_sdk.alerts.models.sensitivity_level import SensitivityLevel from thousandeyes_sdk.alerts.models.sensitivity_level import SensitivityLevel
from thousandeyes_sdk.alerts.models.severity import Severity
from typing import Optional, Set from typing import Optional, Set
from typing_extensions import Self from typing_extensions import Self
@ -49,7 +49,7 @@ class RuleDetail(BaseModel):
rounds_violating_required: StrictInt = Field(description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired") rounds_violating_required: StrictInt = Field(description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired")
include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules.", alias="includeCoveredPrefixes") include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules.", alias="includeCoveredPrefixes")
sensitivity_level: Optional[SensitivityLevel] = Field(default=None, alias="sensitivityLevel") sensitivity_level: Optional[SensitivityLevel] = Field(default=None, alias="sensitivityLevel")
severity: Optional[Severity] = None severity: Optional[AlertSeverity] = None
endpoint_agent_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointAgentIds") endpoint_agent_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointAgentIds")
endpoint_label_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointLabelIds") endpoint_label_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointLabelIds")
visited_sites_filter: Optional[List[StrictStr]] = Field(default=None, description="A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`.", alias="visitedSitesFilter") visited_sites_filter: Optional[List[StrictStr]] = Field(default=None, description="A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`.", alias="visitedSitesFilter")

View File

@ -22,9 +22,9 @@ from thousandeyes_sdk.alerts.models.alert_direction import AlertDirection
from thousandeyes_sdk.alerts.models.alert_group_type import AlertGroupType from thousandeyes_sdk.alerts.models.alert_group_type import AlertGroupType
from thousandeyes_sdk.alerts.models.alert_notification import AlertNotification from thousandeyes_sdk.alerts.models.alert_notification import AlertNotification
from thousandeyes_sdk.alerts.models.alert_rounds_violation_mode import AlertRoundsViolationMode from thousandeyes_sdk.alerts.models.alert_rounds_violation_mode import AlertRoundsViolationMode
from thousandeyes_sdk.alerts.models.alert_severity import AlertSeverity
from thousandeyes_sdk.alerts.models.alert_type import AlertType from thousandeyes_sdk.alerts.models.alert_type import AlertType
from thousandeyes_sdk.alerts.models.sensitivity_level import SensitivityLevel from thousandeyes_sdk.alerts.models.sensitivity_level import SensitivityLevel
from thousandeyes_sdk.alerts.models.severity import Severity
from typing import Optional, Set from typing import Optional, Set
from typing_extensions import Self from typing_extensions import Self
@ -47,7 +47,7 @@ class RuleDetailUpdate(BaseModel):
rounds_violating_required: StrictInt = Field(description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired") rounds_violating_required: StrictInt = Field(description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired")
include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules.", alias="includeCoveredPrefixes") include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules.", alias="includeCoveredPrefixes")
sensitivity_level: Optional[SensitivityLevel] = Field(default=None, alias="sensitivityLevel") sensitivity_level: Optional[SensitivityLevel] = Field(default=None, alias="sensitivityLevel")
severity: Optional[Severity] = None severity: Optional[AlertSeverity] = None
endpoint_agent_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointAgentIds") endpoint_agent_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointAgentIds")
endpoint_label_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointLabelIds") endpoint_label_ids: Optional[List[StrictStr]] = Field(default=None, description="An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`). This is applicable when `alertGroupType` is `browser-session`.", alias="endpointLabelIds")
visited_sites_filter: Optional[List[StrictStr]] = Field(default=None, description="A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`.", alias="visitedSitesFilter") visited_sites_filter: Optional[List[StrictStr]] = Field(default=None, description="A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`.", alias="visitedSitesFilter")

View File

@ -12,32 +12,74 @@
from __future__ import annotations from __future__ import annotations
import pprint
import re # noqa: F401
import json import json
from enum import Enum
from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List
from typing import Optional, Set
from typing_extensions import Self from typing_extensions import Self
class Severity(BaseModel):
"""
Severity
""" # noqa: E501
__properties: ClassVar[List[str]] = []
class Severity(str, Enum): model_config = ConfigDict(
""" populate_by_name=True,
The severity of the alert. validate_assignment=True,
""" protected_namespaces=(),
extra="allow",
)
"""
allowed enum values def to_str(self) -> str:
""" """Returns the string representation of the model using alias"""
INFO = 'info' return pprint.pformat(self.model_dump(by_alias=True))
MAJOR = 'major'
MINOR = 'minor' def to_json(self) -> str:
CRITICAL = 'critical' """Returns the JSON representation of the model using alias"""
UNKNOWN = 'unknown' # 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 @classmethod
def from_json(cls, json_str: str) -> Self: def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of Severity from a JSON string""" """Create an instance of Severity from a JSON string"""
return cls(json.loads(json_str)) 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 @classmethod
def _missing_(cls, value): def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Handle unknown values""" """Create an instance of Severity from a dict"""
return cls.UNKNOWN if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
})
return _obj

View File

@ -12,30 +12,74 @@
from __future__ import annotations from __future__ import annotations
import pprint
import re # noqa: F401
import json import json
from enum import Enum
from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List
from typing import Optional, Set
from typing_extensions import Self from typing_extensions import Self
class State(BaseModel):
"""
State
""" # noqa: E501
__properties: ClassVar[List[str]] = []
class State(str, Enum): model_config = ConfigDict(
""" populate_by_name=True,
Current state of the alert. Possible values: clear or trigger. validate_assignment=True,
""" protected_namespaces=(),
extra="allow",
)
"""
allowed enum values def to_str(self) -> str:
""" """Returns the string representation of the model using alias"""
CLEAR = 'clear' return pprint.pformat(self.model_dump(by_alias=True))
TRIGGER = 'trigger'
UNKNOWN = 'unknown' 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 @classmethod
def from_json(cls, json_str: str) -> Self: def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of State from a JSON string""" """Create an instance of State from a JSON string"""
return cls(json.loads(json_str)) 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 @classmethod
def _missing_(cls, value): def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Handle unknown values""" """Create an instance of State from a dict"""
return cls.UNKNOWN if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
})
return _obj

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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