instana-client 1.0.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 (515) hide show
  1. instana_client/__init__.py +534 -0
  2. instana_client/api/__init__.py +58 -0
  3. instana_client/api/action_catalog_api.py +1380 -0
  4. instana_client/api/action_history_api.py +1793 -0
  5. instana_client/api/apdex_report_api.py +338 -0
  6. instana_client/api/apdex_settings_api.py +1353 -0
  7. instana_client/api/api_token_api.py +1370 -0
  8. instana_client/api/application_alert_configuration_api.py +2865 -0
  9. instana_client/api/application_analyze_api.py +2017 -0
  10. instana_client/api/application_catalog_api.py +885 -0
  11. instana_client/api/application_metrics_api.py +1211 -0
  12. instana_client/api/application_resources_api.py +1487 -0
  13. instana_client/api/application_settings_api.py +7261 -0
  14. instana_client/api/application_topology_api.py +354 -0
  15. instana_client/api/audit_log_api.py +635 -0
  16. instana_client/api/authentication_api.py +1008 -0
  17. instana_client/api/business_monitoring_api.py +2177 -0
  18. instana_client/api/custom_dashboards_api.py +1930 -0
  19. instana_client/api/event_settings_api.py +14613 -0
  20. instana_client/api/events_api.py +1654 -0
  21. instana_client/api/global_application_alert_configuration_api.py +2606 -0
  22. instana_client/api/groups_api.py +4078 -0
  23. instana_client/api/health_api.py +527 -0
  24. instana_client/api/host_agent_api.py +2120 -0
  25. instana_client/api/infrastructure_alert_configuration_api.py +2524 -0
  26. instana_client/api/infrastructure_analyze_api.py +1141 -0
  27. instana_client/api/infrastructure_catalog_api.py +1822 -0
  28. instana_client/api/infrastructure_metrics_api.py +331 -0
  29. instana_client/api/infrastructure_resources_api.py +1880 -0
  30. instana_client/api/infrastructure_topology_api.py +595 -0
  31. instana_client/api/log_alert_configuration_api.py +2524 -0
  32. instana_client/api/maintenance_configuration_api.py +2683 -0
  33. instana_client/api/mobile_app_analyze_api.py +613 -0
  34. instana_client/api/mobile_app_catalog_api.py +825 -0
  35. instana_client/api/mobile_app_configuration_api.py +2847 -0
  36. instana_client/api/mobile_app_metrics_api.py +892 -0
  37. instana_client/api/policies_api.py +1755 -0
  38. instana_client/api/releases_api.py +1408 -0
  39. instana_client/api/service_levels_alert_configuration_api.py +2577 -0
  40. instana_client/api/service_levels_objective_slo_configurations_api.py +1825 -0
  41. instana_client/api/service_levels_objective_slo_report_api.py +335 -0
  42. instana_client/api/session_settings_api.py +801 -0
  43. instana_client/api/sli_report_api.py +352 -0
  44. instana_client/api/sli_settings_api.py +2677 -0
  45. instana_client/api/synthetic_alert_configuration_api.py +2606 -0
  46. instana_client/api/synthetic_calls_api.py +789 -0
  47. instana_client/api/synthetic_catalog_api.py +543 -0
  48. instana_client/api/synthetic_metrics_api.py +322 -0
  49. instana_client/api/synthetic_settings_api.py +5144 -0
  50. instana_client/api/synthetic_test_playback_results_api.py +2142 -0
  51. instana_client/api/usage_api.py +1404 -0
  52. instana_client/api/user_api.py +2404 -0
  53. instana_client/api/website_analyze_api.py +619 -0
  54. instana_client/api/website_catalog_api.py +832 -0
  55. instana_client/api/website_configuration_api.py +3745 -0
  56. instana_client/api/website_metrics_api.py +889 -0
  57. instana_client/api_client.py +798 -0
  58. instana_client/api_response.py +21 -0
  59. instana_client/configuration.py +616 -0
  60. instana_client/exceptions.py +217 -0
  61. instana_client/models/__init__.py +464 -0
  62. instana_client/models/abstract_integration.py +155 -0
  63. instana_client/models/abstract_rule.py +124 -0
  64. instana_client/models/access_log_entry.py +105 -0
  65. instana_client/models/access_log_response.py +98 -0
  66. instana_client/models/access_rule.py +107 -0
  67. instana_client/models/action.py +135 -0
  68. instana_client/models/action_configuration.py +104 -0
  69. instana_client/models/action_instance.py +185 -0
  70. instana_client/models/action_instance_metadata_entry.py +90 -0
  71. instana_client/models/action_instance_parameter.py +94 -0
  72. instana_client/models/action_instance_request.py +108 -0
  73. instana_client/models/action_instance_request_parameters.py +92 -0
  74. instana_client/models/action_match.py +98 -0
  75. instana_client/models/action_search_space.py +94 -0
  76. instana_client/models/adaptive_baseline.py +92 -0
  77. instana_client/models/adaptive_threshold_rule.py +91 -0
  78. instana_client/models/adjusted_timeframe.py +91 -0
  79. instana_client/models/agent_configuration_update.py +93 -0
  80. instana_client/models/alerting_configuration.py +113 -0
  81. instana_client/models/alerting_configuration_with_last_updated.py +115 -0
  82. instana_client/models/alerting_time_window.py +109 -0
  83. instana_client/models/apdex_configuration.py +99 -0
  84. instana_client/models/apdex_configuration_input.py +95 -0
  85. instana_client/models/apdex_entity.py +119 -0
  86. instana_client/models/apdex_report.py +94 -0
  87. instana_client/models/api_create_group.py +104 -0
  88. instana_client/models/api_group.py +107 -0
  89. instana_client/models/api_member.py +90 -0
  90. instana_client/models/api_permission_set.py +178 -0
  91. instana_client/models/api_restricted_application_filter.py +108 -0
  92. instana_client/models/api_token.py +250 -0
  93. instana_client/models/app_data_metric_configuration.py +105 -0
  94. instana_client/models/application.py +104 -0
  95. instana_client/models/application_alert_config.py +203 -0
  96. instana_client/models/application_alert_config_with_metadata.py +213 -0
  97. instana_client/models/application_alert_rule.py +135 -0
  98. instana_client/models/application_apdex_entity.py +111 -0
  99. instana_client/models/application_config.py +131 -0
  100. instana_client/models/application_event_result.py +108 -0
  101. instana_client/models/application_item.py +94 -0
  102. instana_client/models/application_metric_result.py +109 -0
  103. instana_client/models/application_node.py +106 -0
  104. instana_client/models/application_result.py +102 -0
  105. instana_client/models/application_scope.py +89 -0
  106. instana_client/models/application_scope_with_metadata.py +90 -0
  107. instana_client/models/application_sli_entity.py +103 -0
  108. instana_client/models/application_slo_entity.py +112 -0
  109. instana_client/models/application_time_threshold.py +115 -0
  110. instana_client/models/audit_log_entry.py +102 -0
  111. instana_client/models/audit_log_ui_response.py +98 -0
  112. instana_client/models/author.py +100 -0
  113. instana_client/models/availability_blueprint_indicator.py +106 -0
  114. instana_client/models/availability_sli_entity.py +138 -0
  115. instana_client/models/available_metrics.py +96 -0
  116. instana_client/models/available_plugins.py +88 -0
  117. instana_client/models/backend_trace_reference.py +88 -0
  118. instana_client/models/binary_operator_dto.py +107 -0
  119. instana_client/models/browser_script_configuration.py +127 -0
  120. instana_client/models/built_in_event_specification.py +123 -0
  121. instana_client/models/built_in_event_specification_with_last_updated.py +125 -0
  122. instana_client/models/business_activity.py +132 -0
  123. instana_client/models/business_perspective_config.py +99 -0
  124. instana_client/models/call_groups_item.py +95 -0
  125. instana_client/models/call_groups_result.py +111 -0
  126. instana_client/models/call_relation.py +100 -0
  127. instana_client/models/change_summary.py +101 -0
  128. instana_client/models/cloudfoundry_physical_context.py +104 -0
  129. instana_client/models/condition.py +88 -0
  130. instana_client/models/config_version.py +101 -0
  131. instana_client/models/crash_mobile_app_alert_rule.py +90 -0
  132. instana_client/models/cursor_paginated_business_activity_item.py +96 -0
  133. instana_client/models/cursor_pagination.py +93 -0
  134. instana_client/models/cursor_pagination_infra_explore_cursor.py +90 -0
  135. instana_client/models/custom_blueprint_indicator.py +104 -0
  136. instana_client/models/custom_dashboard.py +111 -0
  137. instana_client/models/custom_dashboard_preview.py +103 -0
  138. instana_client/models/custom_email_subject_prefix.py +94 -0
  139. instana_client/models/custom_event_mobile_app_alert_rule.py +92 -0
  140. instana_client/models/custom_event_specification.py +133 -0
  141. instana_client/models/custom_event_specification_with_last_updated.py +143 -0
  142. instana_client/models/custom_event_website_alert_rule.py +92 -0
  143. instana_client/models/custom_payload_configuration.py +97 -0
  144. instana_client/models/custom_payload_field.py +112 -0
  145. instana_client/models/custom_payload_with_last_updated.py +99 -0
  146. instana_client/models/dashboard_api_token.py +90 -0
  147. instana_client/models/database_integration.py +90 -0
  148. instana_client/models/deprecated_tag_filter.py +111 -0
  149. instana_client/models/dns_action_configuration.py +134 -0
  150. instana_client/models/dns_action_filter_query_time.py +99 -0
  151. instana_client/models/dns_action_filter_target_value.py +106 -0
  152. instana_client/models/duration.py +98 -0
  153. instana_client/models/dynamic_field.py +95 -0
  154. instana_client/models/dynamic_field_value.py +90 -0
  155. instana_client/models/dynamic_parameter.py +94 -0
  156. instana_client/models/edit_user.py +88 -0
  157. instana_client/models/email_integration.py +98 -0
  158. instana_client/models/empty_configuration.py +92 -0
  159. instana_client/models/endpoint.py +131 -0
  160. instana_client/models/endpoint_config.py +112 -0
  161. instana_client/models/endpoint_event_result.py +112 -0
  162. instana_client/models/endpoint_item.py +94 -0
  163. instana_client/models/endpoint_metric_result.py +109 -0
  164. instana_client/models/endpoint_node.py +91 -0
  165. instana_client/models/endpoint_result.py +102 -0
  166. instana_client/models/endpoint_simple.py +102 -0
  167. instana_client/models/entity_count_rule.py +100 -0
  168. instana_client/models/entity_count_verification_rule.py +114 -0
  169. instana_client/models/entity_health_info.py +99 -0
  170. instana_client/models/entity_id.py +92 -0
  171. instana_client/models/entity_verification_rule.py +105 -0
  172. instana_client/models/error_budget_alert_rule.py +97 -0
  173. instana_client/models/errors_application_alert_rule.py +90 -0
  174. instana_client/models/event.py +127 -0
  175. instana_client/models/event_filtering_configuration.py +106 -0
  176. instana_client/models/event_result.py +145 -0
  177. instana_client/models/event_specification_info.py +114 -0
  178. instana_client/models/extended_service.py +123 -0
  179. instana_client/models/failure_synthetic_alert_rule.py +90 -0
  180. instana_client/models/fixed_http_path_segment_matching_rule.py +90 -0
  181. instana_client/models/fixed_time_window.py +93 -0
  182. instana_client/models/full_trace.py +97 -0
  183. instana_client/models/generic_infra_alert_rule.py +93 -0
  184. instana_client/models/geo_location_configuration.py +106 -0
  185. instana_client/models/geo_mapping_rule.py +120 -0
  186. instana_client/models/geo_subdivision.py +91 -0
  187. instana_client/models/get_activities.py +115 -0
  188. instana_client/models/get_application_metrics.py +112 -0
  189. instana_client/models/get_applications.py +150 -0
  190. instana_client/models/get_available_metrics_query.py +103 -0
  191. instana_client/models/get_available_plugins_query.py +98 -0
  192. instana_client/models/get_call_groups.py +141 -0
  193. instana_client/models/get_combined_metrics.py +103 -0
  194. instana_client/models/get_dynamic_parameter_values.py +100 -0
  195. instana_client/models/get_endpoints.py +150 -0
  196. instana_client/models/get_infrastructure_groups_query.py +127 -0
  197. instana_client/models/get_infrastructure_query.py +127 -0
  198. instana_client/models/get_metrics_result.py +128 -0
  199. instana_client/models/get_mobile_app_beacon_groups.py +146 -0
  200. instana_client/models/get_mobile_app_beacons.py +118 -0
  201. instana_client/models/get_mobile_app_metrics.py +122 -0
  202. instana_client/models/get_mobile_app_metrics_v2.py +118 -0
  203. instana_client/models/get_payload_keys_result.py +88 -0
  204. instana_client/models/get_services.py +147 -0
  205. instana_client/models/get_snapshots_query.py +95 -0
  206. instana_client/models/get_test_result.py +139 -0
  207. instana_client/models/get_test_result_base.py +120 -0
  208. instana_client/models/get_test_result_list.py +125 -0
  209. instana_client/models/get_test_summary_result.py +130 -0
  210. instana_client/models/get_trace_download_result_item.py +114 -0
  211. instana_client/models/get_trace_groups.py +141 -0
  212. instana_client/models/get_traces.py +125 -0
  213. instana_client/models/get_website_beacon_groups.py +146 -0
  214. instana_client/models/get_website_beacons.py +118 -0
  215. instana_client/models/get_website_metrics.py +122 -0
  216. instana_client/models/get_website_metrics_v2.py +118 -0
  217. instana_client/models/global_application_alert_config_with_metadata.py +205 -0
  218. instana_client/models/global_applications_alert_config.py +191 -0
  219. instana_client/models/google_chat_integration.py +92 -0
  220. instana_client/models/graph_edge.py +102 -0
  221. instana_client/models/graph_node.py +100 -0
  222. instana_client/models/group.py +100 -0
  223. instana_client/models/group_by_tag.py +90 -0
  224. instana_client/models/group_mapping.py +95 -0
  225. instana_client/models/health_state.py +100 -0
  226. instana_client/models/historic_baseline.py +105 -0
  227. instana_client/models/host_availability_rule.py +100 -0
  228. instana_client/models/http_action_configuration.py +127 -0
  229. instana_client/models/http_endpoint_config.py +103 -0
  230. instana_client/models/http_endpoint_rule.py +101 -0
  231. instana_client/models/http_path_segment_matching_rule.py +124 -0
  232. instana_client/models/http_script_configuration.py +113 -0
  233. instana_client/models/hyper_param.py +111 -0
  234. instana_client/models/identity_provider_patch.py +88 -0
  235. instana_client/models/infra_alert_config.py +166 -0
  236. instana_client/models/infra_alert_config_with_metadata.py +176 -0
  237. instana_client/models/infra_alert_rule.py +133 -0
  238. instana_client/models/infra_event_result.py +109 -0
  239. instana_client/models/infra_metric_configuration.py +115 -0
  240. instana_client/models/infra_time_threshold.py +109 -0
  241. instana_client/models/infrastructure_entities_result.py +109 -0
  242. instana_client/models/infrastructure_group.py +92 -0
  243. instana_client/models/infrastructure_groups_result.py +109 -0
  244. instana_client/models/infrastructure_item.py +104 -0
  245. instana_client/models/infrastructure_metric_result.py +96 -0
  246. instana_client/models/instana_version_info.py +92 -0
  247. instana_client/models/integration_overview.py +94 -0
  248. instana_client/models/invitation.py +94 -0
  249. instana_client/models/invitation_response.py +96 -0
  250. instana_client/models/invitation_result.py +100 -0
  251. instana_client/models/ip_masking_configuration.py +95 -0
  252. instana_client/models/js_stack_trace_line.py +99 -0
  253. instana_client/models/kubernetes_physical_context.py +107 -0
  254. instana_client/models/latency_blueprint_indicator.py +106 -0
  255. instana_client/models/location_status.py +96 -0
  256. instana_client/models/log_alert_config.py +154 -0
  257. instana_client/models/log_alert_config_with_metadata.py +164 -0
  258. instana_client/models/log_alert_rule.py +120 -0
  259. instana_client/models/log_count_alert_rule.py +90 -0
  260. instana_client/models/log_entry_actor.py +101 -0
  261. instana_client/models/log_event_result.py +107 -0
  262. instana_client/models/log_time_threshold.py +109 -0
  263. instana_client/models/logs_application_alert_rule.py +122 -0
  264. instana_client/models/maintenance_config.py +103 -0
  265. instana_client/models/maintenance_config_scheduling.py +118 -0
  266. instana_client/models/maintenance_config_v2.py +111 -0
  267. instana_client/models/maintenance_config_v2_with_state_and_occurrence.py +131 -0
  268. instana_client/models/maintenance_config_with_last_updated.py +105 -0
  269. instana_client/models/maintenance_window.py +93 -0
  270. instana_client/models/manual_alerting_channel_configuration.py +99 -0
  271. instana_client/models/manual_close_info.py +99 -0
  272. instana_client/models/manual_service_config.py +103 -0
  273. instana_client/models/match_all_http_path_segment_matching_rule.py +88 -0
  274. instana_client/models/match_expression_dto.py +111 -0
  275. instana_client/models/meta_data.py +96 -0
  276. instana_client/models/metric_api_result.py +94 -0
  277. instana_client/models/metric_config.py +99 -0
  278. instana_client/models/metric_configuration.py +103 -0
  279. instana_client/models/metric_description.py +116 -0
  280. instana_client/models/metric_instance.py +105 -0
  281. instana_client/models/metric_item.py +102 -0
  282. instana_client/models/metric_metadata.py +132 -0
  283. instana_client/models/metric_pattern.py +101 -0
  284. instana_client/models/metrics_result.py +96 -0
  285. instana_client/models/metrics_result_item.py +100 -0
  286. instana_client/models/metrics_test_result_item.py +102 -0
  287. instana_client/models/mobile_app.py +91 -0
  288. instana_client/models/mobile_app_alert_config.py +162 -0
  289. instana_client/models/mobile_app_alert_rule.py +129 -0
  290. instana_client/models/mobile_app_beacon_groups_item.py +95 -0
  291. instana_client/models/mobile_app_beacon_groups_result.py +111 -0
  292. instana_client/models/mobile_app_beacon_result.py +111 -0
  293. instana_client/models/mobile_app_beacon_tag_group.py +100 -0
  294. instana_client/models/mobile_app_beacons_item.py +94 -0
  295. instana_client/models/mobile_app_event_result.py +108 -0
  296. instana_client/models/mobile_app_metric_result.py +88 -0
  297. instana_client/models/mobile_app_monitoring_beacon.py +259 -0
  298. instana_client/models/mobile_app_monitoring_metric_description.py +123 -0
  299. instana_client/models/mobile_app_monitoring_metrics_configuration.py +105 -0
  300. instana_client/models/mobile_app_time_threshold.py +115 -0
  301. instana_client/models/model_field.py +96 -0
  302. instana_client/models/monitoring_state.py +92 -0
  303. instana_client/models/multiple_scripts_configuration.py +90 -0
  304. instana_client/models/new_application_config.py +129 -0
  305. instana_client/models/new_business_perspective_config.py +97 -0
  306. instana_client/models/new_manual_service_config.py +100 -0
  307. instana_client/models/occurrence.py +91 -0
  308. instana_client/models/office365_integration.py +92 -0
  309. instana_client/models/one_time_maintenance_window.py +94 -0
  310. instana_client/models/opsgenie_integration.py +105 -0
  311. instana_client/models/order.py +99 -0
  312. instana_client/models/pagerduty_integration.py +92 -0
  313. instana_client/models/paginated_result.py +95 -0
  314. instana_client/models/pagination.py +91 -0
  315. instana_client/models/parameter.py +102 -0
  316. instana_client/models/parameter_value.py +90 -0
  317. instana_client/models/path_parameter_http_path_segment_matching_rule.py +90 -0
  318. instana_client/models/physical_context.py +119 -0
  319. instana_client/models/plugin_result.py +90 -0
  320. instana_client/models/policy.py +113 -0
  321. instana_client/models/policy_runnable.py +103 -0
  322. instana_client/models/post_snapshots_result.py +98 -0
  323. instana_client/models/problem.py +95 -0
  324. instana_client/models/prometheus_webhook_integration.py +94 -0
  325. instana_client/models/recurrent_maintenance_window.py +98 -0
  326. instana_client/models/release.py +111 -0
  327. instana_client/models/release_scope.py +94 -0
  328. instana_client/models/release_with_metadata.py +125 -0
  329. instana_client/models/rolling_time_window.py +90 -0
  330. instana_client/models/rule_input.py +98 -0
  331. instana_client/models/rule_with_threshold_application_alert_rule.py +116 -0
  332. instana_client/models/rule_with_threshold_infra_alert_rule.py +116 -0
  333. instana_client/models/rule_with_threshold_log_alert_rule.py +116 -0
  334. instana_client/models/rule_with_threshold_mobile_app_alert_rule.py +116 -0
  335. instana_client/models/rule_with_threshold_website_alert_rule.py +116 -0
  336. instana_client/models/run_configuration.py +96 -0
  337. instana_client/models/salesforce_integration.py +98 -0
  338. instana_client/models/scope_binding.py +91 -0
  339. instana_client/models/search_field_result.py +116 -0
  340. instana_client/models/service.py +116 -0
  341. instana_client/models/service_config.py +107 -0
  342. instana_client/models/service_event_result.py +110 -0
  343. instana_client/models/service_item.py +94 -0
  344. instana_client/models/service_level_indicator.py +172 -0
  345. instana_client/models/service_level_objective_alert_rule.py +100 -0
  346. instana_client/models/service_level_objective_configuration.py +118 -0
  347. instana_client/models/service_levels_alert_config.py +133 -0
  348. instana_client/models/service_levels_alert_rule.py +111 -0
  349. instana_client/models/service_levels_burn_rate_time_windows.py +97 -0
  350. instana_client/models/service_levels_time_threshold.py +90 -0
  351. instana_client/models/service_levelse_alert_config_with_metadata.py +143 -0
  352. instana_client/models/service_map.py +106 -0
  353. instana_client/models/service_map_connection.py +97 -0
  354. instana_client/models/service_matching_rule.py +90 -0
  355. instana_client/models/service_metric_result.py +109 -0
  356. instana_client/models/service_node.py +106 -0
  357. instana_client/models/service_now_enhanced_integration.py +116 -0
  358. instana_client/models/service_now_integration.py +98 -0
  359. instana_client/models/service_result.py +102 -0
  360. instana_client/models/service_scope.py +95 -0
  361. instana_client/models/service_scope_with_metadata.py +96 -0
  362. instana_client/models/service_scoped_to.py +97 -0
  363. instana_client/models/service_scoped_to_with_metadata.py +97 -0
  364. instana_client/models/service_simple.py +90 -0
  365. instana_client/models/session_settings.py +91 -0
  366. instana_client/models/slack_integration.py +98 -0
  367. instana_client/models/sli_configuration.py +105 -0
  368. instana_client/models/sli_configuration_with_last_updated.py +107 -0
  369. instana_client/models/sli_entity.py +117 -0
  370. instana_client/models/sli_report.py +100 -0
  371. instana_client/models/slo_entity.py +119 -0
  372. instana_client/models/slo_report.py +112 -0
  373. instana_client/models/slowness_application_alert_rule.py +90 -0
  374. instana_client/models/slowness_website_alert_rule.py +90 -0
  375. instana_client/models/snapshot_item.py +102 -0
  376. instana_client/models/snapshot_preview.py +97 -0
  377. instana_client/models/snapshot_result.py +96 -0
  378. instana_client/models/software_user.py +94 -0
  379. instana_client/models/software_version.py +124 -0
  380. instana_client/models/source_map_file_blob.py +92 -0
  381. instana_client/models/source_map_file_meta.py +115 -0
  382. instana_client/models/source_map_upload_config.py +106 -0
  383. instana_client/models/span.py +156 -0
  384. instana_client/models/span_excerpt.py +132 -0
  385. instana_client/models/span_relation.py +114 -0
  386. instana_client/models/specific_js_errors_website_alert_rule.py +101 -0
  387. instana_client/models/splunk_integration.py +94 -0
  388. instana_client/models/ssl_certificate_configuration.py +99 -0
  389. instana_client/models/stack_trace_item.py +92 -0
  390. instana_client/models/stack_trace_line.py +99 -0
  391. instana_client/models/static_baseline_threshold_rule.py +102 -0
  392. instana_client/models/static_string_field.py +91 -0
  393. instana_client/models/static_threshold.py +94 -0
  394. instana_client/models/static_threshold_rule.py +91 -0
  395. instana_client/models/status_code_application_alert_rule.py +95 -0
  396. instana_client/models/status_code_mobile_app_alert_rule.py +101 -0
  397. instana_client/models/status_code_website_alert_rule.py +101 -0
  398. instana_client/models/synthetic_alert_config.py +127 -0
  399. instana_client/models/synthetic_alert_config_with_metadata.py +137 -0
  400. instana_client/models/synthetic_alert_rule.py +120 -0
  401. instana_client/models/synthetic_call_config.py +99 -0
  402. instana_client/models/synthetic_call_rule.py +99 -0
  403. instana_client/models/synthetic_call_with_defaults_config.py +108 -0
  404. instana_client/models/synthetic_credential.py +111 -0
  405. instana_client/models/synthetic_datacenter.py +117 -0
  406. instana_client/models/synthetic_datacenter_configuration.py +88 -0
  407. instana_client/models/synthetic_geo_point.py +94 -0
  408. instana_client/models/synthetic_location.py +129 -0
  409. instana_client/models/synthetic_location_configuration.py +102 -0
  410. instana_client/models/synthetic_metric_configuration.py +99 -0
  411. instana_client/models/synthetic_metric_tag_group.py +100 -0
  412. instana_client/models/synthetic_playback_capabilities.py +98 -0
  413. instana_client/models/synthetic_slo_entity.py +95 -0
  414. instana_client/models/synthetic_test.py +149 -0
  415. instana_client/models/synthetic_time_threshold.py +110 -0
  416. instana_client/models/synthetic_type_configuration.py +141 -0
  417. instana_client/models/synthetics_event_result.py +110 -0
  418. instana_client/models/system_rule.py +91 -0
  419. instana_client/models/system_rule_label.py +90 -0
  420. instana_client/models/tag.py +123 -0
  421. instana_client/models/tag_catalog.py +106 -0
  422. instana_client/models/tag_filter.py +113 -0
  423. instana_client/models/tag_filter_expression.py +106 -0
  424. instana_client/models/tag_filter_expression_element.py +111 -0
  425. instana_client/models/tag_matcher_dto.py +110 -0
  426. instana_client/models/tag_tree_level.py +109 -0
  427. instana_client/models/tag_tree_node.py +113 -0
  428. instana_client/models/tag_tree_tag.py +103 -0
  429. instana_client/models/test_common_properties.py +136 -0
  430. instana_client/models/test_result.py +105 -0
  431. instana_client/models/test_result_common_properties.py +108 -0
  432. instana_client/models/test_result_detail_data.py +112 -0
  433. instana_client/models/test_result_item.py +106 -0
  434. instana_client/models/test_result_list_item.py +94 -0
  435. instana_client/models/test_result_list_result.py +103 -0
  436. instana_client/models/test_result_metadata.py +94 -0
  437. instana_client/models/test_result_subtransaction.py +90 -0
  438. instana_client/models/threshold.py +122 -0
  439. instana_client/models/threshold_config_rule.py +114 -0
  440. instana_client/models/threshold_rule.py +125 -0
  441. instana_client/models/throughput_application_alert_rule.py +90 -0
  442. instana_client/models/throughput_mobile_app_alert_rule.py +90 -0
  443. instana_client/models/throughput_website_alert_rule.py +90 -0
  444. instana_client/models/time_frame.py +91 -0
  445. instana_client/models/time_window.py +120 -0
  446. instana_client/models/topology.py +106 -0
  447. instana_client/models/trace.py +109 -0
  448. instana_client/models/trace_activity_tree_node_details.py +139 -0
  449. instana_client/models/trace_download_result.py +111 -0
  450. instana_client/models/trace_groups_item.py +95 -0
  451. instana_client/models/trace_groups_result.py +111 -0
  452. instana_client/models/trace_impact_application_time_threshold.py +92 -0
  453. instana_client/models/trace_item.py +94 -0
  454. instana_client/models/trace_result.py +111 -0
  455. instana_client/models/traffic_blueprint_indicator.py +104 -0
  456. instana_client/models/trigger.py +99 -0
  457. instana_client/models/type_configuration.py +107 -0
  458. instana_client/models/unsupported_http_path_segment_matching_rule.py +90 -0
  459. instana_client/models/updated_business_perspective_config.py +97 -0
  460. instana_client/models/usage_result.py +98 -0
  461. instana_client/models/usage_result_items.py +90 -0
  462. instana_client/models/user_basic_result.py +92 -0
  463. instana_client/models/user_impact_mobile_app_time_threshold.py +103 -0
  464. instana_client/models/user_impact_website_time_threshold.py +103 -0
  465. instana_client/models/user_result.py +98 -0
  466. instana_client/models/users_result.py +106 -0
  467. instana_client/models/validated_alerting_channel_input_info.py +123 -0
  468. instana_client/models/validated_alerting_configuration.py +121 -0
  469. instana_client/models/validated_maintenance_config_v2_with_state_and_occurrence.py +135 -0
  470. instana_client/models/validated_maintenance_config_with_status.py +116 -0
  471. instana_client/models/victor_ops_integration.py +94 -0
  472. instana_client/models/violations_in_period_application_time_threshold.py +92 -0
  473. instana_client/models/violations_in_period_mobile_app_time_threshold.py +92 -0
  474. instana_client/models/violations_in_period_website_time_threshold.py +92 -0
  475. instana_client/models/violations_in_sequence_application_time_threshold.py +89 -0
  476. instana_client/models/violations_in_sequence_infra_time_threshold.py +89 -0
  477. instana_client/models/violations_in_sequence_log_time_threshold.py +89 -0
  478. instana_client/models/violations_in_sequence_mobile_app_time_threshold.py +89 -0
  479. instana_client/models/violations_in_sequence_synthetic_time_threshold.py +89 -0
  480. instana_client/models/violations_in_sequence_website_time_threshold.py +89 -0
  481. instana_client/models/watson_ai_ops_webhook_integration.py +94 -0
  482. instana_client/models/webex_teams_webhook_integration.py +92 -0
  483. instana_client/models/webhook_integration.py +94 -0
  484. instana_client/models/webpage_action_configuration.py +109 -0
  485. instana_client/models/webpage_script_configuration.py +109 -0
  486. instana_client/models/website.py +92 -0
  487. instana_client/models/website_alert_config.py +166 -0
  488. instana_client/models/website_alert_config_with_metadata.py +176 -0
  489. instana_client/models/website_alert_rule.py +132 -0
  490. instana_client/models/website_apdex_entity.py +107 -0
  491. instana_client/models/website_beacon_groups_item.py +95 -0
  492. instana_client/models/website_beacon_groups_result.py +111 -0
  493. instana_client/models/website_beacon_result.py +111 -0
  494. instana_client/models/website_beacon_tag_group.py +100 -0
  495. instana_client/models/website_beacons_item.py +94 -0
  496. instana_client/models/website_event_based_sli_entity.py +110 -0
  497. instana_client/models/website_event_result.py +108 -0
  498. instana_client/models/website_metric_result.py +88 -0
  499. instana_client/models/website_monitoring_beacon.py +301 -0
  500. instana_client/models/website_monitoring_metric_description.py +123 -0
  501. instana_client/models/website_monitoring_metrics_configuration.py +99 -0
  502. instana_client/models/website_slo_entity.py +104 -0
  503. instana_client/models/website_time_based_sli_entity.py +105 -0
  504. instana_client/models/website_time_threshold.py +115 -0
  505. instana_client/models/widget.py +103 -0
  506. instana_client/models/with_metadata.py +172 -0
  507. instana_client/models/with_resolved_name.py +102 -0
  508. instana_client/models/z_chat_ops_integration.py +97 -0
  509. instana_client/py.typed +0 -0
  510. instana_client/rest.py +258 -0
  511. instana_client-1.0.0.dist-info/METADATA +25 -0
  512. instana_client-1.0.0.dist-info/RECORD +515 -0
  513. instana_client-1.0.0.dist-info/WHEEL +5 -0
  514. instana_client-1.0.0.dist-info/licenses/LICENSE +202 -0
  515. instana_client-1.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,2142 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Instana REST API documentation
5
+
6
+ Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f). ## Overview The Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management. ### Navigating the API documentation The API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include: - Websites & Mobile Apps - Applications - Infrastructure - Synthetic Monitoring - Events - Automation - Service Levels - Settings - etc ### Rate Limiting A rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server. - **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour. - **X-RateLimit-Remaining:** How many calls may still be executed within the current hour. - **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00. ### Further Reading We provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana. ## Getting Started with the REST API ### API base URL The base URL for an specific instance of Instana can be determined using the tenant and unit information. - `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface. - `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself. ### Curl Example Here is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call. ```bash curl --request GET \\ --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' ``` Next we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example. ```bash curl --request POST \\ --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\ --header 'content-type: application/json' \\ --data '{ \"group\":{ \"groupbyTag\":\"endpoint.name\" }, \"tagFilters\":[ { \"name\":\"call.error.count\", \"value\":\"0\", \"operator\":\"GREATER_THAN\" } ], \"metrics\":[ { \"metric\":\"errors\", \"aggregation\":\"MEAN\" } ] }' ``` ### Generating REST API clients The API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format. You can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml). OpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made. To generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator). #### Go For example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit: ```bash #!/bin/bash ### This script assumes you have the `java` and `wget` commands on the path export UNIT_NAME='myunit' # for example: prod export TENANT_NAME='mytenant' # for example: awesomecompany //Download the generator to your current working directory: wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\" //generate a client library that you can vendor into your repository java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\ -o pkg/instana/openapi \\ --skip-validate-spec //(optional) format the Go code according to the Go code standard gofmt -s -w pkg/instana/openapi ``` The generated clients contain comprehensive READMEs, and you can start right away using the client from the example above: ```go import instana \"./pkg/instana/openapi\" // readTags will read all available application monitoring tags along with their type and category func readTags() { configuration := instana.NewConfiguration() configuration.Host = \"tenant-unit.instana.io\" configuration.BasePath = \"https://tenant-unit.instana.io\" client := instana.NewAPIClient(configuration) auth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{ Key: apiKey, Prefix: \"apiToken\", }) tags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth) if err != nil { fmt.Fatalf(\"Error calling the API, aborting.\") } for _, tag := range tags { fmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name) } } ``` #### Java Follow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar). Depending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification: ``` //Nativ Java HTTP Client java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8 --library native //Spring WebClient java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient //Spring RestTemplate java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate ```
7
+
8
+ The version of the OpenAPI document: 1.291.1002
9
+ Contact: support@instana.com
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+ import warnings
16
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
+ from typing import Any, Dict, List, Optional, Tuple, Union
18
+ from typing_extensions import Annotated
19
+
20
+ from pydantic import Field, StrictInt, StrictStr, field_validator
21
+ from typing import Optional
22
+ from typing_extensions import Annotated
23
+ from instana_client.models.get_test_result import GetTestResult
24
+ from instana_client.models.get_test_result_base import GetTestResultBase
25
+ from instana_client.models.get_test_result_list import GetTestResultList
26
+ from instana_client.models.get_test_summary_result import GetTestSummaryResult
27
+ from instana_client.models.test_result import TestResult
28
+ from instana_client.models.test_result_detail_data import TestResultDetailData
29
+ from instana_client.models.test_result_list_result import TestResultListResult
30
+ from instana_client.models.test_result_metadata import TestResultMetadata
31
+
32
+ from instana_client.api_client import ApiClient, RequestSerialized
33
+ from instana_client.api_response import ApiResponse
34
+ from instana_client.rest import RESTResponseType
35
+
36
+
37
+ class SyntheticTestPlaybackResultsApi:
38
+ """NOTE: This class is auto generated by OpenAPI Generator
39
+ Ref: https://openapi-generator.tech
40
+
41
+ Do not edit the class manually.
42
+ """
43
+
44
+ def __init__(self, api_client=None) -> None:
45
+ if api_client is None:
46
+ api_client = ApiClient.get_default()
47
+ self.api_client = api_client
48
+
49
+
50
+ @validate_call
51
+ def get_location_summary_list(
52
+ self,
53
+ get_test_result_base: Optional[GetTestResultBase] = None,
54
+ _request_timeout: Union[
55
+ None,
56
+ Annotated[StrictFloat, Field(gt=0)],
57
+ Tuple[
58
+ Annotated[StrictFloat, Field(gt=0)],
59
+ Annotated[StrictFloat, Field(gt=0)]
60
+ ]
61
+ ] = None,
62
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
63
+ _content_type: Optional[StrictStr] = None,
64
+ _headers: Optional[Dict[StrictStr, Any]] = None,
65
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
66
+ ) -> TestResultListResult:
67
+ """Get a list of Synthetic locations with last run test on each location data
68
+
69
+ Get summary information for Synthetic locations matching the specified parameters
70
+
71
+ :param get_test_result_base:
72
+ :type get_test_result_base: GetTestResultBase
73
+ :param _request_timeout: timeout setting for this request. If one
74
+ number provided, it will be total request
75
+ timeout. It can also be a pair (tuple) of
76
+ (connection, read) timeouts.
77
+ :type _request_timeout: int, tuple(int, int), optional
78
+ :param _request_auth: set to override the auth_settings for an a single
79
+ request; this effectively ignores the
80
+ authentication in the spec for a single request.
81
+ :type _request_auth: dict, optional
82
+ :param _content_type: force content-type for the request.
83
+ :type _content_type: str, Optional
84
+ :param _headers: set to override the headers for a single
85
+ request; this effectively ignores the headers
86
+ in the spec for a single request.
87
+ :type _headers: dict, optional
88
+ :param _host_index: set to override the host_index for a single
89
+ request; this effectively ignores the host_index
90
+ in the spec for a single request.
91
+ :type _host_index: int, optional
92
+ :return: Returns the result object.
93
+ """ # noqa: E501
94
+
95
+ _param = self._get_location_summary_list_serialize(
96
+ get_test_result_base=get_test_result_base,
97
+ _request_auth=_request_auth,
98
+ _content_type=_content_type,
99
+ _headers=_headers,
100
+ _host_index=_host_index
101
+ )
102
+
103
+ _response_types_map: Dict[str, Optional[str]] = {
104
+ '200': "TestResultListResult",
105
+ '401': None,
106
+ '403': None,
107
+ '500': None,
108
+ }
109
+ response_data = self.api_client.call_api(
110
+ *_param,
111
+ _request_timeout=_request_timeout
112
+ )
113
+ response_data.read()
114
+ return self.api_client.response_deserialize(
115
+ response_data=response_data,
116
+ response_types_map=_response_types_map,
117
+ ).data
118
+
119
+
120
+ @validate_call
121
+ def get_location_summary_list_with_http_info(
122
+ self,
123
+ get_test_result_base: Optional[GetTestResultBase] = None,
124
+ _request_timeout: Union[
125
+ None,
126
+ Annotated[StrictFloat, Field(gt=0)],
127
+ Tuple[
128
+ Annotated[StrictFloat, Field(gt=0)],
129
+ Annotated[StrictFloat, Field(gt=0)]
130
+ ]
131
+ ] = None,
132
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
133
+ _content_type: Optional[StrictStr] = None,
134
+ _headers: Optional[Dict[StrictStr, Any]] = None,
135
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
136
+ ) -> ApiResponse[TestResultListResult]:
137
+ """Get a list of Synthetic locations with last run test on each location data
138
+
139
+ Get summary information for Synthetic locations matching the specified parameters
140
+
141
+ :param get_test_result_base:
142
+ :type get_test_result_base: GetTestResultBase
143
+ :param _request_timeout: timeout setting for this request. If one
144
+ number provided, it will be total request
145
+ timeout. It can also be a pair (tuple) of
146
+ (connection, read) timeouts.
147
+ :type _request_timeout: int, tuple(int, int), optional
148
+ :param _request_auth: set to override the auth_settings for an a single
149
+ request; this effectively ignores the
150
+ authentication in the spec for a single request.
151
+ :type _request_auth: dict, optional
152
+ :param _content_type: force content-type for the request.
153
+ :type _content_type: str, Optional
154
+ :param _headers: set to override the headers for a single
155
+ request; this effectively ignores the headers
156
+ in the spec for a single request.
157
+ :type _headers: dict, optional
158
+ :param _host_index: set to override the host_index for a single
159
+ request; this effectively ignores the host_index
160
+ in the spec for a single request.
161
+ :type _host_index: int, optional
162
+ :return: Returns the result object.
163
+ """ # noqa: E501
164
+
165
+ _param = self._get_location_summary_list_serialize(
166
+ get_test_result_base=get_test_result_base,
167
+ _request_auth=_request_auth,
168
+ _content_type=_content_type,
169
+ _headers=_headers,
170
+ _host_index=_host_index
171
+ )
172
+
173
+ _response_types_map: Dict[str, Optional[str]] = {
174
+ '200': "TestResultListResult",
175
+ '401': None,
176
+ '403': None,
177
+ '500': None,
178
+ }
179
+ response_data = self.api_client.call_api(
180
+ *_param,
181
+ _request_timeout=_request_timeout
182
+ )
183
+ response_data.read()
184
+ return self.api_client.response_deserialize(
185
+ response_data=response_data,
186
+ response_types_map=_response_types_map,
187
+ )
188
+
189
+
190
+ @validate_call
191
+ def get_location_summary_list_without_preload_content(
192
+ self,
193
+ get_test_result_base: Optional[GetTestResultBase] = None,
194
+ _request_timeout: Union[
195
+ None,
196
+ Annotated[StrictFloat, Field(gt=0)],
197
+ Tuple[
198
+ Annotated[StrictFloat, Field(gt=0)],
199
+ Annotated[StrictFloat, Field(gt=0)]
200
+ ]
201
+ ] = None,
202
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
203
+ _content_type: Optional[StrictStr] = None,
204
+ _headers: Optional[Dict[StrictStr, Any]] = None,
205
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
206
+ ) -> RESTResponseType:
207
+ """Get a list of Synthetic locations with last run test on each location data
208
+
209
+ Get summary information for Synthetic locations matching the specified parameters
210
+
211
+ :param get_test_result_base:
212
+ :type get_test_result_base: GetTestResultBase
213
+ :param _request_timeout: timeout setting for this request. If one
214
+ number provided, it will be total request
215
+ timeout. It can also be a pair (tuple) of
216
+ (connection, read) timeouts.
217
+ :type _request_timeout: int, tuple(int, int), optional
218
+ :param _request_auth: set to override the auth_settings for an a single
219
+ request; this effectively ignores the
220
+ authentication in the spec for a single request.
221
+ :type _request_auth: dict, optional
222
+ :param _content_type: force content-type for the request.
223
+ :type _content_type: str, Optional
224
+ :param _headers: set to override the headers for a single
225
+ request; this effectively ignores the headers
226
+ in the spec for a single request.
227
+ :type _headers: dict, optional
228
+ :param _host_index: set to override the host_index for a single
229
+ request; this effectively ignores the host_index
230
+ in the spec for a single request.
231
+ :type _host_index: int, optional
232
+ :return: Returns the result object.
233
+ """ # noqa: E501
234
+
235
+ _param = self._get_location_summary_list_serialize(
236
+ get_test_result_base=get_test_result_base,
237
+ _request_auth=_request_auth,
238
+ _content_type=_content_type,
239
+ _headers=_headers,
240
+ _host_index=_host_index
241
+ )
242
+
243
+ _response_types_map: Dict[str, Optional[str]] = {
244
+ '200': "TestResultListResult",
245
+ '401': None,
246
+ '403': None,
247
+ '500': None,
248
+ }
249
+ response_data = self.api_client.call_api(
250
+ *_param,
251
+ _request_timeout=_request_timeout
252
+ )
253
+ return response_data.response
254
+
255
+
256
+ def _get_location_summary_list_serialize(
257
+ self,
258
+ get_test_result_base,
259
+ _request_auth,
260
+ _content_type,
261
+ _headers,
262
+ _host_index,
263
+ ) -> RequestSerialized:
264
+
265
+ _host = None
266
+
267
+ _collection_formats: Dict[str, str] = {
268
+ }
269
+
270
+ _path_params: Dict[str, str] = {}
271
+ _query_params: List[Tuple[str, str]] = []
272
+ _header_params: Dict[str, Optional[str]] = _headers or {}
273
+ _form_params: List[Tuple[str, str]] = []
274
+ _files: Dict[
275
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
276
+ ] = {}
277
+ _body_params: Optional[bytes] = None
278
+
279
+ # process the path parameters
280
+ # process the query parameters
281
+ # process the header parameters
282
+ # process the form parameters
283
+ # process the body parameter
284
+ if get_test_result_base is not None:
285
+ _body_params = get_test_result_base
286
+
287
+
288
+ # set the HTTP header `Accept`
289
+ if 'Accept' not in _header_params:
290
+ _header_params['Accept'] = self.api_client.select_header_accept(
291
+ [
292
+ 'application/json'
293
+ ]
294
+ )
295
+
296
+ # set the HTTP header `Content-Type`
297
+ if _content_type:
298
+ _header_params['Content-Type'] = _content_type
299
+ else:
300
+ _default_content_type = (
301
+ self.api_client.select_header_content_type(
302
+ [
303
+ 'application/json'
304
+ ]
305
+ )
306
+ )
307
+ if _default_content_type is not None:
308
+ _header_params['Content-Type'] = _default_content_type
309
+
310
+ # authentication setting
311
+ _auth_settings: List[str] = [
312
+ 'ApiKeyAuth'
313
+ ]
314
+
315
+ return self.api_client.param_serialize(
316
+ method='POST',
317
+ resource_path='/api/synthetics/results/locationsummarylist',
318
+ path_params=_path_params,
319
+ query_params=_query_params,
320
+ header_params=_header_params,
321
+ body=_body_params,
322
+ post_params=_form_params,
323
+ files=_files,
324
+ auth_settings=_auth_settings,
325
+ collection_formats=_collection_formats,
326
+ _host=_host,
327
+ _request_auth=_request_auth
328
+ )
329
+
330
+
331
+
332
+
333
+ @validate_call
334
+ def get_synthetic_result(
335
+ self,
336
+ get_test_result: Optional[GetTestResult] = None,
337
+ _request_timeout: Union[
338
+ None,
339
+ Annotated[StrictFloat, Field(gt=0)],
340
+ Tuple[
341
+ Annotated[StrictFloat, Field(gt=0)],
342
+ Annotated[StrictFloat, Field(gt=0)]
343
+ ]
344
+ ] = None,
345
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
346
+ _content_type: Optional[StrictStr] = None,
347
+ _headers: Optional[Dict[StrictStr, Any]] = None,
348
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
349
+ ) -> TestResult:
350
+ """Get Synthetic test playback results
351
+
352
+ Get a list of aggregated playback results metrics for Synthetic tests matching the specified parameters
353
+
354
+ :param get_test_result:
355
+ :type get_test_result: GetTestResult
356
+ :param _request_timeout: timeout setting for this request. If one
357
+ number provided, it will be total request
358
+ timeout. It can also be a pair (tuple) of
359
+ (connection, read) timeouts.
360
+ :type _request_timeout: int, tuple(int, int), optional
361
+ :param _request_auth: set to override the auth_settings for an a single
362
+ request; this effectively ignores the
363
+ authentication in the spec for a single request.
364
+ :type _request_auth: dict, optional
365
+ :param _content_type: force content-type for the request.
366
+ :type _content_type: str, Optional
367
+ :param _headers: set to override the headers for a single
368
+ request; this effectively ignores the headers
369
+ in the spec for a single request.
370
+ :type _headers: dict, optional
371
+ :param _host_index: set to override the host_index for a single
372
+ request; this effectively ignores the host_index
373
+ in the spec for a single request.
374
+ :type _host_index: int, optional
375
+ :return: Returns the result object.
376
+ """ # noqa: E501
377
+
378
+ _param = self._get_synthetic_result_serialize(
379
+ get_test_result=get_test_result,
380
+ _request_auth=_request_auth,
381
+ _content_type=_content_type,
382
+ _headers=_headers,
383
+ _host_index=_host_index
384
+ )
385
+
386
+ _response_types_map: Dict[str, Optional[str]] = {
387
+ '200': "TestResult",
388
+ '401': None,
389
+ '403': None,
390
+ '500': None,
391
+ }
392
+ response_data = self.api_client.call_api(
393
+ *_param,
394
+ _request_timeout=_request_timeout
395
+ )
396
+ response_data.read()
397
+ return self.api_client.response_deserialize(
398
+ response_data=response_data,
399
+ response_types_map=_response_types_map,
400
+ ).data
401
+
402
+
403
+ @validate_call
404
+ def get_synthetic_result_with_http_info(
405
+ self,
406
+ get_test_result: Optional[GetTestResult] = None,
407
+ _request_timeout: Union[
408
+ None,
409
+ Annotated[StrictFloat, Field(gt=0)],
410
+ Tuple[
411
+ Annotated[StrictFloat, Field(gt=0)],
412
+ Annotated[StrictFloat, Field(gt=0)]
413
+ ]
414
+ ] = None,
415
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
416
+ _content_type: Optional[StrictStr] = None,
417
+ _headers: Optional[Dict[StrictStr, Any]] = None,
418
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
419
+ ) -> ApiResponse[TestResult]:
420
+ """Get Synthetic test playback results
421
+
422
+ Get a list of aggregated playback results metrics for Synthetic tests matching the specified parameters
423
+
424
+ :param get_test_result:
425
+ :type get_test_result: GetTestResult
426
+ :param _request_timeout: timeout setting for this request. If one
427
+ number provided, it will be total request
428
+ timeout. It can also be a pair (tuple) of
429
+ (connection, read) timeouts.
430
+ :type _request_timeout: int, tuple(int, int), optional
431
+ :param _request_auth: set to override the auth_settings for an a single
432
+ request; this effectively ignores the
433
+ authentication in the spec for a single request.
434
+ :type _request_auth: dict, optional
435
+ :param _content_type: force content-type for the request.
436
+ :type _content_type: str, Optional
437
+ :param _headers: set to override the headers for a single
438
+ request; this effectively ignores the headers
439
+ in the spec for a single request.
440
+ :type _headers: dict, optional
441
+ :param _host_index: set to override the host_index for a single
442
+ request; this effectively ignores the host_index
443
+ in the spec for a single request.
444
+ :type _host_index: int, optional
445
+ :return: Returns the result object.
446
+ """ # noqa: E501
447
+
448
+ _param = self._get_synthetic_result_serialize(
449
+ get_test_result=get_test_result,
450
+ _request_auth=_request_auth,
451
+ _content_type=_content_type,
452
+ _headers=_headers,
453
+ _host_index=_host_index
454
+ )
455
+
456
+ _response_types_map: Dict[str, Optional[str]] = {
457
+ '200': "TestResult",
458
+ '401': None,
459
+ '403': None,
460
+ '500': None,
461
+ }
462
+ response_data = self.api_client.call_api(
463
+ *_param,
464
+ _request_timeout=_request_timeout
465
+ )
466
+ response_data.read()
467
+ return self.api_client.response_deserialize(
468
+ response_data=response_data,
469
+ response_types_map=_response_types_map,
470
+ )
471
+
472
+
473
+ @validate_call
474
+ def get_synthetic_result_without_preload_content(
475
+ self,
476
+ get_test_result: Optional[GetTestResult] = None,
477
+ _request_timeout: Union[
478
+ None,
479
+ Annotated[StrictFloat, Field(gt=0)],
480
+ Tuple[
481
+ Annotated[StrictFloat, Field(gt=0)],
482
+ Annotated[StrictFloat, Field(gt=0)]
483
+ ]
484
+ ] = None,
485
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
486
+ _content_type: Optional[StrictStr] = None,
487
+ _headers: Optional[Dict[StrictStr, Any]] = None,
488
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
489
+ ) -> RESTResponseType:
490
+ """Get Synthetic test playback results
491
+
492
+ Get a list of aggregated playback results metrics for Synthetic tests matching the specified parameters
493
+
494
+ :param get_test_result:
495
+ :type get_test_result: GetTestResult
496
+ :param _request_timeout: timeout setting for this request. If one
497
+ number provided, it will be total request
498
+ timeout. It can also be a pair (tuple) of
499
+ (connection, read) timeouts.
500
+ :type _request_timeout: int, tuple(int, int), optional
501
+ :param _request_auth: set to override the auth_settings for an a single
502
+ request; this effectively ignores the
503
+ authentication in the spec for a single request.
504
+ :type _request_auth: dict, optional
505
+ :param _content_type: force content-type for the request.
506
+ :type _content_type: str, Optional
507
+ :param _headers: set to override the headers for a single
508
+ request; this effectively ignores the headers
509
+ in the spec for a single request.
510
+ :type _headers: dict, optional
511
+ :param _host_index: set to override the host_index for a single
512
+ request; this effectively ignores the host_index
513
+ in the spec for a single request.
514
+ :type _host_index: int, optional
515
+ :return: Returns the result object.
516
+ """ # noqa: E501
517
+
518
+ _param = self._get_synthetic_result_serialize(
519
+ get_test_result=get_test_result,
520
+ _request_auth=_request_auth,
521
+ _content_type=_content_type,
522
+ _headers=_headers,
523
+ _host_index=_host_index
524
+ )
525
+
526
+ _response_types_map: Dict[str, Optional[str]] = {
527
+ '200': "TestResult",
528
+ '401': None,
529
+ '403': None,
530
+ '500': None,
531
+ }
532
+ response_data = self.api_client.call_api(
533
+ *_param,
534
+ _request_timeout=_request_timeout
535
+ )
536
+ return response_data.response
537
+
538
+
539
+ def _get_synthetic_result_serialize(
540
+ self,
541
+ get_test_result,
542
+ _request_auth,
543
+ _content_type,
544
+ _headers,
545
+ _host_index,
546
+ ) -> RequestSerialized:
547
+
548
+ _host = None
549
+
550
+ _collection_formats: Dict[str, str] = {
551
+ }
552
+
553
+ _path_params: Dict[str, str] = {}
554
+ _query_params: List[Tuple[str, str]] = []
555
+ _header_params: Dict[str, Optional[str]] = _headers or {}
556
+ _form_params: List[Tuple[str, str]] = []
557
+ _files: Dict[
558
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
559
+ ] = {}
560
+ _body_params: Optional[bytes] = None
561
+
562
+ # process the path parameters
563
+ # process the query parameters
564
+ # process the header parameters
565
+ # process the form parameters
566
+ # process the body parameter
567
+ if get_test_result is not None:
568
+ _body_params = get_test_result
569
+
570
+
571
+ # set the HTTP header `Accept`
572
+ if 'Accept' not in _header_params:
573
+ _header_params['Accept'] = self.api_client.select_header_accept(
574
+ [
575
+ 'application/json'
576
+ ]
577
+ )
578
+
579
+ # set the HTTP header `Content-Type`
580
+ if _content_type:
581
+ _header_params['Content-Type'] = _content_type
582
+ else:
583
+ _default_content_type = (
584
+ self.api_client.select_header_content_type(
585
+ [
586
+ 'application/json'
587
+ ]
588
+ )
589
+ )
590
+ if _default_content_type is not None:
591
+ _header_params['Content-Type'] = _default_content_type
592
+
593
+ # authentication setting
594
+ _auth_settings: List[str] = [
595
+ 'ApiKeyAuth'
596
+ ]
597
+
598
+ return self.api_client.param_serialize(
599
+ method='POST',
600
+ resource_path='/api/synthetics/results',
601
+ path_params=_path_params,
602
+ query_params=_query_params,
603
+ header_params=_header_params,
604
+ body=_body_params,
605
+ post_params=_form_params,
606
+ files=_files,
607
+ auth_settings=_auth_settings,
608
+ collection_formats=_collection_formats,
609
+ _host=_host,
610
+ _request_auth=_request_auth
611
+ )
612
+
613
+
614
+
615
+
616
+ @validate_call
617
+ def get_synthetic_result_detail_data(
618
+ self,
619
+ testid: Annotated[StrictStr, Field(description="Test id of the test result detailed file contents to be retrieved")],
620
+ testresultid: Annotated[StrictStr, Field(description="Test result id of the test result detailed file to be retrieved")],
621
+ type: Annotated[StrictStr, Field(description="Type of the test result detailed file contents")],
622
+ name: Annotated[Optional[StrictStr], Field(description="Name of the test result detailed file, if more than one file available for the same type. Can be used when parameter type=LOGS")] = None,
623
+ start_time: Annotated[Optional[StrictInt], Field(description="Start time of the test result detailed file contents")] = None,
624
+ _request_timeout: Union[
625
+ None,
626
+ Annotated[StrictFloat, Field(gt=0)],
627
+ Tuple[
628
+ Annotated[StrictFloat, Field(gt=0)],
629
+ Annotated[StrictFloat, Field(gt=0)]
630
+ ]
631
+ ] = None,
632
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
633
+ _content_type: Optional[StrictStr] = None,
634
+ _headers: Optional[Dict[StrictStr, Any]] = None,
635
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
636
+ ) -> TestResultDetailData:
637
+ """Get Synthetic test playback result detail data
638
+
639
+ Download the contents of the Synthetic the playback result detail data file matching the specified file type
640
+
641
+ :param testid: Test id of the test result detailed file contents to be retrieved (required)
642
+ :type testid: str
643
+ :param testresultid: Test result id of the test result detailed file to be retrieved (required)
644
+ :type testresultid: str
645
+ :param type: Type of the test result detailed file contents (required)
646
+ :type type: str
647
+ :param name: Name of the test result detailed file, if more than one file available for the same type. Can be used when parameter type=LOGS
648
+ :type name: str
649
+ :param start_time: Start time of the test result detailed file contents
650
+ :type start_time: int
651
+ :param _request_timeout: timeout setting for this request. If one
652
+ number provided, it will be total request
653
+ timeout. It can also be a pair (tuple) of
654
+ (connection, read) timeouts.
655
+ :type _request_timeout: int, tuple(int, int), optional
656
+ :param _request_auth: set to override the auth_settings for an a single
657
+ request; this effectively ignores the
658
+ authentication in the spec for a single request.
659
+ :type _request_auth: dict, optional
660
+ :param _content_type: force content-type for the request.
661
+ :type _content_type: str, Optional
662
+ :param _headers: set to override the headers for a single
663
+ request; this effectively ignores the headers
664
+ in the spec for a single request.
665
+ :type _headers: dict, optional
666
+ :param _host_index: set to override the host_index for a single
667
+ request; this effectively ignores the host_index
668
+ in the spec for a single request.
669
+ :type _host_index: int, optional
670
+ :return: Returns the result object.
671
+ """ # noqa: E501
672
+
673
+ _param = self._get_synthetic_result_detail_data_serialize(
674
+ testid=testid,
675
+ testresultid=testresultid,
676
+ type=type,
677
+ name=name,
678
+ start_time=start_time,
679
+ _request_auth=_request_auth,
680
+ _content_type=_content_type,
681
+ _headers=_headers,
682
+ _host_index=_host_index
683
+ )
684
+
685
+ _response_types_map: Dict[str, Optional[str]] = {
686
+ '200': "TestResultDetailData",
687
+ '401': None,
688
+ '403': None,
689
+ '404': None,
690
+ '500': None,
691
+ }
692
+ response_data = self.api_client.call_api(
693
+ *_param,
694
+ _request_timeout=_request_timeout
695
+ )
696
+ response_data.read()
697
+ return self.api_client.response_deserialize(
698
+ response_data=response_data,
699
+ response_types_map=_response_types_map,
700
+ ).data
701
+
702
+
703
+ @validate_call
704
+ def get_synthetic_result_detail_data_with_http_info(
705
+ self,
706
+ testid: Annotated[StrictStr, Field(description="Test id of the test result detailed file contents to be retrieved")],
707
+ testresultid: Annotated[StrictStr, Field(description="Test result id of the test result detailed file to be retrieved")],
708
+ type: Annotated[StrictStr, Field(description="Type of the test result detailed file contents")],
709
+ name: Annotated[Optional[StrictStr], Field(description="Name of the test result detailed file, if more than one file available for the same type. Can be used when parameter type=LOGS")] = None,
710
+ start_time: Annotated[Optional[StrictInt], Field(description="Start time of the test result detailed file contents")] = None,
711
+ _request_timeout: Union[
712
+ None,
713
+ Annotated[StrictFloat, Field(gt=0)],
714
+ Tuple[
715
+ Annotated[StrictFloat, Field(gt=0)],
716
+ Annotated[StrictFloat, Field(gt=0)]
717
+ ]
718
+ ] = None,
719
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
720
+ _content_type: Optional[StrictStr] = None,
721
+ _headers: Optional[Dict[StrictStr, Any]] = None,
722
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
723
+ ) -> ApiResponse[TestResultDetailData]:
724
+ """Get Synthetic test playback result detail data
725
+
726
+ Download the contents of the Synthetic the playback result detail data file matching the specified file type
727
+
728
+ :param testid: Test id of the test result detailed file contents to be retrieved (required)
729
+ :type testid: str
730
+ :param testresultid: Test result id of the test result detailed file to be retrieved (required)
731
+ :type testresultid: str
732
+ :param type: Type of the test result detailed file contents (required)
733
+ :type type: str
734
+ :param name: Name of the test result detailed file, if more than one file available for the same type. Can be used when parameter type=LOGS
735
+ :type name: str
736
+ :param start_time: Start time of the test result detailed file contents
737
+ :type start_time: int
738
+ :param _request_timeout: timeout setting for this request. If one
739
+ number provided, it will be total request
740
+ timeout. It can also be a pair (tuple) of
741
+ (connection, read) timeouts.
742
+ :type _request_timeout: int, tuple(int, int), optional
743
+ :param _request_auth: set to override the auth_settings for an a single
744
+ request; this effectively ignores the
745
+ authentication in the spec for a single request.
746
+ :type _request_auth: dict, optional
747
+ :param _content_type: force content-type for the request.
748
+ :type _content_type: str, Optional
749
+ :param _headers: set to override the headers for a single
750
+ request; this effectively ignores the headers
751
+ in the spec for a single request.
752
+ :type _headers: dict, optional
753
+ :param _host_index: set to override the host_index for a single
754
+ request; this effectively ignores the host_index
755
+ in the spec for a single request.
756
+ :type _host_index: int, optional
757
+ :return: Returns the result object.
758
+ """ # noqa: E501
759
+
760
+ _param = self._get_synthetic_result_detail_data_serialize(
761
+ testid=testid,
762
+ testresultid=testresultid,
763
+ type=type,
764
+ name=name,
765
+ start_time=start_time,
766
+ _request_auth=_request_auth,
767
+ _content_type=_content_type,
768
+ _headers=_headers,
769
+ _host_index=_host_index
770
+ )
771
+
772
+ _response_types_map: Dict[str, Optional[str]] = {
773
+ '200': "TestResultDetailData",
774
+ '401': None,
775
+ '403': None,
776
+ '404': None,
777
+ '500': None,
778
+ }
779
+ response_data = self.api_client.call_api(
780
+ *_param,
781
+ _request_timeout=_request_timeout
782
+ )
783
+ response_data.read()
784
+ return self.api_client.response_deserialize(
785
+ response_data=response_data,
786
+ response_types_map=_response_types_map,
787
+ )
788
+
789
+
790
+ @validate_call
791
+ def get_synthetic_result_detail_data_without_preload_content(
792
+ self,
793
+ testid: Annotated[StrictStr, Field(description="Test id of the test result detailed file contents to be retrieved")],
794
+ testresultid: Annotated[StrictStr, Field(description="Test result id of the test result detailed file to be retrieved")],
795
+ type: Annotated[StrictStr, Field(description="Type of the test result detailed file contents")],
796
+ name: Annotated[Optional[StrictStr], Field(description="Name of the test result detailed file, if more than one file available for the same type. Can be used when parameter type=LOGS")] = None,
797
+ start_time: Annotated[Optional[StrictInt], Field(description="Start time of the test result detailed file contents")] = None,
798
+ _request_timeout: Union[
799
+ None,
800
+ Annotated[StrictFloat, Field(gt=0)],
801
+ Tuple[
802
+ Annotated[StrictFloat, Field(gt=0)],
803
+ Annotated[StrictFloat, Field(gt=0)]
804
+ ]
805
+ ] = None,
806
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
807
+ _content_type: Optional[StrictStr] = None,
808
+ _headers: Optional[Dict[StrictStr, Any]] = None,
809
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
810
+ ) -> RESTResponseType:
811
+ """Get Synthetic test playback result detail data
812
+
813
+ Download the contents of the Synthetic the playback result detail data file matching the specified file type
814
+
815
+ :param testid: Test id of the test result detailed file contents to be retrieved (required)
816
+ :type testid: str
817
+ :param testresultid: Test result id of the test result detailed file to be retrieved (required)
818
+ :type testresultid: str
819
+ :param type: Type of the test result detailed file contents (required)
820
+ :type type: str
821
+ :param name: Name of the test result detailed file, if more than one file available for the same type. Can be used when parameter type=LOGS
822
+ :type name: str
823
+ :param start_time: Start time of the test result detailed file contents
824
+ :type start_time: int
825
+ :param _request_timeout: timeout setting for this request. If one
826
+ number provided, it will be total request
827
+ timeout. It can also be a pair (tuple) of
828
+ (connection, read) timeouts.
829
+ :type _request_timeout: int, tuple(int, int), optional
830
+ :param _request_auth: set to override the auth_settings for an a single
831
+ request; this effectively ignores the
832
+ authentication in the spec for a single request.
833
+ :type _request_auth: dict, optional
834
+ :param _content_type: force content-type for the request.
835
+ :type _content_type: str, Optional
836
+ :param _headers: set to override the headers for a single
837
+ request; this effectively ignores the headers
838
+ in the spec for a single request.
839
+ :type _headers: dict, optional
840
+ :param _host_index: set to override the host_index for a single
841
+ request; this effectively ignores the host_index
842
+ in the spec for a single request.
843
+ :type _host_index: int, optional
844
+ :return: Returns the result object.
845
+ """ # noqa: E501
846
+
847
+ _param = self._get_synthetic_result_detail_data_serialize(
848
+ testid=testid,
849
+ testresultid=testresultid,
850
+ type=type,
851
+ name=name,
852
+ start_time=start_time,
853
+ _request_auth=_request_auth,
854
+ _content_type=_content_type,
855
+ _headers=_headers,
856
+ _host_index=_host_index
857
+ )
858
+
859
+ _response_types_map: Dict[str, Optional[str]] = {
860
+ '200': "TestResultDetailData",
861
+ '401': None,
862
+ '403': None,
863
+ '404': None,
864
+ '500': None,
865
+ }
866
+ response_data = self.api_client.call_api(
867
+ *_param,
868
+ _request_timeout=_request_timeout
869
+ )
870
+ return response_data.response
871
+
872
+
873
+ def _get_synthetic_result_detail_data_serialize(
874
+ self,
875
+ testid,
876
+ testresultid,
877
+ type,
878
+ name,
879
+ start_time,
880
+ _request_auth,
881
+ _content_type,
882
+ _headers,
883
+ _host_index,
884
+ ) -> RequestSerialized:
885
+
886
+ _host = None
887
+
888
+ _collection_formats: Dict[str, str] = {
889
+ }
890
+
891
+ _path_params: Dict[str, str] = {}
892
+ _query_params: List[Tuple[str, str]] = []
893
+ _header_params: Dict[str, Optional[str]] = _headers or {}
894
+ _form_params: List[Tuple[str, str]] = []
895
+ _files: Dict[
896
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
897
+ ] = {}
898
+ _body_params: Optional[bytes] = None
899
+
900
+ # process the path parameters
901
+ if testid is not None:
902
+ _path_params['testid'] = testid
903
+ if testresultid is not None:
904
+ _path_params['testresultid'] = testresultid
905
+ # process the query parameters
906
+ if type is not None:
907
+
908
+ _query_params.append(('type', type))
909
+
910
+ if name is not None:
911
+
912
+ _query_params.append(('name', name))
913
+
914
+ if start_time is not None:
915
+
916
+ _query_params.append(('startTime', start_time))
917
+
918
+ # process the header parameters
919
+ # process the form parameters
920
+ # process the body parameter
921
+
922
+
923
+ # set the HTTP header `Accept`
924
+ if 'Accept' not in _header_params:
925
+ _header_params['Accept'] = self.api_client.select_header_accept(
926
+ [
927
+ 'application/json'
928
+ ]
929
+ )
930
+
931
+
932
+ # authentication setting
933
+ _auth_settings: List[str] = [
934
+ 'ApiKeyAuth'
935
+ ]
936
+
937
+ return self.api_client.param_serialize(
938
+ method='GET',
939
+ resource_path='/api/synthetics/results/{testid}/{testresultid}/detail',
940
+ path_params=_path_params,
941
+ query_params=_query_params,
942
+ header_params=_header_params,
943
+ body=_body_params,
944
+ post_params=_form_params,
945
+ files=_files,
946
+ auth_settings=_auth_settings,
947
+ collection_formats=_collection_formats,
948
+ _host=_host,
949
+ _request_auth=_request_auth
950
+ )
951
+
952
+
953
+
954
+
955
+ @validate_call
956
+ def get_synthetic_result_detail_data_file(
957
+ self,
958
+ testid: Annotated[StrictStr, Field(description="Test id of the test result detailed file to be retrieved")],
959
+ testresultid: Annotated[StrictStr, Field(description="Test result id of the test result detailed file to be retrieved")],
960
+ type: Annotated[StrictStr, Field(description="Type of the test result detailed file")],
961
+ start_time: Annotated[Optional[StrictInt], Field(description="Start time of the test result detailed file")] = None,
962
+ _request_timeout: Union[
963
+ None,
964
+ Annotated[StrictFloat, Field(gt=0)],
965
+ Tuple[
966
+ Annotated[StrictFloat, Field(gt=0)],
967
+ Annotated[StrictFloat, Field(gt=0)]
968
+ ]
969
+ ] = None,
970
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
971
+ _content_type: Optional[StrictStr] = None,
972
+ _headers: Optional[Dict[StrictStr, Any]] = None,
973
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
974
+ ) -> None:
975
+ """Download the synthetic test playback result detail data file
976
+
977
+
978
+ :param testid: Test id of the test result detailed file to be retrieved (required)
979
+ :type testid: str
980
+ :param testresultid: Test result id of the test result detailed file to be retrieved (required)
981
+ :type testresultid: str
982
+ :param type: Type of the test result detailed file (required)
983
+ :type type: str
984
+ :param start_time: Start time of the test result detailed file
985
+ :type start_time: int
986
+ :param _request_timeout: timeout setting for this request. If one
987
+ number provided, it will be total request
988
+ timeout. It can also be a pair (tuple) of
989
+ (connection, read) timeouts.
990
+ :type _request_timeout: int, tuple(int, int), optional
991
+ :param _request_auth: set to override the auth_settings for an a single
992
+ request; this effectively ignores the
993
+ authentication in the spec for a single request.
994
+ :type _request_auth: dict, optional
995
+ :param _content_type: force content-type for the request.
996
+ :type _content_type: str, Optional
997
+ :param _headers: set to override the headers for a single
998
+ request; this effectively ignores the headers
999
+ in the spec for a single request.
1000
+ :type _headers: dict, optional
1001
+ :param _host_index: set to override the host_index for a single
1002
+ request; this effectively ignores the host_index
1003
+ in the spec for a single request.
1004
+ :type _host_index: int, optional
1005
+ :return: Returns the result object.
1006
+ """ # noqa: E501
1007
+
1008
+ _param = self._get_synthetic_result_detail_data_file_serialize(
1009
+ testid=testid,
1010
+ testresultid=testresultid,
1011
+ type=type,
1012
+ start_time=start_time,
1013
+ _request_auth=_request_auth,
1014
+ _content_type=_content_type,
1015
+ _headers=_headers,
1016
+ _host_index=_host_index
1017
+ )
1018
+
1019
+ _response_types_map: Dict[str, Optional[str]] = {
1020
+ '200': None,
1021
+ '401': None,
1022
+ '403': None,
1023
+ '404': None,
1024
+ '500': None,
1025
+ }
1026
+ response_data = self.api_client.call_api(
1027
+ *_param,
1028
+ _request_timeout=_request_timeout
1029
+ )
1030
+ response_data.read()
1031
+ return self.api_client.response_deserialize(
1032
+ response_data=response_data,
1033
+ response_types_map=_response_types_map,
1034
+ ).data
1035
+
1036
+
1037
+ @validate_call
1038
+ def get_synthetic_result_detail_data_file_with_http_info(
1039
+ self,
1040
+ testid: Annotated[StrictStr, Field(description="Test id of the test result detailed file to be retrieved")],
1041
+ testresultid: Annotated[StrictStr, Field(description="Test result id of the test result detailed file to be retrieved")],
1042
+ type: Annotated[StrictStr, Field(description="Type of the test result detailed file")],
1043
+ start_time: Annotated[Optional[StrictInt], Field(description="Start time of the test result detailed file")] = None,
1044
+ _request_timeout: Union[
1045
+ None,
1046
+ Annotated[StrictFloat, Field(gt=0)],
1047
+ Tuple[
1048
+ Annotated[StrictFloat, Field(gt=0)],
1049
+ Annotated[StrictFloat, Field(gt=0)]
1050
+ ]
1051
+ ] = None,
1052
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1053
+ _content_type: Optional[StrictStr] = None,
1054
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1055
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1056
+ ) -> ApiResponse[None]:
1057
+ """Download the synthetic test playback result detail data file
1058
+
1059
+
1060
+ :param testid: Test id of the test result detailed file to be retrieved (required)
1061
+ :type testid: str
1062
+ :param testresultid: Test result id of the test result detailed file to be retrieved (required)
1063
+ :type testresultid: str
1064
+ :param type: Type of the test result detailed file (required)
1065
+ :type type: str
1066
+ :param start_time: Start time of the test result detailed file
1067
+ :type start_time: int
1068
+ :param _request_timeout: timeout setting for this request. If one
1069
+ number provided, it will be total request
1070
+ timeout. It can also be a pair (tuple) of
1071
+ (connection, read) timeouts.
1072
+ :type _request_timeout: int, tuple(int, int), optional
1073
+ :param _request_auth: set to override the auth_settings for an a single
1074
+ request; this effectively ignores the
1075
+ authentication in the spec for a single request.
1076
+ :type _request_auth: dict, optional
1077
+ :param _content_type: force content-type for the request.
1078
+ :type _content_type: str, Optional
1079
+ :param _headers: set to override the headers for a single
1080
+ request; this effectively ignores the headers
1081
+ in the spec for a single request.
1082
+ :type _headers: dict, optional
1083
+ :param _host_index: set to override the host_index for a single
1084
+ request; this effectively ignores the host_index
1085
+ in the spec for a single request.
1086
+ :type _host_index: int, optional
1087
+ :return: Returns the result object.
1088
+ """ # noqa: E501
1089
+
1090
+ _param = self._get_synthetic_result_detail_data_file_serialize(
1091
+ testid=testid,
1092
+ testresultid=testresultid,
1093
+ type=type,
1094
+ start_time=start_time,
1095
+ _request_auth=_request_auth,
1096
+ _content_type=_content_type,
1097
+ _headers=_headers,
1098
+ _host_index=_host_index
1099
+ )
1100
+
1101
+ _response_types_map: Dict[str, Optional[str]] = {
1102
+ '200': None,
1103
+ '401': None,
1104
+ '403': None,
1105
+ '404': None,
1106
+ '500': None,
1107
+ }
1108
+ response_data = self.api_client.call_api(
1109
+ *_param,
1110
+ _request_timeout=_request_timeout
1111
+ )
1112
+ response_data.read()
1113
+ return self.api_client.response_deserialize(
1114
+ response_data=response_data,
1115
+ response_types_map=_response_types_map,
1116
+ )
1117
+
1118
+
1119
+ @validate_call
1120
+ def get_synthetic_result_detail_data_file_without_preload_content(
1121
+ self,
1122
+ testid: Annotated[StrictStr, Field(description="Test id of the test result detailed file to be retrieved")],
1123
+ testresultid: Annotated[StrictStr, Field(description="Test result id of the test result detailed file to be retrieved")],
1124
+ type: Annotated[StrictStr, Field(description="Type of the test result detailed file")],
1125
+ start_time: Annotated[Optional[StrictInt], Field(description="Start time of the test result detailed file")] = None,
1126
+ _request_timeout: Union[
1127
+ None,
1128
+ Annotated[StrictFloat, Field(gt=0)],
1129
+ Tuple[
1130
+ Annotated[StrictFloat, Field(gt=0)],
1131
+ Annotated[StrictFloat, Field(gt=0)]
1132
+ ]
1133
+ ] = None,
1134
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1135
+ _content_type: Optional[StrictStr] = None,
1136
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1137
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1138
+ ) -> RESTResponseType:
1139
+ """Download the synthetic test playback result detail data file
1140
+
1141
+
1142
+ :param testid: Test id of the test result detailed file to be retrieved (required)
1143
+ :type testid: str
1144
+ :param testresultid: Test result id of the test result detailed file to be retrieved (required)
1145
+ :type testresultid: str
1146
+ :param type: Type of the test result detailed file (required)
1147
+ :type type: str
1148
+ :param start_time: Start time of the test result detailed file
1149
+ :type start_time: int
1150
+ :param _request_timeout: timeout setting for this request. If one
1151
+ number provided, it will be total request
1152
+ timeout. It can also be a pair (tuple) of
1153
+ (connection, read) timeouts.
1154
+ :type _request_timeout: int, tuple(int, int), optional
1155
+ :param _request_auth: set to override the auth_settings for an a single
1156
+ request; this effectively ignores the
1157
+ authentication in the spec for a single request.
1158
+ :type _request_auth: dict, optional
1159
+ :param _content_type: force content-type for the request.
1160
+ :type _content_type: str, Optional
1161
+ :param _headers: set to override the headers for a single
1162
+ request; this effectively ignores the headers
1163
+ in the spec for a single request.
1164
+ :type _headers: dict, optional
1165
+ :param _host_index: set to override the host_index for a single
1166
+ request; this effectively ignores the host_index
1167
+ in the spec for a single request.
1168
+ :type _host_index: int, optional
1169
+ :return: Returns the result object.
1170
+ """ # noqa: E501
1171
+
1172
+ _param = self._get_synthetic_result_detail_data_file_serialize(
1173
+ testid=testid,
1174
+ testresultid=testresultid,
1175
+ type=type,
1176
+ start_time=start_time,
1177
+ _request_auth=_request_auth,
1178
+ _content_type=_content_type,
1179
+ _headers=_headers,
1180
+ _host_index=_host_index
1181
+ )
1182
+
1183
+ _response_types_map: Dict[str, Optional[str]] = {
1184
+ '200': None,
1185
+ '401': None,
1186
+ '403': None,
1187
+ '404': None,
1188
+ '500': None,
1189
+ }
1190
+ response_data = self.api_client.call_api(
1191
+ *_param,
1192
+ _request_timeout=_request_timeout
1193
+ )
1194
+ return response_data.response
1195
+
1196
+
1197
+ def _get_synthetic_result_detail_data_file_serialize(
1198
+ self,
1199
+ testid,
1200
+ testresultid,
1201
+ type,
1202
+ start_time,
1203
+ _request_auth,
1204
+ _content_type,
1205
+ _headers,
1206
+ _host_index,
1207
+ ) -> RequestSerialized:
1208
+
1209
+ _host = None
1210
+
1211
+ _collection_formats: Dict[str, str] = {
1212
+ }
1213
+
1214
+ _path_params: Dict[str, str] = {}
1215
+ _query_params: List[Tuple[str, str]] = []
1216
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1217
+ _form_params: List[Tuple[str, str]] = []
1218
+ _files: Dict[
1219
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1220
+ ] = {}
1221
+ _body_params: Optional[bytes] = None
1222
+
1223
+ # process the path parameters
1224
+ if testid is not None:
1225
+ _path_params['testid'] = testid
1226
+ if testresultid is not None:
1227
+ _path_params['testresultid'] = testresultid
1228
+ # process the query parameters
1229
+ if type is not None:
1230
+
1231
+ _query_params.append(('type', type))
1232
+
1233
+ if start_time is not None:
1234
+
1235
+ _query_params.append(('startTime', start_time))
1236
+
1237
+ # process the header parameters
1238
+ # process the form parameters
1239
+ # process the body parameter
1240
+
1241
+
1242
+ # set the HTTP header `Accept`
1243
+ if 'Accept' not in _header_params:
1244
+ _header_params['Accept'] = self.api_client.select_header_accept(
1245
+ [
1246
+ 'application/octet-stream'
1247
+ ]
1248
+ )
1249
+
1250
+
1251
+ # authentication setting
1252
+ _auth_settings: List[str] = [
1253
+ 'ApiKeyAuth'
1254
+ ]
1255
+
1256
+ return self.api_client.param_serialize(
1257
+ method='GET',
1258
+ resource_path='/api/synthetics/results/{testid}/{testresultid}/file',
1259
+ path_params=_path_params,
1260
+ query_params=_query_params,
1261
+ header_params=_header_params,
1262
+ body=_body_params,
1263
+ post_params=_form_params,
1264
+ files=_files,
1265
+ auth_settings=_auth_settings,
1266
+ collection_formats=_collection_formats,
1267
+ _host=_host,
1268
+ _request_auth=_request_auth
1269
+ )
1270
+
1271
+
1272
+
1273
+
1274
+ @validate_call
1275
+ def get_synthetic_result_list(
1276
+ self,
1277
+ get_test_result_list: Optional[GetTestResultList] = None,
1278
+ _request_timeout: Union[
1279
+ None,
1280
+ Annotated[StrictFloat, Field(gt=0)],
1281
+ Tuple[
1282
+ Annotated[StrictFloat, Field(gt=0)],
1283
+ Annotated[StrictFloat, Field(gt=0)]
1284
+ ]
1285
+ ] = None,
1286
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1287
+ _content_type: Optional[StrictStr] = None,
1288
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1289
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1290
+ ) -> TestResultListResult:
1291
+ """Get a list of Synthetic test playback results
1292
+
1293
+ Get a list of playback results metrics for Synthetic tests matching the specified parameters
1294
+
1295
+ :param get_test_result_list:
1296
+ :type get_test_result_list: GetTestResultList
1297
+ :param _request_timeout: timeout setting for this request. If one
1298
+ number provided, it will be total request
1299
+ timeout. It can also be a pair (tuple) of
1300
+ (connection, read) timeouts.
1301
+ :type _request_timeout: int, tuple(int, int), optional
1302
+ :param _request_auth: set to override the auth_settings for an a single
1303
+ request; this effectively ignores the
1304
+ authentication in the spec for a single request.
1305
+ :type _request_auth: dict, optional
1306
+ :param _content_type: force content-type for the request.
1307
+ :type _content_type: str, Optional
1308
+ :param _headers: set to override the headers for a single
1309
+ request; this effectively ignores the headers
1310
+ in the spec for a single request.
1311
+ :type _headers: dict, optional
1312
+ :param _host_index: set to override the host_index for a single
1313
+ request; this effectively ignores the host_index
1314
+ in the spec for a single request.
1315
+ :type _host_index: int, optional
1316
+ :return: Returns the result object.
1317
+ """ # noqa: E501
1318
+
1319
+ _param = self._get_synthetic_result_list_serialize(
1320
+ get_test_result_list=get_test_result_list,
1321
+ _request_auth=_request_auth,
1322
+ _content_type=_content_type,
1323
+ _headers=_headers,
1324
+ _host_index=_host_index
1325
+ )
1326
+
1327
+ _response_types_map: Dict[str, Optional[str]] = {
1328
+ '200': "TestResultListResult",
1329
+ '401': None,
1330
+ '403': None,
1331
+ '500': None,
1332
+ }
1333
+ response_data = self.api_client.call_api(
1334
+ *_param,
1335
+ _request_timeout=_request_timeout
1336
+ )
1337
+ response_data.read()
1338
+ return self.api_client.response_deserialize(
1339
+ response_data=response_data,
1340
+ response_types_map=_response_types_map,
1341
+ ).data
1342
+
1343
+
1344
+ @validate_call
1345
+ def get_synthetic_result_list_with_http_info(
1346
+ self,
1347
+ get_test_result_list: Optional[GetTestResultList] = None,
1348
+ _request_timeout: Union[
1349
+ None,
1350
+ Annotated[StrictFloat, Field(gt=0)],
1351
+ Tuple[
1352
+ Annotated[StrictFloat, Field(gt=0)],
1353
+ Annotated[StrictFloat, Field(gt=0)]
1354
+ ]
1355
+ ] = None,
1356
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1357
+ _content_type: Optional[StrictStr] = None,
1358
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1359
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1360
+ ) -> ApiResponse[TestResultListResult]:
1361
+ """Get a list of Synthetic test playback results
1362
+
1363
+ Get a list of playback results metrics for Synthetic tests matching the specified parameters
1364
+
1365
+ :param get_test_result_list:
1366
+ :type get_test_result_list: GetTestResultList
1367
+ :param _request_timeout: timeout setting for this request. If one
1368
+ number provided, it will be total request
1369
+ timeout. It can also be a pair (tuple) of
1370
+ (connection, read) timeouts.
1371
+ :type _request_timeout: int, tuple(int, int), optional
1372
+ :param _request_auth: set to override the auth_settings for an a single
1373
+ request; this effectively ignores the
1374
+ authentication in the spec for a single request.
1375
+ :type _request_auth: dict, optional
1376
+ :param _content_type: force content-type for the request.
1377
+ :type _content_type: str, Optional
1378
+ :param _headers: set to override the headers for a single
1379
+ request; this effectively ignores the headers
1380
+ in the spec for a single request.
1381
+ :type _headers: dict, optional
1382
+ :param _host_index: set to override the host_index for a single
1383
+ request; this effectively ignores the host_index
1384
+ in the spec for a single request.
1385
+ :type _host_index: int, optional
1386
+ :return: Returns the result object.
1387
+ """ # noqa: E501
1388
+
1389
+ _param = self._get_synthetic_result_list_serialize(
1390
+ get_test_result_list=get_test_result_list,
1391
+ _request_auth=_request_auth,
1392
+ _content_type=_content_type,
1393
+ _headers=_headers,
1394
+ _host_index=_host_index
1395
+ )
1396
+
1397
+ _response_types_map: Dict[str, Optional[str]] = {
1398
+ '200': "TestResultListResult",
1399
+ '401': None,
1400
+ '403': None,
1401
+ '500': None,
1402
+ }
1403
+ response_data = self.api_client.call_api(
1404
+ *_param,
1405
+ _request_timeout=_request_timeout
1406
+ )
1407
+ response_data.read()
1408
+ return self.api_client.response_deserialize(
1409
+ response_data=response_data,
1410
+ response_types_map=_response_types_map,
1411
+ )
1412
+
1413
+
1414
+ @validate_call
1415
+ def get_synthetic_result_list_without_preload_content(
1416
+ self,
1417
+ get_test_result_list: Optional[GetTestResultList] = None,
1418
+ _request_timeout: Union[
1419
+ None,
1420
+ Annotated[StrictFloat, Field(gt=0)],
1421
+ Tuple[
1422
+ Annotated[StrictFloat, Field(gt=0)],
1423
+ Annotated[StrictFloat, Field(gt=0)]
1424
+ ]
1425
+ ] = None,
1426
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1427
+ _content_type: Optional[StrictStr] = None,
1428
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1429
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1430
+ ) -> RESTResponseType:
1431
+ """Get a list of Synthetic test playback results
1432
+
1433
+ Get a list of playback results metrics for Synthetic tests matching the specified parameters
1434
+
1435
+ :param get_test_result_list:
1436
+ :type get_test_result_list: GetTestResultList
1437
+ :param _request_timeout: timeout setting for this request. If one
1438
+ number provided, it will be total request
1439
+ timeout. It can also be a pair (tuple) of
1440
+ (connection, read) timeouts.
1441
+ :type _request_timeout: int, tuple(int, int), optional
1442
+ :param _request_auth: set to override the auth_settings for an a single
1443
+ request; this effectively ignores the
1444
+ authentication in the spec for a single request.
1445
+ :type _request_auth: dict, optional
1446
+ :param _content_type: force content-type for the request.
1447
+ :type _content_type: str, Optional
1448
+ :param _headers: set to override the headers for a single
1449
+ request; this effectively ignores the headers
1450
+ in the spec for a single request.
1451
+ :type _headers: dict, optional
1452
+ :param _host_index: set to override the host_index for a single
1453
+ request; this effectively ignores the host_index
1454
+ in the spec for a single request.
1455
+ :type _host_index: int, optional
1456
+ :return: Returns the result object.
1457
+ """ # noqa: E501
1458
+
1459
+ _param = self._get_synthetic_result_list_serialize(
1460
+ get_test_result_list=get_test_result_list,
1461
+ _request_auth=_request_auth,
1462
+ _content_type=_content_type,
1463
+ _headers=_headers,
1464
+ _host_index=_host_index
1465
+ )
1466
+
1467
+ _response_types_map: Dict[str, Optional[str]] = {
1468
+ '200': "TestResultListResult",
1469
+ '401': None,
1470
+ '403': None,
1471
+ '500': None,
1472
+ }
1473
+ response_data = self.api_client.call_api(
1474
+ *_param,
1475
+ _request_timeout=_request_timeout
1476
+ )
1477
+ return response_data.response
1478
+
1479
+
1480
+ def _get_synthetic_result_list_serialize(
1481
+ self,
1482
+ get_test_result_list,
1483
+ _request_auth,
1484
+ _content_type,
1485
+ _headers,
1486
+ _host_index,
1487
+ ) -> RequestSerialized:
1488
+
1489
+ _host = None
1490
+
1491
+ _collection_formats: Dict[str, str] = {
1492
+ }
1493
+
1494
+ _path_params: Dict[str, str] = {}
1495
+ _query_params: List[Tuple[str, str]] = []
1496
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1497
+ _form_params: List[Tuple[str, str]] = []
1498
+ _files: Dict[
1499
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1500
+ ] = {}
1501
+ _body_params: Optional[bytes] = None
1502
+
1503
+ # process the path parameters
1504
+ # process the query parameters
1505
+ # process the header parameters
1506
+ # process the form parameters
1507
+ # process the body parameter
1508
+ if get_test_result_list is not None:
1509
+ _body_params = get_test_result_list
1510
+
1511
+
1512
+ # set the HTTP header `Accept`
1513
+ if 'Accept' not in _header_params:
1514
+ _header_params['Accept'] = self.api_client.select_header_accept(
1515
+ [
1516
+ 'application/json'
1517
+ ]
1518
+ )
1519
+
1520
+ # set the HTTP header `Content-Type`
1521
+ if _content_type:
1522
+ _header_params['Content-Type'] = _content_type
1523
+ else:
1524
+ _default_content_type = (
1525
+ self.api_client.select_header_content_type(
1526
+ [
1527
+ 'application/json'
1528
+ ]
1529
+ )
1530
+ )
1531
+ if _default_content_type is not None:
1532
+ _header_params['Content-Type'] = _default_content_type
1533
+
1534
+ # authentication setting
1535
+ _auth_settings: List[str] = [
1536
+ 'ApiKeyAuth'
1537
+ ]
1538
+
1539
+ return self.api_client.param_serialize(
1540
+ method='POST',
1541
+ resource_path='/api/synthetics/results/list',
1542
+ path_params=_path_params,
1543
+ query_params=_query_params,
1544
+ header_params=_header_params,
1545
+ body=_body_params,
1546
+ post_params=_form_params,
1547
+ files=_files,
1548
+ auth_settings=_auth_settings,
1549
+ collection_formats=_collection_formats,
1550
+ _host=_host,
1551
+ _request_auth=_request_auth
1552
+ )
1553
+
1554
+
1555
+
1556
+
1557
+ @validate_call
1558
+ def get_synthetic_result_metadata(
1559
+ self,
1560
+ testid: Annotated[StrictStr, Field(description="Test id of the test result detailed description to be retrieved")],
1561
+ testresultid: Annotated[StrictStr, Field(description="Test result id of the test result detailed description to be retrieved")],
1562
+ start_time: Annotated[Optional[StrictInt], Field(description="Start time of the test result detailed description")] = None,
1563
+ _request_timeout: Union[
1564
+ None,
1565
+ Annotated[StrictFloat, Field(gt=0)],
1566
+ Tuple[
1567
+ Annotated[StrictFloat, Field(gt=0)],
1568
+ Annotated[StrictFloat, Field(gt=0)]
1569
+ ]
1570
+ ] = None,
1571
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1572
+ _content_type: Optional[StrictStr] = None,
1573
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1574
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1575
+ ) -> TestResultMetadata:
1576
+ """Get Synthetic test playback detail result description(metadata)
1577
+
1578
+ Gets the list of detailed data file names associated to a Synthetic playback result
1579
+
1580
+ :param testid: Test id of the test result detailed description to be retrieved (required)
1581
+ :type testid: str
1582
+ :param testresultid: Test result id of the test result detailed description to be retrieved (required)
1583
+ :type testresultid: str
1584
+ :param start_time: Start time of the test result detailed description
1585
+ :type start_time: int
1586
+ :param _request_timeout: timeout setting for this request. If one
1587
+ number provided, it will be total request
1588
+ timeout. It can also be a pair (tuple) of
1589
+ (connection, read) timeouts.
1590
+ :type _request_timeout: int, tuple(int, int), optional
1591
+ :param _request_auth: set to override the auth_settings for an a single
1592
+ request; this effectively ignores the
1593
+ authentication in the spec for a single request.
1594
+ :type _request_auth: dict, optional
1595
+ :param _content_type: force content-type for the request.
1596
+ :type _content_type: str, Optional
1597
+ :param _headers: set to override the headers for a single
1598
+ request; this effectively ignores the headers
1599
+ in the spec for a single request.
1600
+ :type _headers: dict, optional
1601
+ :param _host_index: set to override the host_index for a single
1602
+ request; this effectively ignores the host_index
1603
+ in the spec for a single request.
1604
+ :type _host_index: int, optional
1605
+ :return: Returns the result object.
1606
+ """ # noqa: E501
1607
+
1608
+ _param = self._get_synthetic_result_metadata_serialize(
1609
+ testid=testid,
1610
+ testresultid=testresultid,
1611
+ start_time=start_time,
1612
+ _request_auth=_request_auth,
1613
+ _content_type=_content_type,
1614
+ _headers=_headers,
1615
+ _host_index=_host_index
1616
+ )
1617
+
1618
+ _response_types_map: Dict[str, Optional[str]] = {
1619
+ '200': "TestResultMetadata",
1620
+ '401': None,
1621
+ '403': None,
1622
+ '404': None,
1623
+ '500': None,
1624
+ }
1625
+ response_data = self.api_client.call_api(
1626
+ *_param,
1627
+ _request_timeout=_request_timeout
1628
+ )
1629
+ response_data.read()
1630
+ return self.api_client.response_deserialize(
1631
+ response_data=response_data,
1632
+ response_types_map=_response_types_map,
1633
+ ).data
1634
+
1635
+
1636
+ @validate_call
1637
+ def get_synthetic_result_metadata_with_http_info(
1638
+ self,
1639
+ testid: Annotated[StrictStr, Field(description="Test id of the test result detailed description to be retrieved")],
1640
+ testresultid: Annotated[StrictStr, Field(description="Test result id of the test result detailed description to be retrieved")],
1641
+ start_time: Annotated[Optional[StrictInt], Field(description="Start time of the test result detailed description")] = None,
1642
+ _request_timeout: Union[
1643
+ None,
1644
+ Annotated[StrictFloat, Field(gt=0)],
1645
+ Tuple[
1646
+ Annotated[StrictFloat, Field(gt=0)],
1647
+ Annotated[StrictFloat, Field(gt=0)]
1648
+ ]
1649
+ ] = None,
1650
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1651
+ _content_type: Optional[StrictStr] = None,
1652
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1653
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1654
+ ) -> ApiResponse[TestResultMetadata]:
1655
+ """Get Synthetic test playback detail result description(metadata)
1656
+
1657
+ Gets the list of detailed data file names associated to a Synthetic playback result
1658
+
1659
+ :param testid: Test id of the test result detailed description to be retrieved (required)
1660
+ :type testid: str
1661
+ :param testresultid: Test result id of the test result detailed description to be retrieved (required)
1662
+ :type testresultid: str
1663
+ :param start_time: Start time of the test result detailed description
1664
+ :type start_time: int
1665
+ :param _request_timeout: timeout setting for this request. If one
1666
+ number provided, it will be total request
1667
+ timeout. It can also be a pair (tuple) of
1668
+ (connection, read) timeouts.
1669
+ :type _request_timeout: int, tuple(int, int), optional
1670
+ :param _request_auth: set to override the auth_settings for an a single
1671
+ request; this effectively ignores the
1672
+ authentication in the spec for a single request.
1673
+ :type _request_auth: dict, optional
1674
+ :param _content_type: force content-type for the request.
1675
+ :type _content_type: str, Optional
1676
+ :param _headers: set to override the headers for a single
1677
+ request; this effectively ignores the headers
1678
+ in the spec for a single request.
1679
+ :type _headers: dict, optional
1680
+ :param _host_index: set to override the host_index for a single
1681
+ request; this effectively ignores the host_index
1682
+ in the spec for a single request.
1683
+ :type _host_index: int, optional
1684
+ :return: Returns the result object.
1685
+ """ # noqa: E501
1686
+
1687
+ _param = self._get_synthetic_result_metadata_serialize(
1688
+ testid=testid,
1689
+ testresultid=testresultid,
1690
+ start_time=start_time,
1691
+ _request_auth=_request_auth,
1692
+ _content_type=_content_type,
1693
+ _headers=_headers,
1694
+ _host_index=_host_index
1695
+ )
1696
+
1697
+ _response_types_map: Dict[str, Optional[str]] = {
1698
+ '200': "TestResultMetadata",
1699
+ '401': None,
1700
+ '403': None,
1701
+ '404': None,
1702
+ '500': None,
1703
+ }
1704
+ response_data = self.api_client.call_api(
1705
+ *_param,
1706
+ _request_timeout=_request_timeout
1707
+ )
1708
+ response_data.read()
1709
+ return self.api_client.response_deserialize(
1710
+ response_data=response_data,
1711
+ response_types_map=_response_types_map,
1712
+ )
1713
+
1714
+
1715
+ @validate_call
1716
+ def get_synthetic_result_metadata_without_preload_content(
1717
+ self,
1718
+ testid: Annotated[StrictStr, Field(description="Test id of the test result detailed description to be retrieved")],
1719
+ testresultid: Annotated[StrictStr, Field(description="Test result id of the test result detailed description to be retrieved")],
1720
+ start_time: Annotated[Optional[StrictInt], Field(description="Start time of the test result detailed description")] = None,
1721
+ _request_timeout: Union[
1722
+ None,
1723
+ Annotated[StrictFloat, Field(gt=0)],
1724
+ Tuple[
1725
+ Annotated[StrictFloat, Field(gt=0)],
1726
+ Annotated[StrictFloat, Field(gt=0)]
1727
+ ]
1728
+ ] = None,
1729
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1730
+ _content_type: Optional[StrictStr] = None,
1731
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1732
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1733
+ ) -> RESTResponseType:
1734
+ """Get Synthetic test playback detail result description(metadata)
1735
+
1736
+ Gets the list of detailed data file names associated to a Synthetic playback result
1737
+
1738
+ :param testid: Test id of the test result detailed description to be retrieved (required)
1739
+ :type testid: str
1740
+ :param testresultid: Test result id of the test result detailed description to be retrieved (required)
1741
+ :type testresultid: str
1742
+ :param start_time: Start time of the test result detailed description
1743
+ :type start_time: int
1744
+ :param _request_timeout: timeout setting for this request. If one
1745
+ number provided, it will be total request
1746
+ timeout. It can also be a pair (tuple) of
1747
+ (connection, read) timeouts.
1748
+ :type _request_timeout: int, tuple(int, int), optional
1749
+ :param _request_auth: set to override the auth_settings for an a single
1750
+ request; this effectively ignores the
1751
+ authentication in the spec for a single request.
1752
+ :type _request_auth: dict, optional
1753
+ :param _content_type: force content-type for the request.
1754
+ :type _content_type: str, Optional
1755
+ :param _headers: set to override the headers for a single
1756
+ request; this effectively ignores the headers
1757
+ in the spec for a single request.
1758
+ :type _headers: dict, optional
1759
+ :param _host_index: set to override the host_index for a single
1760
+ request; this effectively ignores the host_index
1761
+ in the spec for a single request.
1762
+ :type _host_index: int, optional
1763
+ :return: Returns the result object.
1764
+ """ # noqa: E501
1765
+
1766
+ _param = self._get_synthetic_result_metadata_serialize(
1767
+ testid=testid,
1768
+ testresultid=testresultid,
1769
+ start_time=start_time,
1770
+ _request_auth=_request_auth,
1771
+ _content_type=_content_type,
1772
+ _headers=_headers,
1773
+ _host_index=_host_index
1774
+ )
1775
+
1776
+ _response_types_map: Dict[str, Optional[str]] = {
1777
+ '200': "TestResultMetadata",
1778
+ '401': None,
1779
+ '403': None,
1780
+ '404': None,
1781
+ '500': None,
1782
+ }
1783
+ response_data = self.api_client.call_api(
1784
+ *_param,
1785
+ _request_timeout=_request_timeout
1786
+ )
1787
+ return response_data.response
1788
+
1789
+
1790
+ def _get_synthetic_result_metadata_serialize(
1791
+ self,
1792
+ testid,
1793
+ testresultid,
1794
+ start_time,
1795
+ _request_auth,
1796
+ _content_type,
1797
+ _headers,
1798
+ _host_index,
1799
+ ) -> RequestSerialized:
1800
+
1801
+ _host = None
1802
+
1803
+ _collection_formats: Dict[str, str] = {
1804
+ }
1805
+
1806
+ _path_params: Dict[str, str] = {}
1807
+ _query_params: List[Tuple[str, str]] = []
1808
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1809
+ _form_params: List[Tuple[str, str]] = []
1810
+ _files: Dict[
1811
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1812
+ ] = {}
1813
+ _body_params: Optional[bytes] = None
1814
+
1815
+ # process the path parameters
1816
+ if testid is not None:
1817
+ _path_params['testid'] = testid
1818
+ if testresultid is not None:
1819
+ _path_params['testresultid'] = testresultid
1820
+ # process the query parameters
1821
+ if start_time is not None:
1822
+
1823
+ _query_params.append(('startTime', start_time))
1824
+
1825
+ # process the header parameters
1826
+ # process the form parameters
1827
+ # process the body parameter
1828
+
1829
+
1830
+ # set the HTTP header `Accept`
1831
+ if 'Accept' not in _header_params:
1832
+ _header_params['Accept'] = self.api_client.select_header_accept(
1833
+ [
1834
+ 'application/json'
1835
+ ]
1836
+ )
1837
+
1838
+
1839
+ # authentication setting
1840
+ _auth_settings: List[str] = [
1841
+ 'ApiKeyAuth'
1842
+ ]
1843
+
1844
+ return self.api_client.param_serialize(
1845
+ method='GET',
1846
+ resource_path='/api/synthetics/results/{testid}/{testresultid}',
1847
+ path_params=_path_params,
1848
+ query_params=_query_params,
1849
+ header_params=_header_params,
1850
+ body=_body_params,
1851
+ post_params=_form_params,
1852
+ files=_files,
1853
+ auth_settings=_auth_settings,
1854
+ collection_formats=_collection_formats,
1855
+ _host=_host,
1856
+ _request_auth=_request_auth
1857
+ )
1858
+
1859
+
1860
+
1861
+
1862
+ @validate_call
1863
+ def get_test_summary_list(
1864
+ self,
1865
+ get_test_summary_result: Optional[GetTestSummaryResult] = None,
1866
+ _request_timeout: Union[
1867
+ None,
1868
+ Annotated[StrictFloat, Field(gt=0)],
1869
+ Tuple[
1870
+ Annotated[StrictFloat, Field(gt=0)],
1871
+ Annotated[StrictFloat, Field(gt=0)]
1872
+ ]
1873
+ ] = None,
1874
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1875
+ _content_type: Optional[StrictStr] = None,
1876
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1877
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1878
+ ) -> TestResultListResult:
1879
+ """Get a list of Synthetic tests with success rate and average response time data
1880
+
1881
+ Get a summary of the playback results metrics and success rate for Synthetic tests matching the specified parameters
1882
+
1883
+ :param get_test_summary_result:
1884
+ :type get_test_summary_result: GetTestSummaryResult
1885
+ :param _request_timeout: timeout setting for this request. If one
1886
+ number provided, it will be total request
1887
+ timeout. It can also be a pair (tuple) of
1888
+ (connection, read) timeouts.
1889
+ :type _request_timeout: int, tuple(int, int), optional
1890
+ :param _request_auth: set to override the auth_settings for an a single
1891
+ request; this effectively ignores the
1892
+ authentication in the spec for a single request.
1893
+ :type _request_auth: dict, optional
1894
+ :param _content_type: force content-type for the request.
1895
+ :type _content_type: str, Optional
1896
+ :param _headers: set to override the headers for a single
1897
+ request; this effectively ignores the headers
1898
+ in the spec for a single request.
1899
+ :type _headers: dict, optional
1900
+ :param _host_index: set to override the host_index for a single
1901
+ request; this effectively ignores the host_index
1902
+ in the spec for a single request.
1903
+ :type _host_index: int, optional
1904
+ :return: Returns the result object.
1905
+ """ # noqa: E501
1906
+
1907
+ _param = self._get_test_summary_list_serialize(
1908
+ get_test_summary_result=get_test_summary_result,
1909
+ _request_auth=_request_auth,
1910
+ _content_type=_content_type,
1911
+ _headers=_headers,
1912
+ _host_index=_host_index
1913
+ )
1914
+
1915
+ _response_types_map: Dict[str, Optional[str]] = {
1916
+ '200': "TestResultListResult",
1917
+ '401': None,
1918
+ '403': None,
1919
+ '500': None,
1920
+ }
1921
+ response_data = self.api_client.call_api(
1922
+ *_param,
1923
+ _request_timeout=_request_timeout
1924
+ )
1925
+ response_data.read()
1926
+ return self.api_client.response_deserialize(
1927
+ response_data=response_data,
1928
+ response_types_map=_response_types_map,
1929
+ ).data
1930
+
1931
+
1932
+ @validate_call
1933
+ def get_test_summary_list_with_http_info(
1934
+ self,
1935
+ get_test_summary_result: Optional[GetTestSummaryResult] = None,
1936
+ _request_timeout: Union[
1937
+ None,
1938
+ Annotated[StrictFloat, Field(gt=0)],
1939
+ Tuple[
1940
+ Annotated[StrictFloat, Field(gt=0)],
1941
+ Annotated[StrictFloat, Field(gt=0)]
1942
+ ]
1943
+ ] = None,
1944
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1945
+ _content_type: Optional[StrictStr] = None,
1946
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1947
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1948
+ ) -> ApiResponse[TestResultListResult]:
1949
+ """Get a list of Synthetic tests with success rate and average response time data
1950
+
1951
+ Get a summary of the playback results metrics and success rate for Synthetic tests matching the specified parameters
1952
+
1953
+ :param get_test_summary_result:
1954
+ :type get_test_summary_result: GetTestSummaryResult
1955
+ :param _request_timeout: timeout setting for this request. If one
1956
+ number provided, it will be total request
1957
+ timeout. It can also be a pair (tuple) of
1958
+ (connection, read) timeouts.
1959
+ :type _request_timeout: int, tuple(int, int), optional
1960
+ :param _request_auth: set to override the auth_settings for an a single
1961
+ request; this effectively ignores the
1962
+ authentication in the spec for a single request.
1963
+ :type _request_auth: dict, optional
1964
+ :param _content_type: force content-type for the request.
1965
+ :type _content_type: str, Optional
1966
+ :param _headers: set to override the headers for a single
1967
+ request; this effectively ignores the headers
1968
+ in the spec for a single request.
1969
+ :type _headers: dict, optional
1970
+ :param _host_index: set to override the host_index for a single
1971
+ request; this effectively ignores the host_index
1972
+ in the spec for a single request.
1973
+ :type _host_index: int, optional
1974
+ :return: Returns the result object.
1975
+ """ # noqa: E501
1976
+
1977
+ _param = self._get_test_summary_list_serialize(
1978
+ get_test_summary_result=get_test_summary_result,
1979
+ _request_auth=_request_auth,
1980
+ _content_type=_content_type,
1981
+ _headers=_headers,
1982
+ _host_index=_host_index
1983
+ )
1984
+
1985
+ _response_types_map: Dict[str, Optional[str]] = {
1986
+ '200': "TestResultListResult",
1987
+ '401': None,
1988
+ '403': None,
1989
+ '500': None,
1990
+ }
1991
+ response_data = self.api_client.call_api(
1992
+ *_param,
1993
+ _request_timeout=_request_timeout
1994
+ )
1995
+ response_data.read()
1996
+ return self.api_client.response_deserialize(
1997
+ response_data=response_data,
1998
+ response_types_map=_response_types_map,
1999
+ )
2000
+
2001
+
2002
+ @validate_call
2003
+ def get_test_summary_list_without_preload_content(
2004
+ self,
2005
+ get_test_summary_result: Optional[GetTestSummaryResult] = None,
2006
+ _request_timeout: Union[
2007
+ None,
2008
+ Annotated[StrictFloat, Field(gt=0)],
2009
+ Tuple[
2010
+ Annotated[StrictFloat, Field(gt=0)],
2011
+ Annotated[StrictFloat, Field(gt=0)]
2012
+ ]
2013
+ ] = None,
2014
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2015
+ _content_type: Optional[StrictStr] = None,
2016
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2017
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2018
+ ) -> RESTResponseType:
2019
+ """Get a list of Synthetic tests with success rate and average response time data
2020
+
2021
+ Get a summary of the playback results metrics and success rate for Synthetic tests matching the specified parameters
2022
+
2023
+ :param get_test_summary_result:
2024
+ :type get_test_summary_result: GetTestSummaryResult
2025
+ :param _request_timeout: timeout setting for this request. If one
2026
+ number provided, it will be total request
2027
+ timeout. It can also be a pair (tuple) of
2028
+ (connection, read) timeouts.
2029
+ :type _request_timeout: int, tuple(int, int), optional
2030
+ :param _request_auth: set to override the auth_settings for an a single
2031
+ request; this effectively ignores the
2032
+ authentication in the spec for a single request.
2033
+ :type _request_auth: dict, optional
2034
+ :param _content_type: force content-type for the request.
2035
+ :type _content_type: str, Optional
2036
+ :param _headers: set to override the headers for a single
2037
+ request; this effectively ignores the headers
2038
+ in the spec for a single request.
2039
+ :type _headers: dict, optional
2040
+ :param _host_index: set to override the host_index for a single
2041
+ request; this effectively ignores the host_index
2042
+ in the spec for a single request.
2043
+ :type _host_index: int, optional
2044
+ :return: Returns the result object.
2045
+ """ # noqa: E501
2046
+
2047
+ _param = self._get_test_summary_list_serialize(
2048
+ get_test_summary_result=get_test_summary_result,
2049
+ _request_auth=_request_auth,
2050
+ _content_type=_content_type,
2051
+ _headers=_headers,
2052
+ _host_index=_host_index
2053
+ )
2054
+
2055
+ _response_types_map: Dict[str, Optional[str]] = {
2056
+ '200': "TestResultListResult",
2057
+ '401': None,
2058
+ '403': None,
2059
+ '500': None,
2060
+ }
2061
+ response_data = self.api_client.call_api(
2062
+ *_param,
2063
+ _request_timeout=_request_timeout
2064
+ )
2065
+ return response_data.response
2066
+
2067
+
2068
+ def _get_test_summary_list_serialize(
2069
+ self,
2070
+ get_test_summary_result,
2071
+ _request_auth,
2072
+ _content_type,
2073
+ _headers,
2074
+ _host_index,
2075
+ ) -> RequestSerialized:
2076
+
2077
+ _host = None
2078
+
2079
+ _collection_formats: Dict[str, str] = {
2080
+ }
2081
+
2082
+ _path_params: Dict[str, str] = {}
2083
+ _query_params: List[Tuple[str, str]] = []
2084
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2085
+ _form_params: List[Tuple[str, str]] = []
2086
+ _files: Dict[
2087
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
2088
+ ] = {}
2089
+ _body_params: Optional[bytes] = None
2090
+
2091
+ # process the path parameters
2092
+ # process the query parameters
2093
+ # process the header parameters
2094
+ # process the form parameters
2095
+ # process the body parameter
2096
+ if get_test_summary_result is not None:
2097
+ _body_params = get_test_summary_result
2098
+
2099
+
2100
+ # set the HTTP header `Accept`
2101
+ if 'Accept' not in _header_params:
2102
+ _header_params['Accept'] = self.api_client.select_header_accept(
2103
+ [
2104
+ 'application/json'
2105
+ ]
2106
+ )
2107
+
2108
+ # set the HTTP header `Content-Type`
2109
+ if _content_type:
2110
+ _header_params['Content-Type'] = _content_type
2111
+ else:
2112
+ _default_content_type = (
2113
+ self.api_client.select_header_content_type(
2114
+ [
2115
+ 'application/json'
2116
+ ]
2117
+ )
2118
+ )
2119
+ if _default_content_type is not None:
2120
+ _header_params['Content-Type'] = _default_content_type
2121
+
2122
+ # authentication setting
2123
+ _auth_settings: List[str] = [
2124
+ 'ApiKeyAuth'
2125
+ ]
2126
+
2127
+ return self.api_client.param_serialize(
2128
+ method='POST',
2129
+ resource_path='/api/synthetics/results/testsummarylist',
2130
+ path_params=_path_params,
2131
+ query_params=_query_params,
2132
+ header_params=_header_params,
2133
+ body=_body_params,
2134
+ post_params=_form_params,
2135
+ files=_files,
2136
+ auth_settings=_auth_settings,
2137
+ collection_formats=_collection_formats,
2138
+ _host=_host,
2139
+ _request_auth=_request_auth
2140
+ )
2141
+
2142
+