thousandeyes-sdk-instant-tests 2.1.0__py3-none-any.whl → 2.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. thousandeyes_sdk/instant_tests/__init__.py +1 -0
  2. thousandeyes_sdk/instant_tests/models/__init__.py +1 -0
  3. thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test.py +3 -1
  4. thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test_request.py +3 -1
  5. thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test_response.py +3 -1
  6. thousandeyes_sdk/instant_tests/models/agent_to_agent_properties.py +3 -1
  7. thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test.py +3 -1
  8. thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test_request.py +3 -1
  9. thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test_response.py +3 -1
  10. thousandeyes_sdk/instant_tests/models/agent_to_server_properties.py +3 -1
  11. thousandeyes_sdk/instant_tests/models/api_client_authentication.py +41 -0
  12. thousandeyes_sdk/instant_tests/models/api_instant_test.py +3 -1
  13. thousandeyes_sdk/instant_tests/models/api_instant_test_request.py +3 -1
  14. thousandeyes_sdk/instant_tests/models/api_instant_test_response.py +3 -1
  15. thousandeyes_sdk/instant_tests/models/api_properties.py +3 -1
  16. thousandeyes_sdk/instant_tests/models/api_request.py +12 -1
  17. thousandeyes_sdk/instant_tests/models/api_request_auth_type.py +1 -0
  18. thousandeyes_sdk/instant_tests/models/dns_sec_instant_test.py +4 -2
  19. thousandeyes_sdk/instant_tests/models/dns_sec_instant_test_request.py +3 -1
  20. thousandeyes_sdk/instant_tests/models/dns_sec_instant_test_response.py +3 -1
  21. thousandeyes_sdk/instant_tests/models/dns_sec_properties.py +4 -2
  22. thousandeyes_sdk/instant_tests/models/dns_server_instant_test.py +3 -1
  23. thousandeyes_sdk/instant_tests/models/dns_server_instant_test_request.py +3 -1
  24. thousandeyes_sdk/instant_tests/models/dns_server_instant_test_response.py +3 -1
  25. thousandeyes_sdk/instant_tests/models/dns_server_properties.py +3 -1
  26. thousandeyes_sdk/instant_tests/models/dns_trace_instant_test.py +4 -2
  27. thousandeyes_sdk/instant_tests/models/dns_trace_instant_test_request.py +3 -1
  28. thousandeyes_sdk/instant_tests/models/dns_trace_instant_test_response.py +3 -1
  29. thousandeyes_sdk/instant_tests/models/dns_trace_properties.py +4 -2
  30. thousandeyes_sdk/instant_tests/models/ftp_server_instant_test.py +3 -1
  31. thousandeyes_sdk/instant_tests/models/ftp_server_instant_test_request.py +3 -1
  32. thousandeyes_sdk/instant_tests/models/ftp_server_instant_test_response.py +3 -1
  33. thousandeyes_sdk/instant_tests/models/ftp_server_properties.py +3 -1
  34. thousandeyes_sdk/instant_tests/models/http_server_instant_test.py +3 -1
  35. thousandeyes_sdk/instant_tests/models/http_server_instant_test_request.py +3 -1
  36. thousandeyes_sdk/instant_tests/models/http_server_instant_test_response.py +3 -1
  37. thousandeyes_sdk/instant_tests/models/http_server_properties.py +3 -1
  38. thousandeyes_sdk/instant_tests/models/page_load_instant_test.py +4 -2
  39. thousandeyes_sdk/instant_tests/models/page_load_instant_test_request.py +3 -1
  40. thousandeyes_sdk/instant_tests/models/page_load_instant_test_response.py +3 -1
  41. thousandeyes_sdk/instant_tests/models/page_load_properties.py +3 -1
  42. thousandeyes_sdk/instant_tests/models/sip_server_instant_test.py +3 -1
  43. thousandeyes_sdk/instant_tests/models/sip_server_instant_test_request.py +3 -1
  44. thousandeyes_sdk/instant_tests/models/sip_server_instant_test_response.py +3 -1
  45. thousandeyes_sdk/instant_tests/models/sip_server_properties.py +3 -1
  46. thousandeyes_sdk/instant_tests/models/voice_instant_test.py +3 -1
  47. thousandeyes_sdk/instant_tests/models/voice_instant_test_request.py +3 -1
  48. thousandeyes_sdk/instant_tests/models/voice_instant_test_response.py +3 -1
  49. thousandeyes_sdk/instant_tests/models/voice_properties.py +4 -2
  50. thousandeyes_sdk/instant_tests/models/web_transaction_instant_test.py +3 -1
  51. thousandeyes_sdk/instant_tests/models/web_transaction_instant_test_request.py +3 -1
  52. thousandeyes_sdk/instant_tests/models/web_transaction_instant_test_response.py +3 -1
  53. thousandeyes_sdk/instant_tests/models/web_transaction_properties.py +3 -1
  54. {thousandeyes_sdk_instant_tests-2.1.0.dist-info → thousandeyes_sdk_instant_tests-2.2.0.dist-info}/METADATA +17 -16
  55. {thousandeyes_sdk_instant_tests-2.1.0.dist-info → thousandeyes_sdk_instant_tests-2.2.0.dist-info}/RECORD +59 -58
  56. {thousandeyes_sdk_instant_tests-2.1.0.dist-info → thousandeyes_sdk_instant_tests-2.2.0.dist-info}/WHEEL +1 -1
  57. {thousandeyes_sdk_instant_tests-2.1.0.dist-info → thousandeyes_sdk_instant_tests-2.2.0.dist-info}/LICENSE +0 -0
  58. {thousandeyes_sdk_instant_tests-2.1.0.dist-info → thousandeyes_sdk_instant_tests-2.2.0.dist-info}/NOTICE +0 -0
  59. {thousandeyes_sdk_instant_tests-2.1.0.dist-info → thousandeyes_sdk_instant_tests-2.2.0.dist-info}/top_level.txt +0 -0
@@ -42,6 +42,7 @@ from thousandeyes_sdk.instant_tests.models.agent_to_server_instant_test import A
42
42
  from thousandeyes_sdk.instant_tests.models.agent_to_server_instant_test_request import AgentToServerInstantTestRequest
43
43
  from thousandeyes_sdk.instant_tests.models.agent_to_server_instant_test_response import AgentToServerInstantTestResponse
44
44
  from thousandeyes_sdk.instant_tests.models.agent_to_server_properties import AgentToServerProperties
45
+ from thousandeyes_sdk.instant_tests.models.api_client_authentication import ApiClientAuthentication
45
46
  from thousandeyes_sdk.instant_tests.models.api_instant_test import ApiInstantTest
46
47
  from thousandeyes_sdk.instant_tests.models.api_instant_test_request import ApiInstantTestRequest
47
48
  from thousandeyes_sdk.instant_tests.models.api_instant_test_response import ApiInstantTestResponse
@@ -25,6 +25,7 @@ from thousandeyes_sdk.instant_tests.models.agent_to_server_instant_test import A
25
25
  from thousandeyes_sdk.instant_tests.models.agent_to_server_instant_test_request import AgentToServerInstantTestRequest
26
26
  from thousandeyes_sdk.instant_tests.models.agent_to_server_instant_test_response import AgentToServerInstantTestResponse
27
27
  from thousandeyes_sdk.instant_tests.models.agent_to_server_properties import AgentToServerProperties
28
+ from thousandeyes_sdk.instant_tests.models.api_client_authentication import ApiClientAuthentication
28
29
  from thousandeyes_sdk.instant_tests.models.api_instant_test import ApiInstantTest
29
30
  from thousandeyes_sdk.instant_tests.models.api_instant_test_request import ApiInstantTestRequest
30
31
  from thousandeyes_sdk.instant_tests.models.api_instant_test_response import ApiInstantTestResponse
@@ -55,12 +55,13 @@ class AgentToAgentInstantTest(BaseModel):
55
55
  path_trace_mode: Optional[TestPathTraceMode] = Field(default=None, alias="pathTraceMode")
56
56
  port: Optional[Annotated[int, Field(le=65535, strict=True, ge=1)]] = Field(default=49153, description="Target port.")
57
57
  protocol: Optional[AgentToAgentTestProtocol] = None
58
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
58
59
  target_agent_id: StrictStr = Field(description="`agentId` of the target agent for the test.", alias="targetAgentId")
59
60
  throughput_measurements: Optional[StrictBool] = Field(default=False, description="Enable or disable throughput measurements. Throughput measurements cannot be enabled when the source or target of the test is a cloud agent.", alias="throughputMeasurements")
60
61
  throughput_duration: Optional[Annotated[int, Field(le=30000, strict=True, ge=5000)]] = Field(default=10000, description="The throughput duration.", alias="throughputDuration")
61
62
  throughput_rate: Optional[Annotated[int, Field(le=1000, strict=True, ge=8)]] = Field(default=None, description="The throughput rate, only applicable for UDP protocol.", alias="throughputRate")
62
63
  fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate")
63
- __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate"]
64
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate"]
64
65
 
65
66
  model_config = ConfigDict(
66
67
  populate_by_name=True,
@@ -174,6 +175,7 @@ class AgentToAgentInstantTest(BaseModel):
174
175
  "pathTraceMode": obj.get("pathTraceMode"),
175
176
  "port": obj.get("port") if obj.get("port") is not None else 49153,
176
177
  "protocol": obj.get("protocol"),
178
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
177
179
  "targetAgentId": obj.get("targetAgentId"),
178
180
  "throughputMeasurements": obj.get("throughputMeasurements") if obj.get("throughputMeasurements") is not None else False,
179
181
  "throughputDuration": obj.get("throughputDuration") if obj.get("throughputDuration") is not None else 10000,
@@ -54,13 +54,14 @@ class AgentToAgentInstantTestRequest(BaseModel):
54
54
  path_trace_mode: Optional[TestPathTraceMode] = Field(default=None, alias="pathTraceMode")
55
55
  port: Optional[Annotated[int, Field(le=65535, strict=True, ge=1)]] = Field(default=49153, description="Target port.")
56
56
  protocol: Optional[AgentToAgentTestProtocol] = None
57
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
57
58
  target_agent_id: StrictStr = Field(description="`agentId` of the target agent for the test.", alias="targetAgentId")
58
59
  throughput_measurements: Optional[StrictBool] = Field(default=False, description="Enable or disable throughput measurements. Throughput measurements cannot be enabled when the source or target of the test is a cloud agent.", alias="throughputMeasurements")
59
60
  throughput_duration: Optional[Annotated[int, Field(le=30000, strict=True, ge=5000)]] = Field(default=10000, description="The throughput duration.", alias="throughputDuration")
60
61
  throughput_rate: Optional[Annotated[int, Field(le=1000, strict=True, ge=8)]] = Field(default=None, description="The throughput rate, only applicable for UDP protocol.", alias="throughputRate")
61
62
  fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate")
62
63
  agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).")
63
- __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "agents"]
64
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "agents"]
64
65
 
65
66
  model_config = ConfigDict(
66
67
  populate_by_name=True,
@@ -163,6 +164,7 @@ class AgentToAgentInstantTestRequest(BaseModel):
163
164
  "pathTraceMode": obj.get("pathTraceMode"),
164
165
  "port": obj.get("port") if obj.get("port") is not None else 49153,
165
166
  "protocol": obj.get("protocol"),
167
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
166
168
  "targetAgentId": obj.get("targetAgentId"),
167
169
  "throughputMeasurements": obj.get("throughputMeasurements") if obj.get("throughputMeasurements") is not None else False,
168
170
  "throughputDuration": obj.get("throughputDuration") if obj.get("throughputDuration") is not None else 10000,
@@ -56,13 +56,14 @@ class AgentToAgentInstantTestResponse(BaseModel):
56
56
  path_trace_mode: Optional[TestPathTraceMode] = Field(default=None, alias="pathTraceMode")
57
57
  port: Optional[Annotated[int, Field(le=65535, strict=True, ge=1)]] = Field(default=49153, description="Target port.")
58
58
  protocol: Optional[AgentToAgentTestProtocol] = None
59
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
59
60
  target_agent_id: StrictStr = Field(description="`agentId` of the target agent for the test.", alias="targetAgentId")
60
61
  throughput_measurements: Optional[StrictBool] = Field(default=False, description="Enable or disable throughput measurements. Throughput measurements cannot be enabled when the source or target of the test is a cloud agent.", alias="throughputMeasurements")
61
62
  throughput_duration: Optional[Annotated[int, Field(le=30000, strict=True, ge=5000)]] = Field(default=10000, description="The throughput duration.", alias="throughputDuration")
62
63
  throughput_rate: Optional[Annotated[int, Field(le=1000, strict=True, ge=8)]] = Field(default=None, description="The throughput rate, only applicable for UDP protocol.", alias="throughputRate")
63
64
  fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate")
64
65
  agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.")
65
- __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "agents"]
66
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "agents"]
66
67
 
67
68
  model_config = ConfigDict(
68
69
  populate_by_name=True,
@@ -183,6 +184,7 @@ class AgentToAgentInstantTestResponse(BaseModel):
183
184
  "pathTraceMode": obj.get("pathTraceMode"),
184
185
  "port": obj.get("port") if obj.get("port") is not None else 49153,
185
186
  "protocol": obj.get("protocol"),
187
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
186
188
  "targetAgentId": obj.get("targetAgentId"),
187
189
  "throughputMeasurements": obj.get("throughputMeasurements") if obj.get("throughputMeasurements") is not None else False,
188
190
  "throughputDuration": obj.get("throughputDuration") if obj.get("throughputDuration") is not None else 10000,
@@ -38,13 +38,14 @@ class AgentToAgentProperties(BaseModel):
38
38
  path_trace_mode: Optional[TestPathTraceMode] = Field(default=None, alias="pathTraceMode")
39
39
  port: Optional[Annotated[int, Field(le=65535, strict=True, ge=1)]] = Field(default=49153, description="Target port.")
40
40
  protocol: Optional[AgentToAgentTestProtocol] = None
41
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
41
42
  target_agent_id: StrictStr = Field(description="`agentId` of the target agent for the test.", alias="targetAgentId")
42
43
  throughput_measurements: Optional[StrictBool] = Field(default=False, description="Enable or disable throughput measurements. Throughput measurements cannot be enabled when the source or target of the test is a cloud agent.", alias="throughputMeasurements")
43
44
  throughput_duration: Optional[Annotated[int, Field(le=30000, strict=True, ge=5000)]] = Field(default=10000, description="The throughput duration.", alias="throughputDuration")
44
45
  throughput_rate: Optional[Annotated[int, Field(le=1000, strict=True, ge=8)]] = Field(default=None, description="The throughput rate, only applicable for UDP protocol.", alias="throughputRate")
45
46
  fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate")
46
47
  type: Optional[StrictStr] = None
47
- __properties: ClassVar[List[str]] = ["direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "type"]
48
+ __properties: ClassVar[List[str]] = ["direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "type"]
48
49
 
49
50
  model_config = ConfigDict(
50
51
  populate_by_name=True,
@@ -110,6 +111,7 @@ class AgentToAgentProperties(BaseModel):
110
111
  "pathTraceMode": obj.get("pathTraceMode"),
111
112
  "port": obj.get("port") if obj.get("port") is not None else 49153,
112
113
  "protocol": obj.get("protocol"),
114
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
113
115
  "targetAgentId": obj.get("targetAgentId"),
114
116
  "throughputMeasurements": obj.get("throughputMeasurements") if obj.get("throughputMeasurements") is not None else False,
115
117
  "throughputDuration": obj.get("throughputDuration") if obj.get("throughputDuration") is not None else 10000,
@@ -57,13 +57,14 @@ class AgentToServerInstantTest(BaseModel):
57
57
  port: Optional[Annotated[int, Field(le=65535, strict=True, ge=1)]] = Field(default=49153, description="Target port.")
58
58
  probe_mode: Optional[TestProbeMode] = Field(default=None, alias="probeMode")
59
59
  protocol: Optional[TestProtocol] = None
60
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
60
61
  server: StrictStr = Field(description="Target name or IP address.")
61
62
  dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.")
62
63
  dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId")
63
64
  ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy")
64
65
  ping_payload_size: Optional[Annotated[int, Field(le=1400, strict=True, ge=0)]] = Field(default=None, description="Payload size (not total packet size) for the end-to-end metric's probes, ping payload size allows values from 0 to 1400 bytes. When set to null, payload sizes are 0 bytes for ICMP-based tests and 1 byte for TCP-based tests.", alias="pingPayloadSize")
65
66
  network_measurements: Optional[StrictBool] = Field(default=False, description="View packet loss in 1-second intervals. This is only available for 1-minute interval tests. Set to `true` to enable network measurements.", alias="networkMeasurements")
66
- __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "port", "probeMode", "protocol", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements"]
67
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "port", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements"]
67
68
 
68
69
  model_config = ConfigDict(
69
70
  populate_by_name=True,
@@ -178,6 +179,7 @@ class AgentToServerInstantTest(BaseModel):
178
179
  "port": obj.get("port") if obj.get("port") is not None else 49153,
179
180
  "probeMode": obj.get("probeMode"),
180
181
  "protocol": obj.get("protocol"),
182
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
181
183
  "server": obj.get("server"),
182
184
  "dscp": obj.get("dscp"),
183
185
  "dscpId": obj.get("dscpId"),
@@ -56,6 +56,7 @@ class AgentToServerInstantTestRequest(BaseModel):
56
56
  port: Optional[Annotated[int, Field(le=65535, strict=True, ge=1)]] = Field(default=49153, description="Target port.")
57
57
  probe_mode: Optional[TestProbeMode] = Field(default=None, alias="probeMode")
58
58
  protocol: Optional[TestProtocol] = None
59
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
59
60
  server: StrictStr = Field(description="Target name or IP address.")
60
61
  dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.")
61
62
  dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId")
@@ -63,7 +64,7 @@ class AgentToServerInstantTestRequest(BaseModel):
63
64
  ping_payload_size: Optional[Annotated[int, Field(le=1400, strict=True, ge=0)]] = Field(default=None, description="Payload size (not total packet size) for the end-to-end metric's probes, ping payload size allows values from 0 to 1400 bytes. When set to null, payload sizes are 0 bytes for ICMP-based tests and 1 byte for TCP-based tests.", alias="pingPayloadSize")
64
65
  network_measurements: Optional[StrictBool] = Field(default=False, description="View packet loss in 1-second intervals. This is only available for 1-minute interval tests. Set to `true` to enable network measurements.", alias="networkMeasurements")
65
66
  agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).")
66
- __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "port", "probeMode", "protocol", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "agents"]
67
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "port", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "agents"]
67
68
 
68
69
  model_config = ConfigDict(
69
70
  populate_by_name=True,
@@ -167,6 +168,7 @@ class AgentToServerInstantTestRequest(BaseModel):
167
168
  "port": obj.get("port") if obj.get("port") is not None else 49153,
168
169
  "probeMode": obj.get("probeMode"),
169
170
  "protocol": obj.get("protocol"),
171
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
170
172
  "server": obj.get("server"),
171
173
  "dscp": obj.get("dscp"),
172
174
  "dscpId": obj.get("dscpId"),
@@ -58,6 +58,7 @@ class AgentToServerInstantTestResponse(BaseModel):
58
58
  port: Optional[Annotated[int, Field(le=65535, strict=True, ge=1)]] = Field(default=49153, description="Target port.")
59
59
  probe_mode: Optional[TestProbeMode] = Field(default=None, alias="probeMode")
60
60
  protocol: Optional[TestProtocol] = None
61
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
61
62
  server: StrictStr = Field(description="Target name or IP address.")
62
63
  dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.")
63
64
  dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId")
@@ -65,7 +66,7 @@ class AgentToServerInstantTestResponse(BaseModel):
65
66
  ping_payload_size: Optional[Annotated[int, Field(le=1400, strict=True, ge=0)]] = Field(default=None, description="Payload size (not total packet size) for the end-to-end metric's probes, ping payload size allows values from 0 to 1400 bytes. When set to null, payload sizes are 0 bytes for ICMP-based tests and 1 byte for TCP-based tests.", alias="pingPayloadSize")
66
67
  network_measurements: Optional[StrictBool] = Field(default=False, description="View packet loss in 1-second intervals. This is only available for 1-minute interval tests. Set to `true` to enable network measurements.", alias="networkMeasurements")
67
68
  agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.")
68
- __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "port", "probeMode", "protocol", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "agents"]
69
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "port", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "agents"]
69
70
 
70
71
  model_config = ConfigDict(
71
72
  populate_by_name=True,
@@ -187,6 +188,7 @@ class AgentToServerInstantTestResponse(BaseModel):
187
188
  "port": obj.get("port") if obj.get("port") is not None else 49153,
188
189
  "probeMode": obj.get("probeMode"),
189
190
  "protocol": obj.get("protocol"),
191
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
190
192
  "server": obj.get("server"),
191
193
  "dscp": obj.get("dscp"),
192
194
  "dscpId": obj.get("dscpId"),
@@ -40,6 +40,7 @@ class AgentToServerProperties(BaseModel):
40
40
  port: Optional[Annotated[int, Field(le=65535, strict=True, ge=1)]] = Field(default=49153, description="Target port.")
41
41
  probe_mode: Optional[TestProbeMode] = Field(default=None, alias="probeMode")
42
42
  protocol: Optional[TestProtocol] = None
43
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
43
44
  server: StrictStr = Field(description="Target name or IP address.")
44
45
  dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.")
45
46
  dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId")
@@ -47,7 +48,7 @@ class AgentToServerProperties(BaseModel):
47
48
  ping_payload_size: Optional[Annotated[int, Field(le=1400, strict=True, ge=0)]] = Field(default=None, description="Payload size (not total packet size) for the end-to-end metric's probes, ping payload size allows values from 0 to 1400 bytes. When set to null, payload sizes are 0 bytes for ICMP-based tests and 1 byte for TCP-based tests.", alias="pingPayloadSize")
48
49
  network_measurements: Optional[StrictBool] = Field(default=False, description="View packet loss in 1-second intervals. This is only available for 1-minute interval tests. Set to `true` to enable network measurements.", alias="networkMeasurements")
49
50
  type: Optional[StrictStr] = None
50
- __properties: ClassVar[List[str]] = ["bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "port", "probeMode", "protocol", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "type"]
51
+ __properties: ClassVar[List[str]] = ["bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "port", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "type"]
51
52
 
52
53
  model_config = ConfigDict(
53
54
  populate_by_name=True,
@@ -114,6 +115,7 @@ class AgentToServerProperties(BaseModel):
114
115
  "port": obj.get("port") if obj.get("port") is not None else 49153,
115
116
  "probeMode": obj.get("probeMode"),
116
117
  "protocol": obj.get("protocol"),
118
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
117
119
  "server": obj.get("server"),
118
120
  "dscp": obj.get("dscp"),
119
121
  "dscpId": obj.get("dscpId"),
@@ -0,0 +1,41 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Instant Tests API
5
+
6
+ The Instant Tests API operations lets you create and run new instant tests. You will need to be a regular user or have the following permissions: * `API Access` * `View tests` The response does not include the immediate test results. Use the Test Results endpoints to get test results after creating and executing an instant test. You can find the URLs for these endpoints in the _links section of the test definition that is returned when you create the instant test.
7
+
8
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
9
+
10
+ Do not edit the class manually.
11
+ """ # noqa: E501
12
+
13
+
14
+ from __future__ import annotations
15
+ import json
16
+ from enum import Enum
17
+ from typing_extensions import Self
18
+
19
+
20
+ class ApiClientAuthentication(str, Enum):
21
+ """
22
+ The OAuth2 client authentication location type.
23
+ """
24
+
25
+ """
26
+ allowed enum values
27
+ """
28
+ BASIC_MINUS_AUTH_MINUS_HEADER = 'basic-auth-header'
29
+ IN_MINUS_BODY = 'in-body'
30
+ UNKNOWN = 'unknown'
31
+
32
+ @classmethod
33
+ def from_json(cls, json_str: str) -> Self:
34
+ """Create an instance of ApiClientAuthentication from a JSON string"""
35
+ return cls(json.loads(json_str))
36
+
37
+ @classmethod
38
+ def _missing_(cls, value):
39
+ """Handle unknown values"""
40
+ return cls.UNKNOWN
41
+
@@ -60,13 +60,14 @@ class ApiInstantTest(BaseModel):
60
60
  predefined_variables: Optional[List[ApiPredefinedVariable]] = Field(default=None, alias="predefinedVariables")
61
61
  probe_mode: Optional[TestProbeMode] = Field(default=None, alias="probeMode")
62
62
  protocol: Optional[TestProtocol] = None
63
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
63
64
  requests: List[ApiRequest]
64
65
  ssl_version_id: Optional[TestSslVersionId] = Field(default=None, alias="sslVersionId")
65
66
  target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=0)]] = Field(default=None, description="Target time for completion metric, defaults to 50% of time limit specified in seconds. (0 means default behavior)", alias="targetTime")
66
67
  time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error.", alias="timeLimit")
67
68
  url: StrictStr = Field(description="Target for the test.")
68
69
  credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).")
69
- __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "collectProxyNetworkData", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials"]
70
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "collectProxyNetworkData", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials"]
70
71
 
71
72
  model_config = ConfigDict(
72
73
  populate_by_name=True,
@@ -195,6 +196,7 @@ class ApiInstantTest(BaseModel):
195
196
  "predefinedVariables": [ApiPredefinedVariable.from_dict(_item) for _item in obj["predefinedVariables"]] if obj.get("predefinedVariables") is not None else None,
196
197
  "probeMode": obj.get("probeMode"),
197
198
  "protocol": obj.get("protocol"),
199
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
198
200
  "requests": [ApiRequest.from_dict(_item) for _item in obj["requests"]] if obj.get("requests") is not None else None,
199
201
  "sslVersionId": obj.get("sslVersionId"),
200
202
  "targetTime": obj.get("targetTime"),
@@ -59,6 +59,7 @@ class ApiInstantTestRequest(BaseModel):
59
59
  predefined_variables: Optional[List[ApiPredefinedVariable]] = Field(default=None, alias="predefinedVariables")
60
60
  probe_mode: Optional[TestProbeMode] = Field(default=None, alias="probeMode")
61
61
  protocol: Optional[TestProtocol] = None
62
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
62
63
  requests: List[ApiRequest]
63
64
  ssl_version_id: Optional[TestSslVersionId] = Field(default=None, alias="sslVersionId")
64
65
  target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=0)]] = Field(default=None, description="Target time for completion metric, defaults to 50% of time limit specified in seconds. (0 means default behavior)", alias="targetTime")
@@ -66,7 +67,7 @@ class ApiInstantTestRequest(BaseModel):
66
67
  url: StrictStr = Field(description="Target for the test.")
67
68
  credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).")
68
69
  agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).")
69
- __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "collectProxyNetworkData", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "agents"]
70
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "collectProxyNetworkData", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "agents"]
70
71
 
71
72
  model_config = ConfigDict(
72
73
  populate_by_name=True,
@@ -184,6 +185,7 @@ class ApiInstantTestRequest(BaseModel):
184
185
  "predefinedVariables": [ApiPredefinedVariable.from_dict(_item) for _item in obj["predefinedVariables"]] if obj.get("predefinedVariables") is not None else None,
185
186
  "probeMode": obj.get("probeMode"),
186
187
  "protocol": obj.get("protocol"),
188
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
187
189
  "requests": [ApiRequest.from_dict(_item) for _item in obj["requests"]] if obj.get("requests") is not None else None,
188
190
  "sslVersionId": obj.get("sslVersionId"),
189
191
  "targetTime": obj.get("targetTime"),
@@ -61,6 +61,7 @@ class ApiInstantTestResponse(BaseModel):
61
61
  predefined_variables: Optional[List[ApiPredefinedVariable]] = Field(default=None, alias="predefinedVariables")
62
62
  probe_mode: Optional[TestProbeMode] = Field(default=None, alias="probeMode")
63
63
  protocol: Optional[TestProtocol] = None
64
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
64
65
  requests: List[ApiRequest]
65
66
  ssl_version_id: Optional[TestSslVersionId] = Field(default=None, alias="sslVersionId")
66
67
  target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=0)]] = Field(default=None, description="Target time for completion metric, defaults to 50% of time limit specified in seconds. (0 means default behavior)", alias="targetTime")
@@ -68,7 +69,7 @@ class ApiInstantTestResponse(BaseModel):
68
69
  url: StrictStr = Field(description="Target for the test.")
69
70
  credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).")
70
71
  agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.")
71
- __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "collectProxyNetworkData", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "agents"]
72
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "collectProxyNetworkData", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "agents"]
72
73
 
73
74
  model_config = ConfigDict(
74
75
  populate_by_name=True,
@@ -204,6 +205,7 @@ class ApiInstantTestResponse(BaseModel):
204
205
  "predefinedVariables": [ApiPredefinedVariable.from_dict(_item) for _item in obj["predefinedVariables"]] if obj.get("predefinedVariables") is not None else None,
205
206
  "probeMode": obj.get("probeMode"),
206
207
  "protocol": obj.get("protocol"),
208
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
207
209
  "requests": [ApiRequest.from_dict(_item) for _item in obj["requests"]] if obj.get("requests") is not None else None,
208
210
  "sslVersionId": obj.get("sslVersionId"),
209
211
  "targetTime": obj.get("targetTime"),
@@ -43,13 +43,14 @@ class ApiProperties(BaseModel):
43
43
  predefined_variables: Optional[List[ApiPredefinedVariable]] = Field(default=None, alias="predefinedVariables")
44
44
  probe_mode: Optional[TestProbeMode] = Field(default=None, alias="probeMode")
45
45
  protocol: Optional[TestProtocol] = None
46
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
46
47
  requests: List[ApiRequest]
47
48
  ssl_version_id: Optional[TestSslVersionId] = Field(default=None, alias="sslVersionId")
48
49
  target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=0)]] = Field(default=None, description="Target time for completion metric, defaults to 50% of time limit specified in seconds. (0 means default behavior)", alias="targetTime")
49
50
  time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error.", alias="timeLimit")
50
51
  url: StrictStr = Field(description="Target for the test.")
51
52
  type: Optional[StrictStr] = None
52
- __properties: ClassVar[List[str]] = ["collectProxyNetworkData", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "type"]
53
+ __properties: ClassVar[List[str]] = ["collectProxyNetworkData", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "type"]
53
54
 
54
55
  model_config = ConfigDict(
55
56
  populate_by_name=True,
@@ -130,6 +131,7 @@ class ApiProperties(BaseModel):
130
131
  "predefinedVariables": [ApiPredefinedVariable.from_dict(_item) for _item in obj["predefinedVariables"]] if obj.get("predefinedVariables") is not None else None,
131
132
  "probeMode": obj.get("probeMode"),
132
133
  "protocol": obj.get("protocol"),
134
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
133
135
  "requests": [ApiRequest.from_dict(_item) for _item in obj["requests"]] if obj.get("requests") is not None else None,
134
136
  "sslVersionId": obj.get("sslVersionId"),
135
137
  "targetTime": obj.get("targetTime"),
@@ -18,6 +18,7 @@ import json
18
18
 
19
19
  from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
20
20
  from typing import Any, ClassVar, Dict, List, Optional
21
+ from thousandeyes_sdk.instant_tests.models.api_client_authentication import ApiClientAuthentication
21
22
  from thousandeyes_sdk.instant_tests.models.api_request_assertion import ApiRequestAssertion
22
23
  from thousandeyes_sdk.instant_tests.models.api_request_auth_type import ApiRequestAuthType
23
24
  from thousandeyes_sdk.instant_tests.models.api_request_header import ApiRequestHeader
@@ -34,16 +35,21 @@ class ApiRequest(BaseModel):
34
35
  auth_type: Optional[ApiRequestAuthType] = Field(default=None, alias="authType")
35
36
  bearer_token: Optional[StrictStr] = Field(default=None, description="The bearer token if `authType = bearer-token`.", alias="bearerToken")
36
37
  body: Optional[StrictStr] = Field(default=None, description="POST/PUT request body. Must be in JSON format.")
38
+ client_authentication: Optional[ApiClientAuthentication] = Field(default=None, alias="clientAuthentication")
39
+ client_id: Optional[StrictStr] = Field(default=None, description="The application ID used when `authType` is set to \"oauth2\".", alias="clientId")
40
+ client_secret: Optional[StrictStr] = Field(default=None, description="The private client secret used when `authType` is set to \"oauth2\".", alias="clientSecret")
37
41
  collect_api_response: Optional[StrictBool] = Field(default=True, description="Set to `true` if API response body should be collected and saved. Set to `false` if API response body should not be saved.", alias="collectApiResponse")
38
42
  headers: Optional[List[ApiRequestHeader]] = Field(default=None, description="Array of API Request Header objects.")
39
43
  method: Optional[ApiRequestMethod] = None
40
44
  name: StrictStr = Field(description="API step name, must be unique.")
41
45
  password: Optional[StrictStr] = Field(default=None, description="The password if `authType = basic`.")
46
+ scope: Optional[StrictStr] = Field(default=None, description="Application-specific scope values for the access token when `authType` is \"oauth2\".")
47
+ token_url: Optional[StrictStr] = Field(default=None, description="The endpoint used to request the access token when `authType` is \"oauth2\".", alias="tokenUrl")
42
48
  url: StrictStr = Field(description="Request url. Supports variables in the format `{{variableName}}`.")
43
49
  username: Optional[StrictStr] = Field(default=None, description="The username if `authType = basic`.")
44
50
  variables: Optional[List[ApiRequestVariable]] = Field(default=None, description="Array of API post request variable objects.")
45
51
  wait_time_ms: Optional[StrictInt] = Field(default=None, description="Post request delay before executing the next API requests, in milliseconds.", alias="waitTimeMs")
46
- __properties: ClassVar[List[str]] = ["assertions", "authType", "bearerToken", "body", "collectApiResponse", "headers", "method", "name", "password", "url", "username", "variables", "waitTimeMs"]
52
+ __properties: ClassVar[List[str]] = ["assertions", "authType", "bearerToken", "body", "clientAuthentication", "clientId", "clientSecret", "collectApiResponse", "headers", "method", "name", "password", "scope", "tokenUrl", "url", "username", "variables", "waitTimeMs"]
47
53
 
48
54
  model_config = ConfigDict(
49
55
  populate_by_name=True,
@@ -122,11 +128,16 @@ class ApiRequest(BaseModel):
122
128
  "authType": obj.get("authType"),
123
129
  "bearerToken": obj.get("bearerToken"),
124
130
  "body": obj.get("body"),
131
+ "clientAuthentication": obj.get("clientAuthentication"),
132
+ "clientId": obj.get("clientId"),
133
+ "clientSecret": obj.get("clientSecret"),
125
134
  "collectApiResponse": obj.get("collectApiResponse") if obj.get("collectApiResponse") is not None else True,
126
135
  "headers": [ApiRequestHeader.from_dict(_item) for _item in obj["headers"]] if obj.get("headers") is not None else None,
127
136
  "method": obj.get("method"),
128
137
  "name": obj.get("name"),
129
138
  "password": obj.get("password"),
139
+ "scope": obj.get("scope"),
140
+ "tokenUrl": obj.get("tokenUrl"),
130
141
  "url": obj.get("url"),
131
142
  "username": obj.get("username"),
132
143
  "variables": [ApiRequestVariable.from_dict(_item) for _item in obj["variables"]] if obj.get("variables") is not None else None,
@@ -28,6 +28,7 @@ class ApiRequestAuthType(str, Enum):
28
28
  NONE = 'none'
29
29
  BASIC = 'basic'
30
30
  BEARER_MINUS_TOKEN = 'bearer-token'
31
+ OAUTH2 = 'oauth2'
31
32
  UNKNOWN = 'unknown'
32
33
 
33
34
  @classmethod
@@ -45,7 +45,8 @@ class DnsSecInstantTest(BaseModel):
45
45
  shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts")
46
46
  domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.")
47
47
  dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass")
48
- __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "domain", "dnsQueryClass"]
48
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
49
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime"]
49
50
 
50
51
  model_config = ConfigDict(
51
52
  populate_by_name=True,
@@ -150,7 +151,8 @@ class DnsSecInstantTest(BaseModel):
150
151
  "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None,
151
152
  "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None,
152
153
  "domain": obj.get("domain"),
153
- "dnsQueryClass": obj.get("dnsQueryClass")
154
+ "dnsQueryClass": obj.get("dnsQueryClass"),
155
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False
154
156
  })
155
157
  return _obj
156
158
 
@@ -44,8 +44,9 @@ class DnsSecInstantTestRequest(BaseModel):
44
44
  shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts")
45
45
  domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.")
46
46
  dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass")
47
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
47
48
  agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).")
48
- __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "domain", "dnsQueryClass", "agents"]
49
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime", "agents"]
49
50
 
50
51
  model_config = ConfigDict(
51
52
  populate_by_name=True,
@@ -140,6 +141,7 @@ class DnsSecInstantTestRequest(BaseModel):
140
141
  "sharedWithAccounts": obj.get("sharedWithAccounts"),
141
142
  "domain": obj.get("domain"),
142
143
  "dnsQueryClass": obj.get("dnsQueryClass"),
144
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
143
145
  "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None
144
146
  })
145
147
  return _obj
@@ -46,8 +46,9 @@ class DnsSecInstantTestResponse(BaseModel):
46
46
  shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts")
47
47
  domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.")
48
48
  dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass")
49
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
49
50
  agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.")
50
- __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "domain", "dnsQueryClass", "agents"]
51
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime", "agents"]
51
52
 
52
53
  model_config = ConfigDict(
53
54
  populate_by_name=True,
@@ -160,6 +161,7 @@ class DnsSecInstantTestResponse(BaseModel):
160
161
  "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None,
161
162
  "domain": obj.get("domain"),
162
163
  "dnsQueryClass": obj.get("dnsQueryClass"),
164
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
163
165
  "agents": [AgentResponse.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None
164
166
  })
165
167
  return _obj
@@ -16,7 +16,7 @@ import pprint
16
16
  import re # noqa: F401
17
17
  import json
18
18
 
19
- from pydantic import BaseModel, ConfigDict, Field, StrictStr
19
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
20
20
  from typing import Any, ClassVar, Dict, List, Optional
21
21
  from thousandeyes_sdk.instant_tests.models.dns_query_class import DnsQueryClass
22
22
  from typing import Optional, Set
@@ -28,8 +28,9 @@ class DnsSecProperties(BaseModel):
28
28
  """ # noqa: E501
29
29
  domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.")
30
30
  dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass")
31
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
31
32
  type: Optional[StrictStr] = None
32
- __properties: ClassVar[List[str]] = ["domain", "dnsQueryClass", "type"]
33
+ __properties: ClassVar[List[str]] = ["domain", "dnsQueryClass", "randomizedStartTime", "type"]
33
34
 
34
35
  model_config = ConfigDict(
35
36
  populate_by_name=True,
@@ -87,6 +88,7 @@ class DnsSecProperties(BaseModel):
87
88
  _obj = cls.model_validate({
88
89
  "domain": obj.get("domain"),
89
90
  "dnsQueryClass": obj.get("dnsQueryClass"),
91
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
90
92
  "type": obj.get("type")
91
93
  })
92
94
  return _obj
@@ -60,11 +60,12 @@ class DnsServerInstantTest(BaseModel):
60
60
  path_trace_mode: Optional[TestPathTraceMode] = Field(default=None, alias="pathTraceMode")
61
61
  probe_mode: Optional[TestProbeMode] = Field(default=None, alias="probeMode")
62
62
  protocol: Optional[TestProtocol] = None
63
+ randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime")
63
64
  recursive_queries: Optional[StrictBool] = Field(default=None, description="Set true to run query with RD (recursion desired) flag enabled.", alias="recursiveQueries")
64
65
  ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy")
65
66
  fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate")
66
67
  dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass")
67
- __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass"]
68
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass"]
68
69
 
69
70
  model_config = ConfigDict(
70
71
  populate_by_name=True,
@@ -185,6 +186,7 @@ class DnsServerInstantTest(BaseModel):
185
186
  "pathTraceMode": obj.get("pathTraceMode"),
186
187
  "probeMode": obj.get("probeMode"),
187
188
  "protocol": obj.get("protocol"),
189
+ "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False,
188
190
  "recursiveQueries": obj.get("recursiveQueries"),
189
191
  "ipv6Policy": obj.get("ipv6Policy"),
190
192
  "fixedPacketRate": obj.get("fixedPacketRate"),