mirror of
https://github.com/thousandeyes/thousandeyes-sdk-python.git
synced 2025-12-06 07:55:31 +00:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e4068d6142 | ||
|
|
ebbdbcbac7 | ||
|
|
d44cc6b392 |
@ -14,6 +14,7 @@ docs/AuditUserEvents.md
|
||||
docs/BaseRole.md
|
||||
docs/CloudEnterpriseAgentType.md
|
||||
docs/ClusterMember.md
|
||||
docs/Coordinates.md
|
||||
docs/CreatedAccountGroup.md
|
||||
docs/CreatedUser.md
|
||||
docs/EnterpriseAgent.md
|
||||
@ -78,6 +79,7 @@ src/thousandeyes_sdk/administrative/models/audit_user_events.py
|
||||
src/thousandeyes_sdk/administrative/models/base_role.py
|
||||
src/thousandeyes_sdk/administrative/models/cloud_enterprise_agent_type.py
|
||||
src/thousandeyes_sdk/administrative/models/cluster_member.py
|
||||
src/thousandeyes_sdk/administrative/models/coordinates.py
|
||||
src/thousandeyes_sdk/administrative/models/created_account_group.py
|
||||
src/thousandeyes_sdk/administrative/models/created_user.py
|
||||
src/thousandeyes_sdk/administrative/models/enterprise_agent.py
|
||||
|
||||
@ -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.63
|
||||
- API version: 7.0.68
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
@ -138,6 +138,7 @@ Class | Method | HTTP request | Description
|
||||
- [BaseRole](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/BaseRole.md)
|
||||
- [CloudEnterpriseAgentType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/CloudEnterpriseAgentType.md)
|
||||
- [ClusterMember](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/ClusterMember.md)
|
||||
- [Coordinates](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/Coordinates.md)
|
||||
- [CreatedAccountGroup](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/CreatedAccountGroup.md)
|
||||
- [CreatedUser](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/CreatedUser.md)
|
||||
- [EnterpriseAgent](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/EnterpriseAgent.md)
|
||||
|
||||
@ -12,6 +12,7 @@ Name | Type | Description | Notes
|
||||
**agent_name** | **str** | Name of the agent. | [optional]
|
||||
**location** | **str** | Location of the agent. | [optional] [readonly]
|
||||
**country_id** | **str** | 2-digit ISO country code | [optional] [readonly]
|
||||
**coordinates** | [**Coordinates**](Coordinates.md) | | [optional]
|
||||
**enabled** | **bool** | Flag indicating if the agent is enabled. | [optional]
|
||||
**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly]
|
||||
**verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly]
|
||||
|
||||
31
thousandeyes-sdk-administrative/docs/Coordinates.md
Normal file
31
thousandeyes-sdk-administrative/docs/Coordinates.md
Normal file
@ -0,0 +1,31 @@
|
||||
# Coordinates
|
||||
|
||||
Geographic coordinates for agent location.
|
||||
|
||||
## Properties
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**latitude** | **float** | The latitude of the agent location in decimal degrees | [optional] [readonly]
|
||||
**longitude** | **float** | The longitude of the agent location in decimal degrees | [optional] [readonly]
|
||||
|
||||
## Example
|
||||
|
||||
```python
|
||||
from thousandeyes_sdk.administrative.models.coordinates import Coordinates
|
||||
|
||||
# TODO update the JSON string below
|
||||
json = "{}"
|
||||
# create an instance of Coordinates from a JSON string
|
||||
coordinates_instance = Coordinates.from_json(json)
|
||||
# print the JSON string representation of the object
|
||||
print(Coordinates.to_json())
|
||||
|
||||
# convert the object into a dict
|
||||
coordinates_dict = coordinates_instance.to_dict()
|
||||
# create an instance of Coordinates from a dict
|
||||
coordinates_from_dict = Coordinates.from_dict(coordinates_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)
|
||||
|
||||
|
||||
@ -13,6 +13,7 @@ Name | Type | Description | Notes
|
||||
**agent_name** | **str** | Name of the agent. | [optional]
|
||||
**location** | **str** | Location of the agent. | [optional] [readonly]
|
||||
**country_id** | **str** | 2-digit ISO country code | [optional] [readonly]
|
||||
**coordinates** | [**Coordinates**](Coordinates.md) | | [optional]
|
||||
**enabled** | **bool** | Flag indicating if the agent is enabled. | [optional]
|
||||
**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly]
|
||||
**verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly]
|
||||
|
||||
@ -12,6 +12,7 @@ Name | Type | Description | Notes
|
||||
**agent_name** | **str** | Name of the agent. | [optional]
|
||||
**location** | **str** | Location of the agent. | [optional] [readonly]
|
||||
**country_id** | **str** | 2-digit ISO country code | [optional] [readonly]
|
||||
**coordinates** | [**Coordinates**](Coordinates.md) | | [optional]
|
||||
**enabled** | **bool** | Flag indicating if the agent is enabled. | [optional]
|
||||
**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly]
|
||||
**verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly]
|
||||
|
||||
@ -34,6 +34,7 @@ from thousandeyes_sdk.administrative.models.audit_user_events import AuditUserEv
|
||||
from thousandeyes_sdk.administrative.models.base_role import BaseRole
|
||||
from thousandeyes_sdk.administrative.models.cloud_enterprise_agent_type import CloudEnterpriseAgentType
|
||||
from thousandeyes_sdk.administrative.models.cluster_member import ClusterMember
|
||||
from thousandeyes_sdk.administrative.models.coordinates import Coordinates
|
||||
from thousandeyes_sdk.administrative.models.created_account_group import CreatedAccountGroup
|
||||
from thousandeyes_sdk.administrative.models.created_user import CreatedUser
|
||||
from thousandeyes_sdk.administrative.models.enterprise_agent import EnterpriseAgent
|
||||
|
||||
@ -25,6 +25,7 @@ from thousandeyes_sdk.administrative.models.audit_user_events import AuditUserEv
|
||||
from thousandeyes_sdk.administrative.models.base_role import BaseRole
|
||||
from thousandeyes_sdk.administrative.models.cloud_enterprise_agent_type import CloudEnterpriseAgentType
|
||||
from thousandeyes_sdk.administrative.models.cluster_member import ClusterMember
|
||||
from thousandeyes_sdk.administrative.models.coordinates import Coordinates
|
||||
from thousandeyes_sdk.administrative.models.created_account_group import CreatedAccountGroup
|
||||
from thousandeyes_sdk.administrative.models.created_user import CreatedUser
|
||||
from thousandeyes_sdk.administrative.models.enterprise_agent import EnterpriseAgent
|
||||
|
||||
@ -19,6 +19,7 @@ import json
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.administrative.models.cloud_enterprise_agent_type import CloudEnterpriseAgentType
|
||||
from thousandeyes_sdk.administrative.models.coordinates import Coordinates
|
||||
from typing import Optional, Set
|
||||
from typing_extensions import Self
|
||||
|
||||
@ -33,11 +34,12 @@ class AgentResponse(BaseModel):
|
||||
agent_name: Optional[StrictStr] = Field(default=None, description="Name of the agent.", alias="agentName")
|
||||
location: Optional[StrictStr] = Field(default=None, description="Location of the agent.")
|
||||
country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId")
|
||||
coordinates: Optional[Coordinates] = None
|
||||
enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.")
|
||||
prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.")
|
||||
verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates")
|
||||
agent_type: CloudEnterpriseAgentType = Field(alias="agentType")
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "enabled", "prefix", "verifySslCertificates", "agentType"]
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "agentType"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -95,6 +97,9 @@ class AgentResponse(BaseModel):
|
||||
exclude=excluded_fields,
|
||||
exclude_none=True,
|
||||
)
|
||||
# override the default output from pydantic by calling `to_dict()` of coordinates
|
||||
if self.coordinates:
|
||||
_dict['coordinates'] = self.coordinates.to_dict()
|
||||
return _dict
|
||||
|
||||
@classmethod
|
||||
@ -114,6 +119,7 @@ class AgentResponse(BaseModel):
|
||||
"agentName": obj.get("agentName"),
|
||||
"location": obj.get("location"),
|
||||
"countryId": obj.get("countryId"),
|
||||
"coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
|
||||
"enabled": obj.get("enabled"),
|
||||
"prefix": obj.get("prefix"),
|
||||
"verifySslCertificates": obj.get("verifySslCertificates"),
|
||||
|
||||
@ -0,0 +1,93 @@
|
||||
# coding: utf-8
|
||||
|
||||
"""
|
||||
Administrative API
|
||||
|
||||
Manage users, accounts, and account groups in the ThousandEyes platform using the Administrative API. This API provides the following operations to manage your organization: * `/account-groups`: Account groups are used to divide an organization into different sections. These operations can be used to create, retrieve, update and delete account groups. * `/users`: Create, retrieve, update and delete users within an organization. * `/roles`: Create, retrieve and update roles for the current user. * `/permissions`: Retrieve all assignable permissions. Used in the context of modifying roles. * `/audit-user-events`: Retrieve all activity log events. For more information about the administrative models, see [Account Management](https://docs.thousandeyes.com/product-documentation/user-management).
|
||||
|
||||
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
||||
|
||||
Do not edit the class manually.
|
||||
""" # noqa: E501
|
||||
|
||||
|
||||
from __future__ import annotations
|
||||
import pprint
|
||||
import re # noqa: F401
|
||||
import json
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt
|
||||
from typing import Any, ClassVar, Dict, List, Optional, Union
|
||||
from typing import Optional, Set
|
||||
from typing_extensions import Self
|
||||
|
||||
class Coordinates(BaseModel):
|
||||
"""
|
||||
Geographic coordinates for agent location.
|
||||
""" # noqa: E501
|
||||
latitude: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The latitude of the agent location in decimal degrees")
|
||||
longitude: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The longitude of the agent location in decimal degrees")
|
||||
__properties: ClassVar[List[str]] = ["latitude", "longitude"]
|
||||
|
||||
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 Coordinates 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.
|
||||
* OpenAPI `readOnly` fields are excluded.
|
||||
* OpenAPI `readOnly` fields are excluded.
|
||||
"""
|
||||
excluded_fields: Set[str] = set([
|
||||
"latitude",
|
||||
"longitude",
|
||||
])
|
||||
|
||||
_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 Coordinates from a dict"""
|
||||
if obj is None:
|
||||
return None
|
||||
|
||||
if not isinstance(obj, dict):
|
||||
return cls.model_validate(obj)
|
||||
|
||||
_obj = cls.model_validate({
|
||||
"latitude": obj.get("latitude"),
|
||||
"longitude": obj.get("longitude")
|
||||
})
|
||||
return _obj
|
||||
|
||||
|
||||
@ -22,6 +22,7 @@ from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.administrative.models.account_group import AccountGroup
|
||||
from thousandeyes_sdk.administrative.models.cloud_enterprise_agent_type import CloudEnterpriseAgentType
|
||||
from thousandeyes_sdk.administrative.models.cluster_member import ClusterMember
|
||||
from thousandeyes_sdk.administrative.models.coordinates import Coordinates
|
||||
from thousandeyes_sdk.administrative.models.enterprise_agent_ipv6_policy import EnterpriseAgentIpv6Policy
|
||||
from thousandeyes_sdk.administrative.models.enterprise_agent_state import EnterpriseAgentState
|
||||
from thousandeyes_sdk.administrative.models.error_detail import ErrorDetail
|
||||
@ -42,6 +43,7 @@ class EnterpriseAgent(BaseModel):
|
||||
agent_name: Optional[StrictStr] = Field(default=None, description="Name of the agent.", alias="agentName")
|
||||
location: Optional[StrictStr] = Field(default=None, description="Location of the agent.")
|
||||
country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId")
|
||||
coordinates: Optional[Coordinates] = None
|
||||
enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.")
|
||||
prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.")
|
||||
verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates")
|
||||
@ -60,7 +62,7 @@ class EnterpriseAgent(BaseModel):
|
||||
target_for_tests: Optional[StrictStr] = Field(default=None, description="Test target IP address.", alias="targetForTests")
|
||||
local_resolution_prefixes: Optional[List[StrictStr]] = Field(default=None, description="To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only).", alias="localResolutionPrefixes")
|
||||
interface_ip_mapping: Optional[List[InterfaceIpMapping]] = Field(default=None, alias="interfaceIpMapping")
|
||||
__properties: ClassVar[List[str]] = ["agentType", "ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping"]
|
||||
__properties: ClassVar[List[str]] = ["agentType", "ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -134,6 +136,9 @@ class EnterpriseAgent(BaseModel):
|
||||
exclude=excluded_fields,
|
||||
exclude_none=True,
|
||||
)
|
||||
# override the default output from pydantic by calling `to_dict()` of coordinates
|
||||
if self.coordinates:
|
||||
_dict['coordinates'] = self.coordinates.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of each item in tests (list)
|
||||
_items = []
|
||||
if self.tests:
|
||||
@ -189,6 +194,7 @@ class EnterpriseAgent(BaseModel):
|
||||
"agentName": obj.get("agentName"),
|
||||
"location": obj.get("location"),
|
||||
"countryId": obj.get("countryId"),
|
||||
"coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
|
||||
"enabled": obj.get("enabled"),
|
||||
"prefix": obj.get("prefix"),
|
||||
"verifySslCertificates": obj.get("verifySslCertificates"),
|
||||
|
||||
@ -18,6 +18,7 @@ import json
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.administrative.models.coordinates import Coordinates
|
||||
from typing import Optional, Set
|
||||
from typing_extensions import Self
|
||||
|
||||
@ -32,10 +33,11 @@ class SimpleAgent(BaseModel):
|
||||
agent_name: Optional[StrictStr] = Field(default=None, description="Name of the agent.", alias="agentName")
|
||||
location: Optional[StrictStr] = Field(default=None, description="Location of the agent.")
|
||||
country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId")
|
||||
coordinates: Optional[Coordinates] = None
|
||||
enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.")
|
||||
prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.")
|
||||
verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates")
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "enabled", "prefix", "verifySslCertificates"]
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -93,6 +95,9 @@ class SimpleAgent(BaseModel):
|
||||
exclude=excluded_fields,
|
||||
exclude_none=True,
|
||||
)
|
||||
# override the default output from pydantic by calling `to_dict()` of coordinates
|
||||
if self.coordinates:
|
||||
_dict['coordinates'] = self.coordinates.to_dict()
|
||||
return _dict
|
||||
|
||||
@classmethod
|
||||
@ -112,6 +117,7 @@ class SimpleAgent(BaseModel):
|
||||
"agentName": obj.get("agentName"),
|
||||
"location": obj.get("location"),
|
||||
"countryId": obj.get("countryId"),
|
||||
"coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
|
||||
"enabled": obj.get("enabled"),
|
||||
"prefix": obj.get("prefix"),
|
||||
"verifySslCertificates": obj.get("verifySslCertificates")
|
||||
|
||||
@ -176,6 +176,10 @@ class TestAccountGroupsApi(unittest.TestCase):
|
||||
"keepBrowserCache" : true,
|
||||
"agentState" : "online",
|
||||
"localResolutionPrefixes" : [ "10.2.3.3/24", "10.2.3.3/24" ],
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"utilization" : 25,
|
||||
"testIds" : [ 281474976710706 ],
|
||||
@ -317,6 +321,10 @@ class TestAccountGroupsApi(unittest.TestCase):
|
||||
"keepBrowserCache" : true,
|
||||
"agentState" : "online",
|
||||
"localResolutionPrefixes" : [ "10.2.3.3/24", "10.2.3.3/24" ],
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"utilization" : 25,
|
||||
"testIds" : [ 281474976710706 ],
|
||||
@ -571,6 +579,10 @@ class TestAccountGroupsApi(unittest.TestCase):
|
||||
"keepBrowserCache" : true,
|
||||
"agentState" : "online",
|
||||
"localResolutionPrefixes" : [ "10.2.3.3/24", "10.2.3.3/24" ],
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"utilization" : 25,
|
||||
"testIds" : [ 281474976710706 ],
|
||||
@ -712,6 +724,10 @@ class TestAccountGroupsApi(unittest.TestCase):
|
||||
"keepBrowserCache" : true,
|
||||
"agentState" : "online",
|
||||
"localResolutionPrefixes" : [ "10.2.3.3/24", "10.2.3.3/24" ],
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"utilization" : 25,
|
||||
"testIds" : [ 281474976710706 ],
|
||||
|
||||
@ -27,6 +27,7 @@ docs/CloudEnterpriseAgent.md
|
||||
docs/CloudEnterpriseAgentType.md
|
||||
docs/CloudEnterpriseAgents.md
|
||||
docs/ClusterMember.md
|
||||
docs/Coordinates.md
|
||||
docs/EnterpriseAgent.md
|
||||
docs/EnterpriseAgentClusterApi.md
|
||||
docs/EnterpriseAgentClusterDetail.md
|
||||
@ -91,6 +92,7 @@ src/thousandeyes_sdk/agents/models/cloud_enterprise_agent.py
|
||||
src/thousandeyes_sdk/agents/models/cloud_enterprise_agent_type.py
|
||||
src/thousandeyes_sdk/agents/models/cloud_enterprise_agents.py
|
||||
src/thousandeyes_sdk/agents/models/cluster_member.py
|
||||
src/thousandeyes_sdk/agents/models/coordinates.py
|
||||
src/thousandeyes_sdk/agents/models/enterprise_agent.py
|
||||
src/thousandeyes_sdk/agents/models/enterprise_agent_cluster_detail.py
|
||||
src/thousandeyes_sdk/agents/models/enterprise_agent_data.py
|
||||
|
||||
@ -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.63
|
||||
- API version: 7.0.68
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
@ -135,6 +135,7 @@ Class | Method | HTTP request | Description
|
||||
- [CloudEnterpriseAgentType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/CloudEnterpriseAgentType.md)
|
||||
- [CloudEnterpriseAgents](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/CloudEnterpriseAgents.md)
|
||||
- [ClusterMember](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/ClusterMember.md)
|
||||
- [Coordinates](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/Coordinates.md)
|
||||
- [EnterpriseAgent](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/EnterpriseAgent.md)
|
||||
- [EnterpriseAgentClusterDetail](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/EnterpriseAgentClusterDetail.md)
|
||||
- [EnterpriseAgentData](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/EnterpriseAgentData.md)
|
||||
|
||||
@ -12,6 +12,7 @@ Name | Type | Description | Notes
|
||||
**agent_name** | **str** | Name of the agent. | [optional]
|
||||
**location** | **str** | Location of the agent. | [optional] [readonly]
|
||||
**country_id** | **str** | 2-digit ISO country code | [optional] [readonly]
|
||||
**coordinates** | [**Coordinates**](Coordinates.md) | | [optional]
|
||||
**enabled** | **bool** | Flag indicating if the agent is enabled. | [optional]
|
||||
**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly]
|
||||
**verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly]
|
||||
|
||||
@ -12,6 +12,7 @@ Name | Type | Description | Notes
|
||||
**agent_name** | **str** | Name of the agent. | [optional]
|
||||
**location** | **str** | Location of the agent. | [optional] [readonly]
|
||||
**country_id** | **str** | 2-digit ISO country code | [optional] [readonly]
|
||||
**coordinates** | [**Coordinates**](Coordinates.md) | | [optional]
|
||||
**enabled** | **bool** | Flag indicating if the agent is enabled. | [optional]
|
||||
**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly]
|
||||
**verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly]
|
||||
|
||||
@ -12,6 +12,7 @@ Name | Type | Description | Notes
|
||||
**agent_name** | **str** | Name of the agent. | [optional]
|
||||
**location** | **str** | Location of the agent. | [optional] [readonly]
|
||||
**country_id** | **str** | 2-digit ISO country code | [optional] [readonly]
|
||||
**coordinates** | [**Coordinates**](Coordinates.md) | | [optional]
|
||||
**enabled** | **bool** | Flag indicating if the agent is enabled. | [optional]
|
||||
**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly]
|
||||
**verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly]
|
||||
|
||||
@ -13,6 +13,7 @@ Name | Type | Description | Notes
|
||||
**agent_name** | **str** | Name of the agent. | [optional]
|
||||
**location** | **str** | Location of the agent. | [optional] [readonly]
|
||||
**country_id** | **str** | 2-digit ISO country code | [optional] [readonly]
|
||||
**coordinates** | [**Coordinates**](Coordinates.md) | | [optional]
|
||||
**enabled** | **bool** | Flag indicating if the agent is enabled. | [optional]
|
||||
**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly]
|
||||
**verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly]
|
||||
|
||||
31
thousandeyes-sdk-agents/docs/Coordinates.md
Normal file
31
thousandeyes-sdk-agents/docs/Coordinates.md
Normal file
@ -0,0 +1,31 @@
|
||||
# Coordinates
|
||||
|
||||
Geographic coordinates for agent location.
|
||||
|
||||
## Properties
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**latitude** | **float** | The latitude of the agent location in decimal degrees | [optional] [readonly]
|
||||
**longitude** | **float** | The longitude of the agent location in decimal degrees | [optional] [readonly]
|
||||
|
||||
## Example
|
||||
|
||||
```python
|
||||
from thousandeyes_sdk.agents.models.coordinates import Coordinates
|
||||
|
||||
# TODO update the JSON string below
|
||||
json = "{}"
|
||||
# create an instance of Coordinates from a JSON string
|
||||
coordinates_instance = Coordinates.from_json(json)
|
||||
# print the JSON string representation of the object
|
||||
print(Coordinates.to_json())
|
||||
|
||||
# convert the object into a dict
|
||||
coordinates_dict = coordinates_instance.to_dict()
|
||||
# create an instance of Coordinates from a dict
|
||||
coordinates_from_dict = Coordinates.from_dict(coordinates_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)
|
||||
|
||||
|
||||
@ -13,6 +13,7 @@ Name | Type | Description | Notes
|
||||
**agent_name** | **str** | Name of the agent. | [optional]
|
||||
**location** | **str** | Location of the agent. | [optional] [readonly]
|
||||
**country_id** | **str** | 2-digit ISO country code | [optional] [readonly]
|
||||
**coordinates** | [**Coordinates**](Coordinates.md) | | [optional]
|
||||
**enabled** | **bool** | Flag indicating if the agent is enabled. | [optional]
|
||||
**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly]
|
||||
**verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly]
|
||||
|
||||
@ -12,6 +12,7 @@ Name | Type | Description | Notes
|
||||
**agent_name** | **str** | Name of the agent. | [optional]
|
||||
**location** | **str** | Location of the agent. | [optional] [readonly]
|
||||
**country_id** | **str** | 2-digit ISO country code | [optional] [readonly]
|
||||
**coordinates** | [**Coordinates**](Coordinates.md) | | [optional]
|
||||
**enabled** | **bool** | Flag indicating if the agent is enabled. | [optional]
|
||||
**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly]
|
||||
**verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly]
|
||||
|
||||
@ -12,6 +12,7 @@ Name | Type | Description | Notes
|
||||
**agent_name** | **str** | Name of the agent. | [optional]
|
||||
**location** | **str** | Location of the agent. | [optional] [readonly]
|
||||
**country_id** | **str** | 2-digit ISO country code | [optional] [readonly]
|
||||
**coordinates** | [**Coordinates**](Coordinates.md) | | [optional]
|
||||
**enabled** | **bool** | Flag indicating if the agent is enabled. | [optional]
|
||||
**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly]
|
||||
**verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly]
|
||||
|
||||
@ -12,6 +12,7 @@ Name | Type | Description | Notes
|
||||
**agent_name** | **str** | Name of the agent. | [optional]
|
||||
**location** | **str** | Location of the agent. | [optional] [readonly]
|
||||
**country_id** | **str** | 2-digit ISO country code | [optional] [readonly]
|
||||
**coordinates** | [**Coordinates**](Coordinates.md) | | [optional]
|
||||
**enabled** | **bool** | Flag indicating if the agent is enabled. | [optional]
|
||||
**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly]
|
||||
**verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly]
|
||||
|
||||
@ -12,6 +12,7 @@ Name | Type | Description | Notes
|
||||
**agent_name** | **str** | Name of the agent. | [optional]
|
||||
**location** | **str** | Location of the agent. | [optional] [readonly]
|
||||
**country_id** | **str** | 2-digit ISO country code | [optional] [readonly]
|
||||
**coordinates** | [**Coordinates**](Coordinates.md) | | [optional]
|
||||
**enabled** | **bool** | Flag indicating if the agent is enabled. | [optional]
|
||||
**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly]
|
||||
**verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly]
|
||||
|
||||
@ -45,6 +45,7 @@ from thousandeyes_sdk.agents.models.cloud_enterprise_agent import CloudEnterpris
|
||||
from thousandeyes_sdk.agents.models.cloud_enterprise_agent_type import CloudEnterpriseAgentType
|
||||
from thousandeyes_sdk.agents.models.cloud_enterprise_agents import CloudEnterpriseAgents
|
||||
from thousandeyes_sdk.agents.models.cluster_member import ClusterMember
|
||||
from thousandeyes_sdk.agents.models.coordinates import Coordinates
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent import EnterpriseAgent
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent_cluster_detail import EnterpriseAgentClusterDetail
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent_data import EnterpriseAgentData
|
||||
|
||||
@ -36,6 +36,7 @@ from thousandeyes_sdk.agents.models.cloud_enterprise_agent import CloudEnterpris
|
||||
from thousandeyes_sdk.agents.models.cloud_enterprise_agent_type import CloudEnterpriseAgentType
|
||||
from thousandeyes_sdk.agents.models.cloud_enterprise_agents import CloudEnterpriseAgents
|
||||
from thousandeyes_sdk.agents.models.cluster_member import ClusterMember
|
||||
from thousandeyes_sdk.agents.models.coordinates import Coordinates
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent import EnterpriseAgent
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent_cluster_detail import EnterpriseAgentClusterDetail
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent_data import EnterpriseAgentData
|
||||
|
||||
@ -19,6 +19,7 @@ import json
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.agents.models.cloud_enterprise_agent_type import CloudEnterpriseAgentType
|
||||
from thousandeyes_sdk.agents.models.coordinates import Coordinates
|
||||
from typing import Optional, Set
|
||||
from typing_extensions import Self
|
||||
|
||||
@ -33,11 +34,12 @@ class AgentResponse(BaseModel):
|
||||
agent_name: Optional[StrictStr] = Field(default=None, description="Name of the agent.", alias="agentName")
|
||||
location: Optional[StrictStr] = Field(default=None, description="Location of the agent.")
|
||||
country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId")
|
||||
coordinates: Optional[Coordinates] = None
|
||||
enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.")
|
||||
prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.")
|
||||
verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates")
|
||||
agent_type: CloudEnterpriseAgentType = Field(alias="agentType")
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "enabled", "prefix", "verifySslCertificates", "agentType"]
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "agentType"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -95,6 +97,9 @@ class AgentResponse(BaseModel):
|
||||
exclude=excluded_fields,
|
||||
exclude_none=True,
|
||||
)
|
||||
# override the default output from pydantic by calling `to_dict()` of coordinates
|
||||
if self.coordinates:
|
||||
_dict['coordinates'] = self.coordinates.to_dict()
|
||||
return _dict
|
||||
|
||||
@classmethod
|
||||
@ -114,6 +119,7 @@ class AgentResponse(BaseModel):
|
||||
"agentName": obj.get("agentName"),
|
||||
"location": obj.get("location"),
|
||||
"countryId": obj.get("countryId"),
|
||||
"coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
|
||||
"enabled": obj.get("enabled"),
|
||||
"prefix": obj.get("prefix"),
|
||||
"verifySslCertificates": obj.get("verifySslCertificates"),
|
||||
|
||||
@ -20,6 +20,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from typing_extensions import Annotated
|
||||
from thousandeyes_sdk.agents.models.agent_label import AgentLabel
|
||||
from thousandeyes_sdk.agents.models.coordinates import Coordinates
|
||||
from thousandeyes_sdk.agents.models.self_links import SelfLinks
|
||||
from thousandeyes_sdk.agents.models.simple_test import SimpleTest
|
||||
from typing import Optional, Set
|
||||
@ -36,6 +37,7 @@ class CloudAgentDetail(BaseModel):
|
||||
agent_name: Optional[StrictStr] = Field(default=None, description="Name of the agent.", alias="agentName")
|
||||
location: Optional[StrictStr] = Field(default=None, description="Location of the agent.")
|
||||
country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId")
|
||||
coordinates: Optional[Coordinates] = None
|
||||
enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.")
|
||||
prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.")
|
||||
verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates")
|
||||
@ -43,7 +45,7 @@ class CloudAgentDetail(BaseModel):
|
||||
tests: Optional[List[SimpleTest]] = Field(default=None, description="List of tests. See `/tests` for more information.")
|
||||
labels: Optional[List[AgentLabel]] = Field(default=None, description="List of labels - see `/labels` for more information.")
|
||||
links: Optional[SelfLinks] = Field(default=None, alias="_links")
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "enabled", "prefix", "verifySslCertificates", "agentType", "tests", "labels", "_links"]
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "agentType", "tests", "labels", "_links"]
|
||||
|
||||
@field_validator('agent_type')
|
||||
def agent_type_validate_regular_expression(cls, value):
|
||||
@ -110,6 +112,9 @@ class CloudAgentDetail(BaseModel):
|
||||
exclude=excluded_fields,
|
||||
exclude_none=True,
|
||||
)
|
||||
# override the default output from pydantic by calling `to_dict()` of coordinates
|
||||
if self.coordinates:
|
||||
_dict['coordinates'] = self.coordinates.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of each item in tests (list)
|
||||
_items = []
|
||||
if self.tests:
|
||||
@ -146,6 +151,7 @@ class CloudAgentDetail(BaseModel):
|
||||
"agentName": obj.get("agentName"),
|
||||
"location": obj.get("location"),
|
||||
"countryId": obj.get("countryId"),
|
||||
"coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
|
||||
"enabled": obj.get("enabled"),
|
||||
"prefix": obj.get("prefix"),
|
||||
"verifySslCertificates": obj.get("verifySslCertificates"),
|
||||
|
||||
@ -0,0 +1,93 @@
|
||||
# coding: utf-8
|
||||
|
||||
"""
|
||||
Agents API
|
||||
|
||||
## Overview Manage Cloud and Enterprise Agents available to your account in ThousandEyes.
|
||||
|
||||
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
||||
|
||||
Do not edit the class manually.
|
||||
""" # noqa: E501
|
||||
|
||||
|
||||
from __future__ import annotations
|
||||
import pprint
|
||||
import re # noqa: F401
|
||||
import json
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt
|
||||
from typing import Any, ClassVar, Dict, List, Optional, Union
|
||||
from typing import Optional, Set
|
||||
from typing_extensions import Self
|
||||
|
||||
class Coordinates(BaseModel):
|
||||
"""
|
||||
Geographic coordinates for agent location.
|
||||
""" # noqa: E501
|
||||
latitude: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The latitude of the agent location in decimal degrees")
|
||||
longitude: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The longitude of the agent location in decimal degrees")
|
||||
__properties: ClassVar[List[str]] = ["latitude", "longitude"]
|
||||
|
||||
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 Coordinates 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.
|
||||
* OpenAPI `readOnly` fields are excluded.
|
||||
* OpenAPI `readOnly` fields are excluded.
|
||||
"""
|
||||
excluded_fields: Set[str] = set([
|
||||
"latitude",
|
||||
"longitude",
|
||||
])
|
||||
|
||||
_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 Coordinates from a dict"""
|
||||
if obj is None:
|
||||
return None
|
||||
|
||||
if not isinstance(obj, dict):
|
||||
return cls.model_validate(obj)
|
||||
|
||||
_obj = cls.model_validate({
|
||||
"latitude": obj.get("latitude"),
|
||||
"longitude": obj.get("longitude")
|
||||
})
|
||||
return _obj
|
||||
|
||||
|
||||
@ -22,6 +22,7 @@ from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.agents.models.account_group import AccountGroup
|
||||
from thousandeyes_sdk.agents.models.cloud_enterprise_agent_type import CloudEnterpriseAgentType
|
||||
from thousandeyes_sdk.agents.models.cluster_member import ClusterMember
|
||||
from thousandeyes_sdk.agents.models.coordinates import Coordinates
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent_ipv6_policy import EnterpriseAgentIpv6Policy
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent_state import EnterpriseAgentState
|
||||
from thousandeyes_sdk.agents.models.error_detail import ErrorDetail
|
||||
@ -42,6 +43,7 @@ class EnterpriseAgent(BaseModel):
|
||||
agent_name: Optional[StrictStr] = Field(default=None, description="Name of the agent.", alias="agentName")
|
||||
location: Optional[StrictStr] = Field(default=None, description="Location of the agent.")
|
||||
country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId")
|
||||
coordinates: Optional[Coordinates] = None
|
||||
enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.")
|
||||
prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.")
|
||||
verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates")
|
||||
@ -60,7 +62,7 @@ class EnterpriseAgent(BaseModel):
|
||||
target_for_tests: Optional[StrictStr] = Field(default=None, description="Test target IP address.", alias="targetForTests")
|
||||
local_resolution_prefixes: Optional[List[StrictStr]] = Field(default=None, description="To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only).", alias="localResolutionPrefixes")
|
||||
interface_ip_mapping: Optional[List[InterfaceIpMapping]] = Field(default=None, alias="interfaceIpMapping")
|
||||
__properties: ClassVar[List[str]] = ["agentType", "ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping"]
|
||||
__properties: ClassVar[List[str]] = ["agentType", "ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -134,6 +136,9 @@ class EnterpriseAgent(BaseModel):
|
||||
exclude=excluded_fields,
|
||||
exclude_none=True,
|
||||
)
|
||||
# override the default output from pydantic by calling `to_dict()` of coordinates
|
||||
if self.coordinates:
|
||||
_dict['coordinates'] = self.coordinates.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of each item in tests (list)
|
||||
_items = []
|
||||
if self.tests:
|
||||
@ -189,6 +194,7 @@ class EnterpriseAgent(BaseModel):
|
||||
"agentName": obj.get("agentName"),
|
||||
"location": obj.get("location"),
|
||||
"countryId": obj.get("countryId"),
|
||||
"coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
|
||||
"enabled": obj.get("enabled"),
|
||||
"prefix": obj.get("prefix"),
|
||||
"verifySslCertificates": obj.get("verifySslCertificates"),
|
||||
|
||||
@ -23,6 +23,7 @@ from typing_extensions import Annotated
|
||||
from thousandeyes_sdk.agents.models.account_group import AccountGroup
|
||||
from thousandeyes_sdk.agents.models.agent_label import AgentLabel
|
||||
from thousandeyes_sdk.agents.models.cluster_member import ClusterMember
|
||||
from thousandeyes_sdk.agents.models.coordinates import Coordinates
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent_ipv6_policy import EnterpriseAgentIpv6Policy
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent_state import EnterpriseAgentState
|
||||
from thousandeyes_sdk.agents.models.error_detail import ErrorDetail
|
||||
@ -44,6 +45,7 @@ class EnterpriseAgentClusterDetail(BaseModel):
|
||||
agent_name: Optional[StrictStr] = Field(default=None, description="Name of the agent.", alias="agentName")
|
||||
location: Optional[StrictStr] = Field(default=None, description="Location of the agent.")
|
||||
country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId")
|
||||
coordinates: Optional[Coordinates] = None
|
||||
enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.")
|
||||
prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.")
|
||||
verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates")
|
||||
@ -66,7 +68,7 @@ class EnterpriseAgentClusterDetail(BaseModel):
|
||||
labels: Optional[List[AgentLabel]] = Field(default=None, description="List of labels. See `/labels` for more information.")
|
||||
agent_type: Annotated[str, Field(strict=True)] = Field(description="Enterprise Cluster agent type.", alias="agentType")
|
||||
links: Optional[SelfLinks] = Field(default=None, alias="_links")
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping", "notificationRules", "labels", "agentType", "_links"]
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping", "notificationRules", "labels", "agentType", "_links"]
|
||||
|
||||
@field_validator('agent_type')
|
||||
def agent_type_validate_regular_expression(cls, value):
|
||||
@ -149,6 +151,9 @@ class EnterpriseAgentClusterDetail(BaseModel):
|
||||
exclude=excluded_fields,
|
||||
exclude_none=True,
|
||||
)
|
||||
# override the default output from pydantic by calling `to_dict()` of coordinates
|
||||
if self.coordinates:
|
||||
_dict['coordinates'] = self.coordinates.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of each item in tests (list)
|
||||
_items = []
|
||||
if self.tests:
|
||||
@ -220,6 +225,7 @@ class EnterpriseAgentClusterDetail(BaseModel):
|
||||
"agentName": obj.get("agentName"),
|
||||
"location": obj.get("location"),
|
||||
"countryId": obj.get("countryId"),
|
||||
"coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
|
||||
"enabled": obj.get("enabled"),
|
||||
"prefix": obj.get("prefix"),
|
||||
"verifySslCertificates": obj.get("verifySslCertificates"),
|
||||
|
||||
@ -23,6 +23,7 @@ from typing_extensions import Annotated
|
||||
from thousandeyes_sdk.agents.models.account_group import AccountGroup
|
||||
from thousandeyes_sdk.agents.models.agent_label import AgentLabel
|
||||
from thousandeyes_sdk.agents.models.cluster_member import ClusterMember
|
||||
from thousandeyes_sdk.agents.models.coordinates import Coordinates
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent_ipv6_policy import EnterpriseAgentIpv6Policy
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent_state import EnterpriseAgentState
|
||||
from thousandeyes_sdk.agents.models.error_detail import ErrorDetail
|
||||
@ -44,6 +45,7 @@ class EnterpriseAgentDetail(BaseModel):
|
||||
agent_name: Optional[StrictStr] = Field(default=None, description="Name of the agent.", alias="agentName")
|
||||
location: Optional[StrictStr] = Field(default=None, description="Location of the agent.")
|
||||
country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId")
|
||||
coordinates: Optional[Coordinates] = None
|
||||
enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.")
|
||||
prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.")
|
||||
verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates")
|
||||
@ -66,7 +68,7 @@ class EnterpriseAgentDetail(BaseModel):
|
||||
labels: Optional[List[AgentLabel]] = Field(default=None, description="List of labels. See `/labels` for more information.")
|
||||
agent_type: Annotated[str, Field(strict=True)] = Field(description="Enterprise agent type.", alias="agentType")
|
||||
links: Optional[SelfLinks] = Field(default=None, alias="_links")
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping", "notificationRules", "labels", "agentType", "_links"]
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping", "notificationRules", "labels", "agentType", "_links"]
|
||||
|
||||
@field_validator('agent_type')
|
||||
def agent_type_validate_regular_expression(cls, value):
|
||||
@ -149,6 +151,9 @@ class EnterpriseAgentDetail(BaseModel):
|
||||
exclude=excluded_fields,
|
||||
exclude_none=True,
|
||||
)
|
||||
# override the default output from pydantic by calling `to_dict()` of coordinates
|
||||
if self.coordinates:
|
||||
_dict['coordinates'] = self.coordinates.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of each item in tests (list)
|
||||
_items = []
|
||||
if self.tests:
|
||||
@ -220,6 +225,7 @@ class EnterpriseAgentDetail(BaseModel):
|
||||
"agentName": obj.get("agentName"),
|
||||
"location": obj.get("location"),
|
||||
"countryId": obj.get("countryId"),
|
||||
"coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
|
||||
"enabled": obj.get("enabled"),
|
||||
"prefix": obj.get("prefix"),
|
||||
"verifySslCertificates": obj.get("verifySslCertificates"),
|
||||
|
||||
@ -18,6 +18,7 @@ import json
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.agents.models.coordinates import Coordinates
|
||||
from typing import Optional, Set
|
||||
from typing_extensions import Self
|
||||
|
||||
@ -32,10 +33,11 @@ class SimpleAgent(BaseModel):
|
||||
agent_name: Optional[StrictStr] = Field(default=None, description="Name of the agent.", alias="agentName")
|
||||
location: Optional[StrictStr] = Field(default=None, description="Location of the agent.")
|
||||
country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId")
|
||||
coordinates: Optional[Coordinates] = None
|
||||
enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.")
|
||||
prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.")
|
||||
verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates")
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "enabled", "prefix", "verifySslCertificates"]
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -93,6 +95,9 @@ class SimpleAgent(BaseModel):
|
||||
exclude=excluded_fields,
|
||||
exclude_none=True,
|
||||
)
|
||||
# override the default output from pydantic by calling `to_dict()` of coordinates
|
||||
if self.coordinates:
|
||||
_dict['coordinates'] = self.coordinates.to_dict()
|
||||
return _dict
|
||||
|
||||
@classmethod
|
||||
@ -112,6 +117,7 @@ class SimpleAgent(BaseModel):
|
||||
"agentName": obj.get("agentName"),
|
||||
"location": obj.get("location"),
|
||||
"countryId": obj.get("countryId"),
|
||||
"coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
|
||||
"enabled": obj.get("enabled"),
|
||||
"prefix": obj.get("prefix"),
|
||||
"verifySslCertificates": obj.get("verifySslCertificates")
|
||||
|
||||
@ -21,6 +21,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, Strict
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.agents.models.account_group import AccountGroup
|
||||
from thousandeyes_sdk.agents.models.cluster_member import ClusterMember
|
||||
from thousandeyes_sdk.agents.models.coordinates import Coordinates
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent_ipv6_policy import EnterpriseAgentIpv6Policy
|
||||
from thousandeyes_sdk.agents.models.enterprise_agent_state import EnterpriseAgentState
|
||||
from thousandeyes_sdk.agents.models.error_detail import ErrorDetail
|
||||
@ -40,6 +41,7 @@ class SimpleEnterpriseAgent(BaseModel):
|
||||
agent_name: Optional[StrictStr] = Field(default=None, description="Name of the agent.", alias="agentName")
|
||||
location: Optional[StrictStr] = Field(default=None, description="Location of the agent.")
|
||||
country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId")
|
||||
coordinates: Optional[Coordinates] = None
|
||||
enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.")
|
||||
prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.")
|
||||
verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates")
|
||||
@ -58,7 +60,7 @@ class SimpleEnterpriseAgent(BaseModel):
|
||||
target_for_tests: Optional[StrictStr] = Field(default=None, description="Test target IP address.", alias="targetForTests")
|
||||
local_resolution_prefixes: Optional[List[StrictStr]] = Field(default=None, description="To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only).", alias="localResolutionPrefixes")
|
||||
interface_ip_mapping: Optional[List[InterfaceIpMapping]] = Field(default=None, alias="interfaceIpMapping")
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping"]
|
||||
__properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -132,6 +134,9 @@ class SimpleEnterpriseAgent(BaseModel):
|
||||
exclude=excluded_fields,
|
||||
exclude_none=True,
|
||||
)
|
||||
# override the default output from pydantic by calling `to_dict()` of coordinates
|
||||
if self.coordinates:
|
||||
_dict['coordinates'] = self.coordinates.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of each item in tests (list)
|
||||
_items = []
|
||||
if self.tests:
|
||||
@ -186,6 +191,7 @@ class SimpleEnterpriseAgent(BaseModel):
|
||||
"agentName": obj.get("agentName"),
|
||||
"location": obj.get("location"),
|
||||
"countryId": obj.get("countryId"),
|
||||
"coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None,
|
||||
"enabled": obj.get("enabled"),
|
||||
"prefix": obj.get("prefix"),
|
||||
"verifySslCertificates": obj.get("verifySslCertificates"),
|
||||
|
||||
@ -99,6 +99,10 @@ class TestCloudAndEnterpriseAgentNotificationRulesApi(unittest.TestCase):
|
||||
"agentType" : "enterprise-cluster",
|
||||
"publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ],
|
||||
"prefix" : "99.128.0.0/11",
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ],
|
||||
"location" : "San Francisco Bay Area",
|
||||
@ -111,6 +115,10 @@ class TestCloudAndEnterpriseAgentNotificationRulesApi(unittest.TestCase):
|
||||
"agentType" : "enterprise-cluster",
|
||||
"publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ],
|
||||
"prefix" : "99.128.0.0/11",
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ],
|
||||
"location" : "San Francisco Bay Area",
|
||||
|
||||
@ -52,6 +52,10 @@ class TestCloudAndEnterpriseAgentsApi(unittest.TestCase):
|
||||
}
|
||||
},
|
||||
"prefix" : "99.128.0.0/11",
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"countryId" : "US",
|
||||
"enabled" : true,
|
||||
@ -158,6 +162,10 @@ class TestCloudAndEnterpriseAgentsApi(unittest.TestCase):
|
||||
"agentType" : "enterprise-cluster",
|
||||
"publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ],
|
||||
"prefix" : "99.128.0.0/11",
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ],
|
||||
"location" : "San Francisco Bay Area",
|
||||
@ -170,6 +178,10 @@ class TestCloudAndEnterpriseAgentsApi(unittest.TestCase):
|
||||
"agentType" : "enterprise-cluster",
|
||||
"publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ],
|
||||
"prefix" : "99.128.0.0/11",
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ],
|
||||
"location" : "San Francisco Bay Area",
|
||||
@ -219,6 +231,10 @@ class TestCloudAndEnterpriseAgentsApi(unittest.TestCase):
|
||||
}
|
||||
},
|
||||
"prefix" : "99.128.0.0/11",
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"countryId" : "US",
|
||||
"enabled" : true,
|
||||
|
||||
@ -56,6 +56,10 @@ class TestEnterpriseAgentClusterApi(unittest.TestCase):
|
||||
}
|
||||
},
|
||||
"prefix" : "99.128.0.0/11",
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"countryId" : "US",
|
||||
"enabled" : true,
|
||||
@ -170,6 +174,10 @@ class TestEnterpriseAgentClusterApi(unittest.TestCase):
|
||||
"agentType" : "enterprise-cluster",
|
||||
"publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ],
|
||||
"prefix" : "99.128.0.0/11",
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ],
|
||||
"location" : "San Francisco Bay Area",
|
||||
@ -182,6 +190,10 @@ class TestEnterpriseAgentClusterApi(unittest.TestCase):
|
||||
"agentType" : "enterprise-cluster",
|
||||
"publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ],
|
||||
"prefix" : "99.128.0.0/11",
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ],
|
||||
"location" : "San Francisco Bay Area",
|
||||
|
||||
@ -56,6 +56,10 @@ class TestTestsAssignmentOnAgentsApi(unittest.TestCase):
|
||||
}
|
||||
},
|
||||
"prefix" : "99.128.0.0/11",
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"countryId" : "US",
|
||||
"enabled" : true,
|
||||
@ -168,6 +172,10 @@ class TestTestsAssignmentOnAgentsApi(unittest.TestCase):
|
||||
}
|
||||
},
|
||||
"prefix" : "99.128.0.0/11",
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"countryId" : "US",
|
||||
"enabled" : true,
|
||||
@ -280,6 +288,10 @@ class TestTestsAssignmentOnAgentsApi(unittest.TestCase):
|
||||
}
|
||||
},
|
||||
"prefix" : "99.128.0.0/11",
|
||||
"coordinates" : {
|
||||
"latitude" : 37.77493,
|
||||
"longitude" : -122.41942
|
||||
},
|
||||
"agentName" : "thousandeyes-stg-va-254",
|
||||
"countryId" : "US",
|
||||
"enabled" : true,
|
||||
|
||||
@ -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.63
|
||||
- API version: 7.0.68
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ Name | Type | Description | Notes
|
||||
**minimum_sources_pct** | **int** | The minimum percentage of all assigned agents or monitors that must meet the specified criteria to trigger the alert. | [optional]
|
||||
**rounds_violating_mode** | [**AlertRoundsViolationMode**](AlertRoundsViolationMode.md) | | [optional]
|
||||
**rounds_violating_out_of** | **int** | Specifies the divisor (y value) in the “X of Y times” condition. |
|
||||
**rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. |
|
||||
**rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. | [optional]
|
||||
**include_covered_prefixes** | **bool** | Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules. | [optional]
|
||||
**sensitivity_level** | [**SensitivityLevel**](SensitivityLevel.md) | | [optional]
|
||||
**severity** | [**Severity**](Severity.md) | | [optional]
|
||||
|
||||
@ -18,7 +18,7 @@ Name | Type | Description | Notes
|
||||
**minimum_sources_pct** | **int** | The minimum percentage of all assigned agents or monitors that must meet the specified criteria to trigger the alert. | [optional]
|
||||
**rounds_violating_mode** | [**AlertRoundsViolationMode**](AlertRoundsViolationMode.md) | | [optional]
|
||||
**rounds_violating_out_of** | **int** | Specifies the divisor (y value) in the “X of Y times” condition. |
|
||||
**rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. |
|
||||
**rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. | [optional]
|
||||
**include_covered_prefixes** | **bool** | Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules. | [optional]
|
||||
**sensitivity_level** | [**SensitivityLevel**](SensitivityLevel.md) | | [optional]
|
||||
**severity** | [**Severity**](Severity.md) | | [optional]
|
||||
|
||||
@ -18,7 +18,7 @@ Name | Type | Description | Notes
|
||||
**minimum_sources_pct** | **int** | The minimum percentage of all assigned agents or monitors that must meet the specified criteria to trigger the alert. | [optional]
|
||||
**rounds_violating_mode** | [**AlertRoundsViolationMode**](AlertRoundsViolationMode.md) | | [optional]
|
||||
**rounds_violating_out_of** | **int** | Specifies the divisor (y value) in the “X of Y times” condition. |
|
||||
**rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. |
|
||||
**rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. | [optional]
|
||||
**include_covered_prefixes** | **bool** | Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules. | [optional]
|
||||
**sensitivity_level** | [**SensitivityLevel**](SensitivityLevel.md) | | [optional]
|
||||
**severity** | [**Severity**](Severity.md) | | [optional]
|
||||
|
||||
@ -18,7 +18,7 @@ Name | Type | Description | Notes
|
||||
**minimum_sources_pct** | **int** | The minimum percentage of all assigned agents or monitors that must meet the specified criteria to trigger the alert. | [optional]
|
||||
**rounds_violating_mode** | [**AlertRoundsViolationMode**](AlertRoundsViolationMode.md) | | [optional]
|
||||
**rounds_violating_out_of** | **int** | Specifies the divisor (y value) in the “X of Y times” condition. |
|
||||
**rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. |
|
||||
**rounds_violating_required** | **int** | Specifies the numerator (x value) in the “X of Y times” condition. | [optional]
|
||||
**include_covered_prefixes** | **bool** | Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules. | [optional]
|
||||
**sensitivity_level** | [**SensitivityLevel**](SensitivityLevel.md) | | [optional]
|
||||
**severity** | [**Severity**](Severity.md) | | [optional]
|
||||
|
||||
@ -44,7 +44,7 @@ class BaseRule(BaseModel):
|
||||
minimum_sources_pct: Optional[StrictInt] = Field(default=None, description="The minimum percentage of all assigned agents or monitors that must meet the specified criteria to trigger the alert.", alias="minimumSourcesPct")
|
||||
rounds_violating_mode: Optional[AlertRoundsViolationMode] = Field(default=None, alias="roundsViolatingMode")
|
||||
rounds_violating_out_of: StrictInt = Field(description="Specifies the divisor (y value) in the “X of Y times” condition.", alias="roundsViolatingOutOf")
|
||||
rounds_violating_required: StrictInt = Field(description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired")
|
||||
rounds_violating_required: Optional[StrictInt] = Field(default=None, description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired")
|
||||
include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules.", alias="includeCoveredPrefixes")
|
||||
sensitivity_level: Optional[SensitivityLevel] = Field(default=None, alias="sensitivityLevel")
|
||||
severity: Optional[Severity] = None
|
||||
|
||||
@ -46,7 +46,7 @@ class Rule(BaseModel):
|
||||
minimum_sources_pct: Optional[StrictInt] = Field(default=None, description="The minimum percentage of all assigned agents or monitors that must meet the specified criteria to trigger the alert.", alias="minimumSourcesPct")
|
||||
rounds_violating_mode: Optional[AlertRoundsViolationMode] = Field(default=None, alias="roundsViolatingMode")
|
||||
rounds_violating_out_of: StrictInt = Field(description="Specifies the divisor (y value) in the “X of Y times” condition.", alias="roundsViolatingOutOf")
|
||||
rounds_violating_required: StrictInt = Field(description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired")
|
||||
rounds_violating_required: Optional[StrictInt] = Field(default=None, description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired")
|
||||
include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules.", alias="includeCoveredPrefixes")
|
||||
sensitivity_level: Optional[SensitivityLevel] = Field(default=None, alias="sensitivityLevel")
|
||||
severity: Optional[Severity] = None
|
||||
|
||||
@ -47,7 +47,7 @@ class RuleDetail(BaseModel):
|
||||
minimum_sources_pct: Optional[StrictInt] = Field(default=None, description="The minimum percentage of all assigned agents or monitors that must meet the specified criteria to trigger the alert.", alias="minimumSourcesPct")
|
||||
rounds_violating_mode: Optional[AlertRoundsViolationMode] = Field(default=None, alias="roundsViolatingMode")
|
||||
rounds_violating_out_of: StrictInt = Field(description="Specifies the divisor (y value) in the “X of Y times” condition.", alias="roundsViolatingOutOf")
|
||||
rounds_violating_required: StrictInt = Field(description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired")
|
||||
rounds_violating_required: Optional[StrictInt] = Field(default=None, description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired")
|
||||
include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules.", alias="includeCoveredPrefixes")
|
||||
sensitivity_level: Optional[SensitivityLevel] = Field(default=None, alias="sensitivityLevel")
|
||||
severity: Optional[Severity] = None
|
||||
|
||||
@ -45,7 +45,7 @@ class RuleDetailUpdate(BaseModel):
|
||||
minimum_sources_pct: Optional[StrictInt] = Field(default=None, description="The minimum percentage of all assigned agents or monitors that must meet the specified criteria to trigger the alert.", alias="minimumSourcesPct")
|
||||
rounds_violating_mode: Optional[AlertRoundsViolationMode] = Field(default=None, alias="roundsViolatingMode")
|
||||
rounds_violating_out_of: StrictInt = Field(description="Specifies the divisor (y value) in the “X of Y times” condition.", alias="roundsViolatingOutOf")
|
||||
rounds_violating_required: StrictInt = Field(description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired")
|
||||
rounds_violating_required: Optional[StrictInt] = Field(default=None, description="Specifies the numerator (x value) in the “X of Y times” condition.", alias="roundsViolatingRequired")
|
||||
include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules.", alias="includeCoveredPrefixes")
|
||||
sensitivity_level: Optional[SensitivityLevel] = Field(default=None, alias="sensitivityLevel")
|
||||
severity: Optional[Severity] = None
|
||||
|
||||
@ -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.63
|
||||
- API version: 7.0.68
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ For more information about credentials, see [Working With Secure Credentials](ht
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.63
|
||||
- API version: 7.0.68
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@ Manage ThousandEyes Dashboards.
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.63
|
||||
- API version: 7.0.68
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
@ -106,6 +106,8 @@ Class | Method | HTTP request | Description
|
||||
*DashboardsApi* | [**get_dashboard**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/DashboardsApi.md#get_dashboard) | **GET** /dashboards/{dashboardId} | Retrieve dashboard
|
||||
*DashboardsApi* | [**get_dashboard_widget_data**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/DashboardsApi.md#get_dashboard_widget_data) | **GET** /dashboards/{dashboardId}/widgets/{widgetId} | Retrieve dashboard widget data
|
||||
*DashboardsApi* | [**get_dashboards**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/DashboardsApi.md#get_dashboards) | **GET** /dashboards | List dashboards
|
||||
*DashboardsApi* | [**get_individual_card_data**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/DashboardsApi.md#get_individual_card_data) | **GET** /dashboards/{dashboardId}/widgets/{widgetId}/cards/{cardId} | Retrieve individual card data from numbers widget
|
||||
*DashboardsApi* | [**get_individual_column_data**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/DashboardsApi.md#get_individual_column_data) | **GET** /dashboards/{dashboardId}/widgets/{widgetId}/columns/{columnId} | Retrieve individual column data from multi-metric table widget
|
||||
*DashboardsApi* | [**update_dashboard**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/DashboardsApi.md#update_dashboard) | **PUT** /dashboards/{dashboardId} | Update dashboard
|
||||
*DashboardsFiltersApi* | [**create_dashboard_filter**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/DashboardsFiltersApi.md#create_dashboard_filter) | **POST** /dashboards/filters | Create dashboard filter
|
||||
*DashboardsFiltersApi* | [**delete_dashboard_filter**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/DashboardsFiltersApi.md#delete_dashboard_filter) | **DELETE** /dashboards/filters/{id} | Delete dashboard filter
|
||||
|
||||
@ -30,6 +30,8 @@ Name | Type | Description | Notes
|
||||
**limit** | **int** | Limit configured in the widget. | [optional]
|
||||
**sort_by** | [**LegacyWidgetSortProperty**](LegacyWidgetSortProperty.md) | | [optional]
|
||||
**sort_direction** | [**LegacyWidgetSortDirection**](LegacyWidgetSortDirection.md) | | [optional]
|
||||
**sort_group_by** | [**LegacyWidgetSortProperty**](LegacyWidgetSortProperty.md) | | [optional]
|
||||
**sort_group_direction** | [**LegacyWidgetSortDirection**](LegacyWidgetSortDirection.md) | | [optional]
|
||||
**data_source** | [**ColorGridDatasource**](ColorGridDatasource.md) | | [optional]
|
||||
|
||||
## Example
|
||||
|
||||
@ -13,6 +13,7 @@ Name | Type | Description | Notes
|
||||
**metric** | [**DashboardMetric**](DashboardMetric.md) | | [optional]
|
||||
**filters** | **Dict[str, List[object]]** | (Optional) Specifies the filters applied to the widget. When present, the `filters` property displays. Each filter object has two properties: `filterProperty` and `filterValue`. The `filterProperty` can be values like `AGENT`, `ENDPOINT_MACHINE_ID`, `TEST`, `MONITOR`, etc. The `filterValue` represents an identifier array of the selected property. | [optional]
|
||||
**measure** | [**ApiWidgetMeasure**](ApiWidgetMeasure.md) | | [optional]
|
||||
**links** | [**SelfLinks**](SelfLinks.md) | | [optional]
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@ Name | Type | Description | Notes
|
||||
**points** | [**List[ApiWidgetDataPoint]**](ApiWidgetDataPoint.md) | | [optional]
|
||||
**status** | **str** | Message for not fully configured card or no data. | [optional]
|
||||
**alert_suppression_windows** | [**List[ApiDashboardAsw]**](ApiDashboardAsw.md) | | [optional]
|
||||
**links** | [**SelfLinks**](SelfLinks.md) | | [optional]
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ Name | Type | Description | Notes
|
||||
**direction** | [**DashboardMetricDirection**](DashboardMetricDirection.md) | | [optional]
|
||||
**metric** | [**DashboardMetric**](DashboardMetric.md) | | [optional]
|
||||
**filters** | **Dict[str, List[object]]** | (Optional) Specifies the filters applied to the widget. When present, the `filters` property displays. Each filter object has two properties: `filterProperty` and `filterValue`. The `filterProperty` can be values like `AGENT`, `ENDPOINT_MACHINE_ID`, `TEST`, `MONITOR`, etc. The `filterValue` represents an identifier array of the selected property. | [optional]
|
||||
**links** | [**SelfLinks**](SelfLinks.md) | | [optional]
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
@ -16,6 +16,7 @@ Name | Type | Description | Notes
|
||||
**value** | **float** | Aggregated value. | [optional]
|
||||
**status** | **str** | Message for not fully configured card or no data. | [optional]
|
||||
**alert_suppression_windows** | [**List[ApiDashboardAsw]**](ApiDashboardAsw.md) | | [optional]
|
||||
**links** | [**SelfLinks**](SelfLinks.md) | | [optional]
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
@ -36,6 +36,8 @@ Name | Type | Description | Notes
|
||||
**limit** | **int** | Limit configured in the widget. | [optional]
|
||||
**sort_by** | [**LegacyWidgetSortProperty**](LegacyWidgetSortProperty.md) | | [optional]
|
||||
**sort_direction** | [**LegacyWidgetSortDirection**](LegacyWidgetSortDirection.md) | | [optional]
|
||||
**sort_group_by** | [**LegacyWidgetSortProperty**](LegacyWidgetSortProperty.md) | | [optional]
|
||||
**sort_group_direction** | [**LegacyWidgetSortDirection**](LegacyWidgetSortDirection.md) | | [optional]
|
||||
**is_geo_map_per_test** | **bool** | Indicates whether a separate map is displayed for each test within the widget. When set to true, individual maps are generated. | [optional]
|
||||
**axis_group_by** | [**ApiAggregateProperty**](ApiAggregateProperty.md) | | [optional]
|
||||
**show_labels** | **bool** | | [optional]
|
||||
|
||||
@ -9,6 +9,8 @@ Method | HTTP request | Description
|
||||
[**get_dashboard**](DashboardsApi.md#get_dashboard) | **GET** /dashboards/{dashboardId} | Retrieve dashboard
|
||||
[**get_dashboard_widget_data**](DashboardsApi.md#get_dashboard_widget_data) | **GET** /dashboards/{dashboardId}/widgets/{widgetId} | Retrieve dashboard widget data
|
||||
[**get_dashboards**](DashboardsApi.md#get_dashboards) | **GET** /dashboards | List dashboards
|
||||
[**get_individual_card_data**](DashboardsApi.md#get_individual_card_data) | **GET** /dashboards/{dashboardId}/widgets/{widgetId}/cards/{cardId} | Retrieve individual card data from numbers widget
|
||||
[**get_individual_column_data**](DashboardsApi.md#get_individual_column_data) | **GET** /dashboards/{dashboardId}/widgets/{widgetId}/columns/{columnId} | Retrieve individual column data from multi-metric table widget
|
||||
[**update_dashboard**](DashboardsApi.md#update_dashboard) | **PUT** /dashboards/{dashboardId} | Update dashboard
|
||||
|
||||
|
||||
@ -454,6 +456,198 @@ Name | Type | Description | Notes
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **get_individual_card_data**
|
||||
> ApiNumbersCardData get_individual_card_data(dashboard_id, widget_id, card_id, aid=aid, window=window, start_date=start_date, end_date=end_date)
|
||||
|
||||
Retrieve individual card data from numbers widget
|
||||
|
||||
Returns the raw data for an individual card within a numbers widget in the dashboard.
|
||||
|
||||
### Example
|
||||
|
||||
* Bearer Authentication (BearerAuth):
|
||||
|
||||
```python
|
||||
import thousandeyes_sdk.dashboards
|
||||
from thousandeyes_sdk.dashboards.models.api_numbers_card_data import ApiNumbersCardData
|
||||
from thousandeyes_sdk.dashboards.rest import ApiException
|
||||
from pprint import pprint
|
||||
|
||||
# Defining the host is optional and defaults to https://api.thousandeyes.com/v7
|
||||
# See configuration.py for a list of all supported configuration parameters.
|
||||
configuration = thousandeyes_sdk.core.Configuration(
|
||||
host = "https://api.thousandeyes.com/v7"
|
||||
)
|
||||
|
||||
# The client must configure the authentication and authorization parameters
|
||||
# in accordance with the API server security policy.
|
||||
# Examples for each auth method are provided below, use the example that
|
||||
# satisfies your auth use case.
|
||||
|
||||
# Configure Bearer authorization: BearerAuth
|
||||
configuration = thousandeyes_sdk.core.Configuration(
|
||||
access_token = os.environ["BEARER_TOKEN"]
|
||||
)
|
||||
|
||||
# Enter a context with an instance of the API client
|
||||
with thousandeyes_sdk.core.ApiClient(configuration) as api_client:
|
||||
# Create an instance of the API class
|
||||
api_instance = thousandeyes_sdk.dashboards.DashboardsApi(api_client)
|
||||
dashboard_id = '646f4d2ce3c99b0536c3821e' # str | A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint.
|
||||
widget_id = 'unpmg' # str | A Identifier for a widget.
|
||||
card_id = 'rvwgs' # str | An identifier for a card within the numbers widget.
|
||||
aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional)
|
||||
window = '12h' # str | A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`. (optional)
|
||||
start_date = '2022-07-17T22:00:54Z' # datetime | Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
|
||||
end_date = '2022-07-18T22:00:54Z' # datetime | Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
|
||||
|
||||
try:
|
||||
# Retrieve individual card data from numbers widget
|
||||
api_response = api_instance.get_individual_card_data(dashboard_id, widget_id, card_id, aid=aid, window=window, start_date=start_date, end_date=end_date)
|
||||
print("The response of DashboardsApi->get_individual_card_data:\n")
|
||||
pprint(api_response)
|
||||
except Exception as e:
|
||||
print("Exception when calling DashboardsApi->get_individual_card_data: %s\n" % e)
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Parameters
|
||||
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**dashboard_id** | **str**| A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint. |
|
||||
**widget_id** | **str**| A Identifier for a widget. |
|
||||
**card_id** | **str**| An identifier for a card within the numbers widget. |
|
||||
**aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional]
|
||||
**window** | **str**| A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`. | [optional]
|
||||
**start_date** | **datetime**| Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. | [optional]
|
||||
**end_date** | **datetime**| Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. | [optional]
|
||||
|
||||
### Return type
|
||||
|
||||
[**ApiNumbersCardData**](ApiNumbersCardData.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[BearerAuth](../README.md#BearerAuth)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/hal+json, application/json, application/problem+json
|
||||
|
||||
### HTTP response details
|
||||
|
||||
| Status code | Description | Response headers |
|
||||
|-------------|-------------|------------------|
|
||||
**200** | OK | - |
|
||||
**400** | Bad Request | - |
|
||||
**401** | Unauthorized | - |
|
||||
**403** | Insufficient permissions to query endpoint | - |
|
||||
**404** | Not found | - |
|
||||
**429** | Exhausted rate limit for the organization | - |
|
||||
**500** | Internal server error | - |
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **get_individual_column_data**
|
||||
> ApiMultiMetricColumnData get_individual_column_data(dashboard_id, widget_id, column_id, aid=aid, window=window, start_date=start_date, end_date=end_date)
|
||||
|
||||
Retrieve individual column data from multi-metric table widget
|
||||
|
||||
Returns the raw data for an individual column within a multi-metric table widget in the dashboard.
|
||||
|
||||
### Example
|
||||
|
||||
* Bearer Authentication (BearerAuth):
|
||||
|
||||
```python
|
||||
import thousandeyes_sdk.dashboards
|
||||
from thousandeyes_sdk.dashboards.models.api_multi_metric_column_data import ApiMultiMetricColumnData
|
||||
from thousandeyes_sdk.dashboards.rest import ApiException
|
||||
from pprint import pprint
|
||||
|
||||
# Defining the host is optional and defaults to https://api.thousandeyes.com/v7
|
||||
# See configuration.py for a list of all supported configuration parameters.
|
||||
configuration = thousandeyes_sdk.core.Configuration(
|
||||
host = "https://api.thousandeyes.com/v7"
|
||||
)
|
||||
|
||||
# The client must configure the authentication and authorization parameters
|
||||
# in accordance with the API server security policy.
|
||||
# Examples for each auth method are provided below, use the example that
|
||||
# satisfies your auth use case.
|
||||
|
||||
# Configure Bearer authorization: BearerAuth
|
||||
configuration = thousandeyes_sdk.core.Configuration(
|
||||
access_token = os.environ["BEARER_TOKEN"]
|
||||
)
|
||||
|
||||
# Enter a context with an instance of the API client
|
||||
with thousandeyes_sdk.core.ApiClient(configuration) as api_client:
|
||||
# Create an instance of the API class
|
||||
api_instance = thousandeyes_sdk.dashboards.DashboardsApi(api_client)
|
||||
dashboard_id = '646f4d2ce3c99b0536c3821e' # str | A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint.
|
||||
widget_id = 'unpmg' # str | A Identifier for a widget.
|
||||
column_id = 'col123' # str | An identifier for a column within the multi-metric table widget.
|
||||
aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional)
|
||||
window = '12h' # str | A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`. (optional)
|
||||
start_date = '2022-07-17T22:00:54Z' # datetime | Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
|
||||
end_date = '2022-07-18T22:00:54Z' # datetime | Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional)
|
||||
|
||||
try:
|
||||
# Retrieve individual column data from multi-metric table widget
|
||||
api_response = api_instance.get_individual_column_data(dashboard_id, widget_id, column_id, aid=aid, window=window, start_date=start_date, end_date=end_date)
|
||||
print("The response of DashboardsApi->get_individual_column_data:\n")
|
||||
pprint(api_response)
|
||||
except Exception as e:
|
||||
print("Exception when calling DashboardsApi->get_individual_column_data: %s\n" % e)
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Parameters
|
||||
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**dashboard_id** | **str**| A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint. |
|
||||
**widget_id** | **str**| A Identifier for a widget. |
|
||||
**column_id** | **str**| An identifier for a column within the multi-metric table widget. |
|
||||
**aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional]
|
||||
**window** | **str**| A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`. | [optional]
|
||||
**start_date** | **datetime**| Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. | [optional]
|
||||
**end_date** | **datetime**| Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. | [optional]
|
||||
|
||||
### Return type
|
||||
|
||||
[**ApiMultiMetricColumnData**](ApiMultiMetricColumnData.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
[BearerAuth](../README.md#BearerAuth)
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/hal+json, application/json, application/problem+json
|
||||
|
||||
### HTTP response details
|
||||
|
||||
| Status code | Description | Response headers |
|
||||
|-------------|-------------|------------------|
|
||||
**200** | OK | - |
|
||||
**400** | Bad Request | - |
|
||||
**401** | Unauthorized | - |
|
||||
**403** | Insufficient permissions to query endpoint | - |
|
||||
**404** | Not found | - |
|
||||
**429** | Exhausted rate limit for the organization | - |
|
||||
**500** | Internal server error | - |
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
# **update_dashboard**
|
||||
> Dashboard update_dashboard(dashboard_id, dashboard, aid=aid)
|
||||
|
||||
|
||||
@ -23,6 +23,8 @@ from pydantic import Field, StrictFloat, StrictInt, StrictStr, field_validator
|
||||
from typing import List, Optional, Union
|
||||
from typing_extensions import Annotated
|
||||
from thousandeyes_sdk.dashboards.models.api_dashboard import ApiDashboard
|
||||
from thousandeyes_sdk.dashboards.models.api_multi_metric_column_data import ApiMultiMetricColumnData
|
||||
from thousandeyes_sdk.dashboards.models.api_numbers_card_data import ApiNumbersCardData
|
||||
from thousandeyes_sdk.dashboards.models.api_widget_data_response import ApiWidgetDataResponse
|
||||
from thousandeyes_sdk.dashboards.models.dashboard import Dashboard
|
||||
from thousandeyes_sdk.dashboards.models.dashboard_order import DashboardOrder
|
||||
@ -1680,6 +1682,798 @@ class DashboardsApi:
|
||||
|
||||
|
||||
|
||||
@validate_call
|
||||
def get_individual_card_data(
|
||||
self,
|
||||
dashboard_id: Annotated[StrictStr, Field(description="A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint.")],
|
||||
widget_id: Annotated[StrictStr, Field(description="A Identifier for a widget.")],
|
||||
card_id: Annotated[StrictStr, Field(description="An identifier for a card within the numbers widget.")],
|
||||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||||
window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None,
|
||||
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
_request_timeout: Union[
|
||||
None,
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Tuple[
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Annotated[StrictFloat, Field(gt=0)]
|
||||
]
|
||||
] = None,
|
||||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||||
_content_type: Optional[StrictStr] = None,
|
||||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||||
) -> ApiNumbersCardData:
|
||||
"""Retrieve individual card data from numbers widget
|
||||
|
||||
Returns the raw data for an individual card within a numbers widget in the dashboard.
|
||||
|
||||
:param dashboard_id: A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint. (required)
|
||||
:type dashboard_id: str
|
||||
:param widget_id: A Identifier for a widget. (required)
|
||||
:type widget_id: str
|
||||
:param card_id: An identifier for a card within the numbers widget. (required)
|
||||
:type card_id: str
|
||||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||||
:type aid: str
|
||||
:param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.
|
||||
:type window: str
|
||||
:param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type start_date: datetime
|
||||
:param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type end_date: datetime
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
(connection, read) timeouts.
|
||||
:type _request_timeout: int, tuple(int, int), optional
|
||||
:param _request_auth: set to override the auth_settings for an a single
|
||||
request; this effectively ignores the
|
||||
authentication in the spec for a single request.
|
||||
:type _request_auth: dict, optional
|
||||
:param _content_type: force content-type for the request.
|
||||
:type _content_type: str, Optional
|
||||
:param _headers: set to override the headers for a single
|
||||
request; this effectively ignores the headers
|
||||
in the spec for a single request.
|
||||
:type _headers: dict, optional
|
||||
:param _host_index: set to override the host_index for a single
|
||||
request; this effectively ignores the host_index
|
||||
in the spec for a single request.
|
||||
:type _host_index: int, optional
|
||||
:return: Returns the result object.
|
||||
""" # noqa: E501
|
||||
|
||||
_param = self._get_individual_card_data_serialize(
|
||||
dashboard_id=dashboard_id,
|
||||
widget_id=widget_id,
|
||||
card_id=card_id,
|
||||
aid=aid,
|
||||
window=window,
|
||||
start_date=start_date,
|
||||
end_date=end_date,
|
||||
_request_auth=_request_auth,
|
||||
_content_type=_content_type,
|
||||
_headers=_headers,
|
||||
_host_index=_host_index
|
||||
)
|
||||
|
||||
_response_types_map: Dict[str, Optional[str]] = {
|
||||
'200': "ApiNumbersCardData",
|
||||
'400': "ValidationError",
|
||||
'401': "UnauthorizedError",
|
||||
'403': "Error",
|
||||
'404': "Error",
|
||||
'429': "Error",
|
||||
'500': "Error",
|
||||
}
|
||||
response_data = self.api_client.call_api(
|
||||
*_param,
|
||||
_request_timeout=_request_timeout
|
||||
)
|
||||
response_data.read()
|
||||
return self.api_client.response_deserialize(
|
||||
response_data=response_data,
|
||||
response_types_map=_response_types_map,
|
||||
models=thousandeyes_sdk.dashboards.models,
|
||||
).data
|
||||
|
||||
|
||||
@validate_call
|
||||
def get_individual_card_data_with_http_info(
|
||||
self,
|
||||
dashboard_id: Annotated[StrictStr, Field(description="A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint.")],
|
||||
widget_id: Annotated[StrictStr, Field(description="A Identifier for a widget.")],
|
||||
card_id: Annotated[StrictStr, Field(description="An identifier for a card within the numbers widget.")],
|
||||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||||
window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None,
|
||||
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
_request_timeout: Union[
|
||||
None,
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Tuple[
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Annotated[StrictFloat, Field(gt=0)]
|
||||
]
|
||||
] = None,
|
||||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||||
_content_type: Optional[StrictStr] = None,
|
||||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||||
) -> ApiResponse[ApiNumbersCardData]:
|
||||
"""Retrieve individual card data from numbers widget
|
||||
|
||||
Returns the raw data for an individual card within a numbers widget in the dashboard.
|
||||
|
||||
:param dashboard_id: A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint. (required)
|
||||
:type dashboard_id: str
|
||||
:param widget_id: A Identifier for a widget. (required)
|
||||
:type widget_id: str
|
||||
:param card_id: An identifier for a card within the numbers widget. (required)
|
||||
:type card_id: str
|
||||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||||
:type aid: str
|
||||
:param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.
|
||||
:type window: str
|
||||
:param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type start_date: datetime
|
||||
:param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type end_date: datetime
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
(connection, read) timeouts.
|
||||
:type _request_timeout: int, tuple(int, int), optional
|
||||
:param _request_auth: set to override the auth_settings for an a single
|
||||
request; this effectively ignores the
|
||||
authentication in the spec for a single request.
|
||||
:type _request_auth: dict, optional
|
||||
:param _content_type: force content-type for the request.
|
||||
:type _content_type: str, Optional
|
||||
:param _headers: set to override the headers for a single
|
||||
request; this effectively ignores the headers
|
||||
in the spec for a single request.
|
||||
:type _headers: dict, optional
|
||||
:param _host_index: set to override the host_index for a single
|
||||
request; this effectively ignores the host_index
|
||||
in the spec for a single request.
|
||||
:type _host_index: int, optional
|
||||
:return: Returns the result object.
|
||||
""" # noqa: E501
|
||||
|
||||
_param = self._get_individual_card_data_serialize(
|
||||
dashboard_id=dashboard_id,
|
||||
widget_id=widget_id,
|
||||
card_id=card_id,
|
||||
aid=aid,
|
||||
window=window,
|
||||
start_date=start_date,
|
||||
end_date=end_date,
|
||||
_request_auth=_request_auth,
|
||||
_content_type=_content_type,
|
||||
_headers=_headers,
|
||||
_host_index=_host_index
|
||||
)
|
||||
|
||||
_response_types_map: Dict[str, Optional[str]] = {
|
||||
'200': "ApiNumbersCardData",
|
||||
'400': "ValidationError",
|
||||
'401': "UnauthorizedError",
|
||||
'403': "Error",
|
||||
'404': "Error",
|
||||
'429': "Error",
|
||||
'500': "Error",
|
||||
}
|
||||
response_data = self.api_client.call_api(
|
||||
*_param,
|
||||
_request_timeout=_request_timeout
|
||||
)
|
||||
response_data.read()
|
||||
return self.api_client.response_deserialize(
|
||||
response_data=response_data,
|
||||
response_types_map=_response_types_map,
|
||||
models=thousandeyes_sdk.dashboards.models,
|
||||
)
|
||||
|
||||
|
||||
@validate_call
|
||||
def get_individual_card_data_without_preload_content(
|
||||
self,
|
||||
dashboard_id: Annotated[StrictStr, Field(description="A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint.")],
|
||||
widget_id: Annotated[StrictStr, Field(description="A Identifier for a widget.")],
|
||||
card_id: Annotated[StrictStr, Field(description="An identifier for a card within the numbers widget.")],
|
||||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||||
window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None,
|
||||
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
_request_timeout: Union[
|
||||
None,
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Tuple[
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Annotated[StrictFloat, Field(gt=0)]
|
||||
]
|
||||
] = None,
|
||||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||||
_content_type: Optional[StrictStr] = None,
|
||||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||||
) -> RESTResponseType:
|
||||
"""Retrieve individual card data from numbers widget
|
||||
|
||||
Returns the raw data for an individual card within a numbers widget in the dashboard.
|
||||
|
||||
:param dashboard_id: A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint. (required)
|
||||
:type dashboard_id: str
|
||||
:param widget_id: A Identifier for a widget. (required)
|
||||
:type widget_id: str
|
||||
:param card_id: An identifier for a card within the numbers widget. (required)
|
||||
:type card_id: str
|
||||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||||
:type aid: str
|
||||
:param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.
|
||||
:type window: str
|
||||
:param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type start_date: datetime
|
||||
:param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type end_date: datetime
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
(connection, read) timeouts.
|
||||
:type _request_timeout: int, tuple(int, int), optional
|
||||
:param _request_auth: set to override the auth_settings for an a single
|
||||
request; this effectively ignores the
|
||||
authentication in the spec for a single request.
|
||||
:type _request_auth: dict, optional
|
||||
:param _content_type: force content-type for the request.
|
||||
:type _content_type: str, Optional
|
||||
:param _headers: set to override the headers for a single
|
||||
request; this effectively ignores the headers
|
||||
in the spec for a single request.
|
||||
:type _headers: dict, optional
|
||||
:param _host_index: set to override the host_index for a single
|
||||
request; this effectively ignores the host_index
|
||||
in the spec for a single request.
|
||||
:type _host_index: int, optional
|
||||
:return: Returns the result object.
|
||||
""" # noqa: E501
|
||||
|
||||
_param = self._get_individual_card_data_serialize(
|
||||
dashboard_id=dashboard_id,
|
||||
widget_id=widget_id,
|
||||
card_id=card_id,
|
||||
aid=aid,
|
||||
window=window,
|
||||
start_date=start_date,
|
||||
end_date=end_date,
|
||||
_request_auth=_request_auth,
|
||||
_content_type=_content_type,
|
||||
_headers=_headers,
|
||||
_host_index=_host_index
|
||||
)
|
||||
|
||||
_response_types_map: Dict[str, Optional[str]] = {
|
||||
'200': "ApiNumbersCardData",
|
||||
'400': "ValidationError",
|
||||
'401': "UnauthorizedError",
|
||||
'403': "Error",
|
||||
'404': "Error",
|
||||
'429': "Error",
|
||||
'500': "Error",
|
||||
}
|
||||
response_data = self.api_client.call_api(
|
||||
*_param,
|
||||
_request_timeout=_request_timeout
|
||||
)
|
||||
return response_data.response
|
||||
|
||||
|
||||
def _get_individual_card_data_serialize(
|
||||
self,
|
||||
dashboard_id,
|
||||
widget_id,
|
||||
card_id,
|
||||
aid,
|
||||
window,
|
||||
start_date,
|
||||
end_date,
|
||||
_request_auth,
|
||||
_content_type,
|
||||
_headers,
|
||||
_host_index,
|
||||
) -> RequestSerialized:
|
||||
|
||||
_host = None
|
||||
|
||||
_collection_formats: Dict[str, str] = {
|
||||
}
|
||||
|
||||
_path_params: Dict[str, str] = {}
|
||||
_query_params: List[Tuple[str, str]] = []
|
||||
_header_params: Dict[str, Optional[str]] = _headers or {}
|
||||
_form_params: List[Tuple[str, str]] = []
|
||||
_files: Dict[str, Union[str, bytes]] = {}
|
||||
_body_params: Optional[bytes] = None
|
||||
|
||||
# process the path parameters
|
||||
if dashboard_id is not None:
|
||||
_path_params['dashboardId'] = dashboard_id
|
||||
if widget_id is not None:
|
||||
_path_params['widgetId'] = widget_id
|
||||
if card_id is not None:
|
||||
_path_params['cardId'] = card_id
|
||||
# process the query parameters
|
||||
if aid is not None:
|
||||
|
||||
_query_params.append(('aid', aid))
|
||||
|
||||
if window is not None:
|
||||
|
||||
_query_params.append(('window', window))
|
||||
|
||||
if start_date is not None:
|
||||
if isinstance(start_date, datetime):
|
||||
_query_params.append(
|
||||
(
|
||||
'startDate',
|
||||
start_date.strftime(
|
||||
self.api_client.configuration.datetime_format
|
||||
)
|
||||
)
|
||||
)
|
||||
else:
|
||||
_query_params.append(('startDate', start_date))
|
||||
|
||||
if end_date is not None:
|
||||
if isinstance(end_date, datetime):
|
||||
_query_params.append(
|
||||
(
|
||||
'endDate',
|
||||
end_date.strftime(
|
||||
self.api_client.configuration.datetime_format
|
||||
)
|
||||
)
|
||||
)
|
||||
else:
|
||||
_query_params.append(('endDate', end_date))
|
||||
|
||||
# process the header parameters
|
||||
# process the form parameters
|
||||
# process the body parameter
|
||||
|
||||
|
||||
# set the HTTP header `Accept`
|
||||
_header_params['Accept'] = self.api_client.select_header_accept(
|
||||
[
|
||||
'application/hal+json',
|
||||
'application/json',
|
||||
'application/problem+json'
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
# authentication setting
|
||||
_auth_settings: List[str] = [
|
||||
'BearerAuth'
|
||||
]
|
||||
|
||||
return self.api_client.param_serialize(
|
||||
method='GET',
|
||||
resource_path='/dashboards/{dashboardId}/widgets/{widgetId}/cards/{cardId}',
|
||||
path_params=_path_params,
|
||||
query_params=_query_params,
|
||||
header_params=_header_params,
|
||||
body=_body_params,
|
||||
post_params=_form_params,
|
||||
files=_files,
|
||||
auth_settings=_auth_settings,
|
||||
collection_formats=_collection_formats,
|
||||
_host=_host,
|
||||
_request_auth=_request_auth
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
@validate_call
|
||||
def get_individual_column_data(
|
||||
self,
|
||||
dashboard_id: Annotated[StrictStr, Field(description="A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint.")],
|
||||
widget_id: Annotated[StrictStr, Field(description="A Identifier for a widget.")],
|
||||
column_id: Annotated[StrictStr, Field(description="An identifier for a column within the multi-metric table widget.")],
|
||||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||||
window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None,
|
||||
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
_request_timeout: Union[
|
||||
None,
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Tuple[
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Annotated[StrictFloat, Field(gt=0)]
|
||||
]
|
||||
] = None,
|
||||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||||
_content_type: Optional[StrictStr] = None,
|
||||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||||
) -> ApiMultiMetricColumnData:
|
||||
"""Retrieve individual column data from multi-metric table widget
|
||||
|
||||
Returns the raw data for an individual column within a multi-metric table widget in the dashboard.
|
||||
|
||||
:param dashboard_id: A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint. (required)
|
||||
:type dashboard_id: str
|
||||
:param widget_id: A Identifier for a widget. (required)
|
||||
:type widget_id: str
|
||||
:param column_id: An identifier for a column within the multi-metric table widget. (required)
|
||||
:type column_id: str
|
||||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||||
:type aid: str
|
||||
:param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.
|
||||
:type window: str
|
||||
:param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type start_date: datetime
|
||||
:param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type end_date: datetime
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
(connection, read) timeouts.
|
||||
:type _request_timeout: int, tuple(int, int), optional
|
||||
:param _request_auth: set to override the auth_settings for an a single
|
||||
request; this effectively ignores the
|
||||
authentication in the spec for a single request.
|
||||
:type _request_auth: dict, optional
|
||||
:param _content_type: force content-type for the request.
|
||||
:type _content_type: str, Optional
|
||||
:param _headers: set to override the headers for a single
|
||||
request; this effectively ignores the headers
|
||||
in the spec for a single request.
|
||||
:type _headers: dict, optional
|
||||
:param _host_index: set to override the host_index for a single
|
||||
request; this effectively ignores the host_index
|
||||
in the spec for a single request.
|
||||
:type _host_index: int, optional
|
||||
:return: Returns the result object.
|
||||
""" # noqa: E501
|
||||
|
||||
_param = self._get_individual_column_data_serialize(
|
||||
dashboard_id=dashboard_id,
|
||||
widget_id=widget_id,
|
||||
column_id=column_id,
|
||||
aid=aid,
|
||||
window=window,
|
||||
start_date=start_date,
|
||||
end_date=end_date,
|
||||
_request_auth=_request_auth,
|
||||
_content_type=_content_type,
|
||||
_headers=_headers,
|
||||
_host_index=_host_index
|
||||
)
|
||||
|
||||
_response_types_map: Dict[str, Optional[str]] = {
|
||||
'200': "ApiMultiMetricColumnData",
|
||||
'400': "ValidationError",
|
||||
'401': "UnauthorizedError",
|
||||
'403': "Error",
|
||||
'404': "Error",
|
||||
'429': "Error",
|
||||
'500': "Error",
|
||||
}
|
||||
response_data = self.api_client.call_api(
|
||||
*_param,
|
||||
_request_timeout=_request_timeout
|
||||
)
|
||||
response_data.read()
|
||||
return self.api_client.response_deserialize(
|
||||
response_data=response_data,
|
||||
response_types_map=_response_types_map,
|
||||
models=thousandeyes_sdk.dashboards.models,
|
||||
).data
|
||||
|
||||
|
||||
@validate_call
|
||||
def get_individual_column_data_with_http_info(
|
||||
self,
|
||||
dashboard_id: Annotated[StrictStr, Field(description="A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint.")],
|
||||
widget_id: Annotated[StrictStr, Field(description="A Identifier for a widget.")],
|
||||
column_id: Annotated[StrictStr, Field(description="An identifier for a column within the multi-metric table widget.")],
|
||||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||||
window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None,
|
||||
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
_request_timeout: Union[
|
||||
None,
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Tuple[
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Annotated[StrictFloat, Field(gt=0)]
|
||||
]
|
||||
] = None,
|
||||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||||
_content_type: Optional[StrictStr] = None,
|
||||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||||
) -> ApiResponse[ApiMultiMetricColumnData]:
|
||||
"""Retrieve individual column data from multi-metric table widget
|
||||
|
||||
Returns the raw data for an individual column within a multi-metric table widget in the dashboard.
|
||||
|
||||
:param dashboard_id: A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint. (required)
|
||||
:type dashboard_id: str
|
||||
:param widget_id: A Identifier for a widget. (required)
|
||||
:type widget_id: str
|
||||
:param column_id: An identifier for a column within the multi-metric table widget. (required)
|
||||
:type column_id: str
|
||||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||||
:type aid: str
|
||||
:param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.
|
||||
:type window: str
|
||||
:param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type start_date: datetime
|
||||
:param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type end_date: datetime
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
(connection, read) timeouts.
|
||||
:type _request_timeout: int, tuple(int, int), optional
|
||||
:param _request_auth: set to override the auth_settings for an a single
|
||||
request; this effectively ignores the
|
||||
authentication in the spec for a single request.
|
||||
:type _request_auth: dict, optional
|
||||
:param _content_type: force content-type for the request.
|
||||
:type _content_type: str, Optional
|
||||
:param _headers: set to override the headers for a single
|
||||
request; this effectively ignores the headers
|
||||
in the spec for a single request.
|
||||
:type _headers: dict, optional
|
||||
:param _host_index: set to override the host_index for a single
|
||||
request; this effectively ignores the host_index
|
||||
in the spec for a single request.
|
||||
:type _host_index: int, optional
|
||||
:return: Returns the result object.
|
||||
""" # noqa: E501
|
||||
|
||||
_param = self._get_individual_column_data_serialize(
|
||||
dashboard_id=dashboard_id,
|
||||
widget_id=widget_id,
|
||||
column_id=column_id,
|
||||
aid=aid,
|
||||
window=window,
|
||||
start_date=start_date,
|
||||
end_date=end_date,
|
||||
_request_auth=_request_auth,
|
||||
_content_type=_content_type,
|
||||
_headers=_headers,
|
||||
_host_index=_host_index
|
||||
)
|
||||
|
||||
_response_types_map: Dict[str, Optional[str]] = {
|
||||
'200': "ApiMultiMetricColumnData",
|
||||
'400': "ValidationError",
|
||||
'401': "UnauthorizedError",
|
||||
'403': "Error",
|
||||
'404': "Error",
|
||||
'429': "Error",
|
||||
'500': "Error",
|
||||
}
|
||||
response_data = self.api_client.call_api(
|
||||
*_param,
|
||||
_request_timeout=_request_timeout
|
||||
)
|
||||
response_data.read()
|
||||
return self.api_client.response_deserialize(
|
||||
response_data=response_data,
|
||||
response_types_map=_response_types_map,
|
||||
models=thousandeyes_sdk.dashboards.models,
|
||||
)
|
||||
|
||||
|
||||
@validate_call
|
||||
def get_individual_column_data_without_preload_content(
|
||||
self,
|
||||
dashboard_id: Annotated[StrictStr, Field(description="A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint.")],
|
||||
widget_id: Annotated[StrictStr, Field(description="A Identifier for a widget.")],
|
||||
column_id: Annotated[StrictStr, Field(description="An identifier for a column within the multi-metric table widget.")],
|
||||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||||
window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None,
|
||||
start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None,
|
||||
_request_timeout: Union[
|
||||
None,
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Tuple[
|
||||
Annotated[StrictFloat, Field(gt=0)],
|
||||
Annotated[StrictFloat, Field(gt=0)]
|
||||
]
|
||||
] = None,
|
||||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||||
_content_type: Optional[StrictStr] = None,
|
||||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||||
) -> RESTResponseType:
|
||||
"""Retrieve individual column data from multi-metric table widget
|
||||
|
||||
Returns the raw data for an individual column within a multi-metric table widget in the dashboard.
|
||||
|
||||
:param dashboard_id: A Identifier for a dashboard which can be obtained from the `/dashboards` endpoint. (required)
|
||||
:type dashboard_id: str
|
||||
:param widget_id: A Identifier for a widget. (required)
|
||||
:type widget_id: str
|
||||
:param column_id: An identifier for a column within the multi-metric table widget. (required)
|
||||
:type column_id: str
|
||||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||||
:type aid: str
|
||||
:param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.
|
||||
:type window: str
|
||||
:param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type start_date: datetime
|
||||
:param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.
|
||||
:type end_date: datetime
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
(connection, read) timeouts.
|
||||
:type _request_timeout: int, tuple(int, int), optional
|
||||
:param _request_auth: set to override the auth_settings for an a single
|
||||
request; this effectively ignores the
|
||||
authentication in the spec for a single request.
|
||||
:type _request_auth: dict, optional
|
||||
:param _content_type: force content-type for the request.
|
||||
:type _content_type: str, Optional
|
||||
:param _headers: set to override the headers for a single
|
||||
request; this effectively ignores the headers
|
||||
in the spec for a single request.
|
||||
:type _headers: dict, optional
|
||||
:param _host_index: set to override the host_index for a single
|
||||
request; this effectively ignores the host_index
|
||||
in the spec for a single request.
|
||||
:type _host_index: int, optional
|
||||
:return: Returns the result object.
|
||||
""" # noqa: E501
|
||||
|
||||
_param = self._get_individual_column_data_serialize(
|
||||
dashboard_id=dashboard_id,
|
||||
widget_id=widget_id,
|
||||
column_id=column_id,
|
||||
aid=aid,
|
||||
window=window,
|
||||
start_date=start_date,
|
||||
end_date=end_date,
|
||||
_request_auth=_request_auth,
|
||||
_content_type=_content_type,
|
||||
_headers=_headers,
|
||||
_host_index=_host_index
|
||||
)
|
||||
|
||||
_response_types_map: Dict[str, Optional[str]] = {
|
||||
'200': "ApiMultiMetricColumnData",
|
||||
'400': "ValidationError",
|
||||
'401': "UnauthorizedError",
|
||||
'403': "Error",
|
||||
'404': "Error",
|
||||
'429': "Error",
|
||||
'500': "Error",
|
||||
}
|
||||
response_data = self.api_client.call_api(
|
||||
*_param,
|
||||
_request_timeout=_request_timeout
|
||||
)
|
||||
return response_data.response
|
||||
|
||||
|
||||
def _get_individual_column_data_serialize(
|
||||
self,
|
||||
dashboard_id,
|
||||
widget_id,
|
||||
column_id,
|
||||
aid,
|
||||
window,
|
||||
start_date,
|
||||
end_date,
|
||||
_request_auth,
|
||||
_content_type,
|
||||
_headers,
|
||||
_host_index,
|
||||
) -> RequestSerialized:
|
||||
|
||||
_host = None
|
||||
|
||||
_collection_formats: Dict[str, str] = {
|
||||
}
|
||||
|
||||
_path_params: Dict[str, str] = {}
|
||||
_query_params: List[Tuple[str, str]] = []
|
||||
_header_params: Dict[str, Optional[str]] = _headers or {}
|
||||
_form_params: List[Tuple[str, str]] = []
|
||||
_files: Dict[str, Union[str, bytes]] = {}
|
||||
_body_params: Optional[bytes] = None
|
||||
|
||||
# process the path parameters
|
||||
if dashboard_id is not None:
|
||||
_path_params['dashboardId'] = dashboard_id
|
||||
if widget_id is not None:
|
||||
_path_params['widgetId'] = widget_id
|
||||
if column_id is not None:
|
||||
_path_params['columnId'] = column_id
|
||||
# process the query parameters
|
||||
if aid is not None:
|
||||
|
||||
_query_params.append(('aid', aid))
|
||||
|
||||
if window is not None:
|
||||
|
||||
_query_params.append(('window', window))
|
||||
|
||||
if start_date is not None:
|
||||
if isinstance(start_date, datetime):
|
||||
_query_params.append(
|
||||
(
|
||||
'startDate',
|
||||
start_date.strftime(
|
||||
self.api_client.configuration.datetime_format
|
||||
)
|
||||
)
|
||||
)
|
||||
else:
|
||||
_query_params.append(('startDate', start_date))
|
||||
|
||||
if end_date is not None:
|
||||
if isinstance(end_date, datetime):
|
||||
_query_params.append(
|
||||
(
|
||||
'endDate',
|
||||
end_date.strftime(
|
||||
self.api_client.configuration.datetime_format
|
||||
)
|
||||
)
|
||||
)
|
||||
else:
|
||||
_query_params.append(('endDate', end_date))
|
||||
|
||||
# process the header parameters
|
||||
# process the form parameters
|
||||
# process the body parameter
|
||||
|
||||
|
||||
# set the HTTP header `Accept`
|
||||
_header_params['Accept'] = self.api_client.select_header_accept(
|
||||
[
|
||||
'application/hal+json',
|
||||
'application/json',
|
||||
'application/problem+json'
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
# authentication setting
|
||||
_auth_settings: List[str] = [
|
||||
'BearerAuth'
|
||||
]
|
||||
|
||||
return self.api_client.param_serialize(
|
||||
method='GET',
|
||||
resource_path='/dashboards/{dashboardId}/widgets/{widgetId}/columns/{columnId}',
|
||||
path_params=_path_params,
|
||||
query_params=_query_params,
|
||||
header_params=_header_params,
|
||||
body=_body_params,
|
||||
post_params=_form_params,
|
||||
files=_files,
|
||||
auth_settings=_auth_settings,
|
||||
collection_formats=_collection_formats,
|
||||
_host=_host,
|
||||
_request_auth=_request_auth
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
@validate_call
|
||||
def update_dashboard(
|
||||
self,
|
||||
|
||||
@ -37,6 +37,7 @@ class AlertListAlertType(str, Enum):
|
||||
WEB_MINUS_PAGE_MINUS_LOAD = 'web-page-load'
|
||||
WEB_MINUS_TRANSACTION_MINUS_CLASSIC = 'web-transaction-classic'
|
||||
WEB_MINUS_TRANSACTION = 'web-transaction'
|
||||
API = 'api'
|
||||
WEB_MINUS_FTP_MINUS_SERVER = 'web-ftp-server'
|
||||
VOICE_MINUS_SIP_MINUS_SERVER = 'voice-sip-server'
|
||||
VOICE_MINUS_RTP_MINUS_STREAM = 'voice-rtp-stream'
|
||||
|
||||
@ -62,8 +62,10 @@ class ApiColorGridWidget(BaseModel):
|
||||
limit: Optional[StrictInt] = Field(default=None, description="Limit configured in the widget.")
|
||||
sort_by: Optional[LegacyWidgetSortProperty] = Field(default=None, alias="sortBy")
|
||||
sort_direction: Optional[LegacyWidgetSortDirection] = Field(default=None, alias="sortDirection")
|
||||
sort_group_by: Optional[LegacyWidgetSortProperty] = Field(default=None, alias="sortGroupBy")
|
||||
sort_group_direction: Optional[LegacyWidgetSortDirection] = Field(default=None, alias="sortGroupDirection")
|
||||
data_source: Optional[ColorGridDatasource] = Field(default=None, alias="dataSource")
|
||||
__properties: ClassVar[List[str]] = ["id", "title", "visualMode", "embedUrl", "isEmbedded", "metricGroup", "direction", "metric", "filters", "measure", "fixedTimespan", "apiLink", "shouldExcludeAlertSuppressionWindows", "_links", "minScale", "maxScale", "unit", "type", "cards", "groupCardsBy", "columns", "limit", "sortBy", "sortDirection", "dataSource"]
|
||||
__properties: ClassVar[List[str]] = ["id", "title", "visualMode", "embedUrl", "isEmbedded", "metricGroup", "direction", "metric", "filters", "measure", "fixedTimespan", "apiLink", "shouldExcludeAlertSuppressionWindows", "_links", "minScale", "maxScale", "unit", "type", "cards", "groupCardsBy", "columns", "limit", "sortBy", "sortDirection", "sortGroupBy", "sortGroupDirection", "dataSource"]
|
||||
|
||||
@field_validator('type')
|
||||
def type_validate_regular_expression(cls, value):
|
||||
@ -163,6 +165,8 @@ class ApiColorGridWidget(BaseModel):
|
||||
"limit": obj.get("limit"),
|
||||
"sortBy": obj.get("sortBy"),
|
||||
"sortDirection": obj.get("sortDirection"),
|
||||
"sortGroupBy": obj.get("sortGroupBy"),
|
||||
"sortGroupDirection": obj.get("sortGroupDirection"),
|
||||
"dataSource": obj.get("dataSource")
|
||||
})
|
||||
return _obj
|
||||
|
||||
@ -23,6 +23,7 @@ from thousandeyes_sdk.dashboards.models.dashboard_metric import DashboardMetric
|
||||
from thousandeyes_sdk.dashboards.models.dashboard_metric_direction import DashboardMetricDirection
|
||||
from thousandeyes_sdk.dashboards.models.metric_group import MetricGroup
|
||||
from thousandeyes_sdk.dashboards.models.multi_metrics_table_datasource import MultiMetricsTableDatasource
|
||||
from thousandeyes_sdk.dashboards.models.self_links import SelfLinks
|
||||
from typing import Optional, Set
|
||||
from typing_extensions import Self
|
||||
|
||||
@ -37,7 +38,8 @@ class ApiMultiMetricColumn(BaseModel):
|
||||
metric: Optional[DashboardMetric] = None
|
||||
filters: Optional[Dict[str, List[Any]]] = Field(default=None, description="(Optional) Specifies the filters applied to the widget. When present, the `filters` property displays. Each filter object has two properties: `filterProperty` and `filterValue`. The `filterProperty` can be values like `AGENT`, `ENDPOINT_MACHINE_ID`, `TEST`, `MONITOR`, etc. The `filterValue` represents an identifier array of the selected property.")
|
||||
measure: Optional[ApiWidgetMeasure] = None
|
||||
__properties: ClassVar[List[str]] = ["id", "dataSource", "metricGroup", "direction", "metric", "filters", "measure"]
|
||||
links: Optional[SelfLinks] = Field(default=None, alias="_links")
|
||||
__properties: ClassVar[List[str]] = ["id", "dataSource", "metricGroup", "direction", "metric", "filters", "measure", "_links"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -82,6 +84,9 @@ class ApiMultiMetricColumn(BaseModel):
|
||||
# override the default output from pydantic by calling `to_dict()` of measure
|
||||
if self.measure:
|
||||
_dict['measure'] = self.measure.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of links
|
||||
if self.links:
|
||||
_dict['_links'] = self.links.to_dict()
|
||||
return _dict
|
||||
|
||||
@classmethod
|
||||
@ -100,7 +105,8 @@ class ApiMultiMetricColumn(BaseModel):
|
||||
"direction": obj.get("direction"),
|
||||
"metric": obj.get("metric"),
|
||||
"filters": obj.get("filters"),
|
||||
"measure": ApiWidgetMeasure.from_dict(obj["measure"]) if obj.get("measure") is not None else None
|
||||
"measure": ApiWidgetMeasure.from_dict(obj["measure"]) if obj.get("measure") is not None else None,
|
||||
"_links": SelfLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None
|
||||
})
|
||||
return _obj
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.dashboards.models.api_dashboard_asw import ApiDashboardAsw
|
||||
from thousandeyes_sdk.dashboards.models.api_widget_data_point import ApiWidgetDataPoint
|
||||
from thousandeyes_sdk.dashboards.models.self_links import SelfLinks
|
||||
from typing import Optional, Set
|
||||
from typing_extensions import Self
|
||||
|
||||
@ -32,7 +33,8 @@ class ApiMultiMetricColumnData(BaseModel):
|
||||
points: Optional[List[ApiWidgetDataPoint]] = None
|
||||
status: Optional[StrictStr] = Field(default=None, description="Message for not fully configured card or no data.")
|
||||
alert_suppression_windows: Optional[List[ApiDashboardAsw]] = Field(default=None, alias="alertSuppressionWindows")
|
||||
__properties: ClassVar[List[str]] = ["columnId", "binSize", "points", "status", "alertSuppressionWindows"]
|
||||
links: Optional[SelfLinks] = Field(default=None, alias="_links")
|
||||
__properties: ClassVar[List[str]] = ["columnId", "binSize", "points", "status", "alertSuppressionWindows", "_links"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -88,6 +90,9 @@ class ApiMultiMetricColumnData(BaseModel):
|
||||
if _item:
|
||||
_items.append(_item.to_dict())
|
||||
_dict['alertSuppressionWindows'] = _items
|
||||
# override the default output from pydantic by calling `to_dict()` of links
|
||||
if self.links:
|
||||
_dict['_links'] = self.links.to_dict()
|
||||
return _dict
|
||||
|
||||
@classmethod
|
||||
@ -104,7 +109,8 @@ class ApiMultiMetricColumnData(BaseModel):
|
||||
"binSize": obj.get("binSize"),
|
||||
"points": [ApiWidgetDataPoint.from_dict(_item) for _item in obj["points"]] if obj.get("points") is not None else None,
|
||||
"status": obj.get("status"),
|
||||
"alertSuppressionWindows": [ApiDashboardAsw.from_dict(_item) for _item in obj["alertSuppressionWindows"]] if obj.get("alertSuppressionWindows") is not None else None
|
||||
"alertSuppressionWindows": [ApiDashboardAsw.from_dict(_item) for _item in obj["alertSuppressionWindows"]] if obj.get("alertSuppressionWindows") is not None else None,
|
||||
"_links": SelfLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None
|
||||
})
|
||||
return _obj
|
||||
|
||||
|
||||
@ -25,6 +25,7 @@ from thousandeyes_sdk.dashboards.models.dashboard_metric import DashboardMetric
|
||||
from thousandeyes_sdk.dashboards.models.dashboard_metric_direction import DashboardMetricDirection
|
||||
from thousandeyes_sdk.dashboards.models.metric_group import MetricGroup
|
||||
from thousandeyes_sdk.dashboards.models.numbers_card_datasource import NumbersCardDatasource
|
||||
from thousandeyes_sdk.dashboards.models.self_links import SelfLinks
|
||||
from typing import Optional, Set
|
||||
from typing_extensions import Self
|
||||
|
||||
@ -46,7 +47,8 @@ class ApiNumbersCard(BaseModel):
|
||||
direction: Optional[DashboardMetricDirection] = None
|
||||
metric: Optional[DashboardMetric] = None
|
||||
filters: Optional[Dict[str, List[Any]]] = Field(default=None, description="(Optional) Specifies the filters applied to the widget. When present, the `filters` property displays. Each filter object has two properties: `filterProperty` and `filterValue`. The `filterProperty` can be values like `AGENT`, `ENDPOINT_MACHINE_ID`, `TEST`, `MONITOR`, etc. The `filterValue` represents an identifier array of the selected property.")
|
||||
__properties: ClassVar[List[str]] = ["minScale", "maxScale", "unit", "id", "description", "measure", "compareToPreviousValue", "fixedTimespan", "shouldExcludeAlertSuppressionWindows", "dataSource", "metricGroup", "direction", "metric", "filters"]
|
||||
links: Optional[SelfLinks] = Field(default=None, alias="_links")
|
||||
__properties: ClassVar[List[str]] = ["minScale", "maxScale", "unit", "id", "description", "measure", "compareToPreviousValue", "fixedTimespan", "shouldExcludeAlertSuppressionWindows", "dataSource", "metricGroup", "direction", "metric", "filters", "_links"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -94,6 +96,9 @@ class ApiNumbersCard(BaseModel):
|
||||
# override the default output from pydantic by calling `to_dict()` of fixed_timespan
|
||||
if self.fixed_timespan:
|
||||
_dict['fixedTimespan'] = self.fixed_timespan.to_dict()
|
||||
# override the default output from pydantic by calling `to_dict()` of links
|
||||
if self.links:
|
||||
_dict['_links'] = self.links.to_dict()
|
||||
return _dict
|
||||
|
||||
@classmethod
|
||||
@ -119,7 +124,8 @@ class ApiNumbersCard(BaseModel):
|
||||
"metricGroup": obj.get("metricGroup"),
|
||||
"direction": obj.get("direction"),
|
||||
"metric": obj.get("metric"),
|
||||
"filters": obj.get("filters")
|
||||
"filters": obj.get("filters"),
|
||||
"_links": SelfLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None
|
||||
})
|
||||
return _obj
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ from datetime import datetime
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional, Union
|
||||
from thousandeyes_sdk.dashboards.models.api_dashboard_asw import ApiDashboardAsw
|
||||
from thousandeyes_sdk.dashboards.models.self_links import SelfLinks
|
||||
from typing import Optional, Set
|
||||
from typing_extensions import Self
|
||||
|
||||
@ -37,7 +38,8 @@ class ApiNumbersCardData(BaseModel):
|
||||
value: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Aggregated value.")
|
||||
status: Optional[StrictStr] = Field(default=None, description="Message for not fully configured card or no data.")
|
||||
alert_suppression_windows: Optional[List[ApiDashboardAsw]] = Field(default=None, alias="alertSuppressionWindows")
|
||||
__properties: ClassVar[List[str]] = ["cardId", "startDate", "endDate", "previousValue", "binSize", "timestamp", "numberOfDataPoints", "value", "status", "alertSuppressionWindows"]
|
||||
links: Optional[SelfLinks] = Field(default=None, alias="_links")
|
||||
__properties: ClassVar[List[str]] = ["cardId", "startDate", "endDate", "previousValue", "binSize", "timestamp", "numberOfDataPoints", "value", "status", "alertSuppressionWindows", "_links"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -86,6 +88,9 @@ class ApiNumbersCardData(BaseModel):
|
||||
if _item:
|
||||
_items.append(_item.to_dict())
|
||||
_dict['alertSuppressionWindows'] = _items
|
||||
# override the default output from pydantic by calling `to_dict()` of links
|
||||
if self.links:
|
||||
_dict['_links'] = self.links.to_dict()
|
||||
return _dict
|
||||
|
||||
@classmethod
|
||||
@ -107,7 +112,8 @@ class ApiNumbersCardData(BaseModel):
|
||||
"numberOfDataPoints": obj.get("numberOfDataPoints"),
|
||||
"value": obj.get("value"),
|
||||
"status": obj.get("status"),
|
||||
"alertSuppressionWindows": [ApiDashboardAsw.from_dict(_item) for _item in obj["alertSuppressionWindows"]] if obj.get("alertSuppressionWindows") is not None else None
|
||||
"alertSuppressionWindows": [ApiDashboardAsw.from_dict(_item) for _item in obj["alertSuppressionWindows"]] if obj.get("alertSuppressionWindows") is not None else None,
|
||||
"_links": SelfLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None
|
||||
})
|
||||
return _obj
|
||||
|
||||
|
||||
@ -37,6 +37,7 @@ class LegacyAlertListAlertType(str, Enum):
|
||||
WEB_MINUS__PAGE_LOAD = 'Web - Page Load'
|
||||
WEB_MINUS__TRANSACTION_LEFT_PARENTHESIS_CLASSIC_RIGHT_PARENTHESIS = 'Web - Transaction (Classic)'
|
||||
WEB_MINUS__TRANSACTION = 'Web - Transaction'
|
||||
API = 'API'
|
||||
WEB_MINUS__FTP_SERVER = 'Web - FTP Server'
|
||||
VOICE_MINUS__SIP_SERVER = 'Voice - SIP Server'
|
||||
VOICE_MINUS__RTP_STREAM = 'Voice - RTP Stream'
|
||||
|
||||
@ -386,6 +386,18 @@ class TestDashboardSnapshotsApi(unittest.TestCase):
|
||||
"cards" : [ {
|
||||
"numberOfDataPoints" : 24192,
|
||||
"endDate" : "2023-05-16T10:14:28Z",
|
||||
"_links" : {
|
||||
"self" : {
|
||||
"hreflang" : "hreflang",
|
||||
"templated" : true,
|
||||
"profile" : "profile",
|
||||
"name" : "name",
|
||||
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
|
||||
"type" : "type",
|
||||
"deprecation" : "deprecation",
|
||||
"title" : "title"
|
||||
}
|
||||
},
|
||||
"cardId" : "lrxxr",
|
||||
"alertSuppressionWindows" : [ {
|
||||
"testIds" : [ "281474976710661" ],
|
||||
@ -415,6 +427,18 @@ class TestDashboardSnapshotsApi(unittest.TestCase):
|
||||
}, {
|
||||
"numberOfDataPoints" : 24192,
|
||||
"endDate" : "2023-05-16T10:14:28Z",
|
||||
"_links" : {
|
||||
"self" : {
|
||||
"hreflang" : "hreflang",
|
||||
"templated" : true,
|
||||
"profile" : "profile",
|
||||
"name" : "name",
|
||||
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
|
||||
"type" : "type",
|
||||
"deprecation" : "deprecation",
|
||||
"title" : "title"
|
||||
}
|
||||
},
|
||||
"cardId" : "lrxxr",
|
||||
"alertSuppressionWindows" : [ {
|
||||
"testIds" : [ "281474976710661" ],
|
||||
@ -500,6 +524,18 @@ class TestDashboardSnapshotsApi(unittest.TestCase):
|
||||
"target" : "www.google.com"
|
||||
} ],
|
||||
"columns" : [ {
|
||||
"_links" : {
|
||||
"self" : {
|
||||
"hreflang" : "hreflang",
|
||||
"templated" : true,
|
||||
"profile" : "profile",
|
||||
"name" : "name",
|
||||
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
|
||||
"type" : "type",
|
||||
"deprecation" : "deprecation",
|
||||
"title" : "title"
|
||||
}
|
||||
},
|
||||
"columnId" : "938to",
|
||||
"alertSuppressionWindows" : [ {
|
||||
"testIds" : [ "281474976710661" ],
|
||||
@ -546,6 +582,18 @@ class TestDashboardSnapshotsApi(unittest.TestCase):
|
||||
} ],
|
||||
"status" : "No data"
|
||||
}, {
|
||||
"_links" : {
|
||||
"self" : {
|
||||
"hreflang" : "hreflang",
|
||||
"templated" : true,
|
||||
"profile" : "profile",
|
||||
"name" : "name",
|
||||
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
|
||||
"type" : "type",
|
||||
"deprecation" : "deprecation",
|
||||
"title" : "title"
|
||||
}
|
||||
},
|
||||
"columnId" : "938to",
|
||||
"alertSuppressionWindows" : [ {
|
||||
"testIds" : [ "281474976710661" ],
|
||||
|
||||
@ -484,6 +484,18 @@ class TestDashboardsApi(unittest.TestCase):
|
||||
"cards" : [ {
|
||||
"numberOfDataPoints" : 24192,
|
||||
"endDate" : "2023-05-16T10:14:28Z",
|
||||
"_links" : {
|
||||
"self" : {
|
||||
"hreflang" : "hreflang",
|
||||
"templated" : true,
|
||||
"profile" : "profile",
|
||||
"name" : "name",
|
||||
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
|
||||
"type" : "type",
|
||||
"deprecation" : "deprecation",
|
||||
"title" : "title"
|
||||
}
|
||||
},
|
||||
"cardId" : "lrxxr",
|
||||
"alertSuppressionWindows" : [ {
|
||||
"testIds" : [ "281474976710661" ],
|
||||
@ -513,6 +525,18 @@ class TestDashboardsApi(unittest.TestCase):
|
||||
}, {
|
||||
"numberOfDataPoints" : 24192,
|
||||
"endDate" : "2023-05-16T10:14:28Z",
|
||||
"_links" : {
|
||||
"self" : {
|
||||
"hreflang" : "hreflang",
|
||||
"templated" : true,
|
||||
"profile" : "profile",
|
||||
"name" : "name",
|
||||
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
|
||||
"type" : "type",
|
||||
"deprecation" : "deprecation",
|
||||
"title" : "title"
|
||||
}
|
||||
},
|
||||
"cardId" : "lrxxr",
|
||||
"alertSuppressionWindows" : [ {
|
||||
"testIds" : [ "281474976710661" ],
|
||||
@ -598,6 +622,18 @@ class TestDashboardsApi(unittest.TestCase):
|
||||
"target" : "www.google.com"
|
||||
} ],
|
||||
"columns" : [ {
|
||||
"_links" : {
|
||||
"self" : {
|
||||
"hreflang" : "hreflang",
|
||||
"templated" : true,
|
||||
"profile" : "profile",
|
||||
"name" : "name",
|
||||
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
|
||||
"type" : "type",
|
||||
"deprecation" : "deprecation",
|
||||
"title" : "title"
|
||||
}
|
||||
},
|
||||
"columnId" : "938to",
|
||||
"alertSuppressionWindows" : [ {
|
||||
"testIds" : [ "281474976710661" ],
|
||||
@ -644,6 +680,18 @@ class TestDashboardsApi(unittest.TestCase):
|
||||
} ],
|
||||
"status" : "No data"
|
||||
}, {
|
||||
"_links" : {
|
||||
"self" : {
|
||||
"hreflang" : "hreflang",
|
||||
"templated" : true,
|
||||
"profile" : "profile",
|
||||
"name" : "name",
|
||||
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
|
||||
"type" : "type",
|
||||
"deprecation" : "deprecation",
|
||||
"title" : "title"
|
||||
}
|
||||
},
|
||||
"columnId" : "938to",
|
||||
"alertSuppressionWindows" : [ {
|
||||
"testIds" : [ "281474976710661" ],
|
||||
@ -1083,6 +1131,125 @@ class TestDashboardsApi(unittest.TestCase):
|
||||
self.assertIsNotNone(element)
|
||||
assert_constructed_model_matches_example_json(element, response_loaded_json[index])
|
||||
|
||||
def test_get_individual_card_data_models_validation(self) -> None:
|
||||
"""Test case for get_individual_card_data request and response models"""
|
||||
|
||||
response_body_json = """
|
||||
{
|
||||
"numberOfDataPoints" : 24192,
|
||||
"endDate" : "2023-05-16T10:14:28Z",
|
||||
"_links" : {
|
||||
"self" : {
|
||||
"hreflang" : "hreflang",
|
||||
"templated" : true,
|
||||
"profile" : "profile",
|
||||
"name" : "name",
|
||||
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
|
||||
"type" : "type",
|
||||
"deprecation" : "deprecation",
|
||||
"title" : "title"
|
||||
}
|
||||
},
|
||||
"cardId" : "lrxxr",
|
||||
"alertSuppressionWindows" : [ {
|
||||
"testIds" : [ "281474976710661" ],
|
||||
"repeatUnit" : "week",
|
||||
"durationInSeconds" : 7200,
|
||||
"repeat" : "custom",
|
||||
"name" : "Test dashboards",
|
||||
"repeatEvery" : 5,
|
||||
"id" : "281474976710662",
|
||||
"startTimes" : [ "2023-05-16T10:14:28Z" ]
|
||||
}, {
|
||||
"testIds" : [ "281474976710661" ],
|
||||
"repeatUnit" : "week",
|
||||
"durationInSeconds" : 7200,
|
||||
"repeat" : "custom",
|
||||
"name" : "Test dashboards",
|
||||
"repeatEvery" : 5,
|
||||
"id" : "281474976710662",
|
||||
"startTimes" : [ "2023-05-16T10:14:28Z" ]
|
||||
} ],
|
||||
"binSize" : 3600,
|
||||
"previousValue" : 500.0,
|
||||
"value" : 100.0,
|
||||
"startDate" : "2023-05-16T10:14:28Z",
|
||||
"timestamp" : 1567620000,
|
||||
"status" : "No data"
|
||||
}"""
|
||||
|
||||
response_loaded_json = json.loads(response_body_json)
|
||||
response_from_json = thousandeyes_sdk.dashboards.models.ApiNumbersCardData.from_json(response_body_json)
|
||||
assert_constructed_model_matches_example_json(response_from_json, response_loaded_json)
|
||||
|
||||
def test_get_individual_column_data_models_validation(self) -> None:
|
||||
"""Test case for get_individual_column_data request and response models"""
|
||||
|
||||
response_body_json = """
|
||||
{
|
||||
"_links" : {
|
||||
"self" : {
|
||||
"hreflang" : "hreflang",
|
||||
"templated" : true,
|
||||
"profile" : "profile",
|
||||
"name" : "name",
|
||||
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
|
||||
"type" : "type",
|
||||
"deprecation" : "deprecation",
|
||||
"title" : "title"
|
||||
}
|
||||
},
|
||||
"columnId" : "938to",
|
||||
"alertSuppressionWindows" : [ {
|
||||
"testIds" : [ "281474976710661" ],
|
||||
"repeatUnit" : "week",
|
||||
"durationInSeconds" : 7200,
|
||||
"repeat" : "custom",
|
||||
"name" : "Test dashboards",
|
||||
"repeatEvery" : 5,
|
||||
"id" : "281474976710662",
|
||||
"startTimes" : [ "2023-05-16T10:14:28Z" ]
|
||||
}, {
|
||||
"testIds" : [ "281474976710661" ],
|
||||
"repeatUnit" : "week",
|
||||
"durationInSeconds" : 7200,
|
||||
"repeat" : "custom",
|
||||
"name" : "Test dashboards",
|
||||
"repeatEvery" : 5,
|
||||
"id" : "281474976710662",
|
||||
"startTimes" : [ "2023-05-16T10:14:28Z" ]
|
||||
} ],
|
||||
"binSize" : 3600,
|
||||
"points" : [ {
|
||||
"numberOfDataPoints" : 23304,
|
||||
"groups" : [ {
|
||||
"groupProperty" : "COUNTRY",
|
||||
"groupValue" : "US"
|
||||
}, {
|
||||
"groupProperty" : "COUNTRY",
|
||||
"groupValue" : "US"
|
||||
} ],
|
||||
"value" : 100.0,
|
||||
"timestamp" : 1567620000
|
||||
}, {
|
||||
"numberOfDataPoints" : 23304,
|
||||
"groups" : [ {
|
||||
"groupProperty" : "COUNTRY",
|
||||
"groupValue" : "US"
|
||||
}, {
|
||||
"groupProperty" : "COUNTRY",
|
||||
"groupValue" : "US"
|
||||
} ],
|
||||
"value" : 100.0,
|
||||
"timestamp" : 1567620000
|
||||
} ],
|
||||
"status" : "No data"
|
||||
}"""
|
||||
|
||||
response_loaded_json = json.loads(response_body_json)
|
||||
response_from_json = thousandeyes_sdk.dashboards.models.ApiMultiMetricColumnData.from_json(response_body_json)
|
||||
assert_constructed_model_matches_example_json(response_from_json, response_loaded_json)
|
||||
|
||||
def test_update_dashboard_models_validation(self) -> None:
|
||||
"""Test case for update_dashboard request and response models"""
|
||||
request_body_json = """
|
||||
|
||||
@ -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.63
|
||||
- API version: 7.0.68
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ For more information about Endpoint Agents, see [Endpoint Agents](https://docs.t
|
||||
|
||||
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 7.0.63
|
||||
- API version: 7.0.68
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ docs/EndpointHttpServerBaseTest.md
|
||||
docs/EndpointHttpServerInstantTest.md
|
||||
docs/EndpointHttpServerTest.md
|
||||
docs/EndpointInstantTest.md
|
||||
docs/EndpointIpVersionTemplate.md
|
||||
docs/EndpointIpVersionIn.md
|
||||
docs/EndpointRunScheduledInstantTestResult.md
|
||||
docs/EndpointScheduledTestType.md
|
||||
docs/EndpointSpecificAgentsSelectorConfig.md
|
||||
@ -49,7 +49,7 @@ src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_base_tes
|
||||
src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_instant_test.py
|
||||
src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_test.py
|
||||
src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_instant_test.py
|
||||
src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_ip_version_template.py
|
||||
src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_ip_version_in.py
|
||||
src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_run_scheduled_instant_test_result.py
|
||||
src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_scheduled_test_type.py
|
||||
src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_specific_agents_selector_config.py
|
||||
|
||||
@ -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.63
|
||||
- API version: 7.0.68
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
@ -121,7 +121,7 @@ Class | Method | HTTP request | Description
|
||||
- [EndpointHttpServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointHttpServerInstantTest.md)
|
||||
- [EndpointHttpServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointHttpServerTest.md)
|
||||
- [EndpointInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointInstantTest.md)
|
||||
- [EndpointIpVersionTemplate](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointIpVersionTemplate.md)
|
||||
- [EndpointIpVersionIn](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointIpVersionIn.md)
|
||||
- [EndpointRunScheduledInstantTestResult](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointRunScheduledInstantTestResult.md)
|
||||
- [EndpointScheduledTestType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointScheduledTestType.md)
|
||||
- [EndpointSpecificAgentsSelectorConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointSpecificAgentsSelectorConfig.md)
|
||||
|
||||
@ -10,6 +10,7 @@ Name | Type | Description | Notes
|
||||
**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional]
|
||||
**max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25]
|
||||
**test_name** | **str** | Name of the test. |
|
||||
**ip_version** | [**EndpointIpVersionIn**](EndpointIpVersionIn.md) | | [optional]
|
||||
**server_name** | **str** | A server address without a protocol or IP address. **Deprecated, use `server` instead**. | [optional]
|
||||
**server** | **str** | Target domain name or IP address. |
|
||||
**port** | **int** | Port number. | [optional] [default to 443]
|
||||
|
||||
@ -18,7 +18,7 @@ Name | Type | Description | Notes
|
||||
**modified_date** | **datetime** | UTC last modification date (ISO date-time format). | [optional] [readonly]
|
||||
**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True]
|
||||
**protocol** | [**EndpointTestProtocol**](EndpointTestProtocol.md) | | [optional]
|
||||
**ip_version** | [**EndpointIpVersionTemplate**](EndpointIpVersionTemplate.md) | | [optional]
|
||||
**ip_version** | **str** | For reading current network test configurations, the IP version of the test. Values include V4_ONLY, V6_ONLY, V6_PREFER, and OS_DEFAULT. | [optional]
|
||||
**server** | **str** | Target domain name or IP address. | [optional]
|
||||
**test_id** | **str** | Each test is assigned a unique ID to access test data from other endpoints. | [optional] [readonly]
|
||||
**test_name** | **str** | Name of the test. | [optional]
|
||||
|
||||
@ -10,6 +10,7 @@ Name | Type | Description | Notes
|
||||
**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional]
|
||||
**max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25]
|
||||
**test_name** | **str** | Name of the test. |
|
||||
**ip_version** | [**EndpointIpVersionIn**](EndpointIpVersionIn.md) | | [optional]
|
||||
**auth_type** | [**EndpointTestAuthType**](EndpointTestAuthType.md) | | [optional]
|
||||
**has_path_trace_in_session** | **bool** | Enables \"in session\" path trace. When enabled, this option initiates a TCP session with the target server and sends path trace packets within the established TCP session. | [optional]
|
||||
**http_time_limit** | **int** | Maximum amount of time in milliseconds the agents wait before a request times out. | [optional] [default to 5000]
|
||||
|
||||
@ -18,7 +18,7 @@ Name | Type | Description | Notes
|
||||
**modified_date** | **datetime** | UTC last modification date (ISO date-time format). | [optional] [readonly]
|
||||
**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True]
|
||||
**protocol** | [**EndpointTestProtocol**](EndpointTestProtocol.md) | | [optional]
|
||||
**ip_version** | [**EndpointIpVersionTemplate**](EndpointIpVersionTemplate.md) | | [optional]
|
||||
**ip_version** | **str** | For reading current network test configurations, the IP version of the test. Values include V4_ONLY, V6_ONLY, V6_PREFER, and OS_DEFAULT. | [optional]
|
||||
**server** | **str** | Target domain name or IP address. | [optional]
|
||||
**test_id** | **str** | Each test is assigned a unique ID to access test data from other endpoints. | [optional] [readonly]
|
||||
**test_name** | **str** | Name of the test. | [optional]
|
||||
|
||||
@ -10,6 +10,7 @@ Name | Type | Description | Notes
|
||||
**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional]
|
||||
**max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25]
|
||||
**test_name** | **str** | Name of the test. |
|
||||
**ip_version** | [**EndpointIpVersionIn**](EndpointIpVersionIn.md) | | [optional]
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# EndpointIpVersionTemplate
|
||||
# EndpointIpVersionIn
|
||||
|
||||
IP version the test should use for network tests.
|
||||
For configuring network tests, the IP version of the test.
|
||||
|
||||
## Properties
|
||||
|
||||
@ -18,7 +18,7 @@ Name | Type | Description | Notes
|
||||
**modified_date** | **datetime** | UTC last modification date (ISO date-time format). | [optional] [readonly]
|
||||
**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True]
|
||||
**protocol** | [**EndpointTestProtocol**](EndpointTestProtocol.md) | | [optional]
|
||||
**ip_version** | [**EndpointIpVersionTemplate**](EndpointIpVersionTemplate.md) | | [optional]
|
||||
**ip_version** | **str** | For reading current network test configurations, the IP version of the test. Values include V4_ONLY, V6_ONLY, V6_PREFER, and OS_DEFAULT. | [optional]
|
||||
**server** | **str** | Target domain name or IP address. | [optional]
|
||||
**test_id** | **str** | Each test is assigned a unique ID to access test data from other endpoints. | [optional] [readonly]
|
||||
**test_name** | **str** | Name of the test. | [optional]
|
||||
|
||||
@ -29,7 +29,7 @@ from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_http_server_base_te
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_http_server_instant_test import EndpointHttpServerInstantTest
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_http_server_test import EndpointHttpServerTest
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_instant_test import EndpointInstantTest
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_ip_version_template import EndpointIpVersionTemplate
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_ip_version_in import EndpointIpVersionIn
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_run_scheduled_instant_test_result import EndpointRunScheduledInstantTestResult
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_scheduled_test_type import EndpointScheduledTestType
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_specific_agents_selector_config import EndpointSpecificAgentsSelectorConfig
|
||||
|
||||
@ -22,7 +22,7 @@ from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_http_server_base_te
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_http_server_instant_test import EndpointHttpServerInstantTest
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_http_server_test import EndpointHttpServerTest
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_instant_test import EndpointInstantTest
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_ip_version_template import EndpointIpVersionTemplate
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_ip_version_in import EndpointIpVersionIn
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_run_scheduled_instant_test_result import EndpointRunScheduledInstantTestResult
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_scheduled_test_type import EndpointScheduledTestType
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_specific_agents_selector_config import EndpointSpecificAgentsSelectorConfig
|
||||
|
||||
@ -18,6 +18,7 @@ import json
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_ip_version_in import EndpointIpVersionIn
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_test_agent_selector_type import EndpointTestAgentSelectorType
|
||||
from typing import Optional, Set
|
||||
from typing_extensions import Self
|
||||
@ -31,10 +32,11 @@ class EndpointAgentToServerInstantTest(BaseModel):
|
||||
endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels")
|
||||
max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines")
|
||||
test_name: StrictStr = Field(description="Name of the test.", alias="testName")
|
||||
ip_version: Optional[EndpointIpVersionIn] = Field(default=None, alias="ipVersion")
|
||||
server_name: Optional[StrictStr] = Field(default=None, description="A server address without a protocol or IP address. **Deprecated, use `server` instead**.", alias="serverName")
|
||||
server: StrictStr = Field(description="Target domain name or IP address.")
|
||||
port: Optional[StrictInt] = Field(default=443, description="Port number.")
|
||||
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "serverName", "server", "port"]
|
||||
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "ipVersion", "serverName", "server", "port"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -93,6 +95,7 @@ class EndpointAgentToServerInstantTest(BaseModel):
|
||||
"endpointAgentLabels": obj.get("endpointAgentLabels"),
|
||||
"maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25,
|
||||
"testName": obj.get("testName"),
|
||||
"ipVersion": obj.get("ipVersion"),
|
||||
"serverName": obj.get("serverName"),
|
||||
"server": obj.get("server"),
|
||||
"port": obj.get("port") if obj.get("port") is not None else 443
|
||||
|
||||
@ -21,7 +21,6 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, Strict
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from typing_extensions import Annotated
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_selector_config import EndpointAgentSelectorConfig
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_ip_version_template import EndpointIpVersionTemplate
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_test_links import EndpointTestLinks
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_test_protocol import EndpointTestProtocol
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.test_interval import TestInterval
|
||||
@ -47,7 +46,7 @@ class EndpointAgentToServerTest(BaseModel):
|
||||
modified_date: Optional[datetime] = Field(default=None, description="UTC last modification date (ISO date-time format).", alias="modifiedDate")
|
||||
network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements")
|
||||
protocol: Optional[EndpointTestProtocol] = None
|
||||
ip_version: Optional[EndpointIpVersionTemplate] = Field(default=None, alias="ipVersion")
|
||||
ip_version: Optional[StrictStr] = Field(default=None, description="For reading current network test configurations, the IP version of the test. Values include V4_ONLY, V6_ONLY, V6_PREFER, and OS_DEFAULT.", alias="ipVersion")
|
||||
server: Optional[StrictStr] = Field(default=None, description="Target domain name or IP address.")
|
||||
test_id: Optional[StrictStr] = Field(default=None, description="Each test is assigned a unique ID to access test data from other endpoints.", alias="testId")
|
||||
test_name: Optional[StrictStr] = Field(default=None, description="Name of the test.", alias="testName")
|
||||
|
||||
@ -18,6 +18,7 @@ import json
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_ip_version_in import EndpointIpVersionIn
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_test_agent_selector_type import EndpointTestAgentSelectorType
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_test_auth_type import EndpointTestAuthType
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_test_protocol import EndpointTestProtocol
|
||||
@ -35,6 +36,7 @@ class EndpointHttpServerInstantTest(BaseModel):
|
||||
endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels")
|
||||
max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines")
|
||||
test_name: StrictStr = Field(description="Name of the test.", alias="testName")
|
||||
ip_version: Optional[EndpointIpVersionIn] = Field(default=None, alias="ipVersion")
|
||||
auth_type: Optional[EndpointTestAuthType] = Field(default=None, alias="authType")
|
||||
has_path_trace_in_session: Optional[StrictBool] = Field(default=None, description="Enables \"in session\" path trace. When enabled, this option initiates a TCP session with the target server and sends path trace packets within the established TCP session.", alias="hasPathTraceInSession")
|
||||
http_time_limit: Optional[StrictInt] = Field(default=5000, description="Maximum amount of time in milliseconds the agents wait before a request times out.", alias="httpTimeLimit")
|
||||
@ -49,7 +51,7 @@ class EndpointHttpServerInstantTest(BaseModel):
|
||||
network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements")
|
||||
target_response_time: Optional[StrictInt] = Field(default=1000, description="Response time target in milliseconds. Affects the colors of agents and legends on the view page. The value is compared with actual response time in order to determine the color scale (from green to red).", alias="targetResponseTime")
|
||||
password: Optional[StrictStr] = Field(default=None, description="Password for Basic/NTLM authentication.")
|
||||
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "authType", "hasPathTraceInSession", "httpTimeLimit", "protocol", "username", "sslVersionId", "tcpProbeMode", "verifyCertificate", "url", "hasPing", "hasTraceroute", "networkMeasurements", "targetResponseTime", "password"]
|
||||
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "ipVersion", "authType", "hasPathTraceInSession", "httpTimeLimit", "protocol", "username", "sslVersionId", "tcpProbeMode", "verifyCertificate", "url", "hasPing", "hasTraceroute", "networkMeasurements", "targetResponseTime", "password"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -108,6 +110,7 @@ class EndpointHttpServerInstantTest(BaseModel):
|
||||
"endpointAgentLabels": obj.get("endpointAgentLabels"),
|
||||
"maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25,
|
||||
"testName": obj.get("testName"),
|
||||
"ipVersion": obj.get("ipVersion"),
|
||||
"authType": obj.get("authType"),
|
||||
"hasPathTraceInSession": obj.get("hasPathTraceInSession"),
|
||||
"httpTimeLimit": obj.get("httpTimeLimit") if obj.get("httpTimeLimit") is not None else 5000,
|
||||
|
||||
@ -21,7 +21,6 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, Strict
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from typing_extensions import Annotated
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_selector_config import EndpointAgentSelectorConfig
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_ip_version_template import EndpointIpVersionTemplate
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_test_auth_type import EndpointTestAuthType
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_test_links import EndpointTestLinks
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_test_protocol import EndpointTestProtocol
|
||||
@ -49,7 +48,7 @@ class EndpointHttpServerTest(BaseModel):
|
||||
modified_date: Optional[datetime] = Field(default=None, description="UTC last modification date (ISO date-time format).", alias="modifiedDate")
|
||||
network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements")
|
||||
protocol: Optional[EndpointTestProtocol] = None
|
||||
ip_version: Optional[EndpointIpVersionTemplate] = Field(default=None, alias="ipVersion")
|
||||
ip_version: Optional[StrictStr] = Field(default=None, description="For reading current network test configurations, the IP version of the test. Values include V4_ONLY, V6_ONLY, V6_PREFER, and OS_DEFAULT.", alias="ipVersion")
|
||||
server: Optional[StrictStr] = Field(default=None, description="Target domain name or IP address.")
|
||||
test_id: Optional[StrictStr] = Field(default=None, description="Each test is assigned a unique ID to access test data from other endpoints.", alias="testId")
|
||||
test_name: Optional[StrictStr] = Field(default=None, description="Name of the test.", alias="testName")
|
||||
|
||||
@ -18,6 +18,7 @@ import json
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
|
||||
from typing import Any, ClassVar, Dict, List, Optional
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_ip_version_in import EndpointIpVersionIn
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_test_agent_selector_type import EndpointTestAgentSelectorType
|
||||
from typing import Optional, Set
|
||||
from typing_extensions import Self
|
||||
@ -31,7 +32,8 @@ class EndpointInstantTest(BaseModel):
|
||||
endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels")
|
||||
max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines")
|
||||
test_name: StrictStr = Field(description="Name of the test.", alias="testName")
|
||||
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName"]
|
||||
ip_version: Optional[EndpointIpVersionIn] = Field(default=None, alias="ipVersion")
|
||||
__properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "ipVersion"]
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@ -89,7 +91,8 @@ class EndpointInstantTest(BaseModel):
|
||||
"agents": obj.get("agents"),
|
||||
"endpointAgentLabels": obj.get("endpointAgentLabels"),
|
||||
"maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25,
|
||||
"testName": obj.get("testName")
|
||||
"testName": obj.get("testName"),
|
||||
"ipVersion": obj.get("ipVersion")
|
||||
})
|
||||
return _obj
|
||||
|
||||
|
||||
@ -17,9 +17,9 @@ from enum import Enum
|
||||
from typing_extensions import Self
|
||||
|
||||
|
||||
class EndpointIpVersionTemplate(str, Enum):
|
||||
class EndpointIpVersionIn(str, Enum):
|
||||
"""
|
||||
IP version the test should use for network tests.
|
||||
For configuring network tests, the IP version of the test.
|
||||
"""
|
||||
|
||||
"""
|
||||
@ -33,7 +33,7 @@ class EndpointIpVersionTemplate(str, Enum):
|
||||
|
||||
@classmethod
|
||||
def from_json(cls, json_str: str) -> Self:
|
||||
"""Create an instance of EndpointIpVersionTemplate from a JSON string"""
|
||||
"""Create an instance of EndpointIpVersionIn from a JSON string"""
|
||||
return cls(json.loads(json_str))
|
||||
|
||||
@classmethod
|
||||
@ -20,7 +20,6 @@ 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_instant_tests.models.endpoint_agent_selector_config import EndpointAgentSelectorConfig
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_ip_version_template import EndpointIpVersionTemplate
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_scheduled_test_type import EndpointScheduledTestType
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_test_links import EndpointTestLinks
|
||||
from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_test_protocol import EndpointTestProtocol
|
||||
@ -47,7 +46,7 @@ class EndpointTest(BaseModel):
|
||||
modified_date: Optional[datetime] = Field(default=None, description="UTC last modification date (ISO date-time format).", alias="modifiedDate")
|
||||
network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements")
|
||||
protocol: Optional[EndpointTestProtocol] = None
|
||||
ip_version: Optional[EndpointIpVersionTemplate] = Field(default=None, alias="ipVersion")
|
||||
ip_version: Optional[StrictStr] = Field(default=None, description="For reading current network test configurations, the IP version of the test. Values include V4_ONLY, V6_ONLY, V6_PREFER, and OS_DEFAULT.", alias="ipVersion")
|
||||
server: Optional[StrictStr] = Field(default=None, description="Target domain name or IP address.")
|
||||
test_id: Optional[StrictStr] = Field(default=None, description="Each test is assigned a unique ID to access test data from other endpoints.", alias="testId")
|
||||
test_name: Optional[StrictStr] = Field(default=None, description="Name of the test.", alias="testName")
|
||||
|
||||
@ -33,6 +33,7 @@ class TestAgentToServerEndpointInstantScheduledTestsApi(unittest.TestCase):
|
||||
request_body_json = """
|
||||
{
|
||||
"server" : "www.example.com",
|
||||
"ipVersion" : "V4_ONLY",
|
||||
"port" : 443,
|
||||
"agentSelectorType" : "all-agents",
|
||||
"maxMachines" : 25,
|
||||
|
||||
@ -44,6 +44,7 @@ class TestHTTPServerEndpointInstantScheduledTestsApi(unittest.TestCase):
|
||||
"agents" : [ "0a3b9998-dc3a-4ff2-b50d-ac4a7cd986e1", "66eec0f1-72b4-4755-aa83-3aed61d17f3c" ],
|
||||
"protocol" : "icmp",
|
||||
"password" : "password",
|
||||
"ipVersion" : "V4_ONLY",
|
||||
"hasTraceroute" : true,
|
||||
"targetResponseTime" : 1000,
|
||||
"authType" : "none",
|
||||
|
||||
@ -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.63
|
||||
- API version: 7.0.68
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
|
||||
@ -21,7 +21,6 @@ docs/EndpointBrowser.md
|
||||
docs/EndpointHttpDataPointScore.md
|
||||
docs/EndpointHttpServerBaseTest.md
|
||||
docs/EndpointHttpServerTest.md
|
||||
docs/EndpointIpVersionTemplate.md
|
||||
docs/EndpointNetworkTopologyResultRequest.md
|
||||
docs/EndpointNetworkTopologyResultRequestFilter.md
|
||||
docs/EndpointNetworkTopologyThresholdFilter.md
|
||||
@ -192,7 +191,6 @@ src/thousandeyes_sdk/endpoint_test_results/models/endpoint_browser.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_http_data_point_score.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_http_server_base_test.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_http_server_test.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_ip_version_template.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_result_request.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_result_request_filter.py
|
||||
src/thousandeyes_sdk/endpoint_test_results/models/endpoint_network_topology_threshold_filter.py
|
||||
|
||||
@ -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.63
|
||||
- API version: 7.0.68
|
||||
- Generator version: 7.6.0
|
||||
- Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator
|
||||
|
||||
@ -142,7 +142,6 @@ Class | Method | HTTP request | Description
|
||||
- [EndpointHttpDataPointScore](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointHttpDataPointScore.md)
|
||||
- [EndpointHttpServerBaseTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointHttpServerBaseTest.md)
|
||||
- [EndpointHttpServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointHttpServerTest.md)
|
||||
- [EndpointIpVersionTemplate](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointIpVersionTemplate.md)
|
||||
- [EndpointNetworkTopologyResultRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyResultRequest.md)
|
||||
- [EndpointNetworkTopologyResultRequestFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyResultRequestFilter.md)
|
||||
- [EndpointNetworkTopologyThresholdFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointNetworkTopologyThresholdFilter.md)
|
||||
|
||||
@ -19,7 +19,7 @@ Name | Type | Description | Notes
|
||||
**modified_date** | **datetime** | UTC last modification date (ISO date-time format). | [optional] [readonly]
|
||||
**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True]
|
||||
**protocol** | [**EndpointTestProtocol**](EndpointTestProtocol.md) | | [optional]
|
||||
**ip_version** | [**EndpointIpVersionTemplate**](EndpointIpVersionTemplate.md) | | [optional]
|
||||
**ip_version** | **str** | For reading current network test configurations, the IP version of the test. Values include V4_ONLY, V6_ONLY, V6_PREFER, and OS_DEFAULT. | [optional]
|
||||
**tcp_probe_mode** | [**TestProbeModeResponse**](TestProbeModeResponse.md) | | [optional]
|
||||
**test_id** | **str** | Each test is assigned a unique ID; this is used to access test information and results from other endpoints. | [optional] [readonly]
|
||||
**test_name** | **str** | Name of the test. | [optional]
|
||||
|
||||
@ -18,7 +18,7 @@ Name | Type | Description | Notes
|
||||
**modified_date** | **datetime** | UTC last modification date (ISO date-time format). | [optional] [readonly]
|
||||
**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True]
|
||||
**protocol** | [**EndpointTestProtocol**](EndpointTestProtocol.md) | | [optional]
|
||||
**ip_version** | [**EndpointIpVersionTemplate**](EndpointIpVersionTemplate.md) | | [optional]
|
||||
**ip_version** | **str** | For reading current network test configurations, the IP version of the test. Values include V4_ONLY, V6_ONLY, V6_PREFER, and OS_DEFAULT. | [optional]
|
||||
**server** | **str** | Target domain name or IP address. | [optional]
|
||||
**test_id** | **str** | Each test is assigned a unique ID to access test data from other endpoints. | [optional] [readonly]
|
||||
**test_name** | **str** | Name of the test. | [optional]
|
||||
|
||||
@ -18,7 +18,7 @@ Name | Type | Description | Notes
|
||||
**modified_date** | **datetime** | UTC last modification date (ISO date-time format). | [optional] [readonly]
|
||||
**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True]
|
||||
**protocol** | [**EndpointTestProtocol**](EndpointTestProtocol.md) | | [optional]
|
||||
**ip_version** | [**EndpointIpVersionTemplate**](EndpointIpVersionTemplate.md) | | [optional]
|
||||
**ip_version** | **str** | For reading current network test configurations, the IP version of the test. Values include V4_ONLY, V6_ONLY, V6_PREFER, and OS_DEFAULT. | [optional]
|
||||
**server** | **str** | Target domain name or IP address. | [optional]
|
||||
**test_id** | **str** | Each test is assigned a unique ID to access test data from other endpoints. | [optional] [readonly]
|
||||
**test_name** | **str** | Name of the test. | [optional]
|
||||
|
||||
@ -1,12 +0,0 @@
|
||||
# EndpointIpVersionTemplate
|
||||
|
||||
IP version the test should use for network tests.
|
||||
|
||||
## 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)
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ Name | Type | Description | Notes
|
||||
**modified_date** | **datetime** | UTC last modification date (ISO date-time format). | [optional] [readonly]
|
||||
**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True]
|
||||
**protocol** | [**EndpointTestProtocol**](EndpointTestProtocol.md) | | [optional]
|
||||
**ip_version** | [**EndpointIpVersionTemplate**](EndpointIpVersionTemplate.md) | | [optional]
|
||||
**ip_version** | **str** | For reading current network test configurations, the IP version of the test. Values include V4_ONLY, V6_ONLY, V6_PREFER, and OS_DEFAULT. | [optional]
|
||||
**server** | **str** | Target domain name or IP address. | [optional]
|
||||
**test_id** | **str** | Each test is assigned a unique ID to access test data from other endpoints. | [optional] [readonly]
|
||||
**test_name** | **str** | Name of the test. | [optional]
|
||||
|
||||
@ -18,7 +18,7 @@ Name | Type | Description | Notes
|
||||
**modified_date** | **datetime** | UTC last modification date (ISO date-time format). | [optional] [readonly]
|
||||
**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True]
|
||||
**protocol** | [**EndpointTestProtocol**](EndpointTestProtocol.md) | | [optional]
|
||||
**ip_version** | [**EndpointIpVersionTemplate**](EndpointIpVersionTemplate.md) | | [optional]
|
||||
**ip_version** | **str** | For reading current network test configurations, the IP version of the test. Values include V4_ONLY, V6_ONLY, V6_PREFER, and OS_DEFAULT. | [optional]
|
||||
**server** | **str** | Target domain name or IP address. | [optional]
|
||||
**test_id** | **str** | Each test is assigned a unique ID to access test data from other endpoints. | [optional] [readonly]
|
||||
**test_name** | **str** | Name of the test. | [optional]
|
||||
|
||||
@ -14,7 +14,7 @@ Method | HTTP request | Description
|
||||
|
||||
List endpoint network topologies probes
|
||||
|
||||
Returns a list of all endpoint local network topologies probes. Results from the last round are provided unless an explicit start and end is provided with `startDate`, `endDate` or `window` optional parameters. ## Request body filters This endpoint supports complex filtering using the request body. It is important these filters remain unaltered when making use of pagination, otherwise the results will not be coherent with the original request. ### Multiple filter fields When multiple filter fields are provided, a logical `AND` is applied between the filters. ``` curl --location --request POST 'https://api.thousandeyes.com/v7/endpoint/test-results/local-networks/topologies/filter' --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' --data-raw '{ \"searchFilters\": { \"platform\": [ \"mac\" ], \"domain\": [ \"thousandeyes.com\" ] }}' ``` ### Filter field with multiple values When a filter field contains multiple values, a logical `OR` is applied between the filter values. ``` curl --location --request POST 'https://api.thousandeyes.com/v7/endpoint/test-results/local-networks/topologies/filter' --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' --data-raw '{ \"searchFilters\": { \"networkId\": [ \"660b34109d12\", \"660b34109d15\" ] }}' ``` ### Combination of request parameters and body filters ``` curl --location --request POST 'https://api.thousandeyes.com/v7/endpoint/test-results/local-networks/topologies/filter?window=12h' --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' --data-raw '{ \"searchFilters\": { \"platform\": [ \"mac\" ], \"domain\": [ \"thousandeyes.com\" ], \"networkId\": [ \"660b34109d12\", \"660b34109d15\" ] }}' ``` ### Warning Note that a maximum of 12h worth of data can be retrieved at once. If you need more, you need to make multiple requests. Returns a `results` array of network topology probes. Network topology probes shown are from the latest round, or based on the time range specified.
|
||||
Returns a list of all endpoint local network topologies probes. All results are provided, oldest to newest (according to a specified page index and size) unless an explicit start and end is provided with `startDate`, `endDate` or `window` optional parameters. ## Request body filters This endpoint supports complex filtering using the request body. It is important these filters remain unaltered when making use of pagination, otherwise the results will not be coherent with the original request. ### Multiple filter fields When multiple filter fields are provided, a logical `AND` is applied between the filters. ``` curl --location --request POST 'https://api.thousandeyes.com/v7/endpoint/test-results/local-networks/topologies/filter' --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' --data-raw '{ \"searchFilters\": { \"platform\": [ \"mac\" ], \"domain\": [ \"thousandeyes.com\" ] }}' ``` ### Filter field with multiple values When a filter field contains multiple values, a logical `OR` is applied between the filter values. ``` curl --location --request POST 'https://api.thousandeyes.com/v7/endpoint/test-results/local-networks/topologies/filter' --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' --data-raw '{ \"searchFilters\": { \"networkId\": [ \"660b34109d12\", \"660b34109d15\" ] }}' ``` ### Combination of request parameters and body filters ``` curl --location --request POST 'https://api.thousandeyes.com/v7/endpoint/test-results/local-networks/topologies/filter?window=12h' --header 'Authorization: Bearer $token' --header 'Content-Type: application/json' --data-raw '{ \"searchFilters\": { \"platform\": [ \"mac\" ], \"domain\": [ \"thousandeyes.com\" ], \"networkId\": [ \"660b34109d12\", \"660b34109d15\" ] }}' ``` ### Warning Note that a maximum of 12h worth of data can be retrieved at once. If you need more, you need to make multiple requests. Returns a `results` array of network topology probes. Network topology probes shown are from the latest round, or based on the time range specified.
|
||||
|
||||
### Example
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user