honeycomb-api 0.1.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 (453) hide show
  1. honeycomb/__init__.py +217 -0
  2. honeycomb/_generated/__init__.py +8 -0
  3. honeycomb/_generated/api/__init__.py +1 -0
  4. honeycomb/_generated/api/auth/__init__.py +0 -0
  5. honeycomb/_generated/api/auth/get_auth.py +172 -0
  6. honeycomb/_generated/api/auth/get_v2_auth.py +168 -0
  7. honeycomb/_generated/api/boards/__init__.py +0 -0
  8. honeycomb/_generated/api/boards/create_board.py +217 -0
  9. honeycomb/_generated/api/boards/create_board_view.py +237 -0
  10. honeycomb/_generated/api/boards/delete_board.py +191 -0
  11. honeycomb/_generated/api/boards/delete_board_view.py +210 -0
  12. honeycomb/_generated/api/boards/get_board.py +208 -0
  13. honeycomb/_generated/api/boards/get_board_view.py +214 -0
  14. honeycomb/_generated/api/boards/list_board_views.py +206 -0
  15. honeycomb/_generated/api/boards/list_boards.py +177 -0
  16. honeycomb/_generated/api/boards/update_board.py +238 -0
  17. honeycomb/_generated/api/boards/update_board_view.py +250 -0
  18. honeycomb/_generated/api/burn_alerts/__init__.py +0 -0
  19. honeycomb/_generated/api/burn_alerts/create_burn_alert.py +224 -0
  20. honeycomb/_generated/api/burn_alerts/delete_burn_alert.py +204 -0
  21. honeycomb/_generated/api/burn_alerts/get_burn_alert.py +208 -0
  22. honeycomb/_generated/api/burn_alerts/list_burn_alerts_by_slo.py +220 -0
  23. honeycomb/_generated/api/calculated_fields/__init__.py +0 -0
  24. honeycomb/_generated/api/calculated_fields/create_calculated_field.py +239 -0
  25. honeycomb/_generated/api/calculated_fields/delete_calculated_field.py +225 -0
  26. honeycomb/_generated/api/calculated_fields/get_calculated_field.py +207 -0
  27. honeycomb/_generated/api/calculated_fields/list_calculated_fields.py +252 -0
  28. honeycomb/_generated/api/calculated_fields/update_calculated_field.py +242 -0
  29. honeycomb/_generated/api/columns/__init__.py +0 -0
  30. honeycomb/_generated/api/columns/create_column.py +241 -0
  31. honeycomb/_generated/api/columns/delete_column.py +221 -0
  32. honeycomb/_generated/api/columns/get_column.py +206 -0
  33. honeycomb/_generated/api/columns/list_columns.py +256 -0
  34. honeycomb/_generated/api/columns/update_column.py +242 -0
  35. honeycomb/_generated/api/dataset_definitions/__init__.py +0 -0
  36. honeycomb/_generated/api/dataset_definitions/list_dataset_definitions.py +193 -0
  37. honeycomb/_generated/api/dataset_definitions/patch_dataset_definitions.py +235 -0
  38. honeycomb/_generated/api/datasets/__init__.py +0 -0
  39. honeycomb/_generated/api/datasets/create_dataset.py +227 -0
  40. honeycomb/_generated/api/datasets/delete_dataset.py +251 -0
  41. honeycomb/_generated/api/datasets/get_dataset.py +195 -0
  42. honeycomb/_generated/api/datasets/list_datasets.py +177 -0
  43. honeycomb/_generated/api/datasets/update_dataset.py +217 -0
  44. honeycomb/_generated/api/enhance/__init__.py +0 -0
  45. honeycomb/_generated/api/enhance/record_enhance_indexer_usage.py +231 -0
  46. honeycomb/_generated/api/environments/__init__.py +0 -0
  47. honeycomb/_generated/api/environments/create_environment.py +247 -0
  48. honeycomb/_generated/api/environments/delete_environment.py +245 -0
  49. honeycomb/_generated/api/environments/get_environment.py +213 -0
  50. honeycomb/_generated/api/environments/list_environments.py +245 -0
  51. honeycomb/_generated/api/environments/update_environment.py +254 -0
  52. honeycomb/_generated/api/events/__init__.py +0 -0
  53. honeycomb/_generated/api/events/create_event.py +269 -0
  54. honeycomb/_generated/api/events/create_events.py +314 -0
  55. honeycomb/_generated/api/key_management/__init__.py +0 -0
  56. honeycomb/_generated/api/key_management/create_api_key.py +286 -0
  57. honeycomb/_generated/api/key_management/delete_api_key.py +223 -0
  58. honeycomb/_generated/api/key_management/get_api_key.py +225 -0
  59. honeycomb/_generated/api/key_management/list_api_keys.py +281 -0
  60. honeycomb/_generated/api/key_management/update_api_key.py +270 -0
  61. honeycomb/_generated/api/kinesis_events/__init__.py +0 -0
  62. honeycomb/_generated/api/kinesis_events/create_kinesis_events.py +220 -0
  63. honeycomb/_generated/api/marker_settings/__init__.py +0 -0
  64. honeycomb/_generated/api/marker_settings/create_marker_setting.py +209 -0
  65. honeycomb/_generated/api/marker_settings/delete_marker_settings.py +194 -0
  66. honeycomb/_generated/api/marker_settings/list_marker_settings.py +186 -0
  67. honeycomb/_generated/api/marker_settings/update_marker_settings.py +230 -0
  68. honeycomb/_generated/api/markers/__init__.py +0 -0
  69. honeycomb/_generated/api/markers/create_marker.py +220 -0
  70. honeycomb/_generated/api/markers/create_marker_v2.py +253 -0
  71. honeycomb/_generated/api/markers/delete_marker.py +200 -0
  72. honeycomb/_generated/api/markers/get_marker.py +194 -0
  73. honeycomb/_generated/api/markers/update_marker.py +233 -0
  74. honeycomb/_generated/api/markers/update_marker_v2.py +262 -0
  75. honeycomb/_generated/api/pipelines/__init__.py +0 -0
  76. honeycomb/_generated/api/pipelines/get_pipeline_configuration.py +306 -0
  77. honeycomb/_generated/api/pipelines/record_pipeline_usage.py +244 -0
  78. honeycomb/_generated/api/pipelines/update_pipeline_configuration_rollout.py +261 -0
  79. honeycomb/_generated/api/queries/__init__.py +0 -0
  80. honeycomb/_generated/api/queries/create_query.py +224 -0
  81. honeycomb/_generated/api/queries/get_query.py +208 -0
  82. honeycomb/_generated/api/query_annotations/__init__.py +0 -0
  83. honeycomb/_generated/api/query_annotations/create_query_annotation.py +226 -0
  84. honeycomb/_generated/api/query_annotations/delete_query_annotation.py +198 -0
  85. honeycomb/_generated/api/query_annotations/get_query_annotation.py +202 -0
  86. honeycomb/_generated/api/query_annotations/list_query_annotations.py +217 -0
  87. honeycomb/_generated/api/query_annotations/update_query_annotation.py +237 -0
  88. honeycomb/_generated/api/query_data/__init__.py +0 -0
  89. honeycomb/_generated/api/query_data/create_query_result.py +247 -0
  90. honeycomb/_generated/api/query_data/get_query_result.py +208 -0
  91. honeycomb/_generated/api/recipients/__init__.py +0 -0
  92. honeycomb/_generated/api/recipients/create_recipient.py +317 -0
  93. honeycomb/_generated/api/recipients/delete_recipient.py +199 -0
  94. honeycomb/_generated/api/recipients/get_recipient.py +252 -0
  95. honeycomb/_generated/api/recipients/list_recipients.py +230 -0
  96. honeycomb/_generated/api/recipients/update_recipient.py +323 -0
  97. honeycomb/_generated/api/reporting/__init__.py +0 -0
  98. honeycomb/_generated/api/reporting/get_slo_history.py +218 -0
  99. honeycomb/_generated/api/service_maps/__init__.py +0 -0
  100. honeycomb/_generated/api/service_maps/create_map_dependency_request.py +252 -0
  101. honeycomb/_generated/api/service_maps/get_map_dependencies.py +265 -0
  102. honeycomb/_generated/api/sl_os/__init__.py +0 -0
  103. honeycomb/_generated/api/sl_os/create_slo.py +229 -0
  104. honeycomb/_generated/api/sl_os/delete_slo.py +210 -0
  105. honeycomb/_generated/api/sl_os/get_slo.py +256 -0
  106. honeycomb/_generated/api/sl_os/list_slos.py +210 -0
  107. honeycomb/_generated/api/sl_os/update_slo.py +242 -0
  108. honeycomb/_generated/api/triggers/__init__.py +0 -0
  109. honeycomb/_generated/api/triggers/create_trigger.py +250 -0
  110. honeycomb/_generated/api/triggers/delete_trigger.py +204 -0
  111. honeycomb/_generated/api/triggers/get_trigger.py +214 -0
  112. honeycomb/_generated/api/triggers/list_triggers.py +206 -0
  113. honeycomb/_generated/api/triggers/list_triggers_with_recipient.py +208 -0
  114. honeycomb/_generated/api/triggers/update_trigger.py +248 -0
  115. honeycomb/_generated/client.py +271 -0
  116. honeycomb/_generated/errors.py +14 -0
  117. honeycomb/_generated/models/__init__.py +561 -0
  118. honeycomb/_generated/models/api_key_create_request.py +78 -0
  119. honeycomb/_generated/models/api_key_create_request_data.py +130 -0
  120. honeycomb/_generated/models/api_key_create_request_data_relationships.py +78 -0
  121. honeycomb/_generated/models/api_key_create_request_data_type.py +7 -0
  122. honeycomb/_generated/models/api_key_list_response.py +112 -0
  123. honeycomb/_generated/models/api_key_object.py +189 -0
  124. honeycomb/_generated/models/api_key_object_links.py +74 -0
  125. honeycomb/_generated/models/api_key_object_relationships.py +150 -0
  126. honeycomb/_generated/models/api_key_object_type.py +7 -0
  127. honeycomb/_generated/models/api_key_response.py +78 -0
  128. honeycomb/_generated/models/api_key_update_request.py +104 -0
  129. honeycomb/_generated/models/auth.py +140 -0
  130. honeycomb/_generated/models/auth_api_key_access.py +154 -0
  131. honeycomb/_generated/models/auth_environment.py +82 -0
  132. honeycomb/_generated/models/auth_team.py +82 -0
  133. honeycomb/_generated/models/auth_type.py +8 -0
  134. honeycomb/_generated/models/auth_v2_response.py +108 -0
  135. honeycomb/_generated/models/auth_v2_response_data.py +122 -0
  136. honeycomb/_generated/models/auth_v2_response_data_attributes.py +141 -0
  137. honeycomb/_generated/models/auth_v2_response_data_attributes_key_type.py +7 -0
  138. honeycomb/_generated/models/auth_v2_response_data_attributes_timestamps.py +107 -0
  139. honeycomb/_generated/models/auth_v2_response_data_relationships.py +59 -0
  140. honeycomb/_generated/models/auth_v2_response_data_type.py +7 -0
  141. honeycomb/_generated/models/base_trigger.py +367 -0
  142. honeycomb/_generated/models/base_trigger_alert_type.py +8 -0
  143. honeycomb/_generated/models/base_trigger_baseline_details_type_0.py +92 -0
  144. honeycomb/_generated/models/base_trigger_baseline_details_type_0_offset_minutes.py +10 -0
  145. honeycomb/_generated/models/base_trigger_baseline_details_type_0_type.py +8 -0
  146. honeycomb/_generated/models/base_trigger_evaluation_schedule.py +83 -0
  147. honeycomb/_generated/models/base_trigger_evaluation_schedule_type.py +8 -0
  148. honeycomb/_generated/models/base_trigger_evaluation_schedule_window.py +103 -0
  149. honeycomb/_generated/models/base_trigger_evaluation_schedule_window_days_of_week_item.py +13 -0
  150. honeycomb/_generated/models/base_trigger_threshold.py +95 -0
  151. honeycomb/_generated/models/base_trigger_threshold_op.py +10 -0
  152. honeycomb/_generated/models/batch_event.py +110 -0
  153. honeycomb/_generated/models/board.py +276 -0
  154. honeycomb/_generated/models/board_layout_generation.py +8 -0
  155. honeycomb/_generated/models/board_links.py +74 -0
  156. honeycomb/_generated/models/board_panel_position.py +104 -0
  157. honeycomb/_generated/models/board_query_visualization_settings.py +141 -0
  158. honeycomb/_generated/models/board_query_visualization_settings_charts_item.py +113 -0
  159. honeycomb/_generated/models/board_query_visualization_settings_charts_item_chart_type.py +13 -0
  160. honeycomb/_generated/models/board_type.py +7 -0
  161. honeycomb/_generated/models/board_view_filter.py +93 -0
  162. honeycomb/_generated/models/board_view_filter_operation.py +22 -0
  163. honeycomb/_generated/models/board_view_response.py +111 -0
  164. honeycomb/_generated/models/budget_rate.py +189 -0
  165. honeycomb/_generated/models/budget_rate_alert_type.py +8 -0
  166. honeycomb/_generated/models/burn_alert_shared_params.py +136 -0
  167. honeycomb/_generated/models/calculated_field.py +117 -0
  168. honeycomb/_generated/models/configuration_key_attributes.py +140 -0
  169. honeycomb/_generated/models/configuration_key_attributes_key_type.py +7 -0
  170. honeycomb/_generated/models/configuration_key_attributes_timestamps.py +107 -0
  171. honeycomb/_generated/models/create_board_view_request.py +96 -0
  172. honeycomb/_generated/models/create_budget_rate_burn_alert_request.py +232 -0
  173. honeycomb/_generated/models/create_budget_rate_burn_alert_request_slo.py +74 -0
  174. honeycomb/_generated/models/create_column.py +149 -0
  175. honeycomb/_generated/models/create_column_type.py +11 -0
  176. honeycomb/_generated/models/create_enhance_indexer_usage_record_request.py +78 -0
  177. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data.py +90 -0
  178. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes.py +97 -0
  179. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data.py +88 -0
  180. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item.py +89 -0
  181. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item.py +89 -0
  182. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item.py +97 -0
  183. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum.py +102 -0
  184. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum_aggregation_temporality.py +7 -0
  185. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum_datapoints_item.py +105 -0
  186. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum_datapoints_item_attributes_item.py +87 -0
  187. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum_datapoints_item_attributes_item_value.py +73 -0
  188. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_type.py +7 -0
  189. honeycomb/_generated/models/create_environment_request.py +78 -0
  190. honeycomb/_generated/models/create_environment_request_data.py +90 -0
  191. honeycomb/_generated/models/create_environment_request_data_attributes.py +102 -0
  192. honeycomb/_generated/models/create_environment_request_data_type.py +7 -0
  193. honeycomb/_generated/models/create_events_content_encoding.py +8 -0
  194. honeycomb/_generated/models/create_events_response_200_item.py +82 -0
  195. honeycomb/_generated/models/create_exhaustion_time_burn_alert_request.py +217 -0
  196. honeycomb/_generated/models/create_exhaustion_time_burn_alert_request_slo.py +74 -0
  197. honeycomb/_generated/models/create_map_dependencies_request.py +128 -0
  198. honeycomb/_generated/models/create_map_dependencies_response.py +97 -0
  199. honeycomb/_generated/models/create_map_dependencies_response_status.py +9 -0
  200. honeycomb/_generated/models/create_pipeline_health_record_request.py +78 -0
  201. honeycomb/_generated/models/create_pipeline_health_record_request_data.py +98 -0
  202. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes.py +88 -0
  203. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data.py +88 -0
  204. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item.py +89 -0
  205. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item.py +89 -0
  206. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item.py +97 -0
  207. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum.py +102 -0
  208. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum_aggregation_temporality.py +7 -0
  209. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum_datapoints_item.py +105 -0
  210. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum_datapoints_item_attributes_item.py +87 -0
  211. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum_datapoints_item_attributes_item_value.py +73 -0
  212. honeycomb/_generated/models/create_pipeline_health_record_request_data_type.py +7 -0
  213. honeycomb/_generated/models/create_query_result_request.py +118 -0
  214. honeycomb/_generated/models/dataset.py +183 -0
  215. honeycomb/_generated/models/dataset_creation_payload.py +93 -0
  216. honeycomb/_generated/models/dataset_definition_type_1.py +96 -0
  217. honeycomb/_generated/models/dataset_definition_type_1_column_type.py +8 -0
  218. honeycomb/_generated/models/dataset_definitions.py +599 -0
  219. honeycomb/_generated/models/dataset_relationship.py +79 -0
  220. honeycomb/_generated/models/dataset_relationship_data.py +82 -0
  221. honeycomb/_generated/models/dataset_relationship_data_type.py +7 -0
  222. honeycomb/_generated/models/dataset_settings.py +73 -0
  223. honeycomb/_generated/models/dataset_update_payload.py +105 -0
  224. honeycomb/_generated/models/dataset_update_payload_settings.py +73 -0
  225. honeycomb/_generated/models/detailed_error.py +115 -0
  226. honeycomb/_generated/models/email_recipient.py +160 -0
  227. honeycomb/_generated/models/email_recipient_details.py +71 -0
  228. honeycomb/_generated/models/email_recipient_type.py +7 -0
  229. honeycomb/_generated/models/environment.py +112 -0
  230. honeycomb/_generated/models/environment_attributes.py +140 -0
  231. honeycomb/_generated/models/environment_attributes_color_type_1.py +7 -0
  232. honeycomb/_generated/models/environment_attributes_settings.py +70 -0
  233. honeycomb/_generated/models/environment_color.py +16 -0
  234. honeycomb/_generated/models/environment_links.py +70 -0
  235. honeycomb/_generated/models/environment_list_response.py +112 -0
  236. honeycomb/_generated/models/environment_relationship.py +79 -0
  237. honeycomb/_generated/models/environment_relationship_data.py +82 -0
  238. honeycomb/_generated/models/environment_relationship_data_type.py +7 -0
  239. honeycomb/_generated/models/environment_response.py +78 -0
  240. honeycomb/_generated/models/environment_type.py +7 -0
  241. honeycomb/_generated/models/error.py +74 -0
  242. honeycomb/_generated/models/event.py +71 -0
  243. honeycomb/_generated/models/exhaustion_time.py +174 -0
  244. honeycomb/_generated/models/exhaustion_time_alert_type.py +8 -0
  245. honeycomb/_generated/models/exhaustion_time_burn_alert_list_response.py +198 -0
  246. honeycomb/_generated/models/exhaustion_time_burn_alert_list_response_slo.py +77 -0
  247. honeycomb/_generated/models/filter_op.py +22 -0
  248. honeycomb/_generated/models/get_map_dependencies_response.py +169 -0
  249. honeycomb/_generated/models/get_map_dependencies_response_status.py +9 -0
  250. honeycomb/_generated/models/having_calculate_op.py +29 -0
  251. honeycomb/_generated/models/having_op.py +12 -0
  252. honeycomb/_generated/models/included_resource.py +106 -0
  253. honeycomb/_generated/models/included_resource_attributes.py +62 -0
  254. honeycomb/_generated/models/ingest_key_attributes.py +153 -0
  255. honeycomb/_generated/models/ingest_key_attributes_key_type.py +7 -0
  256. honeycomb/_generated/models/ingest_key_attributes_permissions.py +74 -0
  257. honeycomb/_generated/models/ingest_key_attributes_timestamps.py +107 -0
  258. honeycomb/_generated/models/ingest_key_type.py +90 -0
  259. honeycomb/_generated/models/ingest_key_type_key_type.py +7 -0
  260. honeycomb/_generated/models/jsonapi_error_source.py +92 -0
  261. honeycomb/_generated/models/kinesis_event.py +111 -0
  262. honeycomb/_generated/models/kinesis_event_record.py +73 -0
  263. honeycomb/_generated/models/kinesis_response.py +91 -0
  264. honeycomb/_generated/models/list_api_keys_filtertype.py +8 -0
  265. honeycomb/_generated/models/map_dependency.py +118 -0
  266. honeycomb/_generated/models/map_node.py +97 -0
  267. honeycomb/_generated/models/map_node_type.py +7 -0
  268. honeycomb/_generated/models/marker.py +151 -0
  269. honeycomb/_generated/models/marker_create_request.py +78 -0
  270. honeycomb/_generated/models/marker_create_request_data.py +104 -0
  271. honeycomb/_generated/models/marker_create_request_data_attributes.py +110 -0
  272. honeycomb/_generated/models/marker_create_request_data_relationships.py +92 -0
  273. honeycomb/_generated/models/marker_create_request_data_type.py +7 -0
  274. honeycomb/_generated/models/marker_object.py +136 -0
  275. honeycomb/_generated/models/marker_object_attributes.py +146 -0
  276. honeycomb/_generated/models/marker_object_attributes_timestamps.py +107 -0
  277. honeycomb/_generated/models/marker_object_links.py +74 -0
  278. honeycomb/_generated/models/marker_object_relationships.py +111 -0
  279. honeycomb/_generated/models/marker_object_relationships_dataset.py +104 -0
  280. honeycomb/_generated/models/marker_object_relationships_dataset_data_type_0.py +94 -0
  281. honeycomb/_generated/models/marker_object_relationships_dataset_data_type_0_type.py +7 -0
  282. honeycomb/_generated/models/marker_object_type.py +7 -0
  283. honeycomb/_generated/models/marker_response.py +78 -0
  284. honeycomb/_generated/models/marker_setting.py +125 -0
  285. honeycomb/_generated/models/marker_update_request.py +78 -0
  286. honeycomb/_generated/models/marker_update_request_data.py +104 -0
  287. honeycomb/_generated/models/marker_update_request_data_attributes.py +111 -0
  288. honeycomb/_generated/models/marker_update_request_data_relationships.py +92 -0
  289. honeycomb/_generated/models/marker_update_request_data_type.py +7 -0
  290. honeycomb/_generated/models/ms_teams_recipient.py +161 -0
  291. honeycomb/_generated/models/ms_teams_recipient_details.py +80 -0
  292. honeycomb/_generated/models/ms_teams_recipient_type.py +7 -0
  293. honeycomb/_generated/models/ms_teams_workflow_recipient.py +161 -0
  294. honeycomb/_generated/models/ms_teams_workflow_recipient_details.py +80 -0
  295. honeycomb/_generated/models/ms_teams_workflow_recipient_type.py +7 -0
  296. honeycomb/_generated/models/notification_recipient.py +131 -0
  297. honeycomb/_generated/models/notification_recipient_details.py +117 -0
  298. honeycomb/_generated/models/notification_recipient_details_pagerduty_severity.py +10 -0
  299. honeycomb/_generated/models/notification_recipient_details_variables_item.py +81 -0
  300. honeycomb/_generated/models/pager_duty_recipient.py +160 -0
  301. honeycomb/_generated/models/pager_duty_recipient_details.py +79 -0
  302. honeycomb/_generated/models/pager_duty_recipient_type.py +7 -0
  303. honeycomb/_generated/models/pagination_links.py +80 -0
  304. honeycomb/_generated/models/payload_template.py +73 -0
  305. honeycomb/_generated/models/pipeline_configuration_response.py +112 -0
  306. honeycomb/_generated/models/pipeline_configuration_response_attributes.py +101 -0
  307. honeycomb/_generated/models/pipeline_configuration_response_attributes_configs_item.py +85 -0
  308. honeycomb/_generated/models/pipeline_configuration_response_links.py +73 -0
  309. honeycomb/_generated/models/pipeline_configuration_response_type.py +7 -0
  310. honeycomb/_generated/models/pipeline_configuration_rollout.py +112 -0
  311. honeycomb/_generated/models/pipeline_configuration_rollout_attributes.py +75 -0
  312. honeycomb/_generated/models/pipeline_configuration_rollout_attributes_status.py +12 -0
  313. honeycomb/_generated/models/pipeline_configuration_rollout_links.py +73 -0
  314. honeycomb/_generated/models/pipeline_configuration_rollout_type.py +7 -0
  315. honeycomb/_generated/models/preset_filter.py +78 -0
  316. honeycomb/_generated/models/query.py +346 -0
  317. honeycomb/_generated/models/query_annotation.py +166 -0
  318. honeycomb/_generated/models/query_annotation_source.py +8 -0
  319. honeycomb/_generated/models/query_calculated_fields_item.py +80 -0
  320. honeycomb/_generated/models/query_calculations_item.py +98 -0
  321. honeycomb/_generated/models/query_compare_time_offset_seconds.py +14 -0
  322. honeycomb/_generated/models/query_filter_combination.py +8 -0
  323. honeycomb/_generated/models/query_filters_item.py +126 -0
  324. honeycomb/_generated/models/query_havings_item.py +128 -0
  325. honeycomb/_generated/models/query_op.py +30 -0
  326. honeycomb/_generated/models/query_orders_item.py +115 -0
  327. honeycomb/_generated/models/query_orders_item_order.py +8 -0
  328. honeycomb/_generated/models/query_panel.py +114 -0
  329. honeycomb/_generated/models/query_panel_query_panel.py +143 -0
  330. honeycomb/_generated/models/query_panel_query_panel_query_style.py +9 -0
  331. honeycomb/_generated/models/query_result.py +130 -0
  332. honeycomb/_generated/models/query_result_details.py +156 -0
  333. honeycomb/_generated/models/query_result_details_data.py +188 -0
  334. honeycomb/_generated/models/query_result_details_links.py +85 -0
  335. honeycomb/_generated/models/query_result_links.py +85 -0
  336. honeycomb/_generated/models/query_results_data.py +89 -0
  337. honeycomb/_generated/models/query_results_data_data.py +71 -0
  338. honeycomb/_generated/models/query_results_series.py +97 -0
  339. honeycomb/_generated/models/recipient_properties.py +137 -0
  340. honeycomb/_generated/models/recipient_type.py +12 -0
  341. honeycomb/_generated/models/slack_recipient.py +160 -0
  342. honeycomb/_generated/models/slack_recipient_details.py +71 -0
  343. honeycomb/_generated/models/slack_recipient_type.py +7 -0
  344. honeycomb/_generated/models/slo.py +245 -0
  345. honeycomb/_generated/models/slo_create.py +245 -0
  346. honeycomb/_generated/models/slo_create_sli.py +75 -0
  347. honeycomb/_generated/models/slo_detailed_response.py +312 -0
  348. honeycomb/_generated/models/slo_detailed_response_status.py +10 -0
  349. honeycomb/_generated/models/slo_history.py +94 -0
  350. honeycomb/_generated/models/slo_history_request.py +93 -0
  351. honeycomb/_generated/models/slo_history_response.py +91 -0
  352. honeycomb/_generated/models/slo_panel.py +114 -0
  353. honeycomb/_generated/models/slo_panel_slo_panel.py +75 -0
  354. honeycomb/_generated/models/slo_sli.py +74 -0
  355. honeycomb/_generated/models/tag.py +79 -0
  356. honeycomb/_generated/models/team_relationship.py +78 -0
  357. honeycomb/_generated/models/team_relationship_team.py +78 -0
  358. honeycomb/_generated/models/team_relationship_team_data.py +82 -0
  359. honeycomb/_generated/models/team_relationship_team_data_type.py +7 -0
  360. honeycomb/_generated/models/template_variable_definition.py +81 -0
  361. honeycomb/_generated/models/text_panel.py +114 -0
  362. honeycomb/_generated/models/text_panel_text_panel.py +71 -0
  363. honeycomb/_generated/models/trigger_response.py +399 -0
  364. honeycomb/_generated/models/trigger_with_inline_query.py +390 -0
  365. honeycomb/_generated/models/trigger_with_inline_query_query.py +60 -0
  366. honeycomb/_generated/models/trigger_with_query_reference.py +376 -0
  367. honeycomb/_generated/models/update_board_view_request.py +107 -0
  368. honeycomb/_generated/models/update_environment_request.py +78 -0
  369. honeycomb/_generated/models/update_environment_request_data.py +98 -0
  370. honeycomb/_generated/models/update_environment_request_data_attributes.py +118 -0
  371. honeycomb/_generated/models/update_environment_request_data_attributes_settings.py +73 -0
  372. honeycomb/_generated/models/update_environment_request_data_type.py +7 -0
  373. honeycomb/_generated/models/update_exhaustion_time_burn_alert_request.py +202 -0
  374. honeycomb/_generated/models/update_pipeline_configuration_rollout.py +98 -0
  375. honeycomb/_generated/models/update_pipeline_configuration_rollout_attributes.py +75 -0
  376. honeycomb/_generated/models/update_pipeline_configuration_rollout_attributes_status.py +12 -0
  377. honeycomb/_generated/models/update_pipeline_configuration_rollout_request.py +78 -0
  378. honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data.py +98 -0
  379. honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data_attributes.py +75 -0
  380. honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data_attributes_status.py +12 -0
  381. honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data_type.py +7 -0
  382. honeycomb/_generated/models/update_pipeline_configuration_rollout_response.py +78 -0
  383. honeycomb/_generated/models/update_pipeline_configuration_rollout_type.py +7 -0
  384. honeycomb/_generated/models/user_relationship.py +78 -0
  385. honeycomb/_generated/models/user_relationship_data.py +82 -0
  386. honeycomb/_generated/models/user_relationship_data_type.py +7 -0
  387. honeycomb/_generated/models/validation_error.py +145 -0
  388. honeycomb/_generated/models/validation_error_type_detail_item.py +103 -0
  389. honeycomb/_generated/models/validation_error_type_detail_item_code.py +10 -0
  390. honeycomb/_generated/models/webhook_header.py +81 -0
  391. honeycomb/_generated/models/webhook_recipient.py +160 -0
  392. honeycomb/_generated/models/webhook_recipient_details.py +142 -0
  393. honeycomb/_generated/models/webhook_recipient_details_webhook_payloads.py +117 -0
  394. honeycomb/_generated/models/webhook_recipient_details_webhook_payloads_payload_templates.py +126 -0
  395. honeycomb/_generated/models/webhook_recipient_type.py +7 -0
  396. honeycomb/_generated/py.typed +1 -0
  397. honeycomb/_generated/types.py +46 -0
  398. honeycomb/auth.py +152 -0
  399. honeycomb/client.py +736 -0
  400. honeycomb/exceptions.py +236 -0
  401. honeycomb/models/__init__.py +157 -0
  402. honeycomb/models/api_keys.py +81 -0
  403. honeycomb/models/board_builder.py +387 -0
  404. honeycomb/models/boards.py +86 -0
  405. honeycomb/models/burn_alerts.py +124 -0
  406. honeycomb/models/columns.py +59 -0
  407. honeycomb/models/datasets.py +51 -0
  408. honeycomb/models/derived_columns.py +107 -0
  409. honeycomb/models/environments.py +106 -0
  410. honeycomb/models/events.py +35 -0
  411. honeycomb/models/marker_builder.py +136 -0
  412. honeycomb/models/markers.py +73 -0
  413. honeycomb/models/queries.py +210 -0
  414. honeycomb/models/query_annotations.py +63 -0
  415. honeycomb/models/query_builder.py +840 -0
  416. honeycomb/models/recipient_builder.py +248 -0
  417. honeycomb/models/recipients.py +43 -0
  418. honeycomb/models/service_map_dependencies.py +126 -0
  419. honeycomb/models/slo_builder.py +463 -0
  420. honeycomb/models/slos.py +66 -0
  421. honeycomb/models/tags_mixin.py +79 -0
  422. honeycomb/models/trigger_builder.py +561 -0
  423. honeycomb/models/triggers.py +208 -0
  424. honeycomb/resources/__init__.py +35 -0
  425. honeycomb/resources/_recipient_utils.py +156 -0
  426. honeycomb/resources/api_keys.py +303 -0
  427. honeycomb/resources/base.py +142 -0
  428. honeycomb/resources/boards.py +350 -0
  429. honeycomb/resources/burn_alerts.py +205 -0
  430. honeycomb/resources/columns.py +185 -0
  431. honeycomb/resources/datasets.py +163 -0
  432. honeycomb/resources/derived_columns.py +233 -0
  433. honeycomb/resources/environments.py +295 -0
  434. honeycomb/resources/events.py +156 -0
  435. honeycomb/resources/markers.py +334 -0
  436. honeycomb/resources/queries.py +256 -0
  437. honeycomb/resources/query_annotations.py +207 -0
  438. honeycomb/resources/query_results.py +886 -0
  439. honeycomb/resources/recipients.py +202 -0
  440. honeycomb/resources/service_map_dependencies.py +389 -0
  441. honeycomb/resources/slos.py +353 -0
  442. honeycomb/resources/triggers.py +284 -0
  443. honeycomb/tools/__init__.py +85 -0
  444. honeycomb/tools/__main__.py +204 -0
  445. honeycomb/tools/builders.py +512 -0
  446. honeycomb/tools/descriptions.py +523 -0
  447. honeycomb/tools/executor.py +860 -0
  448. honeycomb/tools/generator.py +2386 -0
  449. honeycomb/tools/schemas.py +184 -0
  450. honeycomb_api-0.1.0.dist-info/METADATA +451 -0
  451. honeycomb_api-0.1.0.dist-info/RECORD +453 -0
  452. honeycomb_api-0.1.0.dist-info/WHEEL +4 -0
  453. honeycomb_api-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,59 @@
1
+ from typing import Any, TypeVar, Optional, BinaryIO, TextIO, TYPE_CHECKING
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+ T = TypeVar("T", bound="AuthV2ResponseDataRelationships")
15
+
16
+
17
+
18
+ @_attrs_define
19
+ class AuthV2ResponseDataRelationships:
20
+ """
21
+ """
22
+
23
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+
26
+ def to_dict(self) -> dict[str, Any]:
27
+
28
+ field_dict: dict[str, Any] = {}
29
+ field_dict.update(self.additional_properties)
30
+
31
+ return field_dict
32
+
33
+
34
+
35
+ @classmethod
36
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
37
+ d = src_dict.copy()
38
+ auth_v2_response_data_relationships = cls(
39
+ )
40
+
41
+
42
+ auth_v2_response_data_relationships.additional_properties = d
43
+ return auth_v2_response_data_relationships
44
+
45
+ @property
46
+ def additional_keys(self) -> list[str]:
47
+ return list(self.additional_properties.keys())
48
+
49
+ def __getitem__(self, key: str) -> Any:
50
+ return self.additional_properties[key]
51
+
52
+ def __setitem__(self, key: str, value: Any) -> None:
53
+ self.additional_properties[key] = value
54
+
55
+ def __delitem__(self, key: str) -> None:
56
+ del self.additional_properties[key]
57
+
58
+ def __contains__(self, key: str) -> bool:
59
+ return key in self.additional_properties
@@ -0,0 +1,7 @@
1
+ from enum import Enum
2
+
3
+ class AuthV2ResponseDataType(str, Enum):
4
+ API_KEYS = "api-keys"
5
+
6
+ def __str__(self) -> str:
7
+ return str(self.value)
@@ -0,0 +1,367 @@
1
+ from typing import Any, TypeVar, Optional, BinaryIO, TextIO, TYPE_CHECKING
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ from ..models.base_trigger_alert_type import BaseTriggerAlertType
9
+ from ..models.base_trigger_evaluation_schedule_type import BaseTriggerEvaluationScheduleType
10
+ from ..types import UNSET, Unset
11
+ from dateutil.parser import isoparse
12
+ from typing import cast
13
+ from typing import cast, Union
14
+ from typing import Union
15
+ import datetime
16
+
17
+ if TYPE_CHECKING:
18
+ from ..models.base_trigger_threshold import BaseTriggerThreshold
19
+ from ..models.tag import Tag
20
+ from ..models.base_trigger_evaluation_schedule import BaseTriggerEvaluationSchedule
21
+ from ..models.base_trigger_baseline_details_type_0 import BaseTriggerBaselineDetailsType0
22
+ from ..models.notification_recipient import NotificationRecipient
23
+
24
+
25
+
26
+
27
+
28
+ T = TypeVar("T", bound="BaseTrigger")
29
+
30
+
31
+
32
+ @_attrs_define
33
+ class BaseTrigger:
34
+ """
35
+ Attributes:
36
+ id (Union[Unset, str]): The unique identifier (ID) for this Trigger.
37
+ dataset_slug (Union[Unset, str]): The slug of the dataset this trigger belongs to. For environment-wide
38
+ triggers, this will be "__all__".
39
+ name (Union[Unset, str]): A short, human-readable name for this Trigger, which will be displayed in the UI and
40
+ when the trigger fires.
41
+ description (Union[Unset, str]): A longer description, displayed on the Trigger's detail page.
42
+ tags (Union[Unset, list['Tag']]): A list of key-value pairs to help identify the Trigger. Example: [{'key':
43
+ 'team', 'value': 'blue'}].
44
+ threshold (Union[Unset, BaseTriggerThreshold]): The threshold over which the trigger will fire, specified as
45
+ both an operator and a value.
46
+ frequency (Union[Unset, int]): The interval in seconds in which to check the results of the query’s calculation
47
+ against the threshold. Cannot be more than 4 times the query's duration (i.e. `duration <= frequency*4`). See [A
48
+ Caveat on Time](https://docs.honeycomb.io/investigate/collaborate/share-query/define-query-json/#how-to-specify-
49
+ an-absolute-time-range) for more information on specifying a query's duration. minimum: 60 maximum: 86400
50
+ multipleOf: 60 default: 900
51
+ alert_type (Union[Unset, BaseTriggerAlertType]): How often to fire an alert when a trigger threshold is crossed.
52
+ - `on_change` sends a trigger notification when the result of the specified calculation crosses the threshold.
53
+ The trigger resolves only when the result of the query no longer satisfies the threshold condition.
54
+ - `on_true` keeps sending a trigger notification at current frequency when and while the threshold is met.
55
+ (This reflects the same behavior as the "Send an alert every time a threshold is met" checkbox in the
56
+ Honeycomb UI.)
57
+ Default: BaseTriggerAlertType.ON_CHANGE.
58
+ disabled (Union[Unset, bool]): If true, the trigger will not be evaluated and alerts will not be sent.
59
+ Default: False.
60
+ triggered (Union[Unset, bool]): If true, the trigger has crossed its specified threshold without resolving.
61
+ recipients (Union[Unset, list['NotificationRecipient']]): A list of [Recipients](/api/recipients/) to notify
62
+ when the Trigger fires. Using `type`+`target` is deprecated. First, create the Recipient via the Recipients API,
63
+ and then specify the ID.
64
+ evaluation_schedule_type (Union[Unset, BaseTriggerEvaluationScheduleType]): The schedule type used by the
65
+ trigger. The default is frequency, where the trigger runs at the
66
+ specified frequency. The window type means that the trigger will run at the specified frequency,
67
+ but only in the time window specified in the evaluation_schedule field.
68
+ evaluation_schedule (Union[Unset, BaseTriggerEvaluationSchedule]): A schedule that determines when the trigger
69
+ is run. When the time is within the scheduled
70
+ window, the trigger will be run at the specified frequency. Outside of the window, the trigger
71
+ will not be run.
72
+ created_at (Union[Unset, datetime.datetime]):
73
+ updated_at (Union[Unset, datetime.datetime]):
74
+ baseline_details (Union['BaseTriggerBaselineDetailsType0', Any, Unset]):
75
+ """
76
+
77
+ id: Union[Unset, str] = UNSET
78
+ dataset_slug: Union[Unset, str] = UNSET
79
+ name: Union[Unset, str] = UNSET
80
+ description: Union[Unset, str] = UNSET
81
+ tags: Union[Unset, list['Tag']] = UNSET
82
+ threshold: Union[Unset, 'BaseTriggerThreshold'] = UNSET
83
+ frequency: Union[Unset, int] = UNSET
84
+ alert_type: Union[Unset, BaseTriggerAlertType] = BaseTriggerAlertType.ON_CHANGE
85
+ disabled: Union[Unset, bool] = False
86
+ triggered: Union[Unset, bool] = UNSET
87
+ recipients: Union[Unset, list['NotificationRecipient']] = UNSET
88
+ evaluation_schedule_type: Union[Unset, BaseTriggerEvaluationScheduleType] = UNSET
89
+ evaluation_schedule: Union[Unset, 'BaseTriggerEvaluationSchedule'] = UNSET
90
+ created_at: Union[Unset, datetime.datetime] = UNSET
91
+ updated_at: Union[Unset, datetime.datetime] = UNSET
92
+ baseline_details: Union['BaseTriggerBaselineDetailsType0', Any, Unset] = UNSET
93
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
94
+
95
+
96
+ def to_dict(self) -> dict[str, Any]:
97
+ from ..models.base_trigger_threshold import BaseTriggerThreshold
98
+ from ..models.tag import Tag
99
+ from ..models.base_trigger_evaluation_schedule import BaseTriggerEvaluationSchedule
100
+ from ..models.base_trigger_baseline_details_type_0 import BaseTriggerBaselineDetailsType0
101
+ from ..models.notification_recipient import NotificationRecipient
102
+ id = self.id
103
+
104
+ dataset_slug = self.dataset_slug
105
+
106
+ name = self.name
107
+
108
+ description = self.description
109
+
110
+ tags: Union[Unset, list[dict[str, Any]]] = UNSET
111
+ if not isinstance(self.tags, Unset):
112
+ tags = []
113
+ for tags_item_data in self.tags:
114
+ tags_item = tags_item_data.to_dict()
115
+ tags.append(tags_item)
116
+
117
+
118
+
119
+ threshold: Union[Unset, dict[str, Any]] = UNSET
120
+ if not isinstance(self.threshold, Unset):
121
+ threshold = self.threshold.to_dict()
122
+
123
+ frequency = self.frequency
124
+
125
+ alert_type: Union[Unset, str] = UNSET
126
+ if not isinstance(self.alert_type, Unset):
127
+ alert_type = self.alert_type.value
128
+
129
+
130
+ disabled = self.disabled
131
+
132
+ triggered = self.triggered
133
+
134
+ recipients: Union[Unset, list[dict[str, Any]]] = UNSET
135
+ if not isinstance(self.recipients, Unset):
136
+ recipients = []
137
+ for recipients_item_data in self.recipients:
138
+ recipients_item = recipients_item_data.to_dict()
139
+ recipients.append(recipients_item)
140
+
141
+
142
+
143
+ evaluation_schedule_type: Union[Unset, str] = UNSET
144
+ if not isinstance(self.evaluation_schedule_type, Unset):
145
+ evaluation_schedule_type = self.evaluation_schedule_type.value
146
+
147
+
148
+ evaluation_schedule: Union[Unset, dict[str, Any]] = UNSET
149
+ if not isinstance(self.evaluation_schedule, Unset):
150
+ evaluation_schedule = self.evaluation_schedule.to_dict()
151
+
152
+ created_at: Union[Unset, str] = UNSET
153
+ if not isinstance(self.created_at, Unset):
154
+ created_at = self.created_at.isoformat()
155
+
156
+ updated_at: Union[Unset, str] = UNSET
157
+ if not isinstance(self.updated_at, Unset):
158
+ updated_at = self.updated_at.isoformat()
159
+
160
+ baseline_details: Union[Any, Unset, dict[str, Any]]
161
+ if isinstance(self.baseline_details, Unset):
162
+ baseline_details = UNSET
163
+ elif isinstance(self.baseline_details, BaseTriggerBaselineDetailsType0):
164
+ baseline_details = self.baseline_details.to_dict()
165
+ else:
166
+ baseline_details = self.baseline_details
167
+
168
+
169
+ field_dict: dict[str, Any] = {}
170
+ field_dict.update(self.additional_properties)
171
+ field_dict.update({
172
+ })
173
+ if id is not UNSET:
174
+ field_dict["id"] = id
175
+ if dataset_slug is not UNSET:
176
+ field_dict["dataset_slug"] = dataset_slug
177
+ if name is not UNSET:
178
+ field_dict["name"] = name
179
+ if description is not UNSET:
180
+ field_dict["description"] = description
181
+ if tags is not UNSET:
182
+ field_dict["tags"] = tags
183
+ if threshold is not UNSET:
184
+ field_dict["threshold"] = threshold
185
+ if frequency is not UNSET:
186
+ field_dict["frequency"] = frequency
187
+ if alert_type is not UNSET:
188
+ field_dict["alert_type"] = alert_type
189
+ if disabled is not UNSET:
190
+ field_dict["disabled"] = disabled
191
+ if triggered is not UNSET:
192
+ field_dict["triggered"] = triggered
193
+ if recipients is not UNSET:
194
+ field_dict["recipients"] = recipients
195
+ if evaluation_schedule_type is not UNSET:
196
+ field_dict["evaluation_schedule_type"] = evaluation_schedule_type
197
+ if evaluation_schedule is not UNSET:
198
+ field_dict["evaluation_schedule"] = evaluation_schedule
199
+ if created_at is not UNSET:
200
+ field_dict["created_at"] = created_at
201
+ if updated_at is not UNSET:
202
+ field_dict["updated_at"] = updated_at
203
+ if baseline_details is not UNSET:
204
+ field_dict["baseline_details"] = baseline_details
205
+
206
+ return field_dict
207
+
208
+
209
+
210
+ @classmethod
211
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
212
+ from ..models.base_trigger_threshold import BaseTriggerThreshold
213
+ from ..models.tag import Tag
214
+ from ..models.base_trigger_evaluation_schedule import BaseTriggerEvaluationSchedule
215
+ from ..models.base_trigger_baseline_details_type_0 import BaseTriggerBaselineDetailsType0
216
+ from ..models.notification_recipient import NotificationRecipient
217
+ d = src_dict.copy()
218
+ id = d.pop("id", UNSET)
219
+
220
+ dataset_slug = d.pop("dataset_slug", UNSET)
221
+
222
+ name = d.pop("name", UNSET)
223
+
224
+ description = d.pop("description", UNSET)
225
+
226
+ tags = []
227
+ _tags = d.pop("tags", UNSET)
228
+ for tags_item_data in (_tags or []):
229
+ tags_item = Tag.from_dict(tags_item_data)
230
+
231
+
232
+
233
+ tags.append(tags_item)
234
+
235
+
236
+ _threshold = d.pop("threshold", UNSET)
237
+ threshold: Union[Unset, BaseTriggerThreshold]
238
+ if isinstance(_threshold, Unset):
239
+ threshold = UNSET
240
+ else:
241
+ threshold = BaseTriggerThreshold.from_dict(_threshold)
242
+
243
+
244
+
245
+
246
+ frequency = d.pop("frequency", UNSET)
247
+
248
+ _alert_type = d.pop("alert_type", UNSET)
249
+ alert_type: Union[Unset, BaseTriggerAlertType]
250
+ if isinstance(_alert_type, Unset):
251
+ alert_type = UNSET
252
+ else:
253
+ alert_type = BaseTriggerAlertType(_alert_type)
254
+
255
+
256
+
257
+
258
+ disabled = d.pop("disabled", UNSET)
259
+
260
+ triggered = d.pop("triggered", UNSET)
261
+
262
+ recipients = []
263
+ _recipients = d.pop("recipients", UNSET)
264
+ for recipients_item_data in (_recipients or []):
265
+ recipients_item = NotificationRecipient.from_dict(recipients_item_data)
266
+
267
+
268
+
269
+ recipients.append(recipients_item)
270
+
271
+
272
+ _evaluation_schedule_type = d.pop("evaluation_schedule_type", UNSET)
273
+ evaluation_schedule_type: Union[Unset, BaseTriggerEvaluationScheduleType]
274
+ if isinstance(_evaluation_schedule_type, Unset):
275
+ evaluation_schedule_type = UNSET
276
+ else:
277
+ evaluation_schedule_type = BaseTriggerEvaluationScheduleType(_evaluation_schedule_type)
278
+
279
+
280
+
281
+
282
+ _evaluation_schedule = d.pop("evaluation_schedule", UNSET)
283
+ evaluation_schedule: Union[Unset, BaseTriggerEvaluationSchedule]
284
+ if isinstance(_evaluation_schedule, Unset):
285
+ evaluation_schedule = UNSET
286
+ else:
287
+ evaluation_schedule = BaseTriggerEvaluationSchedule.from_dict(_evaluation_schedule)
288
+
289
+
290
+
291
+
292
+ _created_at = d.pop("created_at", UNSET)
293
+ created_at: Union[Unset, datetime.datetime]
294
+ if isinstance(_created_at, Unset):
295
+ created_at = UNSET
296
+ else:
297
+ created_at = isoparse(_created_at)
298
+
299
+
300
+
301
+
302
+ _updated_at = d.pop("updated_at", UNSET)
303
+ updated_at: Union[Unset, datetime.datetime]
304
+ if isinstance(_updated_at, Unset):
305
+ updated_at = UNSET
306
+ else:
307
+ updated_at = isoparse(_updated_at)
308
+
309
+
310
+
311
+
312
+ def _parse_baseline_details(data: object) -> Union['BaseTriggerBaselineDetailsType0', Any, Unset]:
313
+ if isinstance(data, Unset):
314
+ return data
315
+ try:
316
+ if not isinstance(data, dict):
317
+ raise TypeError()
318
+ baseline_details_type_0 = BaseTriggerBaselineDetailsType0.from_dict(data)
319
+
320
+
321
+
322
+ return baseline_details_type_0
323
+ except: # noqa: E722
324
+ pass
325
+ return cast(Union['BaseTriggerBaselineDetailsType0', Any, Unset], data)
326
+
327
+ baseline_details = _parse_baseline_details(d.pop("baseline_details", UNSET))
328
+
329
+
330
+ base_trigger = cls(
331
+ id=id,
332
+ dataset_slug=dataset_slug,
333
+ name=name,
334
+ description=description,
335
+ tags=tags,
336
+ threshold=threshold,
337
+ frequency=frequency,
338
+ alert_type=alert_type,
339
+ disabled=disabled,
340
+ triggered=triggered,
341
+ recipients=recipients,
342
+ evaluation_schedule_type=evaluation_schedule_type,
343
+ evaluation_schedule=evaluation_schedule,
344
+ created_at=created_at,
345
+ updated_at=updated_at,
346
+ baseline_details=baseline_details,
347
+ )
348
+
349
+
350
+ base_trigger.additional_properties = d
351
+ return base_trigger
352
+
353
+ @property
354
+ def additional_keys(self) -> list[str]:
355
+ return list(self.additional_properties.keys())
356
+
357
+ def __getitem__(self, key: str) -> Any:
358
+ return self.additional_properties[key]
359
+
360
+ def __setitem__(self, key: str, value: Any) -> None:
361
+ self.additional_properties[key] = value
362
+
363
+ def __delitem__(self, key: str) -> None:
364
+ del self.additional_properties[key]
365
+
366
+ def __contains__(self, key: str) -> bool:
367
+ return key in self.additional_properties
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+ class BaseTriggerAlertType(str, Enum):
4
+ ON_CHANGE = "on_change"
5
+ ON_TRUE = "on_true"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,92 @@
1
+ from typing import Any, TypeVar, Optional, BinaryIO, TextIO, TYPE_CHECKING
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ from ..models.base_trigger_baseline_details_type_0_offset_minutes import BaseTriggerBaselineDetailsType0OffsetMinutes
9
+ from ..models.base_trigger_baseline_details_type_0_type import BaseTriggerBaselineDetailsType0Type
10
+
11
+
12
+
13
+
14
+
15
+
16
+ T = TypeVar("T", bound="BaseTriggerBaselineDetailsType0")
17
+
18
+
19
+
20
+ @_attrs_define
21
+ class BaseTriggerBaselineDetailsType0:
22
+ """ Additional properties needed to configure this trigger with a dynamic baseline threshold.
23
+
24
+ Example:
25
+ {'offset_minutes': 60, 'type': 'percentage'}
26
+
27
+ Attributes:
28
+ offset_minutes (BaseTriggerBaselineDetailsType0OffsetMinutes): For a given trigger run, how far back we should
29
+ look to compare results. Currently only support comparison 1 hour, 24 hours, 7 days, or 28 days in the past.
30
+ type_ (BaseTriggerBaselineDetailsType0Type): How to compare the change in the two time periods. Currently
31
+ supports the difference in values (b-a) or the percentage difference in values (b-a)/b.
32
+ """
33
+
34
+ offset_minutes: BaseTriggerBaselineDetailsType0OffsetMinutes
35
+ type_: BaseTriggerBaselineDetailsType0Type
36
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
37
+
38
+
39
+ def to_dict(self) -> dict[str, Any]:
40
+ offset_minutes = self.offset_minutes.value
41
+
42
+ type_ = self.type_.value
43
+
44
+
45
+ field_dict: dict[str, Any] = {}
46
+ field_dict.update(self.additional_properties)
47
+ field_dict.update({
48
+ "offset_minutes": offset_minutes,
49
+ "type": type_,
50
+ })
51
+
52
+ return field_dict
53
+
54
+
55
+
56
+ @classmethod
57
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
58
+ d = src_dict.copy()
59
+ offset_minutes = BaseTriggerBaselineDetailsType0OffsetMinutes(d.pop("offset_minutes"))
60
+
61
+
62
+
63
+
64
+ type_ = BaseTriggerBaselineDetailsType0Type(d.pop("type"))
65
+
66
+
67
+
68
+
69
+ base_trigger_baseline_details_type_0 = cls(
70
+ offset_minutes=offset_minutes,
71
+ type_=type_,
72
+ )
73
+
74
+
75
+ base_trigger_baseline_details_type_0.additional_properties = d
76
+ return base_trigger_baseline_details_type_0
77
+
78
+ @property
79
+ def additional_keys(self) -> list[str]:
80
+ return list(self.additional_properties.keys())
81
+
82
+ def __getitem__(self, key: str) -> Any:
83
+ return self.additional_properties[key]
84
+
85
+ def __setitem__(self, key: str, value: Any) -> None:
86
+ self.additional_properties[key] = value
87
+
88
+ def __delitem__(self, key: str) -> None:
89
+ del self.additional_properties[key]
90
+
91
+ def __contains__(self, key: str) -> bool:
92
+ return key in self.additional_properties
@@ -0,0 +1,10 @@
1
+ from enum import IntEnum
2
+
3
+ class BaseTriggerBaselineDetailsType0OffsetMinutes(IntEnum):
4
+ VALUE_60 = 60
5
+ VALUE_1440 = 1440
6
+ VALUE_10080 = 10080
7
+ VALUE_40320 = 40320
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+ class BaseTriggerBaselineDetailsType0Type(str, Enum):
4
+ PERCENTAGE = "percentage"
5
+ VALUE = "value"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,83 @@
1
+ from typing import Any, TypeVar, Optional, BinaryIO, TextIO, TYPE_CHECKING
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ from typing import cast
9
+
10
+ if TYPE_CHECKING:
11
+ from ..models.base_trigger_evaluation_schedule_window import BaseTriggerEvaluationScheduleWindow
12
+
13
+
14
+
15
+
16
+
17
+ T = TypeVar("T", bound="BaseTriggerEvaluationSchedule")
18
+
19
+
20
+
21
+ @_attrs_define
22
+ class BaseTriggerEvaluationSchedule:
23
+ """ A schedule that determines when the trigger is run. When the time is within the scheduled
24
+ window, the trigger will be run at the specified frequency. Outside of the window, the trigger
25
+ will not be run.
26
+
27
+ Attributes:
28
+ window (BaseTriggerEvaluationScheduleWindow): Window start/end times and days of the week are calculated in UTC.
29
+ If the end time is the same as or earlier than the start time, the end time is treated as being in the following
30
+ day.
31
+ """
32
+
33
+ window: 'BaseTriggerEvaluationScheduleWindow'
34
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
35
+
36
+
37
+ def to_dict(self) -> dict[str, Any]:
38
+ from ..models.base_trigger_evaluation_schedule_window import BaseTriggerEvaluationScheduleWindow
39
+ window = self.window.to_dict()
40
+
41
+
42
+ field_dict: dict[str, Any] = {}
43
+ field_dict.update(self.additional_properties)
44
+ field_dict.update({
45
+ "window": window,
46
+ })
47
+
48
+ return field_dict
49
+
50
+
51
+
52
+ @classmethod
53
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
54
+ from ..models.base_trigger_evaluation_schedule_window import BaseTriggerEvaluationScheduleWindow
55
+ d = src_dict.copy()
56
+ window = BaseTriggerEvaluationScheduleWindow.from_dict(d.pop("window"))
57
+
58
+
59
+
60
+
61
+ base_trigger_evaluation_schedule = cls(
62
+ window=window,
63
+ )
64
+
65
+
66
+ base_trigger_evaluation_schedule.additional_properties = d
67
+ return base_trigger_evaluation_schedule
68
+
69
+ @property
70
+ def additional_keys(self) -> list[str]:
71
+ return list(self.additional_properties.keys())
72
+
73
+ def __getitem__(self, key: str) -> Any:
74
+ return self.additional_properties[key]
75
+
76
+ def __setitem__(self, key: str, value: Any) -> None:
77
+ self.additional_properties[key] = value
78
+
79
+ def __delitem__(self, key: str) -> None:
80
+ del self.additional_properties[key]
81
+
82
+ def __contains__(self, key: str) -> bool:
83
+ return key in self.additional_properties
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+ class BaseTriggerEvaluationScheduleType(str, Enum):
4
+ FREQUENCY = "frequency"
5
+ WINDOW = "window"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)