mirror of
https://github.com/thousandeyes/thousandeyes-sdk-python.git
synced 2025-12-06 06:26:51 +00:00
[GitHub Bot] Generated python SDK
This commit is contained in:
parent
601dbe3a38
commit
17cd157f54
@ -12,7 +12,7 @@ This API provides the following operations to manage your organization:
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ Manage Cloud and Enterprise Agents available to your account in ThousandEyes.
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -11,7 +11,9 @@ docs/AlertMetricDetail.md
|
||||
docs/AlertNotification.md
|
||||
docs/AlertRoundsViolationMode.md
|
||||
docs/AlertRulesApi.md
|
||||
docs/AlertSeverity.md
|
||||
docs/AlertSimpleTest.md
|
||||
docs/AlertState.md
|
||||
docs/AlertSuppressionWindow.md
|
||||
docs/AlertSuppressionWindowDetail.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_notification.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_state.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_request.py
|
||||
|
||||
@ -12,7 +12,7 @@ For more information about the alerts, see [Alerts](https://docs.thousandeyes.co
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- 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)
|
||||
- [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)
|
||||
- [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)
|
||||
- [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)
|
||||
- [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)
|
||||
|
||||
@ -23,8 +23,8 @@ Name | Type | Description | Notes
|
||||
**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]
|
||||
**alert_rule_id** | **str** | Unique ID of the rule. | [optional] [readonly]
|
||||
**alert_state** | [**State**](State.md) | | [optional]
|
||||
**alert_severity** | [**Severity**](Severity.md) | | [optional]
|
||||
**alert_state** | [**AlertState**](AlertState.md) | | [optional]
|
||||
**alert_severity** | [**AlertSeverity**](AlertSeverity.md) | | [optional]
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
@ -16,6 +16,8 @@ Name | Type | Description | Notes
|
||||
**links** | [**AlertLinks**](AlertLinks.md) | | [optional]
|
||||
**state** | [**State**](State.md) | | [optional]
|
||||
**severity** | [**Severity**](Severity.md) | | [optional]
|
||||
**alert_state** | [**AlertState**](AlertState.md) | | [optional]
|
||||
**alert_severity** | [**AlertSeverity**](AlertSeverity.md) | | [optional]
|
||||
**details** | [**List[AlertMetricDetail]**](AlertMetricDetail.md) | | [optional]
|
||||
|
||||
## Example
|
||||
|
||||
@ -9,7 +9,7 @@ Name | Type | Description | Notes
|
||||
**id** | **str** | Unique metric detail id. | [optional]
|
||||
**name** | **str** | Geolocation of the alert. | [optional]
|
||||
**start** | [**StartAlertMetrics**](StartAlertMetrics.md) | | [optional]
|
||||
**state** | [**State**](State.md) | | [optional]
|
||||
**state** | [**AlertState**](AlertState.md) | | [optional]
|
||||
**type** | **str** | Type of the alert metric. | [optional]
|
||||
|
||||
## Example
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# Severity
|
||||
# AlertSeverity
|
||||
|
||||
The severity of the alert.
|
||||
|
||||
12
thousandeyes-sdk-alerts/docs/AlertState.md
Normal file
12
thousandeyes-sdk-alerts/docs/AlertState.md
Normal 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)
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ Name | Type | Description | Notes
|
||||
**duration** | **int** | Duration in seconds the suppression window is active. | [optional]
|
||||
**repeat** | [**Repeat**](Repeat.md) | | [optional]
|
||||
**end_repeat** | [**EndRepeat**](EndRepeat.md) | | [optional]
|
||||
**tests** | **List[str]** | List of tests to assign to the alert suppression window. | [optional]
|
||||
**test_ids** | **List[str]** | List of test IDs to assign to the alert suppression window. | [optional]
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
@ -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)
|
||||
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)
|
||||
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:
|
||||
# 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]
|
||||
**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]
|
||||
**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
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ Name | Type | Description | Notes
|
||||
**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]
|
||||
**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_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]
|
||||
|
||||
@ -20,7 +20,7 @@ Name | Type | Description | Notes
|
||||
**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]
|
||||
**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_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]
|
||||
|
||||
@ -20,7 +20,7 @@ Name | Type | Description | Notes
|
||||
**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]
|
||||
**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_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]
|
||||
|
||||
@ -20,7 +20,7 @@ Name | Type | Description | Notes
|
||||
**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]
|
||||
**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_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]
|
||||
|
||||
@ -1,12 +1,28 @@
|
||||
# Severity
|
||||
|
||||
The severity of the alert.
|
||||
|
||||
## Properties
|
||||
|
||||
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)
|
||||
|
||||
|
||||
|
||||
@ -1,12 +1,28 @@
|
||||
# State
|
||||
|
||||
Current state of the alert. Possible values: clear or trigger.
|
||||
|
||||
## Properties
|
||||
|
||||
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)
|
||||
|
||||
|
||||
|
||||
@ -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_notification import AlertNotification
|
||||
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_state import AlertState
|
||||
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_request import AlertSuppressionWindowRequest
|
||||
|
||||
@ -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.
|
||||
:type cursor: str
|
||||
: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
|
||||
number provided, it will be total request
|
||||
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.
|
||||
:type cursor: str
|
||||
: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
|
||||
number provided, it will be total request
|
||||
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.
|
||||
:type cursor: str
|
||||
: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
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
|
||||
@ -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_notification import AlertNotification
|
||||
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_state import AlertState
|
||||
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_request import AlertSuppressionWindowRequest
|
||||
|
||||
@ -21,9 +21,9 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, Strict
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.alerts.models.alert_links import AlertLinks
|
||||
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.severity import Severity
|
||||
from thousandeyes_sdk.alerts.models.state import State
|
||||
from typing import Optional, Set
|
||||
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")
|
||||
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_state: Optional[State] = Field(default=None, alias="alertState")
|
||||
alert_severity: Optional[Severity] = Field(default=None, alias="alertSeverity")
|
||||
alert_state: Optional[AlertState] = Field(default=None, alias="alertState")
|
||||
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"]
|
||||
|
||||
@field_validator('state')
|
||||
|
||||
@ -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_meta import AlertMeta
|
||||
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.severity import Severity
|
||||
from thousandeyes_sdk.alerts.models.state import State
|
||||
@ -43,8 +45,10 @@ class AlertDetail(BaseModel):
|
||||
links: Optional[AlertLinks] = Field(default=None, alias="_links")
|
||||
state: Optional[State] = 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
|
||||
__properties: ClassVar[List[str]] = ["id", "alertType", "startDate", "endDate", "violationCount", "duration", "suppressed", "meta", "_links", "state", "severity", "details"]
|
||||
__properties: ClassVar[List[str]] = ["id", "alertType", "startDate", "endDate", "violationCount", "duration", "suppressed", "meta", "_links", "state", "severity", "alertState", "alertSeverity", "details"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -98,6 +102,12 @@ class AlertDetail(BaseModel):
|
||||
# override the default output from pydantic by calling `to_dict()` of links
|
||||
if self.links:
|
||||
_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)
|
||||
_items = []
|
||||
if self.details:
|
||||
@ -126,8 +136,10 @@ class AlertDetail(BaseModel):
|
||||
"suppressed": obj.get("suppressed"),
|
||||
"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,
|
||||
"state": obj.get("state"),
|
||||
"severity": obj.get("severity"),
|
||||
"state": State.from_dict(obj["state"]) if obj.get("state") is not None else None,
|
||||
"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
|
||||
})
|
||||
return _obj
|
||||
|
||||
@ -18,9 +18,9 @@ import json
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
||||
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.start_alert_metrics import StartAlertMetrics
|
||||
from thousandeyes_sdk.alerts.models.state import State
|
||||
from typing import Optional, Set
|
||||
from typing_extensions import Self
|
||||
|
||||
@ -32,7 +32,7 @@ class AlertMetricDetail(BaseModel):
|
||||
id: Optional[StrictStr] = Field(default=None, description="Unique metric detail id.")
|
||||
name: Optional[StrictStr] = Field(default=None, description="Geolocation of the alert.")
|
||||
start: Optional[StartAlertMetrics] = None
|
||||
state: Optional[State] = None
|
||||
state: Optional[AlertState] = None
|
||||
type: Optional[StrictStr] = Field(default=None, description="Type of the alert metric.")
|
||||
__properties: ClassVar[List[str]] = ["end", "id", "name", "start", "state", "type"]
|
||||
|
||||
|
||||
@ -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 rule’s 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
|
||||
|
||||
@ -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 rule’s 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
|
||||
|
||||
@ -37,8 +37,8 @@ class AlertSuppressionWindowRequest(BaseModel):
|
||||
duration: Optional[StrictInt] = Field(default=None, description="Duration in seconds the suppression window is active.")
|
||||
repeat: Optional[Repeat] = None
|
||||
end_repeat: Optional[EndRepeat] = Field(default=None, alias="endRepeat")
|
||||
tests: Optional[List[StrictStr]] = Field(default=None, description="List of tests to assign to the alert suppression window.")
|
||||
__properties: ClassVar[List[str]] = ["alertSuppressionWindowId", "name", "isEnabled", "status", "startDate", "duration", "repeat", "endRepeat", "tests"]
|
||||
test_ids: Optional[List[StrictStr]] = Field(default=None, description="List of test IDs to assign to the alert suppression window.", alias="testIds")
|
||||
__properties: ClassVar[List[str]] = ["alertSuppressionWindowId", "name", "isEnabled", "status", "startDate", "duration", "repeat", "endRepeat", "testIds"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -108,7 +108,7 @@ class AlertSuppressionWindowRequest(BaseModel):
|
||||
"duration": obj.get("duration"),
|
||||
"repeat": Repeat.from_dict(obj["repeat"]) if obj.get("repeat") is not None else None,
|
||||
"endRepeat": EndRepeat.from_dict(obj["endRepeat"]) if obj.get("endRepeat") is not None else None,
|
||||
"tests": obj.get("tests")
|
||||
"testIds": obj.get("testIds")
|
||||
})
|
||||
return _obj
|
||||
|
||||
|
||||
@ -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_group_type import AlertGroupType
|
||||
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.sensitivity_level import SensitivityLevel
|
||||
from thousandeyes_sdk.alerts.models.severity import Severity
|
||||
from typing import Optional, Set
|
||||
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")
|
||||
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")
|
||||
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_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")
|
||||
|
||||
@ -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_notification import AlertNotification
|
||||
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.self_links import SelfLinks
|
||||
from thousandeyes_sdk.alerts.models.sensitivity_level import SensitivityLevel
|
||||
from thousandeyes_sdk.alerts.models.severity import Severity
|
||||
from typing import Optional, Set
|
||||
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")
|
||||
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")
|
||||
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_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")
|
||||
|
||||
@ -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_notification import AlertNotification
|
||||
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_type import AlertType
|
||||
from thousandeyes_sdk.alerts.models.self_links import SelfLinks
|
||||
from thousandeyes_sdk.alerts.models.sensitivity_level import SensitivityLevel
|
||||
from thousandeyes_sdk.alerts.models.severity import Severity
|
||||
from typing import Optional, Set
|
||||
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")
|
||||
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")
|
||||
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_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")
|
||||
|
||||
@ -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_notification import AlertNotification
|
||||
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.sensitivity_level import SensitivityLevel
|
||||
from thousandeyes_sdk.alerts.models.severity import Severity
|
||||
from typing import Optional, Set
|
||||
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")
|
||||
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")
|
||||
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_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")
|
||||
|
||||
@ -12,32 +12,74 @@
|
||||
|
||||
|
||||
from __future__ import annotations
|
||||
import pprint
|
||||
import re # noqa: F401
|
||||
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
|
||||
|
||||
class Severity(BaseModel):
|
||||
"""
|
||||
Severity
|
||||
""" # noqa: E501
|
||||
__properties: ClassVar[List[str]] = []
|
||||
|
||||
class Severity(str, Enum):
|
||||
"""
|
||||
The severity of the alert.
|
||||
"""
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
validate_assignment=True,
|
||||
protected_namespaces=(),
|
||||
extra="allow",
|
||||
)
|
||||
|
||||
"""
|
||||
allowed enum values
|
||||
"""
|
||||
INFO = 'info'
|
||||
MAJOR = 'major'
|
||||
MINOR = 'minor'
|
||||
CRITICAL = 'critical'
|
||||
UNKNOWN = 'unknown'
|
||||
|
||||
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) -> Self:
|
||||
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||
"""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
|
||||
def _missing_(cls, value):
|
||||
"""Handle unknown values"""
|
||||
return cls.UNKNOWN
|
||||
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
||||
"""Create an instance of Severity from a dict"""
|
||||
if obj is None:
|
||||
return None
|
||||
|
||||
if not isinstance(obj, dict):
|
||||
return cls.model_validate(obj)
|
||||
|
||||
_obj = cls.model_validate({
|
||||
})
|
||||
return _obj
|
||||
|
||||
|
||||
|
||||
@ -12,30 +12,74 @@
|
||||
|
||||
|
||||
from __future__ import annotations
|
||||
import pprint
|
||||
import re # noqa: F401
|
||||
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
|
||||
|
||||
class State(BaseModel):
|
||||
"""
|
||||
State
|
||||
""" # noqa: E501
|
||||
__properties: ClassVar[List[str]] = []
|
||||
|
||||
class State(str, Enum):
|
||||
"""
|
||||
Current state of the alert. Possible values: clear or trigger.
|
||||
"""
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
validate_assignment=True,
|
||||
protected_namespaces=(),
|
||||
extra="allow",
|
||||
)
|
||||
|
||||
"""
|
||||
allowed enum values
|
||||
"""
|
||||
CLEAR = 'clear'
|
||||
TRIGGER = 'trigger'
|
||||
UNKNOWN = 'unknown'
|
||||
|
||||
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) -> Self:
|
||||
def from_json(cls, json_str: str) -> Optional[Self]:
|
||||
"""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
|
||||
def _missing_(cls, value):
|
||||
"""Handle unknown values"""
|
||||
return cls.UNKNOWN
|
||||
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
||||
"""Create an instance of State from a dict"""
|
||||
if obj is None:
|
||||
return None
|
||||
|
||||
if not isinstance(obj, dict):
|
||||
return cls.model_validate(obj)
|
||||
|
||||
_obj = cls.model_validate({
|
||||
})
|
||||
return _obj
|
||||
|
||||
|
||||
|
||||
@ -33,8 +33,8 @@ class TestAlertSuppressionWindowsApi(unittest.TestCase):
|
||||
request_body_json = """
|
||||
{
|
||||
"duration" : 0,
|
||||
"testIds" : [ "71687", "71687" ],
|
||||
"alertSuppressionWindowId" : "2411",
|
||||
"tests" : [ "71687", "71687" ],
|
||||
"isEnabled" : false,
|
||||
"repeat" : {
|
||||
"intervalType" : "day",
|
||||
@ -352,8 +352,8 @@ class TestAlertSuppressionWindowsApi(unittest.TestCase):
|
||||
request_body_json = """
|
||||
{
|
||||
"duration" : 0,
|
||||
"testIds" : [ "71687", "71687" ],
|
||||
"alertSuppressionWindowId" : "2411",
|
||||
"tests" : [ "71687", "71687" ],
|
||||
"isEnabled" : false,
|
||||
"repeat" : {
|
||||
"intervalType" : "day",
|
||||
|
||||
@ -33,10 +33,8 @@ class TestAlertsApi(unittest.TestCase):
|
||||
|
||||
response_body_json = """
|
||||
{
|
||||
"duration" : 60,
|
||||
"severity" : "major",
|
||||
"severity" : { },
|
||||
"alertType" : "http-server",
|
||||
"violationCount" : 2,
|
||||
"endDate" : "2022-07-18T22:00:54Z",
|
||||
"_links" : {
|
||||
"appLink" : {
|
||||
@ -80,6 +78,9 @@ class TestAlertsApi(unittest.TestCase):
|
||||
"title" : "title"
|
||||
}
|
||||
},
|
||||
"alertSeverity" : "major",
|
||||
"duration" : 60,
|
||||
"violationCount" : 2,
|
||||
"meta" : {
|
||||
"version" : 1
|
||||
},
|
||||
@ -108,7 +109,8 @@ class TestAlertsApi(unittest.TestCase):
|
||||
} ],
|
||||
"id" : "e9c3bf02-a48c-4aa8-9e5f-898800d6f569",
|
||||
"suppressed" : false,
|
||||
"state" : "trigger",
|
||||
"state" : { },
|
||||
"alertState" : "trigger",
|
||||
"startDate" : "2022-07-17T22:00:54Z"
|
||||
}"""
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ For more information about monitors, see [Inside-Out BGP Visibility](https://doc
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ For more information about credentials, see [Working With Secure Credentials](ht
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@ Manage ThousandEyes Dashboards.
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ To access Emulation API operations, the following permissions are required:
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ For more information about Endpoint Agents, see [Endpoint Agents](https://docs.t
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -19,6 +19,7 @@ Name | Type | Description | Notes
|
||||
**status** | [**Status**](Status.md) | | [optional]
|
||||
**deleted** | **bool** | | [optional] [readonly]
|
||||
**version** | **str** | Version of the agent software running. | [optional] [readonly]
|
||||
**target_version** | **str** | The latest available version of the agent. This field is populated only if expand includes `targetVersion`. | [optional] [readonly]
|
||||
**created_at** | **datetime** | | [optional] [readonly]
|
||||
**number_of_clients** | **int** | | [optional] [readonly]
|
||||
**public_ip** | **str** | | [optional] [readonly]
|
||||
|
||||
@ -48,6 +48,7 @@ class EndpointAgent(BaseModel):
|
||||
status: Optional[Status] = None
|
||||
deleted: Optional[StrictBool] = None
|
||||
version: Optional[StrictStr] = Field(default=None, description="Version of the agent software running.")
|
||||
target_version: Optional[StrictStr] = Field(default=None, description="The latest available version of the agent. This field is populated only if expand includes `targetVersion`.", alias="targetVersion")
|
||||
created_at: Optional[datetime] = Field(default=None, alias="createdAt")
|
||||
number_of_clients: Optional[StrictInt] = Field(default=None, alias="numberOfClients")
|
||||
public_ip: Optional[StrictStr] = Field(default=None, alias="publicIP")
|
||||
@ -62,7 +63,7 @@ class EndpointAgent(BaseModel):
|
||||
tcp_driver_available: Optional[StrictBool] = Field(default=None, description="Status of TCP test support on the agent.", alias="tcpDriverAvailable")
|
||||
npcap_version: Optional[StrictStr] = Field(default=None, description="For Windows agents, the version of the NPCAP driver that the agent has loaded.", alias="npcapVersion")
|
||||
links: Optional[SelfLinks] = Field(default=None, alias="_links")
|
||||
__properties: ClassVar[List[str]] = ["id", "aid", "name", "computerName", "osVersion", "platform", "kernelVersion", "manufacturer", "model", "lastSeen", "status", "deleted", "version", "createdAt", "numberOfClients", "publicIP", "location", "clients", "totalMemory", "agentType", "vpnProfiles", "networkInterfaceProfiles", "asnDetails", "licenseType", "tcpDriverAvailable", "npcapVersion", "_links"]
|
||||
__properties: ClassVar[List[str]] = ["id", "aid", "name", "computerName", "osVersion", "platform", "kernelVersion", "manufacturer", "model", "lastSeen", "status", "deleted", "version", "targetVersion", "createdAt", "numberOfClients", "publicIP", "location", "clients", "totalMemory", "agentType", "vpnProfiles", "networkInterfaceProfiles", "asnDetails", "licenseType", "tcpDriverAvailable", "npcapVersion", "_links"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -114,6 +115,7 @@ class EndpointAgent(BaseModel):
|
||||
* OpenAPI `readOnly` fields are excluded.
|
||||
* OpenAPI `readOnly` fields are excluded.
|
||||
* OpenAPI `readOnly` fields are excluded.
|
||||
* OpenAPI `readOnly` fields are excluded.
|
||||
"""
|
||||
excluded_fields: Set[str] = set([
|
||||
"id",
|
||||
@ -125,6 +127,7 @@ class EndpointAgent(BaseModel):
|
||||
"last_seen",
|
||||
"deleted",
|
||||
"version",
|
||||
"target_version",
|
||||
"created_at",
|
||||
"number_of_clients",
|
||||
"public_ip",
|
||||
@ -197,6 +200,7 @@ class EndpointAgent(BaseModel):
|
||||
"status": obj.get("status"),
|
||||
"deleted": obj.get("deleted"),
|
||||
"version": obj.get("version"),
|
||||
"targetVersion": obj.get("targetVersion"),
|
||||
"createdAt": obj.get("createdAt"),
|
||||
"numberOfClients": obj.get("numberOfClients"),
|
||||
"publicIP": obj.get("publicIP"),
|
||||
|
||||
@ -98,6 +98,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
|
||||
"tcpDriverAvailable" : true,
|
||||
"platform" : "mac",
|
||||
"manufacturer" : "Apple, Inc.",
|
||||
"targetVersion" : "0.123.4",
|
||||
"createdAt" : "2022-05-26T23:37:16Z",
|
||||
"numberOfClients" : 3,
|
||||
"licenseType" : "essentials",
|
||||
@ -256,6 +257,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
|
||||
"tcpDriverAvailable" : true,
|
||||
"platform" : "mac",
|
||||
"manufacturer" : "Apple, Inc.",
|
||||
"targetVersion" : "0.123.4",
|
||||
"createdAt" : "2022-05-26T23:37:16Z",
|
||||
"numberOfClients" : 3,
|
||||
"licenseType" : "essentials",
|
||||
@ -466,6 +468,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
|
||||
"tcpDriverAvailable" : true,
|
||||
"platform" : "mac",
|
||||
"manufacturer" : "Apple, Inc.",
|
||||
"targetVersion" : "0.123.4",
|
||||
"createdAt" : "2022-05-26T23:37:16Z",
|
||||
"numberOfClients" : 3,
|
||||
"licenseType" : "essentials",
|
||||
@ -614,6 +617,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
|
||||
"tcpDriverAvailable" : true,
|
||||
"platform" : "mac",
|
||||
"manufacturer" : "Apple, Inc.",
|
||||
"targetVersion" : "0.123.4",
|
||||
"createdAt" : "2022-05-26T23:37:16Z",
|
||||
"numberOfClients" : 3,
|
||||
"licenseType" : "essentials",
|
||||
@ -773,6 +777,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
|
||||
"tcpDriverAvailable" : true,
|
||||
"platform" : "mac",
|
||||
"manufacturer" : "Apple, Inc.",
|
||||
"targetVersion" : "0.123.4",
|
||||
"createdAt" : "2022-05-26T23:37:16Z",
|
||||
"numberOfClients" : 3,
|
||||
"licenseType" : "essentials",
|
||||
@ -955,6 +960,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
|
||||
"tcpDriverAvailable" : true,
|
||||
"platform" : "mac",
|
||||
"manufacturer" : "Apple, Inc.",
|
||||
"targetVersion" : "0.123.4",
|
||||
"createdAt" : "2022-05-26T23:37:16Z",
|
||||
"numberOfClients" : 3,
|
||||
"licenseType" : "essentials",
|
||||
@ -1103,6 +1109,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
|
||||
"tcpDriverAvailable" : true,
|
||||
"platform" : "mac",
|
||||
"manufacturer" : "Apple, Inc.",
|
||||
"targetVersion" : "0.123.4",
|
||||
"createdAt" : "2022-05-26T23:37:16Z",
|
||||
"numberOfClients" : 3,
|
||||
"licenseType" : "essentials",
|
||||
@ -1295,6 +1302,7 @@ class TestEndpointAgentsApi(unittest.TestCase):
|
||||
"tcpDriverAvailable" : true,
|
||||
"platform" : "mac",
|
||||
"manufacturer" : "Apple, Inc.",
|
||||
"targetVersion" : "0.123.4",
|
||||
"createdAt" : "2022-05-26T23:37:16Z",
|
||||
"numberOfClients" : 3,
|
||||
"licenseType" : "essentials",
|
||||
|
||||
@ -13,7 +13,7 @@ The URLs for these API test data endpoints are provided within the test definiti
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -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]
|
||||
**max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25]
|
||||
**test_name** | **str** | Name of the test. |
|
||||
**server_name** | **str** | A server address without a protocol or IP address. |
|
||||
**server_name** | **str** | A server address without a protocol or IP address. **Deprecated, use `server` instead**. | [optional]
|
||||
**server** | **str** | Target domain name or IP address. |
|
||||
**port** | **int** | Port number. | [optional] [default to 443]
|
||||
|
||||
## Example
|
||||
|
||||
@ -31,9 +31,10 @@ class EndpointAgentToServerInstantTest(BaseModel):
|
||||
endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels")
|
||||
max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines")
|
||||
test_name: StrictStr = Field(description="Name of the test.", alias="testName")
|
||||
server_name: StrictStr = Field(description="A server address without a protocol or IP address.", alias="serverName")
|
||||
server_name: Optional[StrictStr] = Field(default=None, description="A server address without a protocol or IP address. **Deprecated, use `server` instead**.", alias="serverName")
|
||||
server: StrictStr = Field(description="Target domain name or IP address.")
|
||||
port: Optional[StrictInt] = Field(default=443, description="Port number.")
|
||||
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "serverName", "port"]
|
||||
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "serverName", "server", "port"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -93,6 +94,7 @@ class EndpointAgentToServerInstantTest(BaseModel):
|
||||
"maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25,
|
||||
"testName": obj.get("testName"),
|
||||
"serverName": obj.get("serverName"),
|
||||
"server": obj.get("server"),
|
||||
"port": obj.get("port") if obj.get("port") is not None else 443
|
||||
})
|
||||
return _obj
|
||||
|
||||
@ -32,6 +32,7 @@ class TestAgentToServerEndpointInstantScheduledTestsApi(unittest.TestCase):
|
||||
"""Test case for create_agent_to_server_scheduled_instant_test request and response models"""
|
||||
request_body_json = """
|
||||
{
|
||||
"server" : "www.example.com",
|
||||
"port" : 443,
|
||||
"agentSelectorType" : "all-agents",
|
||||
"maxMachines" : 25,
|
||||
|
||||
@ -4,7 +4,7 @@ Manage labels applied to endpoint agents using this API.
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -28,6 +28,11 @@ docs/EndpointPathTrace.md
|
||||
docs/EndpointPathVisHop.md
|
||||
docs/EndpointPathVisRoute.md
|
||||
docs/EndpointPingDataPointScore.md
|
||||
docs/EndpointProbeAgentScore.md
|
||||
docs/EndpointProbeConnectionScore.md
|
||||
docs/EndpointProbeGatewayScore.md
|
||||
docs/EndpointProbeProxyScore.md
|
||||
docs/EndpointProbeVpnScore.md
|
||||
docs/EndpointResultRequestFilter.md
|
||||
docs/EndpointScheduledTest.md
|
||||
docs/EndpointScheduledTestType.md
|
||||
@ -46,6 +51,8 @@ docs/EndpointTestsDataSearchSort.md
|
||||
docs/EndpointTestsDataSearchSortKey.md
|
||||
docs/EndpointTestsDataThresholdFilter.md
|
||||
docs/EndpointTestsDataThresholdFilters.md
|
||||
docs/EndpointZtaMetrics.md
|
||||
docs/EndpointZtaSegmentType.md
|
||||
docs/Error.md
|
||||
docs/ExpandEndpointHttpServerOptions.md
|
||||
docs/ExpandLocalNetworkTopologyOptions.md
|
||||
@ -186,6 +193,11 @@ src/thousandeyes_sdk/endpoint_test_results/models/endpoint_path_trace.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_path_vis_hop.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_path_vis_route.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_ping_data_point_score.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_probe_agent_score.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_probe_connection_score.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_probe_gateway_score.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_probe_proxy_score.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_probe_vpn_score.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_result_request_filter.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_scheduled_test.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_scheduled_test_type.py
|
||||
@ -204,6 +216,8 @@ src/thousandeyes_sdk/endpoint_test_results/models/endpoint_tests_data_search_sor
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_tests_data_search_sort_key.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_tests_data_threshold_filter.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_tests_data_threshold_filters.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_zta_metrics.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_zta_segment_type.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/error.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/expand_endpoint_http_server_options.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/expand_local_network_topology_options.py
|
||||
|
||||
@ -3,7 +3,7 @@ Retrieve results for scheduled and dynamic tests on endpoint agents.
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
@ -102,6 +102,7 @@ Class | Method | HTTP request | Description
|
||||
------------ | ------------- | ------------- | -------------
|
||||
*HTTPServerEndpointScheduledTestResultsApi* | [**get_http_server_scheduled_test_results**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/HTTPServerEndpointScheduledTestResultsApi.md#get_http_server_scheduled_test_results) | **GET** /endpoint/test-results/scheduled-tests/{testId}/http-server | Retrieve HTTP server scheduled test results
|
||||
*HTTPServerEndpointScheduledTestResultsApi* | [**get_multi_test_filtered_http_server_scheduled_test_results**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/HTTPServerEndpointScheduledTestResultsApi.md#get_multi_test_filtered_http_server_scheduled_test_results) | **POST** /endpoint/test-results/scheduled-tests/http-server/filter | Filter HTTP server scheduled test results
|
||||
*HTTPServerEndpointScheduledTestResultsApi* | [**get_single_test_filtered_http_server_scheduled_test_results**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/HTTPServerEndpointScheduledTestResultsApi.md#get_single_test_filtered_http_server_scheduled_test_results) | **POST** /endpoint/test-results/scheduled-tests/{testId}/http-server/filter | Filter HTTP server result for a scheduled test
|
||||
*LocalNetworkEndpointTestResultsApi* | [**filter_local_networks_test_results_topologies**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworkEndpointTestResultsApi.md#filter_local_networks_test_results_topologies) | **POST** /endpoint/test-results/local-networks/topologies/filter | List endpoint network topologies probes
|
||||
*LocalNetworkEndpointTestResultsApi* | [**get_local_networks_test_results**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworkEndpointTestResultsApi.md#get_local_networks_test_results) | **GET** /endpoint/test-results/local-networks | List local networks
|
||||
*LocalNetworkEndpointTestResultsApi* | [**get_local_networks_test_results_topology**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/LocalNetworkEndpointTestResultsApi.md#get_local_networks_test_results_topology) | **GET** /endpoint/test-results/local-networks/topologies/{networkTopologyId} | Retrieve endpoint local network topology
|
||||
@ -148,6 +149,11 @@ Class | Method | HTTP request | Description
|
||||
- [EndpointPathVisHop](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointPathVisHop.md)
|
||||
- [EndpointPathVisRoute](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointPathVisRoute.md)
|
||||
- [EndpointPingDataPointScore](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointPingDataPointScore.md)
|
||||
- [EndpointProbeAgentScore](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointProbeAgentScore.md)
|
||||
- [EndpointProbeConnectionScore](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointProbeConnectionScore.md)
|
||||
- [EndpointProbeGatewayScore](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointProbeGatewayScore.md)
|
||||
- [EndpointProbeProxyScore](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointProbeProxyScore.md)
|
||||
- [EndpointProbeVpnScore](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointProbeVpnScore.md)
|
||||
- [EndpointResultRequestFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointResultRequestFilter.md)
|
||||
- [EndpointScheduledTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointScheduledTest.md)
|
||||
- [EndpointScheduledTestType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointScheduledTestType.md)
|
||||
@ -166,6 +172,8 @@ Class | Method | HTTP request | Description
|
||||
- [EndpointTestsDataSearchSortKey](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointTestsDataSearchSortKey.md)
|
||||
- [EndpointTestsDataThresholdFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointTestsDataThresholdFilter.md)
|
||||
- [EndpointTestsDataThresholdFilters](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointTestsDataThresholdFilters.md)
|
||||
- [EndpointZtaMetrics](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointZtaMetrics.md)
|
||||
- [EndpointZtaSegmentType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointZtaSegmentType.md)
|
||||
- [Error](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/Error.md)
|
||||
- [ExpandEndpointHttpServerOptions](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/ExpandEndpointHttpServerOptions.md)
|
||||
- [ExpandLocalNetworkTopologyOptions](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/ExpandLocalNetworkTopologyOptions.md)
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
|
||||
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]
|
||||
|
||||
## Example
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**application_score** | **float** | Fine grained score between 0-100 based on metrics (latency, jitter, loss) | [optional]
|
||||
**application_score** | **float** | A fine-grained score between 0 and 100. | [optional]
|
||||
**quality** | [**ApplicationScoreQuality**](ApplicationScoreQuality.md) | | [optional]
|
||||
|
||||
## Example
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@ Method | HTTP request | Description
|
||||
------------- | ------------- | -------------
|
||||
[**get_http_server_scheduled_test_results**](HTTPServerEndpointScheduledTestResultsApi.md#get_http_server_scheduled_test_results) | **GET** /endpoint/test-results/scheduled-tests/{testId}/http-server | Retrieve HTTP server scheduled test results
|
||||
[**get_multi_test_filtered_http_server_scheduled_test_results**](HTTPServerEndpointScheduledTestResultsApi.md#get_multi_test_filtered_http_server_scheduled_test_results) | **POST** /endpoint/test-results/scheduled-tests/http-server/filter | Filter HTTP server scheduled test results
|
||||
[**get_single_test_filtered_http_server_scheduled_test_results**](HTTPServerEndpointScheduledTestResultsApi.md#get_single_test_filtered_http_server_scheduled_test_results) | **POST** /endpoint/test-results/scheduled-tests/{testId}/http-server/filter | Filter HTTP server result for a scheduled test
|
||||
|
||||
|
||||
# **get_http_server_scheduled_test_results**
|
||||
@ -106,7 +107,7 @@ Name | Type | Description | Notes
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **get_multi_test_filtered_http_server_scheduled_test_results**
|
||||
> HttpMultiEndpointTestResults get_multi_test_filtered_http_server_scheduled_test_results(aid=aid, window=window, start_date=start_date, end_date=end_date, cursor=cursor, expand=expand, http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search)
|
||||
> HttpMultiEndpointTestResults get_multi_test_filtered_http_server_scheduled_test_results(aid=aid, window=window, start_date=start_date, end_date=end_date, cursor=cursor, use_all_permitted_aids=use_all_permitted_aids, expand=expand, http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search)
|
||||
|
||||
Filter HTTP server scheduled test results
|
||||
|
||||
@ -149,12 +150,13 @@ with thousandeyes_sdk.core.ApiClient(configuration) as api_client:
|
||||
start_date = '2022-07-17T22:00:54Z' # datetime | Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
|
||||
end_date = '2022-07-18T22:00:54Z' # datetime | Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
|
||||
cursor = 'cursor_example' # str | (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. (optional)
|
||||
use_all_permitted_aids = False # bool | Set to `true` to load data from all accounts the user has access to. (optional) (default to False)
|
||||
expand = [thousandeyes_sdk.endpoint_test_results.ExpandEndpointHttpServerOptions()] # List[ExpandEndpointHttpServerOptions] | This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query. (optional)
|
||||
http_endpoint_tests_data_rounds_search = thousandeyes_sdk.endpoint_test_results.HttpEndpointTestsDataRoundsSearch() # HttpEndpointTestsDataRoundsSearch | Test data search filters. (optional)
|
||||
|
||||
try:
|
||||
# Filter HTTP server scheduled test results
|
||||
api_response = api_instance.get_multi_test_filtered_http_server_scheduled_test_results(aid=aid, window=window, start_date=start_date, end_date=end_date, cursor=cursor, expand=expand, http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search)
|
||||
api_response = api_instance.get_multi_test_filtered_http_server_scheduled_test_results(aid=aid, window=window, start_date=start_date, end_date=end_date, cursor=cursor, use_all_permitted_aids=use_all_permitted_aids, expand=expand, http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search)
|
||||
print("The response of HTTPServerEndpointScheduledTestResultsApi->get_multi_test_filtered_http_server_scheduled_test_results:\n")
|
||||
pprint(api_response)
|
||||
except Exception as e:
|
||||
@ -173,6 +175,7 @@ Name | Type | Description | Notes
|
||||
**start_date** | **datetime**| Use with the `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]
|
||||
**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]
|
||||
**http_endpoint_tests_data_rounds_search** | [**HttpEndpointTestsDataRoundsSearch**](HttpEndpointTestsDataRoundsSearch.md)| Test data search filters. | [optional]
|
||||
|
||||
@ -204,3 +207,104 @@ Name | Type | Description | Notes
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **get_single_test_filtered_http_server_scheduled_test_results**
|
||||
> HttpMultiEndpointTestResults get_single_test_filtered_http_server_scheduled_test_results(test_id, aid=aid, window=window, start_date=start_date, end_date=end_date, cursor=cursor, expand=expand, http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search)
|
||||
|
||||
Filter HTTP server result for a scheduled test
|
||||
|
||||
Returns component-level timings for an object load over HTTP. These include DNS, connect, wait, and receive times for a single scheduled test.
|
||||
|
||||
### Example
|
||||
|
||||
* Bearer Authentication (BearerAuth):
|
||||
|
||||
```python
|
||||
import thousandeyes_sdk.endpoint_test_results
|
||||
from thousandeyes_sdk.endpoint_test_results.models.expand_endpoint_http_server_options import ExpandEndpointHttpServerOptions
|
||||
from thousandeyes_sdk.endpoint_test_results.models.http_endpoint_tests_data_rounds_search import HttpEndpointTestsDataRoundsSearch
|
||||
from thousandeyes_sdk.endpoint_test_results.models.http_multi_endpoint_test_results import HttpMultiEndpointTestResults
|
||||
from thousandeyes_sdk.endpoint_test_results.rest import ApiException
|
||||
from pprint import pprint
|
||||
|
||||
# Defining the host is optional and defaults to https://api.thousandeyes.com/v7
|
||||
# See configuration.py for a list of all supported configuration parameters.
|
||||
configuration = thousandeyes_sdk.core.Configuration(
|
||||
host = "https://api.thousandeyes.com/v7"
|
||||
)
|
||||
|
||||
# The client must configure the authentication and authorization parameters
|
||||
# in accordance with the API server security policy.
|
||||
# Examples for each auth method are provided below, use the example that
|
||||
# satisfies your auth use case.
|
||||
|
||||
# Configure Bearer authorization: BearerAuth
|
||||
configuration = thousandeyes_sdk.core.Configuration(
|
||||
access_token = os.environ["BEARER_TOKEN"]
|
||||
)
|
||||
|
||||
# Enter a context with an instance of the API client
|
||||
with thousandeyes_sdk.core.ApiClient(configuration) as api_client:
|
||||
# Create an instance of the API class
|
||||
api_instance = thousandeyes_sdk.endpoint_test_results.HTTPServerEndpointScheduledTestResultsApi(api_client)
|
||||
test_id = '202701' # str | Test ID
|
||||
aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional)
|
||||
window = '12h' # str | A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`. (optional)
|
||||
start_date = '2022-07-17T22:00:54Z' # datetime | Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
|
||||
end_date = '2022-07-18T22:00:54Z' # datetime | Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
|
||||
cursor = 'cursor_example' # str | (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. (optional)
|
||||
expand = [thousandeyes_sdk.endpoint_test_results.ExpandEndpointHttpServerOptions()] # List[ExpandEndpointHttpServerOptions] | This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query. (optional)
|
||||
http_endpoint_tests_data_rounds_search = thousandeyes_sdk.endpoint_test_results.HttpEndpointTestsDataRoundsSearch() # HttpEndpointTestsDataRoundsSearch | Test result search filters. (optional)
|
||||
|
||||
try:
|
||||
# Filter HTTP server result for a scheduled test
|
||||
api_response = api_instance.get_single_test_filtered_http_server_scheduled_test_results(test_id, aid=aid, window=window, start_date=start_date, end_date=end_date, cursor=cursor, expand=expand, http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search)
|
||||
print("The response of HTTPServerEndpointScheduledTestResultsApi->get_single_test_filtered_http_server_scheduled_test_results:\n")
|
||||
pprint(api_response)
|
||||
except Exception as e:
|
||||
print("Exception when calling HTTPServerEndpointScheduledTestResultsApi->get_single_test_filtered_http_server_scheduled_test_results: %s\n" % e)
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Parameters
|
||||
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**test_id** | **str**| Test ID |
|
||||
**aid** | **str**| A unique identifier associated with your account group. You can retrieve your `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)
|
||||
|
||||
|
||||
@ -14,6 +14,7 @@ Name | Type | Description | Notes
|
||||
**system_metrics** | [**SystemMetrics**](SystemMetrics.md) | | [optional]
|
||||
**original_target_profile** | [**TargetProfile**](TargetProfile.md) | | [optional]
|
||||
**vpn_profile** | [**VpnProfile**](VpnProfile.md) | | [optional]
|
||||
**score** | [**EndpointHttpDataPointScore**](EndpointHttpDataPointScore.md) | | [optional]
|
||||
**connect_time** | **int** | Time required to establish a TCP connection to the server in milliseconds. | [optional] [readonly]
|
||||
**dns_time** | **int** | Time required to resolve DNS in milliseconds. | [optional] [readonly]
|
||||
**error_type** | [**HttpErrorType**](HttpErrorType.md) | | [optional]
|
||||
|
||||
@ -17,6 +17,11 @@ Name | Type | Description | Notes
|
||||
**tcp_connect** | [**TcpConnect**](TcpConnect.md) | | [optional]
|
||||
**system_metrics** | [**SystemMetrics**](SystemMetrics.md) | | [optional]
|
||||
**system_metric_details** | [**SystemMetricDetails**](SystemMetricDetails.md) | | [optional]
|
||||
**vpn_score** | [**EndpointProbeVpnScore**](EndpointProbeVpnScore.md) | | [optional]
|
||||
**gateway_score** | [**EndpointProbeGatewayScore**](EndpointProbeGatewayScore.md) | | [optional]
|
||||
**proxy_score** | [**EndpointProbeProxyScore**](EndpointProbeProxyScore.md) | | [optional]
|
||||
**connection_score** | [**EndpointProbeConnectionScore**](EndpointProbeConnectionScore.md) | | [optional]
|
||||
**agent_score** | [**EndpointProbeAgentScore**](EndpointProbeAgentScore.md) | | [optional]
|
||||
**coordinates** | [**RealUserEndpointTestCoordinates**](RealUserEndpointTestCoordinates.md) | | [optional]
|
||||
**network_profile** | [**NetworkProfile**](NetworkProfile.md) | | [optional]
|
||||
**icmp_traceroute** | [**Traceroute**](Traceroute.md) | | [optional]
|
||||
|
||||
@ -17,6 +17,11 @@ Name | Type | Description | Notes
|
||||
**tcp_connect** | [**TcpConnect**](TcpConnect.md) | | [optional]
|
||||
**system_metrics** | [**SystemMetrics**](SystemMetrics.md) | | [optional]
|
||||
**system_metric_details** | [**SystemMetricDetails**](SystemMetricDetails.md) | | [optional]
|
||||
**vpn_score** | [**EndpointProbeVpnScore**](EndpointProbeVpnScore.md) | | [optional]
|
||||
**gateway_score** | [**EndpointProbeGatewayScore**](EndpointProbeGatewayScore.md) | | [optional]
|
||||
**proxy_score** | [**EndpointProbeProxyScore**](EndpointProbeProxyScore.md) | | [optional]
|
||||
**connection_score** | [**EndpointProbeConnectionScore**](EndpointProbeConnectionScore.md) | | [optional]
|
||||
**agent_score** | [**EndpointProbeAgentScore**](EndpointProbeAgentScore.md) | | [optional]
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
@ -17,6 +17,8 @@ Name | Type | Description | Notes
|
||||
**avg_latency** | **float** | Average RTT for packets sent to destination. | [optional] [readonly]
|
||||
**error_details** | **str** | Error details, if an error was encountered. | [optional] [readonly]
|
||||
**jitter** | **float** | Standard deviation of latency. | [optional] [readonly]
|
||||
**score** | [**EndpointPingDataPointScore**](EndpointPingDataPointScore.md) | | [optional]
|
||||
**zta_metrics** | [**List[EndpointZtaMetrics]**](EndpointZtaMetrics.md) | | [optional]
|
||||
**is_icmp_blocked** | **bool** | Set to `true` if network target is blocking ICMP echo (ping) queries. | [optional] [readonly]
|
||||
**loss** | **float** | Percentage of packets not reaching destination. | [optional] [readonly]
|
||||
**max_latency** | **float** | Maximum RTT for packets sent to destination. | [optional] [readonly]
|
||||
|
||||
@ -108,7 +108,7 @@ Name | Type | Description | Notes
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **filter_scheduled_tests_network_results**
|
||||
> MultiTestIdNetworkEndpointTestResults filter_scheduled_tests_network_results(aid=aid, window=window, start_date=start_date, end_date=end_date, max=max, cursor=cursor, multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search)
|
||||
> MultiTestIdNetworkEndpointTestResults filter_scheduled_tests_network_results(aid=aid, window=window, start_date=start_date, end_date=end_date, max=max, cursor=cursor, use_all_permitted_aids=use_all_permitted_aids, multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search)
|
||||
|
||||
Retrieve network scheduled test results from multiple tests
|
||||
|
||||
@ -151,11 +151,12 @@ with thousandeyes_sdk.core.ApiClient(configuration) as api_client:
|
||||
end_date = '2022-07-18T22:00:54Z' # datetime | Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
|
||||
max = 5 # int | (Optional) Maximum number of objects to return. (optional)
|
||||
cursor = 'cursor_example' # str | (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. (optional)
|
||||
use_all_permitted_aids = False # bool | Set to `true` to load data from all accounts the user has access to. (optional) (default to False)
|
||||
multi_test_id_endpoint_tests_data_rounds_search = thousandeyes_sdk.endpoint_test_results.MultiTestIdEndpointTestsDataRoundsSearch() # MultiTestIdEndpointTestsDataRoundsSearch | Test data search filters. (optional)
|
||||
|
||||
try:
|
||||
# Retrieve network scheduled test results from multiple tests
|
||||
api_response = api_instance.filter_scheduled_tests_network_results(aid=aid, window=window, start_date=start_date, end_date=end_date, max=max, cursor=cursor, multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search)
|
||||
api_response = api_instance.filter_scheduled_tests_network_results(aid=aid, window=window, start_date=start_date, end_date=end_date, max=max, cursor=cursor, use_all_permitted_aids=use_all_permitted_aids, multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search)
|
||||
print("The response of NetworkEndpointScheduledTestResultsApi->filter_scheduled_tests_network_results:\n")
|
||||
pprint(api_response)
|
||||
except Exception as e:
|
||||
@ -175,6 +176,7 @@ Name | Type | Description | Notes
|
||||
**end_date** | **datetime**| Defaults to current time the request is made. Use with the `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]
|
||||
**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]
|
||||
|
||||
### Return type
|
||||
|
||||
@ -17,6 +17,8 @@ Name | Type | Description | Notes
|
||||
**avg_latency** | **float** | Average RTT for packets sent to destination. | [optional] [readonly]
|
||||
**error_details** | **str** | Error details, if an error was encountered. | [optional] [readonly]
|
||||
**jitter** | **float** | Standard deviation of latency. | [optional] [readonly]
|
||||
**score** | [**EndpointPingDataPointScore**](EndpointPingDataPointScore.md) | | [optional]
|
||||
**zta_metrics** | [**List[EndpointZtaMetrics]**](EndpointZtaMetrics.md) | | [optional]
|
||||
**is_icmp_blocked** | **bool** | Set to `true` if network target is blocking ICMP echo (ping) queries. | [optional] [readonly]
|
||||
**loss** | **float** | Percentage of packets not reaching destination. | [optional] [readonly]
|
||||
**max_latency** | **float** | Maximum RTT for packets sent to destination. | [optional] [readonly]
|
||||
|
||||
@ -49,6 +49,11 @@ from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_trace import En
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_vis_hop import EndpointPathVisHop
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_vis_route import EndpointPathVisRoute
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_ping_data_point_score import EndpointPingDataPointScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_agent_score import EndpointProbeAgentScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_connection_score import EndpointProbeConnectionScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_gateway_score import EndpointProbeGatewayScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_proxy_score import EndpointProbeProxyScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_vpn_score import EndpointProbeVpnScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_result_request_filter import EndpointResultRequestFilter
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_scheduled_test import EndpointScheduledTest
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_scheduled_test_type import EndpointScheduledTestType
|
||||
@ -67,6 +72,8 @@ from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_search_so
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_search_sort_key import EndpointTestsDataSearchSortKey
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_threshold_filter import EndpointTestsDataThresholdFilter
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_threshold_filters import EndpointTestsDataThresholdFilters
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_metrics import EndpointZtaMetrics
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_segment_type import EndpointZtaSegmentType
|
||||
from thousandeyes_sdk.endpoint_test_results.models.error import Error
|
||||
from thousandeyes_sdk.endpoint_test_results.models.expand_endpoint_http_server_options import ExpandEndpointHttpServerOptions
|
||||
from thousandeyes_sdk.endpoint_test_results.models.expand_local_network_topology_options import ExpandLocalNetworkTopologyOptions
|
||||
|
||||
@ -19,7 +19,7 @@ from importlib.metadata import version
|
||||
import thousandeyes_sdk.endpoint_test_results.models
|
||||
|
||||
from datetime import datetime
|
||||
from pydantic import Field, StrictStr, field_validator
|
||||
from pydantic import Field, StrictBool, StrictStr, field_validator
|
||||
from typing import List, Optional
|
||||
from typing_extensions import Annotated
|
||||
from thousandeyes_sdk.endpoint_test_results.models.expand_endpoint_http_server_options import ExpandEndpointHttpServerOptions
|
||||
@ -455,6 +455,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
|
||||
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
|
||||
use_all_permitted_aids: Annotated[Optional[StrictBool], Field(description="Set to `true` to load data from all accounts the user has access to.")] = None,
|
||||
expand: Annotated[Optional[List[ExpandEndpointHttpServerOptions]], Field(description="This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.")] = None,
|
||||
http_endpoint_tests_data_rounds_search: Annotated[Optional[HttpEndpointTestsDataRoundsSearch], Field(description="Test data search filters.")] = None,
|
||||
_request_timeout: Union[
|
||||
@ -484,6 +485,8 @@ class HTTPServerEndpointScheduledTestResultsApi:
|
||||
:type end_date: datetime
|
||||
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
|
||||
:type cursor: str
|
||||
:param use_all_permitted_aids: Set to `true` to load data from all accounts the user has access to.
|
||||
:type use_all_permitted_aids: bool
|
||||
:param expand: This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.
|
||||
:type expand: List[ExpandEndpointHttpServerOptions]
|
||||
:param http_endpoint_tests_data_rounds_search: Test data search filters.
|
||||
@ -516,6 +519,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
|
||||
start_date=start_date,
|
||||
end_date=end_date,
|
||||
cursor=cursor,
|
||||
use_all_permitted_aids=use_all_permitted_aids,
|
||||
expand=expand,
|
||||
http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search,
|
||||
_request_auth=_request_auth,
|
||||
@ -554,6 +558,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
|
||||
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
|
||||
use_all_permitted_aids: Annotated[Optional[StrictBool], Field(description="Set to `true` to load data from all accounts the user has access to.")] = None,
|
||||
expand: Annotated[Optional[List[ExpandEndpointHttpServerOptions]], Field(description="This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.")] = None,
|
||||
http_endpoint_tests_data_rounds_search: Annotated[Optional[HttpEndpointTestsDataRoundsSearch], Field(description="Test data search filters.")] = None,
|
||||
_request_timeout: Union[
|
||||
@ -583,6 +588,8 @@ class HTTPServerEndpointScheduledTestResultsApi:
|
||||
:type end_date: datetime
|
||||
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
|
||||
:type cursor: str
|
||||
:param use_all_permitted_aids: Set to `true` to load data from all accounts the user has access to.
|
||||
:type use_all_permitted_aids: bool
|
||||
:param expand: This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.
|
||||
:type expand: List[ExpandEndpointHttpServerOptions]
|
||||
:param http_endpoint_tests_data_rounds_search: Test data search filters.
|
||||
@ -615,6 +622,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
|
||||
start_date=start_date,
|
||||
end_date=end_date,
|
||||
cursor=cursor,
|
||||
use_all_permitted_aids=use_all_permitted_aids,
|
||||
expand=expand,
|
||||
http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search,
|
||||
_request_auth=_request_auth,
|
||||
@ -653,6 +661,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
|
||||
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
|
||||
use_all_permitted_aids: Annotated[Optional[StrictBool], Field(description="Set to `true` to load data from all accounts the user has access to.")] = None,
|
||||
expand: Annotated[Optional[List[ExpandEndpointHttpServerOptions]], Field(description="This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.")] = None,
|
||||
http_endpoint_tests_data_rounds_search: Annotated[Optional[HttpEndpointTestsDataRoundsSearch], Field(description="Test data search filters.")] = None,
|
||||
_request_timeout: Union[
|
||||
@ -682,6 +691,8 @@ class HTTPServerEndpointScheduledTestResultsApi:
|
||||
:type end_date: datetime
|
||||
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
|
||||
:type cursor: str
|
||||
:param use_all_permitted_aids: Set to `true` to load data from all accounts the user has access to.
|
||||
:type use_all_permitted_aids: bool
|
||||
:param expand: This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.
|
||||
:type expand: List[ExpandEndpointHttpServerOptions]
|
||||
:param http_endpoint_tests_data_rounds_search: Test data search filters.
|
||||
@ -714,6 +725,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
|
||||
start_date=start_date,
|
||||
end_date=end_date,
|
||||
cursor=cursor,
|
||||
use_all_permitted_aids=use_all_permitted_aids,
|
||||
expand=expand,
|
||||
http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search,
|
||||
_request_auth=_request_auth,
|
||||
@ -746,6 +758,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
|
||||
start_date,
|
||||
end_date,
|
||||
cursor,
|
||||
use_all_permitted_aids,
|
||||
expand,
|
||||
http_endpoint_tests_data_rounds_search,
|
||||
_request_auth,
|
||||
@ -807,6 +820,442 @@ class HTTPServerEndpointScheduledTestResultsApi:
|
||||
|
||||
_query_params.append(('cursor', cursor))
|
||||
|
||||
if use_all_permitted_aids is not None:
|
||||
|
||||
_query_params.append(('useAllPermittedAids', use_all_permitted_aids))
|
||||
|
||||
if expand is not None:
|
||||
|
||||
_query_params.append(('expand', expand))
|
||||
|
||||
# process the header parameters
|
||||
# process the form parameters
|
||||
# process the body parameter
|
||||
if http_endpoint_tests_data_rounds_search is not None:
|
||||
_body_params = http_endpoint_tests_data_rounds_search
|
||||
|
||||
|
||||
# set the HTTP header `Accept`
|
||||
_header_params['Accept'] = self.api_client.select_header_accept(
|
||||
[
|
||||
'application/hal+json',
|
||||
'application/json',
|
||||
'application/problem+json'
|
||||
]
|
||||
)
|
||||
|
||||
# set the HTTP header `Content-Type`
|
||||
if _content_type:
|
||||
_header_params['Content-Type'] = _content_type
|
||||
else:
|
||||
_default_content_type = (
|
||||
self.api_client.select_header_content_type(
|
||||
[
|
||||
'application/json'
|
||||
]
|
||||
)
|
||||
)
|
||||
if _default_content_type is not None:
|
||||
_header_params['Content-Type'] = _default_content_type
|
||||
|
||||
# authentication setting
|
||||
_auth_settings: List[str] = [
|
||||
'BearerAuth'
|
||||
]
|
||||
|
||||
return self.api_client.param_serialize(
|
||||
method='POST',
|
||||
resource_path='/endpoint/test-results/scheduled-tests/http-server/filter',
|
||||
path_params=_path_params,
|
||||
query_params=_query_params,
|
||||
header_params=_header_params,
|
||||
body=_body_params,
|
||||
post_params=_form_params,
|
||||
files=_files,
|
||||
auth_settings=_auth_settings,
|
||||
collection_formats=_collection_formats,
|
||||
_host=_host,
|
||||
_request_auth=_request_auth
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
@validate_call
|
||||
def get_single_test_filtered_http_server_scheduled_test_results(
|
||||
self,
|
||||
test_id: Annotated[StrictStr, Field(description="Test ID")],
|
||||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||||
window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None,
|
||||
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
|
||||
expand: Annotated[Optional[List[ExpandEndpointHttpServerOptions]], Field(description="This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.")] = None,
|
||||
http_endpoint_tests_data_rounds_search: Annotated[Optional[HttpEndpointTestsDataRoundsSearch], Field(description="Test result search filters.")] = None,
|
||||
_request_timeout: Union[
|
||||
None,
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Tuple[
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Annotated[StrictFloat, Field(gt=0)]
|
||||
]
|
||||
] = None,
|
||||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||||
_content_type: Optional[StrictStr] = None,
|
||||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||||
) -> HttpMultiEndpointTestResults:
|
||||
"""Filter HTTP server result for a scheduled test
|
||||
|
||||
Returns component-level timings for an object load over HTTP. These include DNS, connect, wait, and receive times for a single scheduled test.
|
||||
|
||||
:param test_id: Test ID (required)
|
||||
:type test_id: str
|
||||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||||
:type aid: str
|
||||
:param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.
|
||||
:type window: str
|
||||
:param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type start_date: datetime
|
||||
:param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type end_date: datetime
|
||||
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
|
||||
:type cursor: str
|
||||
:param expand: This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.
|
||||
:type expand: List[ExpandEndpointHttpServerOptions]
|
||||
:param http_endpoint_tests_data_rounds_search: Test result search filters.
|
||||
:type http_endpoint_tests_data_rounds_search: HttpEndpointTestsDataRoundsSearch
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
(connection, read) timeouts.
|
||||
:type _request_timeout: int, tuple(int, int), optional
|
||||
:param _request_auth: set to override the auth_settings for an a single
|
||||
request; this effectively ignores the
|
||||
authentication in the spec for a single request.
|
||||
:type _request_auth: dict, optional
|
||||
:param _content_type: force content-type for the request.
|
||||
:type _content_type: str, Optional
|
||||
:param _headers: set to override the headers for a single
|
||||
request; this effectively ignores the headers
|
||||
in the spec for a single request.
|
||||
:type _headers: dict, optional
|
||||
:param _host_index: set to override the host_index for a single
|
||||
request; this effectively ignores the host_index
|
||||
in the spec for a single request.
|
||||
:type _host_index: int, optional
|
||||
:return: Returns the result object.
|
||||
""" # noqa: E501
|
||||
|
||||
_param = self._get_single_test_filtered_http_server_scheduled_test_results_serialize(
|
||||
test_id=test_id,
|
||||
aid=aid,
|
||||
window=window,
|
||||
start_date=start_date,
|
||||
end_date=end_date,
|
||||
cursor=cursor,
|
||||
expand=expand,
|
||||
http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search,
|
||||
_request_auth=_request_auth,
|
||||
_content_type=_content_type,
|
||||
_headers=_headers,
|
||||
_host_index=_host_index
|
||||
)
|
||||
|
||||
_response_types_map: Dict[str, Optional[str]] = {
|
||||
'200': "HttpMultiEndpointTestResults",
|
||||
'400': "ValidationError",
|
||||
'401': "UnauthorizedError",
|
||||
'403': "Error",
|
||||
'404': "Error",
|
||||
'429': "Error",
|
||||
'500': "Error",
|
||||
'502': "Error",
|
||||
}
|
||||
response_data = self.api_client.call_api(
|
||||
*_param,
|
||||
_request_timeout=_request_timeout
|
||||
)
|
||||
response_data.read()
|
||||
return self.api_client.response_deserialize(
|
||||
response_data=response_data,
|
||||
response_types_map=_response_types_map,
|
||||
models=thousandeyes_sdk.endpoint_test_results.models,
|
||||
).data
|
||||
|
||||
|
||||
@validate_call
|
||||
def get_single_test_filtered_http_server_scheduled_test_results_with_http_info(
|
||||
self,
|
||||
test_id: Annotated[StrictStr, Field(description="Test ID")],
|
||||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||||
window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None,
|
||||
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
|
||||
expand: Annotated[Optional[List[ExpandEndpointHttpServerOptions]], Field(description="This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.")] = None,
|
||||
http_endpoint_tests_data_rounds_search: Annotated[Optional[HttpEndpointTestsDataRoundsSearch], Field(description="Test result search filters.")] = None,
|
||||
_request_timeout: Union[
|
||||
None,
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Tuple[
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Annotated[StrictFloat, Field(gt=0)]
|
||||
]
|
||||
] = None,
|
||||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||||
_content_type: Optional[StrictStr] = None,
|
||||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||||
) -> ApiResponse[HttpMultiEndpointTestResults]:
|
||||
"""Filter HTTP server result for a scheduled test
|
||||
|
||||
Returns component-level timings for an object load over HTTP. These include DNS, connect, wait, and receive times for a single scheduled test.
|
||||
|
||||
:param test_id: Test ID (required)
|
||||
:type test_id: str
|
||||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||||
:type aid: str
|
||||
:param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.
|
||||
:type window: str
|
||||
:param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type start_date: datetime
|
||||
:param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type end_date: datetime
|
||||
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
|
||||
:type cursor: str
|
||||
:param expand: This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.
|
||||
:type expand: List[ExpandEndpointHttpServerOptions]
|
||||
:param http_endpoint_tests_data_rounds_search: Test result search filters.
|
||||
:type http_endpoint_tests_data_rounds_search: HttpEndpointTestsDataRoundsSearch
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
(connection, read) timeouts.
|
||||
:type _request_timeout: int, tuple(int, int), optional
|
||||
:param _request_auth: set to override the auth_settings for an a single
|
||||
request; this effectively ignores the
|
||||
authentication in the spec for a single request.
|
||||
:type _request_auth: dict, optional
|
||||
:param _content_type: force content-type for the request.
|
||||
:type _content_type: str, Optional
|
||||
:param _headers: set to override the headers for a single
|
||||
request; this effectively ignores the headers
|
||||
in the spec for a single request.
|
||||
:type _headers: dict, optional
|
||||
:param _host_index: set to override the host_index for a single
|
||||
request; this effectively ignores the host_index
|
||||
in the spec for a single request.
|
||||
:type _host_index: int, optional
|
||||
:return: Returns the result object.
|
||||
""" # noqa: E501
|
||||
|
||||
_param = self._get_single_test_filtered_http_server_scheduled_test_results_serialize(
|
||||
test_id=test_id,
|
||||
aid=aid,
|
||||
window=window,
|
||||
start_date=start_date,
|
||||
end_date=end_date,
|
||||
cursor=cursor,
|
||||
expand=expand,
|
||||
http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search,
|
||||
_request_auth=_request_auth,
|
||||
_content_type=_content_type,
|
||||
_headers=_headers,
|
||||
_host_index=_host_index
|
||||
)
|
||||
|
||||
_response_types_map: Dict[str, Optional[str]] = {
|
||||
'200': "HttpMultiEndpointTestResults",
|
||||
'400': "ValidationError",
|
||||
'401': "UnauthorizedError",
|
||||
'403': "Error",
|
||||
'404': "Error",
|
||||
'429': "Error",
|
||||
'500': "Error",
|
||||
'502': "Error",
|
||||
}
|
||||
response_data = self.api_client.call_api(
|
||||
*_param,
|
||||
_request_timeout=_request_timeout
|
||||
)
|
||||
response_data.read()
|
||||
return self.api_client.response_deserialize(
|
||||
response_data=response_data,
|
||||
response_types_map=_response_types_map,
|
||||
models=thousandeyes_sdk.endpoint_test_results.models,
|
||||
)
|
||||
|
||||
|
||||
@validate_call
|
||||
def get_single_test_filtered_http_server_scheduled_test_results_without_preload_content(
|
||||
self,
|
||||
test_id: Annotated[StrictStr, Field(description="Test ID")],
|
||||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||||
window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None,
|
||||
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
|
||||
expand: Annotated[Optional[List[ExpandEndpointHttpServerOptions]], Field(description="This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.")] = None,
|
||||
http_endpoint_tests_data_rounds_search: Annotated[Optional[HttpEndpointTestsDataRoundsSearch], Field(description="Test result search filters.")] = None,
|
||||
_request_timeout: Union[
|
||||
None,
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Tuple[
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Annotated[StrictFloat, Field(gt=0)]
|
||||
]
|
||||
] = None,
|
||||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||||
_content_type: Optional[StrictStr] = None,
|
||||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||||
) -> RESTResponseType:
|
||||
"""Filter HTTP server result for a scheduled test
|
||||
|
||||
Returns component-level timings for an object load over HTTP. These include DNS, connect, wait, and receive times for a single scheduled test.
|
||||
|
||||
:param test_id: Test ID (required)
|
||||
:type test_id: str
|
||||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||||
:type aid: str
|
||||
:param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.
|
||||
:type window: str
|
||||
:param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type start_date: datetime
|
||||
:param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type end_date: datetime
|
||||
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
|
||||
:type cursor: str
|
||||
:param expand: This parameter is optional and determines whether to expand resources related to test results. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as \"header,\" append `?expand=header` to the query.
|
||||
:type expand: List[ExpandEndpointHttpServerOptions]
|
||||
:param http_endpoint_tests_data_rounds_search: Test result search filters.
|
||||
:type http_endpoint_tests_data_rounds_search: HttpEndpointTestsDataRoundsSearch
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
(connection, read) timeouts.
|
||||
:type _request_timeout: int, tuple(int, int), optional
|
||||
:param _request_auth: set to override the auth_settings for an a single
|
||||
request; this effectively ignores the
|
||||
authentication in the spec for a single request.
|
||||
:type _request_auth: dict, optional
|
||||
:param _content_type: force content-type for the request.
|
||||
:type _content_type: str, Optional
|
||||
:param _headers: set to override the headers for a single
|
||||
request; this effectively ignores the headers
|
||||
in the spec for a single request.
|
||||
:type _headers: dict, optional
|
||||
:param _host_index: set to override the host_index for a single
|
||||
request; this effectively ignores the host_index
|
||||
in the spec for a single request.
|
||||
:type _host_index: int, optional
|
||||
:return: Returns the result object.
|
||||
""" # noqa: E501
|
||||
|
||||
_param = self._get_single_test_filtered_http_server_scheduled_test_results_serialize(
|
||||
test_id=test_id,
|
||||
aid=aid,
|
||||
window=window,
|
||||
start_date=start_date,
|
||||
end_date=end_date,
|
||||
cursor=cursor,
|
||||
expand=expand,
|
||||
http_endpoint_tests_data_rounds_search=http_endpoint_tests_data_rounds_search,
|
||||
_request_auth=_request_auth,
|
||||
_content_type=_content_type,
|
||||
_headers=_headers,
|
||||
_host_index=_host_index
|
||||
)
|
||||
|
||||
_response_types_map: Dict[str, Optional[str]] = {
|
||||
'200': "HttpMultiEndpointTestResults",
|
||||
'400': "ValidationError",
|
||||
'401': "UnauthorizedError",
|
||||
'403': "Error",
|
||||
'404': "Error",
|
||||
'429': "Error",
|
||||
'500': "Error",
|
||||
'502': "Error",
|
||||
}
|
||||
response_data = self.api_client.call_api(
|
||||
*_param,
|
||||
_request_timeout=_request_timeout
|
||||
)
|
||||
return response_data.response
|
||||
|
||||
|
||||
def _get_single_test_filtered_http_server_scheduled_test_results_serialize(
|
||||
self,
|
||||
test_id,
|
||||
aid,
|
||||
window,
|
||||
start_date,
|
||||
end_date,
|
||||
cursor,
|
||||
expand,
|
||||
http_endpoint_tests_data_rounds_search,
|
||||
_request_auth,
|
||||
_content_type,
|
||||
_headers,
|
||||
_host_index,
|
||||
) -> RequestSerialized:
|
||||
|
||||
_host = None
|
||||
|
||||
_collection_formats: Dict[str, str] = {
|
||||
'expand': 'csv',
|
||||
}
|
||||
|
||||
_path_params: Dict[str, str] = {}
|
||||
_query_params: List[Tuple[str, str]] = []
|
||||
_header_params: Dict[str, Optional[str]] = _headers or {}
|
||||
_form_params: List[Tuple[str, str]] = []
|
||||
_files: Dict[str, Union[str, bytes]] = {}
|
||||
_body_params: Optional[bytes] = None
|
||||
|
||||
# process the path parameters
|
||||
if test_id is not None:
|
||||
_path_params['testId'] = test_id
|
||||
# process the query parameters
|
||||
if aid is not None:
|
||||
|
||||
_query_params.append(('aid', aid))
|
||||
|
||||
if window is not None:
|
||||
|
||||
_query_params.append(('window', window))
|
||||
|
||||
if start_date is not None:
|
||||
if isinstance(start_date, datetime):
|
||||
_query_params.append(
|
||||
(
|
||||
'startDate',
|
||||
start_date.strftime(
|
||||
self.api_client.configuration.datetime_format
|
||||
)
|
||||
)
|
||||
)
|
||||
else:
|
||||
_query_params.append(('startDate', start_date))
|
||||
|
||||
if end_date is not None:
|
||||
if isinstance(end_date, datetime):
|
||||
_query_params.append(
|
||||
(
|
||||
'endDate',
|
||||
end_date.strftime(
|
||||
self.api_client.configuration.datetime_format
|
||||
)
|
||||
)
|
||||
)
|
||||
else:
|
||||
_query_params.append(('endDate', end_date))
|
||||
|
||||
if cursor is not None:
|
||||
|
||||
_query_params.append(('cursor', cursor))
|
||||
|
||||
if expand is not None:
|
||||
|
||||
_query_params.append(('expand', expand))
|
||||
@ -848,7 +1297,7 @@ class HTTPServerEndpointScheduledTestResultsApi:
|
||||
|
||||
return self.api_client.param_serialize(
|
||||
method='POST',
|
||||
resource_path='/endpoint/test-results/scheduled-tests/http-server/filter',
|
||||
resource_path='/endpoint/test-results/scheduled-tests/{testId}/http-server/filter',
|
||||
path_params=_path_params,
|
||||
query_params=_query_params,
|
||||
header_params=_header_params,
|
||||
|
||||
@ -19,7 +19,7 @@ from importlib.metadata import version
|
||||
import thousandeyes_sdk.endpoint_test_results.models
|
||||
|
||||
from datetime import datetime
|
||||
from pydantic import Field, StrictInt, StrictStr, field_validator
|
||||
from pydantic import Field, StrictBool, StrictInt, StrictStr, field_validator
|
||||
from typing import Optional
|
||||
from typing_extensions import Annotated
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_rounds_search import EndpointTestsDataRoundsSearch
|
||||
@ -468,6 +468,7 @@ class NetworkEndpointScheduledTestResultsApi:
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
max: Annotated[Optional[StrictInt], Field(description="(Optional) Maximum number of objects to return.")] = None,
|
||||
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
|
||||
use_all_permitted_aids: Annotated[Optional[StrictBool], Field(description="Set to `true` to load data from all accounts the user has access to.")] = None,
|
||||
multi_test_id_endpoint_tests_data_rounds_search: Annotated[Optional[MultiTestIdEndpointTestsDataRoundsSearch], Field(description="Test data search filters.")] = None,
|
||||
_request_timeout: Union[
|
||||
None,
|
||||
@ -498,6 +499,8 @@ class NetworkEndpointScheduledTestResultsApi:
|
||||
:type max: int
|
||||
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
|
||||
:type cursor: str
|
||||
:param use_all_permitted_aids: Set to `true` to load data from all accounts the user has access to.
|
||||
:type use_all_permitted_aids: bool
|
||||
:param multi_test_id_endpoint_tests_data_rounds_search: Test data search filters.
|
||||
:type multi_test_id_endpoint_tests_data_rounds_search: MultiTestIdEndpointTestsDataRoundsSearch
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
@ -529,6 +532,7 @@ class NetworkEndpointScheduledTestResultsApi:
|
||||
end_date=end_date,
|
||||
max=max,
|
||||
cursor=cursor,
|
||||
use_all_permitted_aids=use_all_permitted_aids,
|
||||
multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search,
|
||||
_request_auth=_request_auth,
|
||||
_content_type=_content_type,
|
||||
@ -566,6 +570,7 @@ class NetworkEndpointScheduledTestResultsApi:
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
max: Annotated[Optional[StrictInt], Field(description="(Optional) Maximum number of objects to return.")] = None,
|
||||
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
|
||||
use_all_permitted_aids: Annotated[Optional[StrictBool], Field(description="Set to `true` to load data from all accounts the user has access to.")] = None,
|
||||
multi_test_id_endpoint_tests_data_rounds_search: Annotated[Optional[MultiTestIdEndpointTestsDataRoundsSearch], Field(description="Test data search filters.")] = None,
|
||||
_request_timeout: Union[
|
||||
None,
|
||||
@ -596,6 +601,8 @@ class NetworkEndpointScheduledTestResultsApi:
|
||||
:type max: int
|
||||
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
|
||||
:type cursor: str
|
||||
:param use_all_permitted_aids: Set to `true` to load data from all accounts the user has access to.
|
||||
:type use_all_permitted_aids: bool
|
||||
:param multi_test_id_endpoint_tests_data_rounds_search: Test data search filters.
|
||||
:type multi_test_id_endpoint_tests_data_rounds_search: MultiTestIdEndpointTestsDataRoundsSearch
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
@ -627,6 +634,7 @@ class NetworkEndpointScheduledTestResultsApi:
|
||||
end_date=end_date,
|
||||
max=max,
|
||||
cursor=cursor,
|
||||
use_all_permitted_aids=use_all_permitted_aids,
|
||||
multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search,
|
||||
_request_auth=_request_auth,
|
||||
_content_type=_content_type,
|
||||
@ -664,6 +672,7 @@ class NetworkEndpointScheduledTestResultsApi:
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
max: Annotated[Optional[StrictInt], Field(description="(Optional) Maximum number of objects to return.")] = None,
|
||||
cursor: Annotated[Optional[StrictStr], Field(description="(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.")] = None,
|
||||
use_all_permitted_aids: Annotated[Optional[StrictBool], Field(description="Set to `true` to load data from all accounts the user has access to.")] = None,
|
||||
multi_test_id_endpoint_tests_data_rounds_search: Annotated[Optional[MultiTestIdEndpointTestsDataRoundsSearch], Field(description="Test data search filters.")] = None,
|
||||
_request_timeout: Union[
|
||||
None,
|
||||
@ -694,6 +703,8 @@ class NetworkEndpointScheduledTestResultsApi:
|
||||
:type max: int
|
||||
:param cursor: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.
|
||||
:type cursor: str
|
||||
:param use_all_permitted_aids: Set to `true` to load data from all accounts the user has access to.
|
||||
:type use_all_permitted_aids: bool
|
||||
:param multi_test_id_endpoint_tests_data_rounds_search: Test data search filters.
|
||||
:type multi_test_id_endpoint_tests_data_rounds_search: MultiTestIdEndpointTestsDataRoundsSearch
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
@ -725,6 +736,7 @@ class NetworkEndpointScheduledTestResultsApi:
|
||||
end_date=end_date,
|
||||
max=max,
|
||||
cursor=cursor,
|
||||
use_all_permitted_aids=use_all_permitted_aids,
|
||||
multi_test_id_endpoint_tests_data_rounds_search=multi_test_id_endpoint_tests_data_rounds_search,
|
||||
_request_auth=_request_auth,
|
||||
_content_type=_content_type,
|
||||
@ -756,6 +768,7 @@ class NetworkEndpointScheduledTestResultsApi:
|
||||
end_date,
|
||||
max,
|
||||
cursor,
|
||||
use_all_permitted_aids,
|
||||
multi_test_id_endpoint_tests_data_rounds_search,
|
||||
_request_auth,
|
||||
_content_type,
|
||||
@ -819,6 +832,10 @@ class NetworkEndpointScheduledTestResultsApi:
|
||||
|
||||
_query_params.append(('cursor', cursor))
|
||||
|
||||
if use_all_permitted_aids is not None:
|
||||
|
||||
_query_params.append(('useAllPermittedAids', use_all_permitted_aids))
|
||||
|
||||
# process the header parameters
|
||||
# process the form parameters
|
||||
# process the body parameter
|
||||
|
||||
@ -40,6 +40,11 @@ from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_trace import En
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_vis_hop import EndpointPathVisHop
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_vis_route import EndpointPathVisRoute
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_ping_data_point_score import EndpointPingDataPointScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_agent_score import EndpointProbeAgentScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_connection_score import EndpointProbeConnectionScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_gateway_score import EndpointProbeGatewayScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_proxy_score import EndpointProbeProxyScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_vpn_score import EndpointProbeVpnScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_result_request_filter import EndpointResultRequestFilter
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_scheduled_test import EndpointScheduledTest
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_scheduled_test_type import EndpointScheduledTestType
|
||||
@ -58,6 +63,8 @@ from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_search_so
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_search_sort_key import EndpointTestsDataSearchSortKey
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_threshold_filter import EndpointTestsDataThresholdFilter
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_tests_data_threshold_filters import EndpointTestsDataThresholdFilters
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_metrics import EndpointZtaMetrics
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_segment_type import EndpointZtaSegmentType
|
||||
from thousandeyes_sdk.endpoint_test_results.models.error import Error
|
||||
from thousandeyes_sdk.endpoint_test_results.models.expand_endpoint_http_server_options import ExpandEndpointHttpServerOptions
|
||||
from thousandeyes_sdk.endpoint_test_results.models.expand_local_network_topology_options import ExpandLocalNetworkTopologyOptions
|
||||
|
||||
@ -26,7 +26,7 @@ class EndpointHttpDataPointScore(BaseModel):
|
||||
"""
|
||||
EndpointHttpDataPointScore
|
||||
""" # noqa: E501
|
||||
application_score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Fine grained score between 0-100 based on `time to first byte` metric", alias="applicationScore")
|
||||
application_score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="A fine-grained score between 0 and 100.", alias="applicationScore")
|
||||
quality: Optional[ApplicationScoreQuality] = None
|
||||
__properties: ClassVar[List[str]] = ["applicationScore", "quality"]
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ class EndpointPingDataPointScore(BaseModel):
|
||||
"""
|
||||
EndpointPingDataPointScore
|
||||
""" # noqa: E501
|
||||
application_score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Fine grained score between 0-100 based on metrics (latency, jitter, loss)", alias="applicationScore")
|
||||
application_score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="A fine-grained score between 0 and 100.", alias="applicationScore")
|
||||
quality: Optional[ApplicationScoreQuality] = None
|
||||
__properties: ClassVar[List[str]] = ["applicationScore", "quality"]
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -18,6 +18,7 @@ import json
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_http_data_point_score import EndpointHttpDataPointScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.http_endpoint_test_result_headers import HttpEndpointTestResultHeaders
|
||||
from thousandeyes_sdk.endpoint_test_results.models.http_error_type import HttpErrorType
|
||||
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
|
||||
@ -40,6 +41,7 @@ class HttpEndpointTestResult(BaseModel):
|
||||
system_metrics: Optional[SystemMetrics] = Field(default=None, alias="systemMetrics")
|
||||
original_target_profile: Optional[TargetProfile] = Field(default=None, alias="originalTargetProfile")
|
||||
vpn_profile: Optional[VpnProfile] = Field(default=None, alias="vpnProfile")
|
||||
score: Optional[EndpointHttpDataPointScore] = None
|
||||
connect_time: Optional[StrictInt] = Field(default=None, description="Time required to establish a TCP connection to the server in milliseconds.", alias="connectTime")
|
||||
dns_time: Optional[StrictInt] = Field(default=None, description="Time required to resolve DNS in milliseconds.", alias="dnsTime")
|
||||
error_type: Optional[HttpErrorType] = Field(default=None, alias="errorType")
|
||||
@ -54,7 +56,7 @@ class HttpEndpointTestResult(BaseModel):
|
||||
total_time: Optional[StrictInt] = Field(default=None, description="Total time is the response time + receive time.", alias="totalTime")
|
||||
wait_time: Optional[StrictInt] = Field(default=None, description="Time elapsed between completion of request and first byte of response in milliseconds.", alias="waitTime")
|
||||
wire_size: Optional[StrictInt] = Field(default=None, description="Size of content in bytes.", alias="wireSize")
|
||||
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "vpnProfile", "connectTime", "dnsTime", "errorType", "errorDetails", "headers", "numRedirects", "receiveTime", "redirectTime", "responseCode", "responseTime", "sslTime", "totalTime", "waitTime", "wireSize"]
|
||||
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "vpnProfile", "score", "connectTime", "dnsTime", "errorType", "errorDetails", "headers", "numRedirects", "receiveTime", "redirectTime", "responseCode", "responseTime", "sslTime", "totalTime", "waitTime", "wireSize"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -140,6 +142,9 @@ class HttpEndpointTestResult(BaseModel):
|
||||
# override the default output from pydantic by calling `to_dict()` of vpn_profile
|
||||
if self.vpn_profile:
|
||||
_dict['vpnProfile'] = self.vpn_profile.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of score
|
||||
if self.score:
|
||||
_dict['score'] = self.score.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of headers
|
||||
if self.headers:
|
||||
_dict['headers'] = self.headers.to_dict()
|
||||
@ -164,6 +169,7 @@ class HttpEndpointTestResult(BaseModel):
|
||||
"systemMetrics": SystemMetrics.from_dict(obj["systemMetrics"]) if obj.get("systemMetrics") is not None else None,
|
||||
"originalTargetProfile": TargetProfile.from_dict(obj["originalTargetProfile"]) if obj.get("originalTargetProfile") is not None else None,
|
||||
"vpnProfile": VpnProfile.from_dict(obj["vpnProfile"]) if obj.get("vpnProfile") is not None else None,
|
||||
"score": EndpointHttpDataPointScore.from_dict(obj["score"]) if obj.get("score") is not None else None,
|
||||
"connectTime": obj.get("connectTime"),
|
||||
"dnsTime": obj.get("dnsTime"),
|
||||
"errorType": obj.get("errorType"),
|
||||
|
||||
@ -19,6 +19,11 @@ import json
|
||||
from datetime import datetime
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_agent_score import EndpointProbeAgentScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_connection_score import EndpointProbeConnectionScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_gateway_score import EndpointProbeGatewayScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_proxy_score import EndpointProbeProxyScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_vpn_score import EndpointProbeVpnScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.network_ping import NetworkPing
|
||||
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
|
||||
from thousandeyes_sdk.endpoint_test_results.models.network_topology_type import NetworkTopologyType
|
||||
@ -46,11 +51,16 @@ class LocalNetworkTopologyResult(BaseModel):
|
||||
tcp_connect: Optional[TcpConnect] = Field(default=None, alias="tcpConnect")
|
||||
system_metrics: Optional[SystemMetrics] = Field(default=None, alias="systemMetrics")
|
||||
system_metric_details: Optional[SystemMetricDetails] = Field(default=None, alias="systemMetricDetails")
|
||||
vpn_score: Optional[EndpointProbeVpnScore] = Field(default=None, alias="vpnScore")
|
||||
gateway_score: Optional[EndpointProbeGatewayScore] = Field(default=None, alias="gatewayScore")
|
||||
proxy_score: Optional[EndpointProbeProxyScore] = Field(default=None, alias="proxyScore")
|
||||
connection_score: Optional[EndpointProbeConnectionScore] = Field(default=None, alias="connectionScore")
|
||||
agent_score: Optional[EndpointProbeAgentScore] = Field(default=None, alias="agentScore")
|
||||
coordinates: Optional[RealUserEndpointTestCoordinates] = None
|
||||
network_profile: Optional[NetworkProfile] = Field(default=None, alias="networkProfile")
|
||||
icmp_traceroute: Optional[Traceroute] = Field(default=None, alias="icmpTraceroute")
|
||||
icmp_traceroutes: Optional[List[Traceroute]] = Field(default=None, alias="icmpTraceroutes")
|
||||
__properties: ClassVar[List[str]] = ["agentId", "date", "networkTopologyId", "roundId", "target", "targetPort", "type", "icmpPing", "isIcmpBlocked", "tcpConnect", "systemMetrics", "systemMetricDetails", "coordinates", "networkProfile", "icmpTraceroute", "icmpTraceroutes"]
|
||||
__properties: ClassVar[List[str]] = ["agentId", "date", "networkTopologyId", "roundId", "target", "targetPort", "type", "icmpPing", "isIcmpBlocked", "tcpConnect", "systemMetrics", "systemMetricDetails", "vpnScore", "gatewayScore", "proxyScore", "connectionScore", "agentScore", "coordinates", "networkProfile", "icmpTraceroute", "icmpTraceroutes"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -118,6 +128,21 @@ class LocalNetworkTopologyResult(BaseModel):
|
||||
# override the default output from pydantic by calling `to_dict()` of system_metric_details
|
||||
if self.system_metric_details:
|
||||
_dict['systemMetricDetails'] = self.system_metric_details.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of vpn_score
|
||||
if self.vpn_score:
|
||||
_dict['vpnScore'] = self.vpn_score.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of gateway_score
|
||||
if self.gateway_score:
|
||||
_dict['gatewayScore'] = self.gateway_score.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of proxy_score
|
||||
if self.proxy_score:
|
||||
_dict['proxyScore'] = self.proxy_score.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of connection_score
|
||||
if self.connection_score:
|
||||
_dict['connectionScore'] = self.connection_score.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of agent_score
|
||||
if self.agent_score:
|
||||
_dict['agentScore'] = self.agent_score.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of coordinates
|
||||
if self.coordinates:
|
||||
_dict['coordinates'] = self.coordinates.to_dict()
|
||||
@ -158,6 +183,11 @@ class LocalNetworkTopologyResult(BaseModel):
|
||||
"tcpConnect": TcpConnect.from_dict(obj["tcpConnect"]) if obj.get("tcpConnect") is not None else None,
|
||||
"systemMetrics": SystemMetrics.from_dict(obj["systemMetrics"]) if obj.get("systemMetrics") is not None else None,
|
||||
"systemMetricDetails": SystemMetricDetails.from_dict(obj["systemMetricDetails"]) if obj.get("systemMetricDetails") is not None else None,
|
||||
"vpnScore": EndpointProbeVpnScore.from_dict(obj["vpnScore"]) if obj.get("vpnScore") is not None else None,
|
||||
"gatewayScore": EndpointProbeGatewayScore.from_dict(obj["gatewayScore"]) if obj.get("gatewayScore") is not None else None,
|
||||
"proxyScore": EndpointProbeProxyScore.from_dict(obj["proxyScore"]) if obj.get("proxyScore") is not None else None,
|
||||
"connectionScore": EndpointProbeConnectionScore.from_dict(obj["connectionScore"]) if obj.get("connectionScore") is not None else None,
|
||||
"agentScore": EndpointProbeAgentScore.from_dict(obj["agentScore"]) if obj.get("agentScore") is not None else None,
|
||||
"coordinates": RealUserEndpointTestCoordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
|
||||
"networkProfile": NetworkProfile.from_dict(obj["networkProfile"]) if obj.get("networkProfile") is not None else None,
|
||||
"icmpTraceroute": Traceroute.from_dict(obj["icmpTraceroute"]) if obj.get("icmpTraceroute") is not None else None,
|
||||
|
||||
@ -19,6 +19,11 @@ import json
|
||||
from datetime import datetime
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_agent_score import EndpointProbeAgentScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_connection_score import EndpointProbeConnectionScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_gateway_score import EndpointProbeGatewayScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_proxy_score import EndpointProbeProxyScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_vpn_score import EndpointProbeVpnScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.network_ping import NetworkPing
|
||||
from thousandeyes_sdk.endpoint_test_results.models.network_topology_type import NetworkTopologyType
|
||||
from thousandeyes_sdk.endpoint_test_results.models.system_metric_details import SystemMetricDetails
|
||||
@ -43,7 +48,12 @@ class LocalNetworkTopologyResultBase(BaseModel):
|
||||
tcp_connect: Optional[TcpConnect] = Field(default=None, alias="tcpConnect")
|
||||
system_metrics: Optional[SystemMetrics] = Field(default=None, alias="systemMetrics")
|
||||
system_metric_details: Optional[SystemMetricDetails] = Field(default=None, alias="systemMetricDetails")
|
||||
__properties: ClassVar[List[str]] = ["agentId", "date", "networkTopologyId", "roundId", "target", "targetPort", "type", "icmpPing", "isIcmpBlocked", "tcpConnect", "systemMetrics", "systemMetricDetails"]
|
||||
vpn_score: Optional[EndpointProbeVpnScore] = Field(default=None, alias="vpnScore")
|
||||
gateway_score: Optional[EndpointProbeGatewayScore] = Field(default=None, alias="gatewayScore")
|
||||
proxy_score: Optional[EndpointProbeProxyScore] = Field(default=None, alias="proxyScore")
|
||||
connection_score: Optional[EndpointProbeConnectionScore] = Field(default=None, alias="connectionScore")
|
||||
agent_score: Optional[EndpointProbeAgentScore] = Field(default=None, alias="agentScore")
|
||||
__properties: ClassVar[List[str]] = ["agentId", "date", "networkTopologyId", "roundId", "target", "targetPort", "type", "icmpPing", "isIcmpBlocked", "tcpConnect", "systemMetrics", "systemMetricDetails", "vpnScore", "gatewayScore", "proxyScore", "connectionScore", "agentScore"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -111,6 +121,21 @@ class LocalNetworkTopologyResultBase(BaseModel):
|
||||
# override the default output from pydantic by calling `to_dict()` of system_metric_details
|
||||
if self.system_metric_details:
|
||||
_dict['systemMetricDetails'] = self.system_metric_details.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of vpn_score
|
||||
if self.vpn_score:
|
||||
_dict['vpnScore'] = self.vpn_score.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of gateway_score
|
||||
if self.gateway_score:
|
||||
_dict['gatewayScore'] = self.gateway_score.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of proxy_score
|
||||
if self.proxy_score:
|
||||
_dict['proxyScore'] = self.proxy_score.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of connection_score
|
||||
if self.connection_score:
|
||||
_dict['connectionScore'] = self.connection_score.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of agent_score
|
||||
if self.agent_score:
|
||||
_dict['agentScore'] = self.agent_score.to_dict()
|
||||
return _dict
|
||||
|
||||
@classmethod
|
||||
@ -134,7 +159,12 @@ class LocalNetworkTopologyResultBase(BaseModel):
|
||||
"isIcmpBlocked": obj.get("isIcmpBlocked"),
|
||||
"tcpConnect": TcpConnect.from_dict(obj["tcpConnect"]) if obj.get("tcpConnect") is not None else None,
|
||||
"systemMetrics": SystemMetrics.from_dict(obj["systemMetrics"]) if obj.get("systemMetrics") is not None else None,
|
||||
"systemMetricDetails": SystemMetricDetails.from_dict(obj["systemMetricDetails"]) if obj.get("systemMetricDetails") is not None else None
|
||||
"systemMetricDetails": SystemMetricDetails.from_dict(obj["systemMetricDetails"]) if obj.get("systemMetricDetails") is not None else None,
|
||||
"vpnScore": EndpointProbeVpnScore.from_dict(obj["vpnScore"]) if obj.get("vpnScore") is not None else None,
|
||||
"gatewayScore": EndpointProbeGatewayScore.from_dict(obj["gatewayScore"]) if obj.get("gatewayScore") is not None else None,
|
||||
"proxyScore": EndpointProbeProxyScore.from_dict(obj["proxyScore"]) if obj.get("proxyScore") is not None else None,
|
||||
"connectionScore": EndpointProbeConnectionScore.from_dict(obj["connectionScore"]) if obj.get("connectionScore") is not None else None,
|
||||
"agentScore": EndpointProbeAgentScore.from_dict(obj["agentScore"]) if obj.get("agentScore") is not None else None
|
||||
})
|
||||
return _obj
|
||||
|
||||
|
||||
@ -19,7 +19,9 @@ import json
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional, Union
|
||||
from thousandeyes_sdk.endpoint_test_results.models.dynamic_endpoint_test_webex import DynamicEndpointTestWebex
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_ping_data_point_score import EndpointPingDataPointScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_test_result_protocol import EndpointTestResultProtocol
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_metrics import EndpointZtaMetrics
|
||||
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
|
||||
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
|
||||
from thousandeyes_sdk.endpoint_test_results.models.target_profile import TargetProfile
|
||||
@ -45,6 +47,8 @@ class NetworkDynamicEndpointTestResult(BaseModel):
|
||||
avg_latency: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Average RTT for packets sent to destination.", alias="avgLatency")
|
||||
error_details: Optional[StrictStr] = Field(default=None, description="Error details, if an error was encountered.", alias="errorDetails")
|
||||
jitter: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Standard deviation of latency.")
|
||||
score: Optional[EndpointPingDataPointScore] = None
|
||||
zta_metrics: Optional[List[EndpointZtaMetrics]] = Field(default=None, alias="ztaMetrics")
|
||||
is_icmp_blocked: Optional[StrictBool] = Field(default=None, description="Set to `true` if network target is blocking ICMP echo (ping) queries.", alias="isIcmpBlocked")
|
||||
loss: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Percentage of packets not reaching destination.")
|
||||
max_latency: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Maximum RTT for packets sent to destination.", alias="maxLatency")
|
||||
@ -54,7 +58,7 @@ class NetworkDynamicEndpointTestResult(BaseModel):
|
||||
tcp_probe_mode: Optional[TestProbeModeResponse] = Field(default=None, alias="tcpProbeMode")
|
||||
udp_probe_mode: Optional[UdpProbeModeResponse] = Field(default=None, alias="udpProbeMode")
|
||||
webex: Optional[DynamicEndpointTestWebex] = None
|
||||
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "vpnProfile", "avgLatency", "errorDetails", "jitter", "isIcmpBlocked", "loss", "maxLatency", "minLatency", "application", "protocol", "tcpProbeMode", "udpProbeMode", "webex"]
|
||||
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "vpnProfile", "avgLatency", "errorDetails", "jitter", "score", "ztaMetrics", "isIcmpBlocked", "loss", "maxLatency", "minLatency", "application", "protocol", "tcpProbeMode", "udpProbeMode", "webex"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -130,6 +134,16 @@ class NetworkDynamicEndpointTestResult(BaseModel):
|
||||
# override the default output from pydantic by calling `to_dict()` of vpn_profile
|
||||
if self.vpn_profile:
|
||||
_dict['vpnProfile'] = self.vpn_profile.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of score
|
||||
if self.score:
|
||||
_dict['score'] = self.score.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of each item in zta_metrics (list)
|
||||
_items = []
|
||||
if self.zta_metrics:
|
||||
for _item in self.zta_metrics:
|
||||
if _item:
|
||||
_items.append(_item.to_dict())
|
||||
_dict['ztaMetrics'] = _items
|
||||
# override the default output from pydantic by calling `to_dict()` of webex
|
||||
if self.webex:
|
||||
_dict['webex'] = self.webex.to_dict()
|
||||
@ -157,6 +171,8 @@ class NetworkDynamicEndpointTestResult(BaseModel):
|
||||
"avgLatency": obj.get("avgLatency"),
|
||||
"errorDetails": obj.get("errorDetails"),
|
||||
"jitter": obj.get("jitter"),
|
||||
"score": EndpointPingDataPointScore.from_dict(obj["score"]) if obj.get("score") is not None else None,
|
||||
"ztaMetrics": [EndpointZtaMetrics.from_dict(_item) for _item in obj["ztaMetrics"]] if obj.get("ztaMetrics") is not None else None,
|
||||
"isIcmpBlocked": obj.get("isIcmpBlocked"),
|
||||
"loss": obj.get("loss"),
|
||||
"maxLatency": obj.get("maxLatency"),
|
||||
|
||||
@ -18,6 +18,8 @@ import json
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional, Union
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_ping_data_point_score import EndpointPingDataPointScore
|
||||
from thousandeyes_sdk.endpoint_test_results.models.endpoint_zta_metrics import EndpointZtaMetrics
|
||||
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
|
||||
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
|
||||
from thousandeyes_sdk.endpoint_test_results.models.target_profile import TargetProfile
|
||||
@ -41,11 +43,13 @@ class NetworkEndpointTestResult(BaseModel):
|
||||
avg_latency: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Average RTT for packets sent to destination.", alias="avgLatency")
|
||||
error_details: Optional[StrictStr] = Field(default=None, description="Error details, if an error was encountered.", alias="errorDetails")
|
||||
jitter: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Standard deviation of latency.")
|
||||
score: Optional[EndpointPingDataPointScore] = None
|
||||
zta_metrics: Optional[List[EndpointZtaMetrics]] = Field(default=None, alias="ztaMetrics")
|
||||
is_icmp_blocked: Optional[StrictBool] = Field(default=None, description="Set to `true` if network target is blocking ICMP echo (ping) queries.", alias="isIcmpBlocked")
|
||||
loss: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Percentage of packets not reaching destination.")
|
||||
max_latency: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Maximum RTT for packets sent to destination.", alias="maxLatency")
|
||||
min_latency: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Minimum RTT for packets sent to destination.", alias="minLatency")
|
||||
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "vpnProfile", "avgLatency", "errorDetails", "jitter", "isIcmpBlocked", "loss", "maxLatency", "minLatency"]
|
||||
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "vpnProfile", "avgLatency", "errorDetails", "jitter", "score", "ztaMetrics", "isIcmpBlocked", "loss", "maxLatency", "minLatency"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -121,6 +125,16 @@ class NetworkEndpointTestResult(BaseModel):
|
||||
# override the default output from pydantic by calling `to_dict()` of vpn_profile
|
||||
if self.vpn_profile:
|
||||
_dict['vpnProfile'] = self.vpn_profile.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of score
|
||||
if self.score:
|
||||
_dict['score'] = self.score.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of each item in zta_metrics (list)
|
||||
_items = []
|
||||
if self.zta_metrics:
|
||||
for _item in self.zta_metrics:
|
||||
if _item:
|
||||
_items.append(_item.to_dict())
|
||||
_dict['ztaMetrics'] = _items
|
||||
return _dict
|
||||
|
||||
@classmethod
|
||||
@ -145,6 +159,8 @@ class NetworkEndpointTestResult(BaseModel):
|
||||
"avgLatency": obj.get("avgLatency"),
|
||||
"errorDetails": obj.get("errorDetails"),
|
||||
"jitter": obj.get("jitter"),
|
||||
"score": EndpointPingDataPointScore.from_dict(obj["score"]) if obj.get("score") is not None else None,
|
||||
"ztaMetrics": [EndpointZtaMetrics.from_dict(_item) for _item in obj["ztaMetrics"]] if obj.get("ztaMetrics") is not None else None,
|
||||
"isIcmpBlocked": obj.get("isIcmpBlocked"),
|
||||
"loss": obj.get("loss"),
|
||||
"maxLatency": obj.get("maxLatency"),
|
||||
|
||||
@ -28,6 +28,7 @@ class NetworkTopologyType(str, Enum):
|
||||
VPN = 'vpn'
|
||||
PROXY = 'proxy'
|
||||
GATEWAY = 'gateway'
|
||||
DNS = 'dns'
|
||||
UNKNOWN = 'unknown'
|
||||
|
||||
@classmethod
|
||||
|
||||
@ -140,6 +140,10 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
|
||||
"totalTime" : 15,
|
||||
"responseCode" : 200,
|
||||
"receiveTime" : 1,
|
||||
"score" : {
|
||||
"applicationScore" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"systemMetrics" : {
|
||||
"cpuUtilization" : {
|
||||
"min" : 0.22,
|
||||
@ -241,6 +245,10 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
|
||||
"totalTime" : 15,
|
||||
"responseCode" : 200,
|
||||
"receiveTime" : 1,
|
||||
"score" : {
|
||||
"applicationScore" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"systemMetrics" : {
|
||||
"cpuUtilization" : {
|
||||
"min" : 0.22,
|
||||
@ -409,6 +417,10 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
|
||||
"totalTime" : 15,
|
||||
"responseCode" : 200,
|
||||
"receiveTime" : 1,
|
||||
"score" : {
|
||||
"applicationScore" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"systemMetrics" : {
|
||||
"cpuUtilization" : {
|
||||
"min" : 0.22,
|
||||
@ -510,6 +522,287 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
|
||||
"totalTime" : 15,
|
||||
"responseCode" : 200,
|
||||
"receiveTime" : 1,
|
||||
"score" : {
|
||||
"applicationScore" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"systemMetrics" : {
|
||||
"cpuUtilization" : {
|
||||
"min" : 0.22,
|
||||
"median" : 0.61,
|
||||
"max" : 0.75,
|
||||
"mean" : 0.55,
|
||||
"count" : 150,
|
||||
"stdDev" : 0.01
|
||||
},
|
||||
"physicalMemoryTotalBytes" : 1024,
|
||||
"startTimeMs" : 1581508857327,
|
||||
"physicalMemoryUsedBytes" : {
|
||||
"min" : 1.2,
|
||||
"median" : 1.85,
|
||||
"max" : 2.5,
|
||||
"mean" : 1.77,
|
||||
"count" : 155,
|
||||
"stdDev" : 0.25
|
||||
},
|
||||
"endTimeMs" : 1581508867333
|
||||
},
|
||||
"connectTime" : 2,
|
||||
"dnsTime" : 0,
|
||||
"serverIp" : "193.2.1.88",
|
||||
"networkProfile" : {
|
||||
"previousInterface" : {
|
||||
"publicIpAddress" : "84.255.241.1",
|
||||
"publicIpRange" : "84.255.241.0-84.255.241.255",
|
||||
"ipAddress" : "10.0.0.13",
|
||||
"hardwareType" : "wireless",
|
||||
"localPrefix" : "10.0.0.0",
|
||||
"interfaceName" : "en0",
|
||||
"subnetMask" : "255.255.255.0",
|
||||
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ]
|
||||
},
|
||||
"ethernetProfile" : {
|
||||
"linkSpeed" : 860
|
||||
},
|
||||
"publicIpAddress" : "84.255.241.1",
|
||||
"publicIpRange" : "84.255.241.0-84.255.241.255",
|
||||
"ipAddress" : "10.0.0.13",
|
||||
"hardwareType" : "wireless",
|
||||
"localPrefix" : "10.0.0.0",
|
||||
"proxyProfile" : {
|
||||
"method" : "System",
|
||||
"proxies" : [ {
|
||||
"bypass" : "*.local;169.254/16",
|
||||
"proxy" : "<direct>"
|
||||
}, {
|
||||
"bypass" : "*.local;169.254/16",
|
||||
"proxy" : "<direct>"
|
||||
} ]
|
||||
},
|
||||
"subnetMask" : "255.255.255.0",
|
||||
"error" : "An operation timed out.",
|
||||
"wirelessProfile" : {
|
||||
"rssi" : -38,
|
||||
"bssid" : "4c:ba:ba:f4:fa:fa",
|
||||
"vendor" : "Cisco",
|
||||
"txRate" : 130,
|
||||
"channel" : 1,
|
||||
"noise" : -95,
|
||||
"phyMode" : "802.11n",
|
||||
"ssid" : "Internet for the masses",
|
||||
"quality" : 100
|
||||
},
|
||||
"interfaceName" : "en0",
|
||||
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
|
||||
"gateway" : "10.0.0.1"
|
||||
},
|
||||
"testId" : "584739201",
|
||||
"sslTime" : 9,
|
||||
"aid" : "1234",
|
||||
"roundId" : 1384309800,
|
||||
"waitTime" : 3,
|
||||
"errorDetails" : "errorDetails",
|
||||
"wireSize" : 9993
|
||||
} ],
|
||||
"startDate" : "2022-07-17T22:00:54Z"
|
||||
}"""
|
||||
|
||||
response_loaded_json = json.loads(response_body_json)
|
||||
response_from_json = thousandeyes_sdk.endpoint_test_results.models.HttpMultiEndpointTestResults.from_json(response_body_json)
|
||||
assert_constructed_model_matches_example_json(response_from_json, response_loaded_json)
|
||||
|
||||
def test_get_single_test_filtered_http_server_scheduled_test_results_models_validation(self) -> None:
|
||||
"""Test case for get_single_test_filtered_http_server_scheduled_test_results request and response models"""
|
||||
request_body_json = """
|
||||
{
|
||||
"searchSort" : [ {
|
||||
"sort" : "round-id",
|
||||
"order" : "desc"
|
||||
}, {
|
||||
"sort" : "round-id",
|
||||
"order" : "desc"
|
||||
} ],
|
||||
"searchFilters" : {
|
||||
"agentId" : [ "52455b09-ff1b-4849-8194-99026cc890e0", "52455b09-ff1b-4849-8194-99026cc890e0" ],
|
||||
"testId" : [ "5", "5" ]
|
||||
},
|
||||
"thresholdFilter" : {
|
||||
"conditionalOperator" : "and",
|
||||
"filters" : [ {
|
||||
"name" : "response-time",
|
||||
"value" : 10.0,
|
||||
"operator" : "gte"
|
||||
}, {
|
||||
"name" : "response-time",
|
||||
"value" : 10.0,
|
||||
"operator" : "gte"
|
||||
} ]
|
||||
}
|
||||
}"""
|
||||
|
||||
request_loaded_json = json.loads(request_body_json)
|
||||
request_from_json = thousandeyes_sdk.endpoint_test_results.models.HttpEndpointTestsDataRoundsSearch.from_json(request_body_json)
|
||||
assert_constructed_model_matches_example_json(request_from_json, request_loaded_json)
|
||||
|
||||
response_body_json = """
|
||||
{
|
||||
"totalHits" : 12,
|
||||
"endDate" : "2022-07-18T22:00:54Z",
|
||||
"_links" : {
|
||||
"next" : {
|
||||
"hreflang" : "hreflang",
|
||||
"templated" : true,
|
||||
"profile" : "profile",
|
||||
"name" : "name",
|
||||
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
|
||||
"type" : "type",
|
||||
"deprecation" : "deprecation",
|
||||
"title" : "title"
|
||||
},
|
||||
"self" : {
|
||||
"hreflang" : "hreflang",
|
||||
"templated" : true,
|
||||
"profile" : "profile",
|
||||
"name" : "name",
|
||||
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
|
||||
"type" : "type",
|
||||
"deprecation" : "deprecation",
|
||||
"title" : "title"
|
||||
}
|
||||
},
|
||||
"results" : [ {
|
||||
"originalTargetProfile" : {
|
||||
"protocol" : "tcp",
|
||||
"remotePort" : 80,
|
||||
"remoteIpAddress" : "120.98.134.7"
|
||||
},
|
||||
"headers" : {
|
||||
"requestHeaders" : "GET / HTTP/1.1\\r\\nHost: www.thousandeyes.com\\r\\nUser-Agent: curl/7.58.0-DEV\\r\\nAccept: */*\\r\\nAccept-Encoding: deflate, gzip\\r\\nX-ThousandEyes-Agent: yes\\r\\n",
|
||||
"responseHeaders" : "HTTP/1.1 200 OK\\r\\nContent-Type: text/html;charset=UTF-8\\r\\nContent-Length: 9993\\r\\nConnection: keep-alive\\r\\nDate: Mon, 04 May 2020 16:13:00 GMT\\r\\nServer: Apache\\r\\nContent-Language: en-US\\r\\nContent-Encoding: gzip\\r\\nX-Frame-Options: sameorigin\\r\\nCache-Control: max-age=600, must-revalidate\\r\\nStrict-Transport-Security: max-age=31536000\\r\\nX-Content-Type-Options: nosniff\\r\\nX-XSS-Protection: 1; mode=block\\r\\nVary: Accept-Encoding\\r\\nX-Cache: Hit from cloudfront\\r\\nVia: 1.1 7ba3caf71ae7a52dd411d1a543e80cd8.cloudfront.net (CloudFront)\\r\\nX-Amz-Cf-Pop: SFO5-C3\\r\\nX-Amz-Cf-Id: w4h42tkoJD-rEpkRDZUvnQBmy26GVGe6pUsuRr1Dphf7oajYbjXaOA==\\r\\nAge: 132\\r\\n"
|
||||
},
|
||||
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
|
||||
"redirectTime" : 10,
|
||||
"numRedirects" : 0,
|
||||
"vpnProfile" : {
|
||||
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
|
||||
"vpnGatewayAddress" : "120.98.134.7",
|
||||
"vpnType" : "cisco-anyconnect",
|
||||
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
|
||||
},
|
||||
"errorType" : "connect",
|
||||
"responseTime" : 14,
|
||||
"totalTime" : 15,
|
||||
"responseCode" : 200,
|
||||
"receiveTime" : 1,
|
||||
"score" : {
|
||||
"applicationScore" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"systemMetrics" : {
|
||||
"cpuUtilization" : {
|
||||
"min" : 0.22,
|
||||
"median" : 0.61,
|
||||
"max" : 0.75,
|
||||
"mean" : 0.55,
|
||||
"count" : 150,
|
||||
"stdDev" : 0.01
|
||||
},
|
||||
"physicalMemoryTotalBytes" : 1024,
|
||||
"startTimeMs" : 1581508857327,
|
||||
"physicalMemoryUsedBytes" : {
|
||||
"min" : 1.2,
|
||||
"median" : 1.85,
|
||||
"max" : 2.5,
|
||||
"mean" : 1.77,
|
||||
"count" : 155,
|
||||
"stdDev" : 0.25
|
||||
},
|
||||
"endTimeMs" : 1581508867333
|
||||
},
|
||||
"connectTime" : 2,
|
||||
"dnsTime" : 0,
|
||||
"serverIp" : "193.2.1.88",
|
||||
"networkProfile" : {
|
||||
"previousInterface" : {
|
||||
"publicIpAddress" : "84.255.241.1",
|
||||
"publicIpRange" : "84.255.241.0-84.255.241.255",
|
||||
"ipAddress" : "10.0.0.13",
|
||||
"hardwareType" : "wireless",
|
||||
"localPrefix" : "10.0.0.0",
|
||||
"interfaceName" : "en0",
|
||||
"subnetMask" : "255.255.255.0",
|
||||
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ]
|
||||
},
|
||||
"ethernetProfile" : {
|
||||
"linkSpeed" : 860
|
||||
},
|
||||
"publicIpAddress" : "84.255.241.1",
|
||||
"publicIpRange" : "84.255.241.0-84.255.241.255",
|
||||
"ipAddress" : "10.0.0.13",
|
||||
"hardwareType" : "wireless",
|
||||
"localPrefix" : "10.0.0.0",
|
||||
"proxyProfile" : {
|
||||
"method" : "System",
|
||||
"proxies" : [ {
|
||||
"bypass" : "*.local;169.254/16",
|
||||
"proxy" : "<direct>"
|
||||
}, {
|
||||
"bypass" : "*.local;169.254/16",
|
||||
"proxy" : "<direct>"
|
||||
} ]
|
||||
},
|
||||
"subnetMask" : "255.255.255.0",
|
||||
"error" : "An operation timed out.",
|
||||
"wirelessProfile" : {
|
||||
"rssi" : -38,
|
||||
"bssid" : "4c:ba:ba:f4:fa:fa",
|
||||
"vendor" : "Cisco",
|
||||
"txRate" : 130,
|
||||
"channel" : 1,
|
||||
"noise" : -95,
|
||||
"phyMode" : "802.11n",
|
||||
"ssid" : "Internet for the masses",
|
||||
"quality" : 100
|
||||
},
|
||||
"interfaceName" : "en0",
|
||||
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
|
||||
"gateway" : "10.0.0.1"
|
||||
},
|
||||
"testId" : "584739201",
|
||||
"sslTime" : 9,
|
||||
"aid" : "1234",
|
||||
"roundId" : 1384309800,
|
||||
"waitTime" : 3,
|
||||
"errorDetails" : "errorDetails",
|
||||
"wireSize" : 9993
|
||||
}, {
|
||||
"originalTargetProfile" : {
|
||||
"protocol" : "tcp",
|
||||
"remotePort" : 80,
|
||||
"remoteIpAddress" : "120.98.134.7"
|
||||
},
|
||||
"headers" : {
|
||||
"requestHeaders" : "GET / HTTP/1.1\\r\\nHost: www.thousandeyes.com\\r\\nUser-Agent: curl/7.58.0-DEV\\r\\nAccept: */*\\r\\nAccept-Encoding: deflate, gzip\\r\\nX-ThousandEyes-Agent: yes\\r\\n",
|
||||
"responseHeaders" : "HTTP/1.1 200 OK\\r\\nContent-Type: text/html;charset=UTF-8\\r\\nContent-Length: 9993\\r\\nConnection: keep-alive\\r\\nDate: Mon, 04 May 2020 16:13:00 GMT\\r\\nServer: Apache\\r\\nContent-Language: en-US\\r\\nContent-Encoding: gzip\\r\\nX-Frame-Options: sameorigin\\r\\nCache-Control: max-age=600, must-revalidate\\r\\nStrict-Transport-Security: max-age=31536000\\r\\nX-Content-Type-Options: nosniff\\r\\nX-XSS-Protection: 1; mode=block\\r\\nVary: Accept-Encoding\\r\\nX-Cache: Hit from cloudfront\\r\\nVia: 1.1 7ba3caf71ae7a52dd411d1a543e80cd8.cloudfront.net (CloudFront)\\r\\nX-Amz-Cf-Pop: SFO5-C3\\r\\nX-Amz-Cf-Id: w4h42tkoJD-rEpkRDZUvnQBmy26GVGe6pUsuRr1Dphf7oajYbjXaOA==\\r\\nAge: 132\\r\\n"
|
||||
},
|
||||
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
|
||||
"redirectTime" : 10,
|
||||
"numRedirects" : 0,
|
||||
"vpnProfile" : {
|
||||
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
|
||||
"vpnGatewayAddress" : "120.98.134.7",
|
||||
"vpnType" : "cisco-anyconnect",
|
||||
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
|
||||
},
|
||||
"errorType" : "connect",
|
||||
"responseTime" : 14,
|
||||
"totalTime" : 15,
|
||||
"responseCode" : 200,
|
||||
"receiveTime" : 1,
|
||||
"score" : {
|
||||
"applicationScore" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"systemMetrics" : {
|
||||
"cpuUtilization" : {
|
||||
"min" : 0.22,
|
||||
|
||||
@ -69,6 +69,28 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
|
||||
"results" : [ {
|
||||
"date" : "2022-07-17T22:00:54Z",
|
||||
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
|
||||
"isIcmpBlocked" : true,
|
||||
"gatewayScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"tcpConnect" : {
|
||||
"rtt" : 77.777,
|
||||
"errorCode" : "ERR_TIMED_OUT",
|
||||
"error" : "An operation timed out.",
|
||||
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ]
|
||||
},
|
||||
"vpnScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"proxyScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"type" : "vpn",
|
||||
"targetPort" : 80,
|
||||
"target" : "10.0.2.2",
|
||||
"systemMetrics" : {
|
||||
"cpuUtilization" : {
|
||||
"min" : 0.22,
|
||||
@ -166,12 +188,9 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
|
||||
"totalMemoryPercentage" : 0.22
|
||||
} ]
|
||||
},
|
||||
"isIcmpBlocked" : true,
|
||||
"tcpConnect" : {
|
||||
"rtt" : 77.777,
|
||||
"errorCode" : "ERR_TIMED_OUT",
|
||||
"error" : "An operation timed out.",
|
||||
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ]
|
||||
"connectionScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"icmpPing" : {
|
||||
"maxRtt" : 66,
|
||||
@ -183,14 +202,37 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
|
||||
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ],
|
||||
"pktsSent" : 10
|
||||
},
|
||||
"type" : "vpn",
|
||||
"networkTopologyId" : "00160:54c3a4b180c6:1490536500:c7a58c49",
|
||||
"roundId" : 1384309800,
|
||||
"targetPort" : 80,
|
||||
"target" : "10.0.2.2"
|
||||
"agentScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
}
|
||||
}, {
|
||||
"date" : "2022-07-17T22:00:54Z",
|
||||
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
|
||||
"isIcmpBlocked" : true,
|
||||
"gatewayScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"tcpConnect" : {
|
||||
"rtt" : 77.777,
|
||||
"errorCode" : "ERR_TIMED_OUT",
|
||||
"error" : "An operation timed out.",
|
||||
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ]
|
||||
},
|
||||
"vpnScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"proxyScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"type" : "vpn",
|
||||
"targetPort" : 80,
|
||||
"target" : "10.0.2.2",
|
||||
"systemMetrics" : {
|
||||
"cpuUtilization" : {
|
||||
"min" : 0.22,
|
||||
@ -288,12 +330,9 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
|
||||
"totalMemoryPercentage" : 0.22
|
||||
} ]
|
||||
},
|
||||
"isIcmpBlocked" : true,
|
||||
"tcpConnect" : {
|
||||
"rtt" : 77.777,
|
||||
"errorCode" : "ERR_TIMED_OUT",
|
||||
"error" : "An operation timed out.",
|
||||
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ]
|
||||
"connectionScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"icmpPing" : {
|
||||
"maxRtt" : 66,
|
||||
@ -305,11 +344,12 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
|
||||
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ],
|
||||
"pktsSent" : 10
|
||||
},
|
||||
"type" : "vpn",
|
||||
"networkTopologyId" : "00160:54c3a4b180c6:1490536500:c7a58c49",
|
||||
"roundId" : 1384309800,
|
||||
"targetPort" : 80,
|
||||
"target" : "10.0.2.2"
|
||||
"agentScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
}
|
||||
} ],
|
||||
"startDate" : "2022-07-17T22:00:54Z"
|
||||
}"""
|
||||
@ -373,12 +413,24 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
|
||||
"date" : "2022-07-17T22:00:54Z",
|
||||
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
|
||||
"isIcmpBlocked" : true,
|
||||
"gatewayScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"tcpConnect" : {
|
||||
"rtt" : 77.777,
|
||||
"errorCode" : "ERR_TIMED_OUT",
|
||||
"error" : "An operation timed out.",
|
||||
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ]
|
||||
},
|
||||
"vpnScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"proxyScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"coordinates" : {
|
||||
"latitude" : 46.0552778,
|
||||
"location" : "Slovenia",
|
||||
@ -598,6 +650,10 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
|
||||
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
|
||||
"gateway" : "10.0.0.1"
|
||||
},
|
||||
"connectionScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"icmpPing" : {
|
||||
"maxRtt" : 66,
|
||||
"pktsReceived" : 10,
|
||||
@ -609,17 +665,33 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
|
||||
"pktsSent" : 10
|
||||
},
|
||||
"networkTopologyId" : "00160:54c3a4b180c6:1490536500:c7a58c49",
|
||||
"roundId" : 1384309800
|
||||
"roundId" : 1384309800,
|
||||
"agentScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
}
|
||||
}, {
|
||||
"date" : "2022-07-17T22:00:54Z",
|
||||
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
|
||||
"isIcmpBlocked" : true,
|
||||
"gatewayScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"tcpConnect" : {
|
||||
"rtt" : 77.777,
|
||||
"errorCode" : "ERR_TIMED_OUT",
|
||||
"error" : "An operation timed out.",
|
||||
"infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ]
|
||||
},
|
||||
"vpnScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"proxyScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"coordinates" : {
|
||||
"latitude" : 46.0552778,
|
||||
"location" : "Slovenia",
|
||||
@ -839,6 +911,10 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
|
||||
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
|
||||
"gateway" : "10.0.0.1"
|
||||
},
|
||||
"connectionScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"icmpPing" : {
|
||||
"maxRtt" : 66,
|
||||
"pktsReceived" : 10,
|
||||
@ -850,7 +926,11 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
|
||||
"pktsSent" : 10
|
||||
},
|
||||
"networkTopologyId" : "00160:54c3a4b180c6:1490536500:c7a58c49",
|
||||
"roundId" : 1384309800
|
||||
"roundId" : 1384309800,
|
||||
"agentScore" : {
|
||||
"score" : 100.0,
|
||||
"quality" : "great"
|
||||
}
|
||||
} ]
|
||||
}"""
|
||||
|
||||
|
||||
@ -144,6 +144,10 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
|
||||
},
|
||||
"maxLatency" : 168.0,
|
||||
"tcpProbeMode" : "auto",
|
||||
"score" : {
|
||||
"applicationScore" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"loss" : 0.0,
|
||||
"protocol" : "tcp",
|
||||
"systemMetrics" : {
|
||||
@ -216,6 +220,19 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
|
||||
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
|
||||
"gateway" : "10.0.0.1"
|
||||
},
|
||||
"ztaMetrics" : [ {
|
||||
"loss" : 50.0,
|
||||
"jitter" : 5,
|
||||
"avgLatency" : 3,
|
||||
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
|
||||
"type" : "zta_service"
|
||||
}, {
|
||||
"loss" : 50.0,
|
||||
"jitter" : 5,
|
||||
"avgLatency" : 3,
|
||||
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
|
||||
"type" : "zta_service"
|
||||
} ],
|
||||
"testId" : "584739201",
|
||||
"webex" : {
|
||||
"remoteSipSessionId" : "22581707460321454",
|
||||
@ -245,6 +262,10 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
|
||||
},
|
||||
"maxLatency" : 168.0,
|
||||
"tcpProbeMode" : "auto",
|
||||
"score" : {
|
||||
"applicationScore" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"loss" : 0.0,
|
||||
"protocol" : "tcp",
|
||||
"systemMetrics" : {
|
||||
@ -317,6 +338,19 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
|
||||
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
|
||||
"gateway" : "10.0.0.1"
|
||||
},
|
||||
"ztaMetrics" : [ {
|
||||
"loss" : 50.0,
|
||||
"jitter" : 5,
|
||||
"avgLatency" : 3,
|
||||
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
|
||||
"type" : "zta_service"
|
||||
}, {
|
||||
"loss" : 50.0,
|
||||
"jitter" : 5,
|
||||
"avgLatency" : 3,
|
||||
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
|
||||
"type" : "zta_service"
|
||||
} ],
|
||||
"testId" : "584739201",
|
||||
"webex" : {
|
||||
"remoteSipSessionId" : "22581707460321454",
|
||||
|
||||
@ -142,6 +142,10 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
|
||||
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
|
||||
},
|
||||
"maxLatency" : 168.0,
|
||||
"score" : {
|
||||
"applicationScore" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"loss" : 0.0,
|
||||
"systemMetrics" : {
|
||||
"cpuUtilization" : {
|
||||
@ -212,6 +216,19 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
|
||||
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
|
||||
"gateway" : "10.0.0.1"
|
||||
},
|
||||
"ztaMetrics" : [ {
|
||||
"loss" : 50.0,
|
||||
"jitter" : 5,
|
||||
"avgLatency" : 3,
|
||||
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
|
||||
"type" : "zta_service"
|
||||
}, {
|
||||
"loss" : 50.0,
|
||||
"jitter" : 5,
|
||||
"avgLatency" : 3,
|
||||
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
|
||||
"type" : "zta_service"
|
||||
} ],
|
||||
"testId" : "584739201",
|
||||
"aid" : "1234",
|
||||
"roundId" : 1384309800,
|
||||
@ -233,6 +250,10 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
|
||||
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
|
||||
},
|
||||
"maxLatency" : 168.0,
|
||||
"score" : {
|
||||
"applicationScore" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"loss" : 0.0,
|
||||
"systemMetrics" : {
|
||||
"cpuUtilization" : {
|
||||
@ -303,6 +324,19 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
|
||||
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
|
||||
"gateway" : "10.0.0.1"
|
||||
},
|
||||
"ztaMetrics" : [ {
|
||||
"loss" : 50.0,
|
||||
"jitter" : 5,
|
||||
"avgLatency" : 3,
|
||||
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
|
||||
"type" : "zta_service"
|
||||
}, {
|
||||
"loss" : 50.0,
|
||||
"jitter" : 5,
|
||||
"avgLatency" : 3,
|
||||
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
|
||||
"type" : "zta_service"
|
||||
} ],
|
||||
"testId" : "584739201",
|
||||
"aid" : "1234",
|
||||
"roundId" : 1384309800,
|
||||
@ -381,6 +415,10 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
|
||||
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
|
||||
},
|
||||
"maxLatency" : 168.0,
|
||||
"score" : {
|
||||
"applicationScore" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"loss" : 0.0,
|
||||
"systemMetrics" : {
|
||||
"cpuUtilization" : {
|
||||
@ -451,6 +489,19 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
|
||||
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
|
||||
"gateway" : "10.0.0.1"
|
||||
},
|
||||
"ztaMetrics" : [ {
|
||||
"loss" : 50.0,
|
||||
"jitter" : 5,
|
||||
"avgLatency" : 3,
|
||||
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
|
||||
"type" : "zta_service"
|
||||
}, {
|
||||
"loss" : 50.0,
|
||||
"jitter" : 5,
|
||||
"avgLatency" : 3,
|
||||
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
|
||||
"type" : "zta_service"
|
||||
} ],
|
||||
"testId" : "584739201",
|
||||
"aid" : "1234",
|
||||
"roundId" : 1384309800,
|
||||
@ -472,6 +523,10 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
|
||||
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
|
||||
},
|
||||
"maxLatency" : 168.0,
|
||||
"score" : {
|
||||
"applicationScore" : 100.0,
|
||||
"quality" : "great"
|
||||
},
|
||||
"loss" : 0.0,
|
||||
"systemMetrics" : {
|
||||
"cpuUtilization" : {
|
||||
@ -542,6 +597,19 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
|
||||
"dnsServers" : [ "8.8.8.8", "8.8.8.4" ],
|
||||
"gateway" : "10.0.0.1"
|
||||
},
|
||||
"ztaMetrics" : [ {
|
||||
"loss" : 50.0,
|
||||
"jitter" : 5,
|
||||
"avgLatency" : 3,
|
||||
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
|
||||
"type" : "zta_service"
|
||||
}, {
|
||||
"loss" : 50.0,
|
||||
"jitter" : 5,
|
||||
"avgLatency" : 3,
|
||||
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
|
||||
"type" : "zta_service"
|
||||
} ],
|
||||
"testId" : "584739201",
|
||||
"aid" : "1234",
|
||||
"roundId" : 1384309800,
|
||||
|
||||
@ -5,7 +5,7 @@ Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API.
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -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]
|
||||
**max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25]
|
||||
**test_name** | **str** | Name of the test. |
|
||||
**server_name** | **str** | A server address without a protocol or IP address. |
|
||||
**server_name** | **str** | A server address without a protocol or IP address. **Deprecated, use `server` instead**. | [optional]
|
||||
**server** | **str** | Target domain name or IP address. |
|
||||
**port** | **int** | Port number. | [optional] [default to 443]
|
||||
|
||||
## Example
|
||||
|
||||
@ -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]
|
||||
**max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25]
|
||||
**test_name** | **str** | Name of the test. |
|
||||
**server_name** | **str** | A server address without a protocol or IP address. |
|
||||
**server_name** | **str** | A server address without a protocol or IP address. **Deprecated, use `server` instead**. | [optional]
|
||||
**server** | **str** | Target domain name or IP address. |
|
||||
**port** | **int** | Port number. | [optional] [default to 443]
|
||||
**is_prioritized** | **bool** | Indicates whether the test should be prioritized when the number of tests assigned to an agent exceeds the license limit. | [optional] [default to False]
|
||||
**interval** | [**TestInterval**](TestInterval.md) | | [optional]
|
||||
|
||||
@ -31,9 +31,10 @@ class EndpointAgentToServerInstantTest(BaseModel):
|
||||
endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels")
|
||||
max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines")
|
||||
test_name: StrictStr = Field(description="Name of the test.", alias="testName")
|
||||
server_name: StrictStr = Field(description="A server address without a protocol or IP address.", alias="serverName")
|
||||
server_name: Optional[StrictStr] = Field(default=None, description="A server address without a protocol or IP address. **Deprecated, use `server` instead**.", alias="serverName")
|
||||
server: StrictStr = Field(description="Target domain name or IP address.")
|
||||
port: Optional[StrictInt] = Field(default=443, description="Port number.")
|
||||
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "serverName", "port"]
|
||||
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "serverName", "server", "port"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -93,6 +94,7 @@ class EndpointAgentToServerInstantTest(BaseModel):
|
||||
"maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25,
|
||||
"testName": obj.get("testName"),
|
||||
"serverName": obj.get("serverName"),
|
||||
"server": obj.get("server"),
|
||||
"port": obj.get("port") if obj.get("port") is not None else 443
|
||||
})
|
||||
return _obj
|
||||
|
||||
@ -33,12 +33,13 @@ class EndpointAgentToServerTestRequest(BaseModel):
|
||||
endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels")
|
||||
max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines")
|
||||
test_name: StrictStr = Field(description="Name of the test.", alias="testName")
|
||||
server_name: StrictStr = Field(description="A server address without a protocol or IP address.", alias="serverName")
|
||||
server_name: Optional[StrictStr] = Field(default=None, description="A server address without a protocol or IP address. **Deprecated, use `server` instead**.", alias="serverName")
|
||||
server: StrictStr = Field(description="Target domain name or IP address.")
|
||||
port: Optional[StrictInt] = Field(default=443, description="Port number.")
|
||||
is_prioritized: Optional[StrictBool] = Field(default=False, description="Indicates whether the test should be prioritized when the number of tests assigned to an agent exceeds the license limit.", alias="isPrioritized")
|
||||
interval: Optional[TestInterval] = None
|
||||
protocol: Optional[EndpointTestProtocol] = None
|
||||
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "serverName", "port", "isPrioritized", "interval", "protocol"]
|
||||
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "serverName", "server", "port", "isPrioritized", "interval", "protocol"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -98,6 +99,7 @@ class EndpointAgentToServerTestRequest(BaseModel):
|
||||
"maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25,
|
||||
"testName": obj.get("testName"),
|
||||
"serverName": obj.get("serverName"),
|
||||
"server": obj.get("server"),
|
||||
"port": obj.get("port") if obj.get("port") is not None else 443,
|
||||
"isPrioritized": obj.get("isPrioritized") if obj.get("isPrioritized") is not None else False,
|
||||
"interval": obj.get("interval"),
|
||||
|
||||
@ -32,6 +32,7 @@ class TestAgentToServerEndpointScheduledTestsApi(unittest.TestCase):
|
||||
"""Test case for create_agent_to_server_endpoint_scheduled_test request and response models"""
|
||||
request_body_json = """
|
||||
{
|
||||
"server" : "www.example.com",
|
||||
"protocol" : "icmp",
|
||||
"port" : 443,
|
||||
"agentSelectorType" : "all-agents",
|
||||
|
||||
@ -12,7 +12,7 @@ With the Events API, you can perform the following tasks on the ThousandEyes pla
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ The response does not include the immediate test results. Use the Test Results e
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.44
|
||||
- API version: 7.0.51
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -18,7 +18,10 @@ Name | Type | Description | Notes
|
||||
**links** | [**TestLinks**](TestLinks.md) | | [optional]
|
||||
**labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly]
|
||||
**shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly]
|
||||
**client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional]
|
||||
**client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional]
|
||||
**collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False]
|
||||
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
|
||||
**follow_redirects** | **bool** | To disable following HTTP/301 or HTTP/302 redirect directives, set this parameter to `false`. | [optional] [default to True]
|
||||
**mtu_measurements** | **bool** | Set `true` 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]
|
||||
|
||||
@ -18,7 +18,10 @@ Name | Type | Description | Notes
|
||||
**links** | [**TestLinks**](TestLinks.md) | | [optional]
|
||||
**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional]
|
||||
**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional]
|
||||
**client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional]
|
||||
**client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional]
|
||||
**collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False]
|
||||
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
|
||||
**follow_redirects** | **bool** | To disable following HTTP/301 or HTTP/302 redirect directives, set this parameter to `false`. | [optional] [default to True]
|
||||
**mtu_measurements** | **bool** | Set `true` 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]
|
||||
|
||||
@ -18,7 +18,10 @@ Name | Type | Description | Notes
|
||||
**links** | [**TestLinks**](TestLinks.md) | | [optional]
|
||||
**labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly]
|
||||
**shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly]
|
||||
**client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional]
|
||||
**client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional]
|
||||
**collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False]
|
||||
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
|
||||
**follow_redirects** | **bool** | To disable following HTTP/301 or HTTP/302 redirect directives, set this parameter to `false`. | [optional] [default to True]
|
||||
**mtu_measurements** | **bool** | Set `true` 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]
|
||||
|
||||
@ -5,7 +5,10 @@
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional]
|
||||
**client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional]
|
||||
**collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False]
|
||||
**distributed_tracing** | **bool** | Adds distributed tracing headers to API requests using B3 and W3C standards. | [optional]
|
||||
**follow_redirects** | **bool** | To disable following HTTP/301 or HTTP/302 redirect directives, set this parameter to `false`. | [optional] [default to True]
|
||||
**mtu_measurements** | **bool** | Set `true` to measure MTU sizes on network from agents to the target. | [optional]
|
||||
**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True]
|
||||
@ -21,8 +24,8 @@ Name | Type | Description | Notes
|
||||
**ssl_version_id** | [**TestSslVersionId**](TestSslVersionId.md) | | [optional]
|
||||
**target_time** | **int** | Target time for completion metric, defaults to 50% of time limit specified in seconds. (0 means default behavior) | [optional]
|
||||
**time_limit** | **int** | Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error. | [optional] [default to 30]
|
||||
**url** | **str** | Target for the test. |
|
||||
**type** | **str** | | [optional] [readonly]
|
||||
**url** | **str** | Target for the test. |
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user