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,78 @@
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.environment import Environment
12
+
13
+
14
+
15
+
16
+
17
+ T = TypeVar("T", bound="EnvironmentResponse")
18
+
19
+
20
+
21
+ @_attrs_define
22
+ class EnvironmentResponse:
23
+ """
24
+ Attributes:
25
+ data (Environment):
26
+ """
27
+
28
+ data: 'Environment'
29
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
30
+
31
+
32
+ def to_dict(self) -> dict[str, Any]:
33
+ from ..models.environment import Environment
34
+ data = self.data.to_dict()
35
+
36
+
37
+ field_dict: dict[str, Any] = {}
38
+ field_dict.update(self.additional_properties)
39
+ field_dict.update({
40
+ "data": data,
41
+ })
42
+
43
+ return field_dict
44
+
45
+
46
+
47
+ @classmethod
48
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
49
+ from ..models.environment import Environment
50
+ d = src_dict.copy()
51
+ data = Environment.from_dict(d.pop("data"))
52
+
53
+
54
+
55
+
56
+ environment_response = cls(
57
+ data=data,
58
+ )
59
+
60
+
61
+ environment_response.additional_properties = d
62
+ return environment_response
63
+
64
+ @property
65
+ def additional_keys(self) -> list[str]:
66
+ return list(self.additional_properties.keys())
67
+
68
+ def __getitem__(self, key: str) -> Any:
69
+ return self.additional_properties[key]
70
+
71
+ def __setitem__(self, key: str, value: Any) -> None:
72
+ self.additional_properties[key] = value
73
+
74
+ def __delitem__(self, key: str) -> None:
75
+ del self.additional_properties[key]
76
+
77
+ def __contains__(self, key: str) -> bool:
78
+ return key in self.additional_properties
@@ -0,0 +1,7 @@
1
+ from enum import Enum
2
+
3
+ class EnvironmentType(str, Enum):
4
+ ENVIRONMENTS = "environments"
5
+
6
+ def __str__(self) -> str:
7
+ return str(self.value)
@@ -0,0 +1,74 @@
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 ..types import UNSET, Unset
9
+ from typing import Union
10
+
11
+
12
+
13
+
14
+
15
+
16
+ T = TypeVar("T", bound="Error")
17
+
18
+
19
+
20
+ @_attrs_define
21
+ class Error:
22
+ """ A legacy error, containing only a textual description.
23
+
24
+ Attributes:
25
+ error (Union[Unset, str]):
26
+ """
27
+
28
+ error: Union[Unset, str] = UNSET
29
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
30
+
31
+
32
+ def to_dict(self) -> dict[str, Any]:
33
+ error = self.error
34
+
35
+
36
+ field_dict: dict[str, Any] = {}
37
+ field_dict.update(self.additional_properties)
38
+ field_dict.update({
39
+ })
40
+ if error is not UNSET:
41
+ field_dict["error"] = error
42
+
43
+ return field_dict
44
+
45
+
46
+
47
+ @classmethod
48
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
49
+ d = src_dict.copy()
50
+ error = d.pop("error", UNSET)
51
+
52
+ error = cls(
53
+ error=error,
54
+ )
55
+
56
+
57
+ error.additional_properties = d
58
+ return error
59
+
60
+ @property
61
+ def additional_keys(self) -> list[str]:
62
+ return list(self.additional_properties.keys())
63
+
64
+ def __getitem__(self, key: str) -> Any:
65
+ return self.additional_properties[key]
66
+
67
+ def __setitem__(self, key: str, value: Any) -> None:
68
+ self.additional_properties[key] = value
69
+
70
+ def __delitem__(self, key: str) -> None:
71
+ del self.additional_properties[key]
72
+
73
+ def __contains__(self, key: str) -> bool:
74
+ return key in self.additional_properties
@@ -0,0 +1,71 @@
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, Union
9
+
10
+
11
+
12
+
13
+
14
+
15
+ T = TypeVar("T", bound="Event")
16
+
17
+
18
+
19
+ @_attrs_define
20
+ class Event:
21
+ """
22
+ """
23
+
24
+ additional_properties: dict[str, Union[bool, float, str]] = _attrs_field(init=False, factory=dict)
25
+
26
+
27
+ def to_dict(self) -> dict[str, Any]:
28
+
29
+ field_dict: dict[str, Any] = {}
30
+ for prop_name, prop in self.additional_properties.items():
31
+
32
+ field_dict[prop_name] = prop
33
+
34
+ return field_dict
35
+
36
+
37
+
38
+ @classmethod
39
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
40
+ d = src_dict.copy()
41
+ event = cls(
42
+ )
43
+
44
+
45
+ additional_properties = {}
46
+ for prop_name, prop_dict in d.items():
47
+ def _parse_additional_property(data: object) -> Union[bool, float, str]:
48
+ return cast(Union[bool, float, str], data)
49
+
50
+ additional_property = _parse_additional_property(prop_dict)
51
+
52
+ additional_properties[prop_name] = additional_property
53
+
54
+ event.additional_properties = additional_properties
55
+ return event
56
+
57
+ @property
58
+ def additional_keys(self) -> list[str]:
59
+ return list(self.additional_properties.keys())
60
+
61
+ def __getitem__(self, key: str) -> Union[bool, float, str]:
62
+ return self.additional_properties[key]
63
+
64
+ def __setitem__(self, key: str, value: Union[bool, float, str]) -> None:
65
+ self.additional_properties[key] = value
66
+
67
+ def __delitem__(self, key: str) -> None:
68
+ del self.additional_properties[key]
69
+
70
+ def __contains__(self, key: str) -> bool:
71
+ return key in self.additional_properties
@@ -0,0 +1,174 @@
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.exhaustion_time_alert_type import ExhaustionTimeAlertType
9
+ from ..types import UNSET, Unset
10
+ from dateutil.parser import isoparse
11
+ from typing import cast
12
+ from typing import Union
13
+ import datetime
14
+
15
+
16
+
17
+
18
+
19
+
20
+ T = TypeVar("T", bound="ExhaustionTime")
21
+
22
+
23
+
24
+ @_attrs_define
25
+ class ExhaustionTime:
26
+ """
27
+ Attributes:
28
+ exhaustion_minutes (int): Required when `alert_type` is `exhaustion_time`.
29
+
30
+ Must not be specified when `alert_type` is `budget_rate`.
31
+
32
+ Amount of time (in minutes) left until your projected SLO budget is exhausted.
33
+ The alert will fire when this exhaustion threshold is reached.
34
+ Example: 120.
35
+ id (Union[Unset, str]): Unique identifier (ID) of a Burn alert. Example: fS7vfB81Wcy.
36
+ description (Union[Unset, str]): A description of the Burn Alert. Example: Use this runbook if this alert
37
+ fires..
38
+ triggered (Union[Unset, bool]): Indicates if the Burn Alert has been triggered. This field is read-only and is
39
+ set to `true` when the alert is triggered.
40
+ created_at (Union[Unset, datetime.datetime]): The ISO8601-formatted time when the Burn Alert was created.
41
+ Example: 2022-09-22T17:32:11Z.
42
+ updated_at (Union[Unset, datetime.datetime]): The ISO8601-formatted time when the Burn Alert was updated.
43
+ Example: 2022-10-31T15:08:11Z.
44
+ alert_type (Union[Unset, ExhaustionTimeAlertType]): One of the supported alert types:
45
+ 1. `exhaustion_time`: Notifies when you are about to run out of SLO budget within a specified number of hours.
46
+ 1. `budget_rate`: Notifies when budget drops by at least a specified percentage within a defined time window.
47
+ Default: ExhaustionTimeAlertType.EXHAUSTION_TIME. Example: exhaustion_time.
48
+ """
49
+
50
+ exhaustion_minutes: int
51
+ id: Union[Unset, str] = UNSET
52
+ description: Union[Unset, str] = UNSET
53
+ triggered: Union[Unset, bool] = UNSET
54
+ created_at: Union[Unset, datetime.datetime] = UNSET
55
+ updated_at: Union[Unset, datetime.datetime] = UNSET
56
+ alert_type: Union[Unset, ExhaustionTimeAlertType] = ExhaustionTimeAlertType.EXHAUSTION_TIME
57
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
58
+
59
+
60
+ def to_dict(self) -> dict[str, Any]:
61
+ exhaustion_minutes = self.exhaustion_minutes
62
+
63
+ id = self.id
64
+
65
+ description = self.description
66
+
67
+ triggered = self.triggered
68
+
69
+ created_at: Union[Unset, str] = UNSET
70
+ if not isinstance(self.created_at, Unset):
71
+ created_at = self.created_at.isoformat()
72
+
73
+ updated_at: Union[Unset, str] = UNSET
74
+ if not isinstance(self.updated_at, Unset):
75
+ updated_at = self.updated_at.isoformat()
76
+
77
+ alert_type: Union[Unset, str] = UNSET
78
+ if not isinstance(self.alert_type, Unset):
79
+ alert_type = self.alert_type.value
80
+
81
+
82
+
83
+ field_dict: dict[str, Any] = {}
84
+ field_dict.update(self.additional_properties)
85
+ field_dict.update({
86
+ "exhaustion_minutes": exhaustion_minutes,
87
+ })
88
+ if id is not UNSET:
89
+ field_dict["id"] = id
90
+ if description is not UNSET:
91
+ field_dict["description"] = description
92
+ if triggered is not UNSET:
93
+ field_dict["triggered"] = triggered
94
+ if created_at is not UNSET:
95
+ field_dict["created_at"] = created_at
96
+ if updated_at is not UNSET:
97
+ field_dict["updated_at"] = updated_at
98
+ if alert_type is not UNSET:
99
+ field_dict["alert_type"] = alert_type
100
+
101
+ return field_dict
102
+
103
+
104
+
105
+ @classmethod
106
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
107
+ d = src_dict.copy()
108
+ exhaustion_minutes = d.pop("exhaustion_minutes")
109
+
110
+ id = d.pop("id", UNSET)
111
+
112
+ description = d.pop("description", UNSET)
113
+
114
+ triggered = d.pop("triggered", UNSET)
115
+
116
+ _created_at = d.pop("created_at", UNSET)
117
+ created_at: Union[Unset, datetime.datetime]
118
+ if isinstance(_created_at, Unset):
119
+ created_at = UNSET
120
+ else:
121
+ created_at = isoparse(_created_at)
122
+
123
+
124
+
125
+
126
+ _updated_at = d.pop("updated_at", UNSET)
127
+ updated_at: Union[Unset, datetime.datetime]
128
+ if isinstance(_updated_at, Unset):
129
+ updated_at = UNSET
130
+ else:
131
+ updated_at = isoparse(_updated_at)
132
+
133
+
134
+
135
+
136
+ _alert_type = d.pop("alert_type", UNSET)
137
+ alert_type: Union[Unset, ExhaustionTimeAlertType]
138
+ if isinstance(_alert_type, Unset):
139
+ alert_type = UNSET
140
+ else:
141
+ alert_type = ExhaustionTimeAlertType(_alert_type)
142
+
143
+
144
+
145
+
146
+ exhaustion_time = cls(
147
+ exhaustion_minutes=exhaustion_minutes,
148
+ id=id,
149
+ description=description,
150
+ triggered=triggered,
151
+ created_at=created_at,
152
+ updated_at=updated_at,
153
+ alert_type=alert_type,
154
+ )
155
+
156
+
157
+ exhaustion_time.additional_properties = d
158
+ return exhaustion_time
159
+
160
+ @property
161
+ def additional_keys(self) -> list[str]:
162
+ return list(self.additional_properties.keys())
163
+
164
+ def __getitem__(self, key: str) -> Any:
165
+ return self.additional_properties[key]
166
+
167
+ def __setitem__(self, key: str, value: Any) -> None:
168
+ self.additional_properties[key] = value
169
+
170
+ def __delitem__(self, key: str) -> None:
171
+ del self.additional_properties[key]
172
+
173
+ def __contains__(self, key: str) -> bool:
174
+ return key in self.additional_properties
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+ class ExhaustionTimeAlertType(str, Enum):
4
+ BUDGET_RATE = "budget_rate"
5
+ EXHAUSTION_TIME = "exhaustion_time"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,198 @@
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.exhaustion_time_alert_type import ExhaustionTimeAlertType
9
+ from ..types import UNSET, Unset
10
+ from dateutil.parser import isoparse
11
+ from typing import cast
12
+ from typing import Union
13
+ import datetime
14
+
15
+ if TYPE_CHECKING:
16
+ from ..models.exhaustion_time_burn_alert_list_response_slo import ExhaustionTimeBurnAlertListResponseSlo
17
+
18
+
19
+
20
+
21
+
22
+ T = TypeVar("T", bound="ExhaustionTimeBurnAlertListResponse")
23
+
24
+
25
+
26
+ @_attrs_define
27
+ class ExhaustionTimeBurnAlertListResponse:
28
+ """
29
+ Attributes:
30
+ exhaustion_minutes (int): Required when `alert_type` is `exhaustion_time`.
31
+
32
+ Must not be specified when `alert_type` is `budget_rate`.
33
+
34
+ Amount of time (in minutes) left until your projected SLO budget is exhausted.
35
+ The alert will fire when this exhaustion threshold is reached.
36
+ Example: 120.
37
+ id (Union[Unset, str]): Unique identifier (ID) of a Burn alert. Example: fS7vfB81Wcy.
38
+ description (Union[Unset, str]): A description of the Burn Alert. Example: Use this runbook if this alert
39
+ fires..
40
+ triggered (Union[Unset, bool]): Indicates if the Burn Alert has been triggered. This field is read-only and is
41
+ set to `true` when the alert is triggered.
42
+ created_at (Union[Unset, datetime.datetime]): The ISO8601-formatted time when the Burn Alert was created.
43
+ Example: 2022-09-22T17:32:11Z.
44
+ updated_at (Union[Unset, datetime.datetime]): The ISO8601-formatted time when the Burn Alert was updated.
45
+ Example: 2022-10-31T15:08:11Z.
46
+ alert_type (Union[Unset, ExhaustionTimeAlertType]): One of the supported alert types:
47
+ 1. `exhaustion_time`: Notifies when you are about to run out of SLO budget within a specified number of hours.
48
+ 1. `budget_rate`: Notifies when budget drops by at least a specified percentage within a defined time window.
49
+ Default: ExhaustionTimeAlertType.EXHAUSTION_TIME. Example: exhaustion_time.
50
+ slo (Union[Unset, ExhaustionTimeBurnAlertListResponseSlo]): Details about the SLO associated with the burn
51
+ alert. Example: {'id': '2LBq9LckbcA'}.
52
+ """
53
+
54
+ exhaustion_minutes: int
55
+ id: Union[Unset, str] = UNSET
56
+ description: Union[Unset, str] = UNSET
57
+ triggered: Union[Unset, bool] = UNSET
58
+ created_at: Union[Unset, datetime.datetime] = UNSET
59
+ updated_at: Union[Unset, datetime.datetime] = UNSET
60
+ alert_type: Union[Unset, ExhaustionTimeAlertType] = ExhaustionTimeAlertType.EXHAUSTION_TIME
61
+ slo: Union[Unset, 'ExhaustionTimeBurnAlertListResponseSlo'] = UNSET
62
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
63
+
64
+
65
+ def to_dict(self) -> dict[str, Any]:
66
+ from ..models.exhaustion_time_burn_alert_list_response_slo import ExhaustionTimeBurnAlertListResponseSlo
67
+ exhaustion_minutes = self.exhaustion_minutes
68
+
69
+ id = self.id
70
+
71
+ description = self.description
72
+
73
+ triggered = self.triggered
74
+
75
+ created_at: Union[Unset, str] = UNSET
76
+ if not isinstance(self.created_at, Unset):
77
+ created_at = self.created_at.isoformat()
78
+
79
+ updated_at: Union[Unset, str] = UNSET
80
+ if not isinstance(self.updated_at, Unset):
81
+ updated_at = self.updated_at.isoformat()
82
+
83
+ alert_type: Union[Unset, str] = UNSET
84
+ if not isinstance(self.alert_type, Unset):
85
+ alert_type = self.alert_type.value
86
+
87
+
88
+ slo: Union[Unset, dict[str, Any]] = UNSET
89
+ if not isinstance(self.slo, Unset):
90
+ slo = self.slo.to_dict()
91
+
92
+
93
+ field_dict: dict[str, Any] = {}
94
+ field_dict.update(self.additional_properties)
95
+ field_dict.update({
96
+ "exhaustion_minutes": exhaustion_minutes,
97
+ })
98
+ if id is not UNSET:
99
+ field_dict["id"] = id
100
+ if description is not UNSET:
101
+ field_dict["description"] = description
102
+ if triggered is not UNSET:
103
+ field_dict["triggered"] = triggered
104
+ if created_at is not UNSET:
105
+ field_dict["created_at"] = created_at
106
+ if updated_at is not UNSET:
107
+ field_dict["updated_at"] = updated_at
108
+ if alert_type is not UNSET:
109
+ field_dict["alert_type"] = alert_type
110
+ if slo is not UNSET:
111
+ field_dict["slo"] = slo
112
+
113
+ return field_dict
114
+
115
+
116
+
117
+ @classmethod
118
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
119
+ from ..models.exhaustion_time_burn_alert_list_response_slo import ExhaustionTimeBurnAlertListResponseSlo
120
+ d = src_dict.copy()
121
+ exhaustion_minutes = d.pop("exhaustion_minutes")
122
+
123
+ id = d.pop("id", UNSET)
124
+
125
+ description = d.pop("description", UNSET)
126
+
127
+ triggered = d.pop("triggered", UNSET)
128
+
129
+ _created_at = d.pop("created_at", UNSET)
130
+ created_at: Union[Unset, datetime.datetime]
131
+ if isinstance(_created_at, Unset):
132
+ created_at = UNSET
133
+ else:
134
+ created_at = isoparse(_created_at)
135
+
136
+
137
+
138
+
139
+ _updated_at = d.pop("updated_at", UNSET)
140
+ updated_at: Union[Unset, datetime.datetime]
141
+ if isinstance(_updated_at, Unset):
142
+ updated_at = UNSET
143
+ else:
144
+ updated_at = isoparse(_updated_at)
145
+
146
+
147
+
148
+
149
+ _alert_type = d.pop("alert_type", UNSET)
150
+ alert_type: Union[Unset, ExhaustionTimeAlertType]
151
+ if isinstance(_alert_type, Unset):
152
+ alert_type = UNSET
153
+ else:
154
+ alert_type = ExhaustionTimeAlertType(_alert_type)
155
+
156
+
157
+
158
+
159
+ _slo = d.pop("slo", UNSET)
160
+ slo: Union[Unset, ExhaustionTimeBurnAlertListResponseSlo]
161
+ if isinstance(_slo, Unset):
162
+ slo = UNSET
163
+ else:
164
+ slo = ExhaustionTimeBurnAlertListResponseSlo.from_dict(_slo)
165
+
166
+
167
+
168
+
169
+ exhaustion_time_burn_alert_list_response = cls(
170
+ exhaustion_minutes=exhaustion_minutes,
171
+ id=id,
172
+ description=description,
173
+ triggered=triggered,
174
+ created_at=created_at,
175
+ updated_at=updated_at,
176
+ alert_type=alert_type,
177
+ slo=slo,
178
+ )
179
+
180
+
181
+ exhaustion_time_burn_alert_list_response.additional_properties = d
182
+ return exhaustion_time_burn_alert_list_response
183
+
184
+ @property
185
+ def additional_keys(self) -> list[str]:
186
+ return list(self.additional_properties.keys())
187
+
188
+ def __getitem__(self, key: str) -> Any:
189
+ return self.additional_properties[key]
190
+
191
+ def __setitem__(self, key: str, value: Any) -> None:
192
+ self.additional_properties[key] = value
193
+
194
+ def __delitem__(self, key: str) -> None:
195
+ del self.additional_properties[key]
196
+
197
+ def __contains__(self, key: str) -> bool:
198
+ return key in self.additional_properties
@@ -0,0 +1,77 @@
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 ..types import UNSET, Unset
9
+ from typing import Union
10
+
11
+
12
+
13
+
14
+
15
+
16
+ T = TypeVar("T", bound="ExhaustionTimeBurnAlertListResponseSlo")
17
+
18
+
19
+
20
+ @_attrs_define
21
+ class ExhaustionTimeBurnAlertListResponseSlo:
22
+ """ Details about the SLO associated with the burn alert.
23
+
24
+ Example:
25
+ {'id': '2LBq9LckbcA'}
26
+
27
+ Attributes:
28
+ id (Union[Unset, str]): Unique identifier (ID) of a SLO.
29
+ """
30
+
31
+ id: Union[Unset, str] = UNSET
32
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
+
34
+
35
+ def to_dict(self) -> dict[str, Any]:
36
+ id = self.id
37
+
38
+
39
+ field_dict: dict[str, Any] = {}
40
+ field_dict.update(self.additional_properties)
41
+ field_dict.update({
42
+ })
43
+ if id is not UNSET:
44
+ field_dict["id"] = id
45
+
46
+ return field_dict
47
+
48
+
49
+
50
+ @classmethod
51
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
52
+ d = src_dict.copy()
53
+ id = d.pop("id", UNSET)
54
+
55
+ exhaustion_time_burn_alert_list_response_slo = cls(
56
+ id=id,
57
+ )
58
+
59
+
60
+ exhaustion_time_burn_alert_list_response_slo.additional_properties = d
61
+ return exhaustion_time_burn_alert_list_response_slo
62
+
63
+ @property
64
+ def additional_keys(self) -> list[str]:
65
+ return list(self.additional_properties.keys())
66
+
67
+ def __getitem__(self, key: str) -> Any:
68
+ return self.additional_properties[key]
69
+
70
+ def __setitem__(self, key: str, value: Any) -> None:
71
+ self.additional_properties[key] = value
72
+
73
+ def __delitem__(self, key: str) -> None:
74
+ del self.additional_properties[key]
75
+
76
+ def __contains__(self, key: str) -> bool:
77
+ return key in self.additional_properties