[GitHub Bot] Generated python SDK

This commit is contained in:
API Team 2026-02-27 10:41:18 +00:00
parent 336aa3e36a
commit 6faed7d3db
68 changed files with 1511 additions and 93 deletions

View File

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

View File

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

View File

@ -12,7 +12,7 @@ For more information about the alerts, see [Alerts](https://docs.thousandeyes.co
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.75
- API version: 7.0.76
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

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

View File

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

View File

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

View File

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

View File

@ -13,9 +13,12 @@ docs/AgentThresholdFilters.md
docs/AgentTransfer.md
docs/AgentTransferRequest.md
docs/AgentTransferStatus.md
docs/BatteryLevel.md
docs/BatteryMetrics.md
docs/BrowserType.md
docs/BulkAgentTransferRequest.md
docs/BulkAgentTransferResponse.md
docs/CellularProfile.md
docs/ConditionalOperator.md
docs/ConnectionString.md
docs/EndpointAgent.md
@ -69,9 +72,12 @@ src/thousandeyes_sdk/endpoint_agents/models/agent_threshold_filters.py
src/thousandeyes_sdk/endpoint_agents/models/agent_transfer.py
src/thousandeyes_sdk/endpoint_agents/models/agent_transfer_request.py
src/thousandeyes_sdk/endpoint_agents/models/agent_transfer_status.py
src/thousandeyes_sdk/endpoint_agents/models/battery_level.py
src/thousandeyes_sdk/endpoint_agents/models/battery_metrics.py
src/thousandeyes_sdk/endpoint_agents/models/browser_type.py
src/thousandeyes_sdk/endpoint_agents/models/bulk_agent_transfer_request.py
src/thousandeyes_sdk/endpoint_agents/models/bulk_agent_transfer_response.py
src/thousandeyes_sdk/endpoint_agents/models/cellular_profile.py
src/thousandeyes_sdk/endpoint_agents/models/conditional_operator.py
src/thousandeyes_sdk/endpoint_agents/models/connection_string.py
src/thousandeyes_sdk/endpoint_agents/models/endpoint_agent.py

View File

@ -5,7 +5,7 @@ For more information about Endpoint Agents, see [Endpoint Agents](https://docs.t
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.75
- API version: 7.0.76
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
@ -122,9 +122,12 @@ Class | Method | HTTP request | Description
- [AgentTransfer](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-agents/docs/AgentTransfer.md)
- [AgentTransferRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-agents/docs/AgentTransferRequest.md)
- [AgentTransferStatus](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-agents/docs/AgentTransferStatus.md)
- [BatteryLevel](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-agents/docs/BatteryLevel.md)
- [BatteryMetrics](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-agents/docs/BatteryMetrics.md)
- [BrowserType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-agents/docs/BrowserType.md)
- [BulkAgentTransferRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-agents/docs/BulkAgentTransferRequest.md)
- [BulkAgentTransferResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-agents/docs/BulkAgentTransferResponse.md)
- [CellularProfile](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-agents/docs/CellularProfile.md)
- [ConditionalOperator](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-agents/docs/ConditionalOperator.md)
- [ConnectionString](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-agents/docs/ConnectionString.md)
- [EndpointAgent](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-agents/docs/EndpointAgent.md)

View File

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

View File

@ -0,0 +1,31 @@
# BatteryMetrics
Battery metrics for the endpoint agent.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**battery_level** | [**BatteryLevel**](BatteryLevel.md) | |
**battery_level_normalized_percent** | **float** | Battery level as a normalized percentage (0-1). |
## Example
```python
from thousandeyes_sdk.endpoint_agents.models.battery_metrics import BatteryMetrics
# TODO update the JSON string below
json = "{}"
# create an instance of BatteryMetrics from a JSON string
battery_metrics_instance = BatteryMetrics.from_json(json)
# print the JSON string representation of the object
print(BatteryMetrics.to_json())
# convert the object into a dict
battery_metrics_dict = battery_metrics_instance.to_dict()
# create an instance of BatteryMetrics from a dict
battery_metrics_from_dict = BatteryMetrics.from_dict(battery_metrics_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,39 @@
# CellularProfile
Cellular network profile information for a mobile endpoint agent.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**carrier_name** | **str** | Carrier name | [optional]
**network_gen** | **str** | Cellular network generation. | [optional]
**network_subtype** | **str** | A real network subtype. It may be different from an advertised network type. | [optional]
**advertised_network_gen** | **str** | Cellular network generation. | [optional]
**advertised_network_subtype** | **str** | Advertised Network subtype | [optional]
**rssi** | **float** | Received Signal Strength Indicator in dBm. Values are always negative. | [optional]
**rsrp** | **float** | Reference Signal Received Power in dBm. Values are always negative. | [optional]
**rscp** | **float** | Received Signal Code Power in dBm. Values are always negative or zero. | [optional]
**rsrq** | **float** | Reference Signal Received Quality in dBm. Values are always negative. | [optional]
**sinr** | **float** | Signal to Interference and Noise Ratio in dBm. It can be negative or positive. | [optional]
## Example
```python
from thousandeyes_sdk.endpoint_agents.models.cellular_profile import CellularProfile
# TODO update the JSON string below
json = "{}"
# create an instance of CellularProfile from a JSON string
cellular_profile_instance = CellularProfile.from_json(json)
# print the JSON string representation of the object
print(CellularProfile.to_json())
# convert the object into a dict
cellular_profile_dict = cellular_profile_instance.to_dict()
# create an instance of CellularProfile from a dict
cellular_profile_from_dict = CellularProfile.from_dict(cellular_profile_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -35,6 +35,8 @@ Name | Type | Description | Notes
**license_type** | [**AgentLicenseType**](AgentLicenseType.md) | | [optional]
**tcp_driver_available** | **bool** | Status of TCP test support on the agent. | [optional] [readonly]
**npcap_version** | **str** | For Windows agents, the version of the NPCAP driver that the agent has loaded. | [optional] [readonly]
**battery_metrics** | [**BatteryMetrics**](BatteryMetrics.md) | | [optional]
**cellular_profile** | [**CellularProfile**](CellularProfile.md) | | [optional]
**links** | [**SelfLinks**](SelfLinks.md) | | [optional]
## Example

View File

@ -31,9 +31,12 @@ from thousandeyes_sdk.endpoint_agents.models.agent_threshold_filters import Agen
from thousandeyes_sdk.endpoint_agents.models.agent_transfer import AgentTransfer
from thousandeyes_sdk.endpoint_agents.models.agent_transfer_request import AgentTransferRequest
from thousandeyes_sdk.endpoint_agents.models.agent_transfer_status import AgentTransferStatus
from thousandeyes_sdk.endpoint_agents.models.battery_level import BatteryLevel
from thousandeyes_sdk.endpoint_agents.models.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_agents.models.browser_type import BrowserType
from thousandeyes_sdk.endpoint_agents.models.bulk_agent_transfer_request import BulkAgentTransferRequest
from thousandeyes_sdk.endpoint_agents.models.bulk_agent_transfer_response import BulkAgentTransferResponse
from thousandeyes_sdk.endpoint_agents.models.cellular_profile import CellularProfile
from thousandeyes_sdk.endpoint_agents.models.conditional_operator import ConditionalOperator
from thousandeyes_sdk.endpoint_agents.models.connection_string import ConnectionString
from thousandeyes_sdk.endpoint_agents.models.endpoint_agent import EndpointAgent

View File

@ -25,9 +25,12 @@ from thousandeyes_sdk.endpoint_agents.models.agent_threshold_filters import Agen
from thousandeyes_sdk.endpoint_agents.models.agent_transfer import AgentTransfer
from thousandeyes_sdk.endpoint_agents.models.agent_transfer_request import AgentTransferRequest
from thousandeyes_sdk.endpoint_agents.models.agent_transfer_status import AgentTransferStatus
from thousandeyes_sdk.endpoint_agents.models.battery_level import BatteryLevel
from thousandeyes_sdk.endpoint_agents.models.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_agents.models.browser_type import BrowserType
from thousandeyes_sdk.endpoint_agents.models.bulk_agent_transfer_request import BulkAgentTransferRequest
from thousandeyes_sdk.endpoint_agents.models.bulk_agent_transfer_response import BulkAgentTransferResponse
from thousandeyes_sdk.endpoint_agents.models.cellular_profile import CellularProfile
from thousandeyes_sdk.endpoint_agents.models.conditional_operator import ConditionalOperator
from thousandeyes_sdk.endpoint_agents.models.connection_string import ConnectionString
from thousandeyes_sdk.endpoint_agents.models.endpoint_agent import EndpointAgent

View File

@ -0,0 +1,42 @@
# coding: utf-8
"""
Endpoint Agents API
Manage ThousandEyes Endpoint Agents using this API. For more information about Endpoint Agents, see [Endpoint Agents](https://docs.thousandeyes.com/product-documentation/global-vantage-points/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 BatteryLevel(str, Enum):
"""
Battery level indicator.
"""
"""
allowed enum values
"""
HIGH = 'high'
MEDIUM = 'medium'
LOW = 'low'
UNKNOWN = 'unknown'
@classmethod
def from_json(cls, json_str: str) -> Self:
"""Create an instance of BatteryLevel from a JSON string"""
return cls(json.loads(json_str))
@classmethod
def _missing_(cls, value):
"""Handle unknown values"""
return cls.UNKNOWN

View File

@ -0,0 +1,91 @@
# coding: utf-8
"""
Endpoint Agents API
Manage ThousandEyes Endpoint Agents using this API. For more information about Endpoint Agents, see [Endpoint Agents](https://docs.thousandeyes.com/product-documentation/global-vantage-points/endpoint-agents).
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Union
from typing_extensions import Annotated
from thousandeyes_sdk.endpoint_agents.models.battery_level import BatteryLevel
from typing import Optional, Set
from typing_extensions import Self
class BatteryMetrics(BaseModel):
"""
Battery metrics for the endpoint agent.
""" # noqa: E501
battery_level: BatteryLevel = Field(alias="batteryLevel")
battery_level_normalized_percent: Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]] = Field(description="Battery level as a normalized percentage (0-1).", alias="batteryLevelNormalizedPercent")
__properties: ClassVar[List[str]] = ["batteryLevel", "batteryLevelNormalizedPercent"]
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 BatteryMetrics 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 BatteryMetrics from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"batteryLevel": obj.get("batteryLevel"),
"batteryLevelNormalizedPercent": obj.get("batteryLevelNormalizedPercent")
})
return _obj

View File

@ -0,0 +1,105 @@
# coding: utf-8
"""
Endpoint Agents API
Manage ThousandEyes Endpoint Agents using this API. For more information about Endpoint Agents, see [Endpoint Agents](https://docs.thousandeyes.com/product-documentation/global-vantage-points/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 typing import Optional, Set
from typing_extensions import Self
class CellularProfile(BaseModel):
"""
Cellular network profile information for a mobile endpoint agent.
""" # noqa: E501
carrier_name: Optional[StrictStr] = Field(default=None, description="Carrier name", alias="carrierName")
network_gen: Optional[StrictStr] = Field(default=None, description="Cellular network generation.", alias="networkGen")
network_subtype: Optional[StrictStr] = Field(default=None, description="A real network subtype. It may be different from an advertised network type.", alias="networkSubtype")
advertised_network_gen: Optional[StrictStr] = Field(default=None, description="Cellular network generation.", alias="advertisedNetworkGen")
advertised_network_subtype: Optional[StrictStr] = Field(default=None, description="Advertised Network subtype", alias="advertisedNetworkSubtype")
rssi: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Received Signal Strength Indicator in dBm. Values are always negative.")
rsrp: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Reference Signal Received Power in dBm. Values are always negative.")
rscp: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Received Signal Code Power in dBm. Values are always negative or zero.")
rsrq: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Reference Signal Received Quality in dBm. Values are always negative.")
sinr: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Signal to Interference and Noise Ratio in dBm. It can be negative or positive.")
__properties: ClassVar[List[str]] = ["carrierName", "networkGen", "networkSubtype", "advertisedNetworkGen", "advertisedNetworkSubtype", "rssi", "rsrp", "rscp", "rsrq", "sinr"]
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 CellularProfile 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 CellularProfile from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"carrierName": obj.get("carrierName"),
"networkGen": obj.get("networkGen"),
"networkSubtype": obj.get("networkSubtype"),
"advertisedNetworkGen": obj.get("advertisedNetworkGen"),
"advertisedNetworkSubtype": obj.get("advertisedNetworkSubtype"),
"rssi": obj.get("rssi"),
"rsrp": obj.get("rsrp"),
"rscp": obj.get("rscp"),
"rsrq": obj.get("rsrq"),
"sinr": obj.get("sinr")
})
return _obj

View File

@ -20,6 +20,8 @@ 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_agents.models.agent_license_type import AgentLicenseType
from thousandeyes_sdk.endpoint_agents.models.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_agents.models.cellular_profile import CellularProfile
from thousandeyes_sdk.endpoint_agents.models.endpoint_agent_location import EndpointAgentLocation
from thousandeyes_sdk.endpoint_agents.models.endpoint_asn_details import EndpointAsnDetails
from thousandeyes_sdk.endpoint_agents.models.endpoint_client import EndpointClient
@ -65,8 +67,10 @@ class EndpointAgent(BaseModel):
license_type: Optional[AgentLicenseType] = Field(default=None, alias="licenseType")
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")
battery_metrics: Optional[BatteryMetrics] = Field(default=None, alias="batteryMetrics")
cellular_profile: Optional[CellularProfile] = Field(default=None, alias="cellularProfile")
links: Optional[SelfLinks] = Field(default=None, alias="_links")
__properties: ClassVar[List[str]] = ["id", "aid", "name", "computerName", "osVersion", "platform", "kernelVersion", "manufacturer", "model", "serialNumber", "lastSeen", "status", "deleted", "version", "targetVersion", "createdAt", "numberOfClients", "publicIP", "location", "clients", "totalMemory", "agentType", "vpnProfiles", "externalMetadata", "networkInterfaceProfiles", "asnDetails", "licenseType", "tcpDriverAvailable", "npcapVersion", "_links"]
__properties: ClassVar[List[str]] = ["id", "aid", "name", "computerName", "osVersion", "platform", "kernelVersion", "manufacturer", "model", "serialNumber", "lastSeen", "status", "deleted", "version", "targetVersion", "createdAt", "numberOfClients", "publicIP", "location", "clients", "totalMemory", "agentType", "vpnProfiles", "externalMetadata", "networkInterfaceProfiles", "asnDetails", "licenseType", "tcpDriverAvailable", "npcapVersion", "batteryMetrics", "cellularProfile", "_links"]
model_config = ConfigDict(
populate_by_name=True,
@ -184,6 +188,12 @@ class EndpointAgent(BaseModel):
# override the default output from pydantic by calling `to_dict()` of asn_details
if self.asn_details:
_dict['asnDetails'] = self.asn_details.to_dict()
# override the default output from pydantic by calling `to_dict()` of battery_metrics
if self.battery_metrics:
_dict['batteryMetrics'] = self.battery_metrics.to_dict()
# override the default output from pydantic by calling `to_dict()` of cellular_profile
if self.cellular_profile:
_dict['cellularProfile'] = self.cellular_profile.to_dict()
# override the default output from pydantic by calling `to_dict()` of links
if self.links:
_dict['_links'] = self.links.to_dict()
@ -228,6 +238,8 @@ class EndpointAgent(BaseModel):
"licenseType": obj.get("licenseType"),
"tcpDriverAvailable": obj.get("tcpDriverAvailable"),
"npcapVersion": obj.get("npcapVersion"),
"batteryMetrics": BatteryMetrics.from_dict(obj["batteryMetrics"]) if obj.get("batteryMetrics") is not None else None,
"cellularProfile": CellularProfile.from_dict(obj["cellularProfile"]) if obj.get("cellularProfile") is not None else None,
"_links": SelfLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None
})
return _obj

View File

@ -96,11 +96,27 @@ class TestEndpointAgentsApi(unittest.TestCase):
"title" : "title"
}
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -265,11 +281,27 @@ class TestEndpointAgentsApi(unittest.TestCase):
"title" : "title"
}
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -489,11 +521,27 @@ class TestEndpointAgentsApi(unittest.TestCase):
"title" : "title"
}
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -648,11 +696,27 @@ class TestEndpointAgentsApi(unittest.TestCase):
"title" : "title"
}
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -818,11 +882,27 @@ class TestEndpointAgentsApi(unittest.TestCase):
"title" : "title"
}
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -1011,11 +1091,27 @@ class TestEndpointAgentsApi(unittest.TestCase):
"title" : "title"
}
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -1170,11 +1266,27 @@ class TestEndpointAgentsApi(unittest.TestCase):
"title" : "title"
}
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@ -1373,11 +1485,27 @@ class TestEndpointAgentsApi(unittest.TestCase):
"title" : "title"
}
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",

View File

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

View File

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

View File

@ -4,6 +4,9 @@ README.md
docs/ApplicationMetrics.md
docs/ApplicationScoreQuality.md
docs/AsnDetails.md
docs/BatteryLevel.md
docs/BatteryMetrics.md
docs/CellularProfile.md
docs/ConditionalOperator.md
docs/CpuUtilization.md
docs/DynamicBaseEndpointTestResult.md
@ -174,6 +177,9 @@ src/thousandeyes_sdk/endpoint_test_results/models/__init__.py
src/thousandeyes_sdk/endpoint_test_results/models/application_metrics.py
src/thousandeyes_sdk/endpoint_test_results/models/application_score_quality.py
src/thousandeyes_sdk/endpoint_test_results/models/asn_details.py
src/thousandeyes_sdk/endpoint_test_results/models/battery_level.py
src/thousandeyes_sdk/endpoint_test_results/models/battery_metrics.py
src/thousandeyes_sdk/endpoint_test_results/models/cellular_profile.py
src/thousandeyes_sdk/endpoint_test_results/models/conditional_operator.py
src/thousandeyes_sdk/endpoint_test_results/models/cpu_utilization.py
src/thousandeyes_sdk/endpoint_test_results/models/dynamic_base_endpoint_test_result.py

View File

@ -3,7 +3,7 @@ Retrieve results for scheduled and dynamic tests on endpoint agents.
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.75
- API version: 7.0.76
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
@ -125,6 +125,9 @@ Class | Method | HTTP request | Description
- [ApplicationMetrics](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/ApplicationMetrics.md)
- [ApplicationScoreQuality](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/ApplicationScoreQuality.md)
- [AsnDetails](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/AsnDetails.md)
- [BatteryLevel](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/BatteryLevel.md)
- [BatteryMetrics](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/BatteryMetrics.md)
- [CellularProfile](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/CellularProfile.md)
- [ConditionalOperator](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/ConditionalOperator.md)
- [CpuUtilization](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/CpuUtilization.md)
- [DynamicBaseEndpointTestResult](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/DynamicBaseEndpointTestResult.md)

View File

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

View File

@ -0,0 +1,31 @@
# BatteryMetrics
Battery metrics for the endpoint agent.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**battery_level** | [**BatteryLevel**](BatteryLevel.md) | |
**battery_level_normalized_percent** | **float** | Battery level as a normalized percentage (0-1). |
## Example
```python
from thousandeyes_sdk.endpoint_test_results.models.battery_metrics import BatteryMetrics
# TODO update the JSON string below
json = "{}"
# create an instance of BatteryMetrics from a JSON string
battery_metrics_instance = BatteryMetrics.from_json(json)
# print the JSON string representation of the object
print(BatteryMetrics.to_json())
# convert the object into a dict
battery_metrics_dict = battery_metrics_instance.to_dict()
# create an instance of BatteryMetrics from a dict
battery_metrics_from_dict = BatteryMetrics.from_dict(battery_metrics_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,39 @@
# CellularProfile
Cellular network profile information for a mobile endpoint agent.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**carrier_name** | **str** | Carrier name | [optional]
**network_gen** | **str** | Cellular network generation. | [optional]
**network_subtype** | **str** | A real network subtype. It may be different from an advertised network type. | [optional]
**advertised_network_gen** | **str** | Cellular network generation. | [optional]
**advertised_network_subtype** | **str** | Advertised Network subtype | [optional]
**rssi** | **float** | Received Signal Strength Indicator in dBm. Values are always negative. | [optional]
**rsrp** | **float** | Reference Signal Received Power in dBm. Values are always negative. | [optional]
**rscp** | **float** | Received Signal Code Power in dBm. Values are always negative or zero. | [optional]
**rsrq** | **float** | Reference Signal Received Quality in dBm. Values are always negative. | [optional]
**sinr** | **float** | Signal to Interference and Noise Ratio in dBm. It can be negative or positive. | [optional]
## Example
```python
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
# TODO update the JSON string below
json = "{}"
# create an instance of CellularProfile from a JSON string
cellular_profile_instance = CellularProfile.from_json(json)
# print the JSON string representation of the object
print(CellularProfile.to_json())
# convert the object into a dict
cellular_profile_dict = cellular_profile_instance.to_dict()
# create an instance of CellularProfile from a dict
cellular_profile_from_dict = CellularProfile.from_dict(cellular_profile_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -15,6 +15,9 @@ Name | Type | Description | Notes
**original_target_profile** | [**TargetProfile**](TargetProfile.md) | | [optional]
**user_profile** | [**UserProfile**](UserProfile.md) | | [optional]
**vpn_profile** | [**VpnProfile**](VpnProfile.md) | | [optional]
**battery_metrics** | [**BatteryMetrics**](BatteryMetrics.md) | | [optional]
**cellular_profile** | [**CellularProfile**](CellularProfile.md) | | [optional]
**platform** | [**Platform**](Platform.md) | | [optional]
## Example

View File

@ -15,6 +15,9 @@ Name | Type | Description | Notes
**original_target_profile** | [**TargetProfile**](TargetProfile.md) | | [optional]
**user_profile** | [**UserProfile**](UserProfile.md) | | [optional]
**vpn_profile** | [**VpnProfile**](VpnProfile.md) | | [optional]
**battery_metrics** | [**BatteryMetrics**](BatteryMetrics.md) | | [optional]
**cellular_profile** | [**CellularProfile**](CellularProfile.md) | | [optional]
**platform** | [**Platform**](Platform.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]

View File

@ -22,6 +22,9 @@ Name | Type | Description | Notes
**proxy_score** | [**EndpointProbeProxyScore**](EndpointProbeProxyScore.md) | | [optional]
**connection_score** | [**EndpointProbeConnectionScore**](EndpointProbeConnectionScore.md) | | [optional]
**agent_score** | [**EndpointProbeAgentScore**](EndpointProbeAgentScore.md) | | [optional]
**battery_metrics** | [**BatteryMetrics**](BatteryMetrics.md) | | [optional]
**cellular_profile** | [**CellularProfile**](CellularProfile.md) | | [optional]
**platform** | [**Platform**](Platform.md) | | [optional]
**coordinates** | [**RealUserEndpointTestCoordinates**](RealUserEndpointTestCoordinates.md) | | [optional]
**network_profile** | [**NetworkProfile**](NetworkProfile.md) | | [optional]
**icmp_traceroute** | [**Traceroute**](Traceroute.md) | | [optional]

View File

@ -22,6 +22,9 @@ Name | Type | Description | Notes
**proxy_score** | [**EndpointProbeProxyScore**](EndpointProbeProxyScore.md) | | [optional]
**connection_score** | [**EndpointProbeConnectionScore**](EndpointProbeConnectionScore.md) | | [optional]
**agent_score** | [**EndpointProbeAgentScore**](EndpointProbeAgentScore.md) | | [optional]
**battery_metrics** | [**BatteryMetrics**](BatteryMetrics.md) | | [optional]
**cellular_profile** | [**CellularProfile**](CellularProfile.md) | | [optional]
**platform** | [**Platform**](Platform.md) | | [optional]
## Example

View File

@ -15,6 +15,9 @@ Name | Type | Description | Notes
**original_target_profile** | [**TargetProfile**](TargetProfile.md) | | [optional]
**user_profile** | [**UserProfile**](UserProfile.md) | | [optional]
**vpn_profile** | [**VpnProfile**](VpnProfile.md) | | [optional]
**battery_metrics** | [**BatteryMetrics**](BatteryMetrics.md) | | [optional]
**cellular_profile** | [**CellularProfile**](CellularProfile.md) | | [optional]
**platform** | [**Platform**](Platform.md) | | [optional]
**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]

View File

@ -15,6 +15,9 @@ Name | Type | Description | Notes
**original_target_profile** | [**TargetProfile**](TargetProfile.md) | | [optional]
**user_profile** | [**UserProfile**](UserProfile.md) | | [optional]
**vpn_profile** | [**VpnProfile**](VpnProfile.md) | | [optional]
**battery_metrics** | [**BatteryMetrics**](BatteryMetrics.md) | | [optional]
**cellular_profile** | [**CellularProfile**](CellularProfile.md) | | [optional]
**platform** | [**Platform**](Platform.md) | | [optional]
**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]

View File

@ -15,6 +15,9 @@ Name | Type | Description | Notes
**original_target_profile** | [**TargetProfile**](TargetProfile.md) | | [optional]
**user_profile** | [**UserProfile**](UserProfile.md) | | [optional]
**vpn_profile** | [**VpnProfile**](VpnProfile.md) | | [optional]
**battery_metrics** | [**BatteryMetrics**](BatteryMetrics.md) | | [optional]
**cellular_profile** | [**CellularProfile**](CellularProfile.md) | | [optional]
**platform** | [**Platform**](Platform.md) | | [optional]
**asn_details** | [**AsnDetails**](AsnDetails.md) | | [optional]
**server** | **str** | Target server, including port. | [optional] [readonly]
**source_ip** | **str** | IP address of source endpoint agent. | [optional] [readonly]

View File

@ -15,6 +15,9 @@ Name | Type | Description | Notes
**original_target_profile** | [**TargetProfile**](TargetProfile.md) | | [optional]
**user_profile** | [**UserProfile**](UserProfile.md) | | [optional]
**vpn_profile** | [**VpnProfile**](VpnProfile.md) | | [optional]
**battery_metrics** | [**BatteryMetrics**](BatteryMetrics.md) | | [optional]
**cellular_profile** | [**CellularProfile**](CellularProfile.md) | | [optional]
**platform** | [**Platform**](Platform.md) | | [optional]
**asn_details** | [**AsnDetails**](AsnDetails.md) | | [optional]
**server** | **str** | Target server, including port. | [optional] [readonly]
**source_ip** | **str** | IP address of source endpoint agent. | [optional] [readonly]

View File

@ -15,6 +15,9 @@ Name | Type | Description | Notes
**original_target_profile** | [**TargetProfile**](TargetProfile.md) | | [optional]
**user_profile** | [**UserProfile**](UserProfile.md) | | [optional]
**vpn_profile** | [**VpnProfile**](VpnProfile.md) | | [optional]
**battery_metrics** | [**BatteryMetrics**](BatteryMetrics.md) | | [optional]
**cellular_profile** | [**CellularProfile**](CellularProfile.md) | | [optional]
**platform** | [**Platform**](Platform.md) | | [optional]
**asn_details** | [**AsnDetails**](AsnDetails.md) | | [optional]
**server** | **str** | Target server, including port. | [optional] [readonly]
**source_ip** | **str** | IP address of source endpoint agent. | [optional] [readonly]

View File

@ -15,6 +15,9 @@ Name | Type | Description | Notes
**original_target_profile** | [**TargetProfile**](TargetProfile.md) | | [optional]
**user_profile** | [**UserProfile**](UserProfile.md) | | [optional]
**vpn_profile** | [**VpnProfile**](VpnProfile.md) | | [optional]
**battery_metrics** | [**BatteryMetrics**](BatteryMetrics.md) | | [optional]
**cellular_profile** | [**CellularProfile**](CellularProfile.md) | | [optional]
**platform** | [**Platform**](Platform.md) | | [optional]
**asn_details** | [**AsnDetails**](AsnDetails.md) | | [optional]
**server** | **str** | Target server, including port. | [optional] [readonly]
**source_ip** | **str** | IP address of source endpoint agent. | [optional] [readonly]

View File

@ -15,6 +15,9 @@ Name | Type | Description | Notes
**original_target_profile** | [**TargetProfile**](TargetProfile.md) | | [optional]
**user_profile** | [**UserProfile**](UserProfile.md) | | [optional]
**vpn_profile** | [**VpnProfile**](VpnProfile.md) | | [optional]
**battery_metrics** | [**BatteryMetrics**](BatteryMetrics.md) | | [optional]
**cellular_profile** | [**CellularProfile**](CellularProfile.md) | | [optional]
**platform** | [**Platform**](Platform.md) | | [optional]
**asn_details** | [**AsnDetails**](AsnDetails.md) | | [optional]
**server** | **str** | Target server, including port. | [optional] [readonly]
**source_ip** | **str** | IP address of source endpoint agent. | [optional] [readonly]

View File

@ -25,6 +25,9 @@ from thousandeyes_sdk.endpoint_test_results.api.real_user_endpoint_test_results_
from thousandeyes_sdk.endpoint_test_results.models.application_metrics import ApplicationMetrics
from thousandeyes_sdk.endpoint_test_results.models.application_score_quality import ApplicationScoreQuality
from thousandeyes_sdk.endpoint_test_results.models.asn_details import AsnDetails
from thousandeyes_sdk.endpoint_test_results.models.battery_level import BatteryLevel
from thousandeyes_sdk.endpoint_test_results.models.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
from thousandeyes_sdk.endpoint_test_results.models.conditional_operator import ConditionalOperator
from thousandeyes_sdk.endpoint_test_results.models.cpu_utilization import CpuUtilization
from thousandeyes_sdk.endpoint_test_results.models.dynamic_base_endpoint_test_result import DynamicBaseEndpointTestResult

View File

@ -16,6 +16,9 @@
from thousandeyes_sdk.endpoint_test_results.models.application_metrics import ApplicationMetrics
from thousandeyes_sdk.endpoint_test_results.models.application_score_quality import ApplicationScoreQuality
from thousandeyes_sdk.endpoint_test_results.models.asn_details import AsnDetails
from thousandeyes_sdk.endpoint_test_results.models.battery_level import BatteryLevel
from thousandeyes_sdk.endpoint_test_results.models.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
from thousandeyes_sdk.endpoint_test_results.models.conditional_operator import ConditionalOperator
from thousandeyes_sdk.endpoint_test_results.models.cpu_utilization import CpuUtilization
from thousandeyes_sdk.endpoint_test_results.models.dynamic_base_endpoint_test_result import DynamicBaseEndpointTestResult

View File

@ -0,0 +1,42 @@
# 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 BatteryLevel(str, Enum):
"""
Battery level indicator.
"""
"""
allowed enum values
"""
HIGH = 'high'
MEDIUM = 'medium'
LOW = 'low'
UNKNOWN = 'unknown'
@classmethod
def from_json(cls, json_str: str) -> Self:
"""Create an instance of BatteryLevel from a JSON string"""
return cls(json.loads(json_str))
@classmethod
def _missing_(cls, value):
"""Handle unknown values"""
return cls.UNKNOWN

View File

@ -0,0 +1,91 @@
# coding: utf-8
"""
Endpoint Test Results API
Retrieve results for scheduled and dynamic tests on endpoint agents.
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Union
from typing_extensions import Annotated
from thousandeyes_sdk.endpoint_test_results.models.battery_level import BatteryLevel
from typing import Optional, Set
from typing_extensions import Self
class BatteryMetrics(BaseModel):
"""
Battery metrics for the endpoint agent.
""" # noqa: E501
battery_level: BatteryLevel = Field(alias="batteryLevel")
battery_level_normalized_percent: Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]] = Field(description="Battery level as a normalized percentage (0-1).", alias="batteryLevelNormalizedPercent")
__properties: ClassVar[List[str]] = ["batteryLevel", "batteryLevelNormalizedPercent"]
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 BatteryMetrics 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 BatteryMetrics from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"batteryLevel": obj.get("batteryLevel"),
"batteryLevelNormalizedPercent": obj.get("batteryLevelNormalizedPercent")
})
return _obj

View File

@ -0,0 +1,105 @@
# 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 typing import Optional, Set
from typing_extensions import Self
class CellularProfile(BaseModel):
"""
Cellular network profile information for a mobile endpoint agent.
""" # noqa: E501
carrier_name: Optional[StrictStr] = Field(default=None, description="Carrier name", alias="carrierName")
network_gen: Optional[StrictStr] = Field(default=None, description="Cellular network generation.", alias="networkGen")
network_subtype: Optional[StrictStr] = Field(default=None, description="A real network subtype. It may be different from an advertised network type.", alias="networkSubtype")
advertised_network_gen: Optional[StrictStr] = Field(default=None, description="Cellular network generation.", alias="advertisedNetworkGen")
advertised_network_subtype: Optional[StrictStr] = Field(default=None, description="Advertised Network subtype", alias="advertisedNetworkSubtype")
rssi: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Received Signal Strength Indicator in dBm. Values are always negative.")
rsrp: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Reference Signal Received Power in dBm. Values are always negative.")
rscp: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Received Signal Code Power in dBm. Values are always negative or zero.")
rsrq: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Reference Signal Received Quality in dBm. Values are always negative.")
sinr: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Signal to Interference and Noise Ratio in dBm. It can be negative or positive.")
__properties: ClassVar[List[str]] = ["carrierName", "networkGen", "networkSubtype", "advertisedNetworkGen", "advertisedNetworkSubtype", "rssi", "rsrp", "rscp", "rsrq", "sinr"]
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 CellularProfile 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 CellularProfile from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"carrierName": obj.get("carrierName"),
"networkGen": obj.get("networkGen"),
"networkSubtype": obj.get("networkSubtype"),
"advertisedNetworkGen": obj.get("advertisedNetworkGen"),
"advertisedNetworkSubtype": obj.get("advertisedNetworkSubtype"),
"rssi": obj.get("rssi"),
"rsrp": obj.get("rsrp"),
"rscp": obj.get("rscp"),
"rsrq": obj.get("rsrq"),
"sinr": obj.get("sinr")
})
return _obj

View File

@ -18,7 +18,10 @@ 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.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
from thousandeyes_sdk.endpoint_test_results.models.platform import Platform
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
from thousandeyes_sdk.endpoint_test_results.models.target_profile import TargetProfile
from thousandeyes_sdk.endpoint_test_results.models.user_profile import UserProfile
@ -40,7 +43,10 @@ class EndpointTestResult(BaseModel):
original_target_profile: Optional[TargetProfile] = Field(default=None, alias="originalTargetProfile")
user_profile: Optional[UserProfile] = Field(default=None, alias="userProfile")
vpn_profile: Optional[VpnProfile] = Field(default=None, alias="vpnProfile")
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile"]
battery_metrics: Optional[BatteryMetrics] = Field(default=None, alias="batteryMetrics")
cellular_profile: Optional[CellularProfile] = Field(default=None, alias="cellularProfile")
platform: Optional[Platform] = None
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "batteryMetrics", "cellularProfile", "platform"]
model_config = ConfigDict(
populate_by_name=True,
@ -105,6 +111,12 @@ class EndpointTestResult(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 battery_metrics
if self.battery_metrics:
_dict['batteryMetrics'] = self.battery_metrics.to_dict()
# override the default output from pydantic by calling `to_dict()` of cellular_profile
if self.cellular_profile:
_dict['cellularProfile'] = self.cellular_profile.to_dict()
return _dict
@classmethod
@ -126,7 +138,10 @@ class EndpointTestResult(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,
"userProfile": UserProfile.from_dict(obj["userProfile"]) if obj.get("userProfile") is not None else None,
"vpnProfile": VpnProfile.from_dict(obj["vpnProfile"]) if obj.get("vpnProfile") is not None else None
"vpnProfile": VpnProfile.from_dict(obj["vpnProfile"]) if obj.get("vpnProfile") is not None else None,
"batteryMetrics": BatteryMetrics.from_dict(obj["batteryMetrics"]) if obj.get("batteryMetrics") is not None else None,
"cellularProfile": CellularProfile.from_dict(obj["cellularProfile"]) if obj.get("cellularProfile") is not None else None,
"platform": obj.get("platform")
})
return _obj

View File

@ -18,10 +18,13 @@ 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.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
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
from thousandeyes_sdk.endpoint_test_results.models.platform import Platform
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
from thousandeyes_sdk.endpoint_test_results.models.target_profile import TargetProfile
from thousandeyes_sdk.endpoint_test_results.models.user_profile import UserProfile
@ -43,6 +46,9 @@ class HttpEndpointTestResult(BaseModel):
original_target_profile: Optional[TargetProfile] = Field(default=None, alias="originalTargetProfile")
user_profile: Optional[UserProfile] = Field(default=None, alias="userProfile")
vpn_profile: Optional[VpnProfile] = Field(default=None, alias="vpnProfile")
battery_metrics: Optional[BatteryMetrics] = Field(default=None, alias="batteryMetrics")
cellular_profile: Optional[CellularProfile] = Field(default=None, alias="cellularProfile")
platform: Optional[Platform] = None
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")
@ -59,7 +65,7 @@ class HttpEndpointTestResult(BaseModel):
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")
throughput: Optional[StrictInt] = Field(default=None, description="Amount of data transmitted, in bytes.")
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "score", "connectTime", "dnsTime", "errorType", "errorDetails", "headers", "numRedirects", "receiveTime", "redirectTime", "responseCode", "responseTime", "sslTime", "totalTime", "waitTime", "wireSize", "throughput"]
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "batteryMetrics", "cellularProfile", "platform", "score", "connectTime", "dnsTime", "errorType", "errorDetails", "headers", "numRedirects", "receiveTime", "redirectTime", "responseCode", "responseTime", "sslTime", "totalTime", "waitTime", "wireSize", "throughput"]
model_config = ConfigDict(
populate_by_name=True,
@ -150,6 +156,12 @@ 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 battery_metrics
if self.battery_metrics:
_dict['batteryMetrics'] = self.battery_metrics.to_dict()
# override the default output from pydantic by calling `to_dict()` of cellular_profile
if self.cellular_profile:
_dict['cellularProfile'] = self.cellular_profile.to_dict()
# override the default output from pydantic by calling `to_dict()` of score
if self.score:
_dict['score'] = self.score.to_dict()
@ -178,6 +190,9 @@ class HttpEndpointTestResult(BaseModel):
"originalTargetProfile": TargetProfile.from_dict(obj["originalTargetProfile"]) if obj.get("originalTargetProfile") is not None else None,
"userProfile": UserProfile.from_dict(obj["userProfile"]) if obj.get("userProfile") is not None else None,
"vpnProfile": VpnProfile.from_dict(obj["vpnProfile"]) if obj.get("vpnProfile") is not None else None,
"batteryMetrics": BatteryMetrics.from_dict(obj["batteryMetrics"]) if obj.get("batteryMetrics") is not None else None,
"cellularProfile": CellularProfile.from_dict(obj["cellularProfile"]) if obj.get("cellularProfile") is not None else None,
"platform": obj.get("platform"),
"score": EndpointHttpDataPointScore.from_dict(obj["score"]) if obj.get("score") is not None else None,
"connectTime": obj.get("connectTime"),
"dnsTime": obj.get("dnsTime"),

View File

@ -19,6 +19,8 @@ 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.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
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
@ -27,6 +29,7 @@ from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_vpn_score impo
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
from thousandeyes_sdk.endpoint_test_results.models.platform import Platform
from thousandeyes_sdk.endpoint_test_results.models.real_user_endpoint_test_coordinates import RealUserEndpointTestCoordinates
from thousandeyes_sdk.endpoint_test_results.models.system_metric_details import SystemMetricDetails
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
@ -56,11 +59,14 @@ class LocalNetworkTopologyResult(BaseModel):
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")
battery_metrics: Optional[BatteryMetrics] = Field(default=None, alias="batteryMetrics")
cellular_profile: Optional[CellularProfile] = Field(default=None, alias="cellularProfile")
platform: Optional[Platform] = None
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", "vpnScore", "gatewayScore", "proxyScore", "connectionScore", "agentScore", "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", "batteryMetrics", "cellularProfile", "platform", "coordinates", "networkProfile", "icmpTraceroute", "icmpTraceroutes"]
model_config = ConfigDict(
populate_by_name=True,
@ -143,6 +149,12 @@ class LocalNetworkTopologyResult(BaseModel):
# 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 battery_metrics
if self.battery_metrics:
_dict['batteryMetrics'] = self.battery_metrics.to_dict()
# override the default output from pydantic by calling `to_dict()` of cellular_profile
if self.cellular_profile:
_dict['cellularProfile'] = self.cellular_profile.to_dict()
# override the default output from pydantic by calling `to_dict()` of coordinates
if self.coordinates:
_dict['coordinates'] = self.coordinates.to_dict()
@ -188,6 +200,9 @@ class LocalNetworkTopologyResult(BaseModel):
"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,
"batteryMetrics": BatteryMetrics.from_dict(obj["batteryMetrics"]) if obj.get("batteryMetrics") is not None else None,
"cellularProfile": CellularProfile.from_dict(obj["cellularProfile"]) if obj.get("cellularProfile") is not None else None,
"platform": obj.get("platform"),
"coordinates": RealUserEndpointTestCoordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
"networkProfile": NetworkProfile.from_dict(obj["networkProfile"]) if obj.get("networkProfile") is not None else None,
"icmpTraceroute": Traceroute.from_dict(obj["icmpTraceroute"]) if obj.get("icmpTraceroute") is not None else None,

View File

@ -19,6 +19,8 @@ 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.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
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
@ -26,6 +28,7 @@ from thousandeyes_sdk.endpoint_test_results.models.endpoint_probe_proxy_score im
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.platform import Platform
from thousandeyes_sdk.endpoint_test_results.models.system_metric_details import SystemMetricDetails
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
from thousandeyes_sdk.endpoint_test_results.models.tcp_connect import TcpConnect
@ -53,7 +56,10 @@ class LocalNetworkTopologyResultBase(BaseModel):
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"]
battery_metrics: Optional[BatteryMetrics] = Field(default=None, alias="batteryMetrics")
cellular_profile: Optional[CellularProfile] = Field(default=None, alias="cellularProfile")
platform: Optional[Platform] = None
__properties: ClassVar[List[str]] = ["agentId", "date", "networkTopologyId", "roundId", "target", "targetPort", "type", "icmpPing", "isIcmpBlocked", "tcpConnect", "systemMetrics", "systemMetricDetails", "vpnScore", "gatewayScore", "proxyScore", "connectionScore", "agentScore", "batteryMetrics", "cellularProfile", "platform"]
model_config = ConfigDict(
populate_by_name=True,
@ -136,6 +142,12 @@ class LocalNetworkTopologyResultBase(BaseModel):
# 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 battery_metrics
if self.battery_metrics:
_dict['batteryMetrics'] = self.battery_metrics.to_dict()
# override the default output from pydantic by calling `to_dict()` of cellular_profile
if self.cellular_profile:
_dict['cellularProfile'] = self.cellular_profile.to_dict()
return _dict
@classmethod
@ -164,7 +176,10 @@ class LocalNetworkTopologyResultBase(BaseModel):
"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
"agentScore": EndpointProbeAgentScore.from_dict(obj["agentScore"]) if obj.get("agentScore") is not None else None,
"batteryMetrics": BatteryMetrics.from_dict(obj["batteryMetrics"]) if obj.get("batteryMetrics") is not None else None,
"cellularProfile": CellularProfile.from_dict(obj["cellularProfile"]) if obj.get("cellularProfile") is not None else None,
"platform": obj.get("platform")
})
return _obj

View File

@ -18,11 +18,14 @@ 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.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
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.platform import Platform
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
from thousandeyes_sdk.endpoint_test_results.models.target_profile import TargetProfile
from thousandeyes_sdk.endpoint_test_results.models.test_probe_mode_response import TestProbeModeResponse
@ -46,6 +49,9 @@ class NetworkDynamicEndpointTestResult(BaseModel):
original_target_profile: Optional[TargetProfile] = Field(default=None, alias="originalTargetProfile")
user_profile: Optional[UserProfile] = Field(default=None, alias="userProfile")
vpn_profile: Optional[VpnProfile] = Field(default=None, alias="vpnProfile")
battery_metrics: Optional[BatteryMetrics] = Field(default=None, alias="batteryMetrics")
cellular_profile: Optional[CellularProfile] = Field(default=None, alias="cellularProfile")
platform: Optional[Platform] = None
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.")
@ -60,7 +66,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", "userProfile", "vpnProfile", "avgLatency", "errorDetails", "jitter", "score", "ztaMetrics", "isIcmpBlocked", "loss", "maxLatency", "minLatency", "application", "protocol", "tcpProbeMode", "udpProbeMode", "webex"]
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "batteryMetrics", "cellularProfile", "platform", "avgLatency", "errorDetails", "jitter", "score", "ztaMetrics", "isIcmpBlocked", "loss", "maxLatency", "minLatency", "application", "protocol", "tcpProbeMode", "udpProbeMode", "webex"]
model_config = ConfigDict(
populate_by_name=True,
@ -139,6 +145,12 @@ 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 battery_metrics
if self.battery_metrics:
_dict['batteryMetrics'] = self.battery_metrics.to_dict()
# override the default output from pydantic by calling `to_dict()` of cellular_profile
if self.cellular_profile:
_dict['cellularProfile'] = self.cellular_profile.to_dict()
# override the default output from pydantic by calling `to_dict()` of score
if self.score:
_dict['score'] = self.score.to_dict()
@ -174,6 +186,9 @@ class NetworkDynamicEndpointTestResult(BaseModel):
"originalTargetProfile": TargetProfile.from_dict(obj["originalTargetProfile"]) if obj.get("originalTargetProfile") is not None else None,
"userProfile": UserProfile.from_dict(obj["userProfile"]) if obj.get("userProfile") is not None else None,
"vpnProfile": VpnProfile.from_dict(obj["vpnProfile"]) if obj.get("vpnProfile") is not None else None,
"batteryMetrics": BatteryMetrics.from_dict(obj["batteryMetrics"]) if obj.get("batteryMetrics") is not None else None,
"cellularProfile": CellularProfile.from_dict(obj["cellularProfile"]) if obj.get("cellularProfile") is not None else None,
"platform": obj.get("platform"),
"avgLatency": obj.get("avgLatency"),
"errorDetails": obj.get("errorDetails"),
"jitter": obj.get("jitter"),

View File

@ -18,9 +18,12 @@ 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.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
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.platform import Platform
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
from thousandeyes_sdk.endpoint_test_results.models.target_profile import TargetProfile
from thousandeyes_sdk.endpoint_test_results.models.user_profile import UserProfile
@ -42,6 +45,9 @@ class NetworkEndpointTestResult(BaseModel):
original_target_profile: Optional[TargetProfile] = Field(default=None, alias="originalTargetProfile")
user_profile: Optional[UserProfile] = Field(default=None, alias="userProfile")
vpn_profile: Optional[VpnProfile] = Field(default=None, alias="vpnProfile")
battery_metrics: Optional[BatteryMetrics] = Field(default=None, alias="batteryMetrics")
cellular_profile: Optional[CellularProfile] = Field(default=None, alias="cellularProfile")
platform: Optional[Platform] = None
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.")
@ -51,7 +57,7 @@ class NetworkEndpointTestResult(BaseModel):
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", "userProfile", "vpnProfile", "avgLatency", "errorDetails", "jitter", "score", "ztaMetrics", "isIcmpBlocked", "loss", "maxLatency", "minLatency"]
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "batteryMetrics", "cellularProfile", "platform", "avgLatency", "errorDetails", "jitter", "score", "ztaMetrics", "isIcmpBlocked", "loss", "maxLatency", "minLatency"]
model_config = ConfigDict(
populate_by_name=True,
@ -130,6 +136,12 @@ 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 battery_metrics
if self.battery_metrics:
_dict['batteryMetrics'] = self.battery_metrics.to_dict()
# override the default output from pydantic by calling `to_dict()` of cellular_profile
if self.cellular_profile:
_dict['cellularProfile'] = self.cellular_profile.to_dict()
# override the default output from pydantic by calling `to_dict()` of score
if self.score:
_dict['score'] = self.score.to_dict()
@ -162,6 +174,9 @@ class NetworkEndpointTestResult(BaseModel):
"originalTargetProfile": TargetProfile.from_dict(obj["originalTargetProfile"]) if obj.get("originalTargetProfile") is not None else None,
"userProfile": UserProfile.from_dict(obj["userProfile"]) if obj.get("userProfile") is not None else None,
"vpnProfile": VpnProfile.from_dict(obj["vpnProfile"]) if obj.get("vpnProfile") is not None else None,
"batteryMetrics": BatteryMetrics.from_dict(obj["batteryMetrics"]) if obj.get("batteryMetrics") is not None else None,
"cellularProfile": CellularProfile.from_dict(obj["cellularProfile"]) if obj.get("cellularProfile") is not None else None,
"platform": obj.get("platform"),
"avgLatency": obj.get("avgLatency"),
"errorDetails": obj.get("errorDetails"),
"jitter": obj.get("jitter"),

View File

@ -19,7 +19,10 @@ 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.asn_details import AsnDetails
from thousandeyes_sdk.endpoint_test_results.models.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
from thousandeyes_sdk.endpoint_test_results.models.platform import Platform
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
from thousandeyes_sdk.endpoint_test_results.models.target_profile import TargetProfile
from thousandeyes_sdk.endpoint_test_results.models.user_profile import UserProfile
@ -41,11 +44,14 @@ class PathVisBaseEndpointTestResult(BaseModel):
original_target_profile: Optional[TargetProfile] = Field(default=None, alias="originalTargetProfile")
user_profile: Optional[UserProfile] = Field(default=None, alias="userProfile")
vpn_profile: Optional[VpnProfile] = Field(default=None, alias="vpnProfile")
battery_metrics: Optional[BatteryMetrics] = Field(default=None, alias="batteryMetrics")
cellular_profile: Optional[CellularProfile] = Field(default=None, alias="cellularProfile")
platform: Optional[Platform] = None
asn_details: Optional[AsnDetails] = Field(default=None, alias="asnDetails")
server: Optional[StrictStr] = Field(default=None, description="Target server, including port.")
source_ip: Optional[StrictStr] = Field(default=None, description="IP address of source endpoint agent.", alias="sourceIp")
source_prefix: Optional[StrictStr] = Field(default=None, description="IP prefix of source endpoint agent.", alias="sourcePrefix")
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "asnDetails", "server", "sourceIp", "sourcePrefix"]
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "batteryMetrics", "cellularProfile", "platform", "asnDetails", "server", "sourceIp", "sourcePrefix"]
model_config = ConfigDict(
populate_by_name=True,
@ -116,6 +122,12 @@ class PathVisBaseEndpointTestResult(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 battery_metrics
if self.battery_metrics:
_dict['batteryMetrics'] = self.battery_metrics.to_dict()
# override the default output from pydantic by calling `to_dict()` of cellular_profile
if self.cellular_profile:
_dict['cellularProfile'] = self.cellular_profile.to_dict()
# override the default output from pydantic by calling `to_dict()` of asn_details
if self.asn_details:
_dict['asnDetails'] = self.asn_details.to_dict()
@ -141,6 +153,9 @@ class PathVisBaseEndpointTestResult(BaseModel):
"originalTargetProfile": TargetProfile.from_dict(obj["originalTargetProfile"]) if obj.get("originalTargetProfile") is not None else None,
"userProfile": UserProfile.from_dict(obj["userProfile"]) if obj.get("userProfile") is not None else None,
"vpnProfile": VpnProfile.from_dict(obj["vpnProfile"]) if obj.get("vpnProfile") is not None else None,
"batteryMetrics": BatteryMetrics.from_dict(obj["batteryMetrics"]) if obj.get("batteryMetrics") is not None else None,
"cellularProfile": CellularProfile.from_dict(obj["cellularProfile"]) if obj.get("cellularProfile") is not None else None,
"platform": obj.get("platform"),
"asnDetails": AsnDetails.from_dict(obj["asnDetails"]) if obj.get("asnDetails") is not None else None,
"server": obj.get("server"),
"sourceIp": obj.get("sourceIp"),

View File

@ -19,10 +19,13 @@ 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.asn_details import AsnDetails
from thousandeyes_sdk.endpoint_test_results.models.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
from thousandeyes_sdk.endpoint_test_results.models.dynamic_endpoint_test_webex import DynamicEndpointTestWebex
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_vis_route import EndpointPathVisRoute
from thousandeyes_sdk.endpoint_test_results.models.endpoint_test_result_protocol import EndpointTestResultProtocol
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
from thousandeyes_sdk.endpoint_test_results.models.platform import Platform
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
from thousandeyes_sdk.endpoint_test_results.models.target_profile import TargetProfile
from thousandeyes_sdk.endpoint_test_results.models.test_probe_mode_response import TestProbeModeResponse
@ -46,6 +49,9 @@ class PathVisDetailDynamicEndpointTestResult(BaseModel):
original_target_profile: Optional[TargetProfile] = Field(default=None, alias="originalTargetProfile")
user_profile: Optional[UserProfile] = Field(default=None, alias="userProfile")
vpn_profile: Optional[VpnProfile] = Field(default=None, alias="vpnProfile")
battery_metrics: Optional[BatteryMetrics] = Field(default=None, alias="batteryMetrics")
cellular_profile: Optional[CellularProfile] = Field(default=None, alias="cellularProfile")
platform: Optional[Platform] = None
asn_details: Optional[AsnDetails] = Field(default=None, alias="asnDetails")
server: Optional[StrictStr] = Field(default=None, description="Target server, including port.")
source_ip: Optional[StrictStr] = Field(default=None, description="IP address of source endpoint agent.", alias="sourceIp")
@ -57,7 +63,7 @@ class PathVisDetailDynamicEndpointTestResult(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", "userProfile", "vpnProfile", "asnDetails", "server", "sourceIp", "sourcePrefix", "pathTraces", "vpnPathTraces", "application", "protocol", "tcpProbeMode", "udpProbeMode", "webex"]
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "batteryMetrics", "cellularProfile", "platform", "asnDetails", "server", "sourceIp", "sourcePrefix", "pathTraces", "vpnPathTraces", "application", "protocol", "tcpProbeMode", "udpProbeMode", "webex"]
model_config = ConfigDict(
populate_by_name=True,
@ -128,6 +134,12 @@ class PathVisDetailDynamicEndpointTestResult(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 battery_metrics
if self.battery_metrics:
_dict['batteryMetrics'] = self.battery_metrics.to_dict()
# override the default output from pydantic by calling `to_dict()` of cellular_profile
if self.cellular_profile:
_dict['cellularProfile'] = self.cellular_profile.to_dict()
# override the default output from pydantic by calling `to_dict()` of asn_details
if self.asn_details:
_dict['asnDetails'] = self.asn_details.to_dict()
@ -170,6 +182,9 @@ class PathVisDetailDynamicEndpointTestResult(BaseModel):
"originalTargetProfile": TargetProfile.from_dict(obj["originalTargetProfile"]) if obj.get("originalTargetProfile") is not None else None,
"userProfile": UserProfile.from_dict(obj["userProfile"]) if obj.get("userProfile") is not None else None,
"vpnProfile": VpnProfile.from_dict(obj["vpnProfile"]) if obj.get("vpnProfile") is not None else None,
"batteryMetrics": BatteryMetrics.from_dict(obj["batteryMetrics"]) if obj.get("batteryMetrics") is not None else None,
"cellularProfile": CellularProfile.from_dict(obj["cellularProfile"]) if obj.get("cellularProfile") is not None else None,
"platform": obj.get("platform"),
"asnDetails": AsnDetails.from_dict(obj["asnDetails"]) if obj.get("asnDetails") is not None else None,
"server": obj.get("server"),
"sourceIp": obj.get("sourceIp"),

View File

@ -19,8 +19,11 @@ 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.asn_details import AsnDetails
from thousandeyes_sdk.endpoint_test_results.models.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_vis_route import EndpointPathVisRoute
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
from thousandeyes_sdk.endpoint_test_results.models.platform import Platform
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
from thousandeyes_sdk.endpoint_test_results.models.target_profile import TargetProfile
from thousandeyes_sdk.endpoint_test_results.models.user_profile import UserProfile
@ -42,13 +45,16 @@ class PathVisDetailEndpointTestResult(BaseModel):
original_target_profile: Optional[TargetProfile] = Field(default=None, alias="originalTargetProfile")
user_profile: Optional[UserProfile] = Field(default=None, alias="userProfile")
vpn_profile: Optional[VpnProfile] = Field(default=None, alias="vpnProfile")
battery_metrics: Optional[BatteryMetrics] = Field(default=None, alias="batteryMetrics")
cellular_profile: Optional[CellularProfile] = Field(default=None, alias="cellularProfile")
platform: Optional[Platform] = None
asn_details: Optional[AsnDetails] = Field(default=None, alias="asnDetails")
server: Optional[StrictStr] = Field(default=None, description="Target server, including port.")
source_ip: Optional[StrictStr] = Field(default=None, description="IP address of source endpoint agent.", alias="sourceIp")
source_prefix: Optional[StrictStr] = Field(default=None, description="IP prefix of source endpoint agent.", alias="sourcePrefix")
path_traces: Optional[List[EndpointPathVisRoute]] = Field(default=None, description="Shows iterations of path trace, with each iteration specified by a pathId.", alias="pathTraces")
vpn_path_traces: Optional[List[EndpointPathVisRoute]] = Field(default=None, description="Shows iterations of the VPN path trace, with each iteration specified by a pathId.", alias="vpnPathTraces")
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "asnDetails", "server", "sourceIp", "sourcePrefix", "pathTraces", "vpnPathTraces"]
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "batteryMetrics", "cellularProfile", "platform", "asnDetails", "server", "sourceIp", "sourcePrefix", "pathTraces", "vpnPathTraces"]
model_config = ConfigDict(
populate_by_name=True,
@ -119,6 +125,12 @@ class PathVisDetailEndpointTestResult(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 battery_metrics
if self.battery_metrics:
_dict['batteryMetrics'] = self.battery_metrics.to_dict()
# override the default output from pydantic by calling `to_dict()` of cellular_profile
if self.cellular_profile:
_dict['cellularProfile'] = self.cellular_profile.to_dict()
# override the default output from pydantic by calling `to_dict()` of asn_details
if self.asn_details:
_dict['asnDetails'] = self.asn_details.to_dict()
@ -158,6 +170,9 @@ class PathVisDetailEndpointTestResult(BaseModel):
"originalTargetProfile": TargetProfile.from_dict(obj["originalTargetProfile"]) if obj.get("originalTargetProfile") is not None else None,
"userProfile": UserProfile.from_dict(obj["userProfile"]) if obj.get("userProfile") is not None else None,
"vpnProfile": VpnProfile.from_dict(obj["vpnProfile"]) if obj.get("vpnProfile") is not None else None,
"batteryMetrics": BatteryMetrics.from_dict(obj["batteryMetrics"]) if obj.get("batteryMetrics") is not None else None,
"cellularProfile": CellularProfile.from_dict(obj["cellularProfile"]) if obj.get("cellularProfile") is not None else None,
"platform": obj.get("platform"),
"asnDetails": AsnDetails.from_dict(obj["asnDetails"]) if obj.get("asnDetails") is not None else None,
"server": obj.get("server"),
"sourceIp": obj.get("sourceIp"),

View File

@ -19,10 +19,13 @@ 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.asn_details import AsnDetails
from thousandeyes_sdk.endpoint_test_results.models.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
from thousandeyes_sdk.endpoint_test_results.models.dynamic_endpoint_test_webex import DynamicEndpointTestWebex
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_trace import EndpointPathTrace
from thousandeyes_sdk.endpoint_test_results.models.endpoint_test_result_protocol import EndpointTestResultProtocol
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
from thousandeyes_sdk.endpoint_test_results.models.platform import Platform
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
from thousandeyes_sdk.endpoint_test_results.models.target_profile import TargetProfile
from thousandeyes_sdk.endpoint_test_results.models.test_probe_mode_response import TestProbeModeResponse
@ -46,6 +49,9 @@ class PathVisDynamicEndpointTestResult(BaseModel):
original_target_profile: Optional[TargetProfile] = Field(default=None, alias="originalTargetProfile")
user_profile: Optional[UserProfile] = Field(default=None, alias="userProfile")
vpn_profile: Optional[VpnProfile] = Field(default=None, alias="vpnProfile")
battery_metrics: Optional[BatteryMetrics] = Field(default=None, alias="batteryMetrics")
cellular_profile: Optional[CellularProfile] = Field(default=None, alias="cellularProfile")
platform: Optional[Platform] = None
asn_details: Optional[AsnDetails] = Field(default=None, alias="asnDetails")
server: Optional[StrictStr] = Field(default=None, description="Target server, including port.")
source_ip: Optional[StrictStr] = Field(default=None, description="IP address of source endpoint agent.", alias="sourceIp")
@ -57,7 +63,7 @@ class PathVisDynamicEndpointTestResult(BaseModel):
webex: Optional[DynamicEndpointTestWebex] = None
location: Optional[StrictStr] = Field(default=None, description="Geographic location of the path visualization.")
path_traces: Optional[List[EndpointPathTrace]] = Field(default=None, description="Shows an iteration of path trace, with each iteration specified by a pathId.", alias="pathTraces")
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "asnDetails", "server", "sourceIp", "sourcePrefix", "application", "protocol", "tcpProbeMode", "udpProbeMode", "webex", "location", "pathTraces"]
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "batteryMetrics", "cellularProfile", "platform", "asnDetails", "server", "sourceIp", "sourcePrefix", "application", "protocol", "tcpProbeMode", "udpProbeMode", "webex", "location", "pathTraces"]
model_config = ConfigDict(
populate_by_name=True,
@ -130,6 +136,12 @@ class PathVisDynamicEndpointTestResult(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 battery_metrics
if self.battery_metrics:
_dict['batteryMetrics'] = self.battery_metrics.to_dict()
# override the default output from pydantic by calling `to_dict()` of cellular_profile
if self.cellular_profile:
_dict['cellularProfile'] = self.cellular_profile.to_dict()
# override the default output from pydantic by calling `to_dict()` of asn_details
if self.asn_details:
_dict['asnDetails'] = self.asn_details.to_dict()
@ -165,6 +177,9 @@ class PathVisDynamicEndpointTestResult(BaseModel):
"originalTargetProfile": TargetProfile.from_dict(obj["originalTargetProfile"]) if obj.get("originalTargetProfile") is not None else None,
"userProfile": UserProfile.from_dict(obj["userProfile"]) if obj.get("userProfile") is not None else None,
"vpnProfile": VpnProfile.from_dict(obj["vpnProfile"]) if obj.get("vpnProfile") is not None else None,
"batteryMetrics": BatteryMetrics.from_dict(obj["batteryMetrics"]) if obj.get("batteryMetrics") is not None else None,
"cellularProfile": CellularProfile.from_dict(obj["cellularProfile"]) if obj.get("cellularProfile") is not None else None,
"platform": obj.get("platform"),
"asnDetails": AsnDetails.from_dict(obj["asnDetails"]) if obj.get("asnDetails") is not None else None,
"server": obj.get("server"),
"sourceIp": obj.get("sourceIp"),

View File

@ -19,8 +19,11 @@ 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.asn_details import AsnDetails
from thousandeyes_sdk.endpoint_test_results.models.battery_metrics import BatteryMetrics
from thousandeyes_sdk.endpoint_test_results.models.cellular_profile import CellularProfile
from thousandeyes_sdk.endpoint_test_results.models.endpoint_path_trace import EndpointPathTrace
from thousandeyes_sdk.endpoint_test_results.models.network_profile import NetworkProfile
from thousandeyes_sdk.endpoint_test_results.models.platform import Platform
from thousandeyes_sdk.endpoint_test_results.models.system_metrics import SystemMetrics
from thousandeyes_sdk.endpoint_test_results.models.target_profile import TargetProfile
from thousandeyes_sdk.endpoint_test_results.models.user_profile import UserProfile
@ -42,13 +45,16 @@ class PathVisEndpointTestResult(BaseModel):
original_target_profile: Optional[TargetProfile] = Field(default=None, alias="originalTargetProfile")
user_profile: Optional[UserProfile] = Field(default=None, alias="userProfile")
vpn_profile: Optional[VpnProfile] = Field(default=None, alias="vpnProfile")
battery_metrics: Optional[BatteryMetrics] = Field(default=None, alias="batteryMetrics")
cellular_profile: Optional[CellularProfile] = Field(default=None, alias="cellularProfile")
platform: Optional[Platform] = None
asn_details: Optional[AsnDetails] = Field(default=None, alias="asnDetails")
server: Optional[StrictStr] = Field(default=None, description="Target server, including port.")
source_ip: Optional[StrictStr] = Field(default=None, description="IP address of source endpoint agent.", alias="sourceIp")
source_prefix: Optional[StrictStr] = Field(default=None, description="IP prefix of source endpoint agent.", alias="sourcePrefix")
location: Optional[StrictStr] = Field(default=None, description="Geographic location of the path visualization.")
path_traces: Optional[List[EndpointPathTrace]] = Field(default=None, description="Shows an iteration of path trace, with each iteration specified by a pathId.", alias="pathTraces")
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "asnDetails", "server", "sourceIp", "sourcePrefix", "location", "pathTraces"]
__properties: ClassVar[List[str]] = ["aid", "testId", "agentId", "roundId", "serverIp", "networkProfile", "systemMetrics", "originalTargetProfile", "userProfile", "vpnProfile", "batteryMetrics", "cellularProfile", "platform", "asnDetails", "server", "sourceIp", "sourcePrefix", "location", "pathTraces"]
model_config = ConfigDict(
populate_by_name=True,
@ -121,6 +127,12 @@ class PathVisEndpointTestResult(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 battery_metrics
if self.battery_metrics:
_dict['batteryMetrics'] = self.battery_metrics.to_dict()
# override the default output from pydantic by calling `to_dict()` of cellular_profile
if self.cellular_profile:
_dict['cellularProfile'] = self.cellular_profile.to_dict()
# override the default output from pydantic by calling `to_dict()` of asn_details
if self.asn_details:
_dict['asnDetails'] = self.asn_details.to_dict()
@ -153,6 +165,9 @@ class PathVisEndpointTestResult(BaseModel):
"originalTargetProfile": TargetProfile.from_dict(obj["originalTargetProfile"]) if obj.get("originalTargetProfile") is not None else None,
"userProfile": UserProfile.from_dict(obj["userProfile"]) if obj.get("userProfile") is not None else None,
"vpnProfile": VpnProfile.from_dict(obj["vpnProfile"]) if obj.get("vpnProfile") is not None else None,
"batteryMetrics": BatteryMetrics.from_dict(obj["batteryMetrics"]) if obj.get("batteryMetrics") is not None else None,
"cellularProfile": CellularProfile.from_dict(obj["cellularProfile"]) if obj.get("cellularProfile") is not None else None,
"platform": obj.get("platform"),
"asnDetails": AsnDetails.from_dict(obj["asnDetails"]) if obj.get("asnDetails") is not None else None,
"server": obj.get("server"),
"sourceIp": obj.get("sourceIp"),

View File

@ -131,11 +131,28 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"responseCode" : 200,
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@ -241,11 +258,28 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"responseCode" : 200,
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@ -419,11 +453,28 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"responseCode" : 200,
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@ -529,11 +580,28 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"responseCode" : 200,
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@ -707,11 +775,28 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"responseCode" : 200,
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@ -817,11 +902,28 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"responseCode" : 200,
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"score" : {
"applicationScore" : 100.0,
"quality" : "great"

View File

@ -100,9 +100,26 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"score" : 100.0,
"quality" : "great"
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"type" : "vpn",
"targetPort" : 80,
"platform" : "mac",
"target" : "10.0.2.2",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@ -243,9 +260,26 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"score" : 100.0,
"quality" : "great"
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"type" : "vpn",
"targetPort" : 80,
"platform" : "mac",
"target" : "10.0.2.2",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@ -450,6 +484,10 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"location" : "Slovenia",
"longitude" : 14.5144444
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"icmpTraceroutes" : [ {
"destination" : "13.32.22.232",
"hops" : [ {
@ -497,7 +535,20 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
} ],
"type" : "vpn",
"targetPort" : 80,
"platform" : "mac",
"target" : "10.0.2.2",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@ -712,6 +763,10 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
"location" : "Slovenia",
"longitude" : 14.5144444
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"icmpTraceroutes" : [ {
"destination" : "13.32.22.232",
"hops" : [ {
@ -759,7 +814,20 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase):
} ],
"type" : "vpn",
"targetPort" : 80,
"platform" : "mac",
"target" : "10.0.2.2",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,

View File

@ -132,10 +132,7 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"remotePort" : 80,
"remoteIpAddress" : "120.98.134.7"
},
"udpProbeMode" : "unknown",
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"isIcmpBlocked" : true,
"avgLatency" : 167.04,
"minLatency" : 167.0,
"vpnProfile" : {
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
@ -144,41 +141,33 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"tcpProbeMode" : "auto",
"platform" : "mac",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"loss" : 0.0,
"protocol" : "tcp",
"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
},
"jitter" : 0.076808,
"application" : "webex",
"serverIp" : "185.199.108.153",
"networkProfile" : {
"previousInterface" : {
"publicIpAddress" : "84.255.241.1",
@ -238,6 +227,35 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
} ],
"roundId" : 1384309800,
"udpProbeMode" : "unknown",
"isIcmpBlocked" : true,
"avgLatency" : 167.04,
"tcpProbeMode" : "auto",
"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
},
"jitter" : 0.076808,
"application" : "webex",
"serverIp" : "185.199.108.153",
"testId" : "584739201",
"webex" : {
"remoteSipSessionId" : "22581707460321454",
@ -246,7 +264,6 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"correlationId" : "22581707460321454"
},
"aid" : "1234",
"roundId" : 1384309800,
"errorDetails" : "Error"
}, {
"originalTargetProfile" : {
@ -254,10 +271,7 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"remotePort" : 80,
"remoteIpAddress" : "120.98.134.7"
},
"udpProbeMode" : "unknown",
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
"isIcmpBlocked" : true,
"avgLatency" : 167.04,
"minLatency" : 167.0,
"vpnProfile" : {
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
@ -266,41 +280,33 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"tcpProbeMode" : "auto",
"platform" : "mac",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"loss" : 0.0,
"protocol" : "tcp",
"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
},
"jitter" : 0.076808,
"application" : "webex",
"serverIp" : "185.199.108.153",
"networkProfile" : {
"previousInterface" : {
"publicIpAddress" : "84.255.241.1",
@ -360,6 +366,35 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
} ],
"roundId" : 1384309800,
"udpProbeMode" : "unknown",
"isIcmpBlocked" : true,
"avgLatency" : 167.04,
"tcpProbeMode" : "auto",
"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
},
"jitter" : 0.076808,
"application" : "webex",
"serverIp" : "185.199.108.153",
"testId" : "584739201",
"webex" : {
"remoteSipSessionId" : "22581707460321454",
@ -368,7 +403,6 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"correlationId" : "22581707460321454"
},
"aid" : "1234",
"roundId" : 1384309800,
"errorDetails" : "Error"
} ],
"startDate" : "2022-07-17T22:00:54Z"
@ -462,12 +496,29 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"tcpProbeMode" : "auto",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"protocol" : "tcp",
"systemMetrics" : {
"cpuUtilization" : {
@ -657,12 +708,29 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"tcpProbeMode" : "auto",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"protocol" : "tcp",
"systemMetrics" : {
"cpuUtilization" : {
@ -936,12 +1004,29 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"tcpProbeMode" : "auto",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"protocol" : "tcp",
"systemMetrics" : {
"cpuUtilization" : {
@ -1059,12 +1144,29 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase):
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"tcpProbeMode" : "auto",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"protocol" : "tcp",
"systemMetrics" : {
"cpuUtilization" : {

View File

@ -143,10 +143,27 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@ -255,10 +272,27 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@ -424,10 +458,27 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@ -536,10 +587,27 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@ -723,11 +791,28 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@ -908,11 +993,28 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@ -1177,11 +1279,28 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@ -1290,11 +1409,28 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase):
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"batteryMetrics" : {
"batteryLevel" : "medium",
"batteryLevelNormalizedPercent" : 0.3
},
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
"platform" : "mac",
"cellularProfile" : {
"rssi" : -10,
"advertisedNetworkSubtype" : "LTE/HSPA",
"carrierName" : "T-Mobile",
"rsrq" : -30,
"rsrp" : -30,
"advertisedNetworkGen" : "2g, 3g, 4g, 5g",
"rscp" : -30,
"networkGen" : "2g, 3g, 4g, 5g",
"networkSubtype" : "LTE/HSPA",
"sinr" : 20
},
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -15,7 +15,7 @@ For more information about ThousandEyes for OpenTelemetry, see the [product docu
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 7.0.75
- API version: 7.0.76
- Generator version: 7.6.0
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator

View File

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

View File

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

View File

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

View File

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