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,245 @@
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 dateutil.parser import isoparse
10
+ from typing import cast
11
+ from typing import cast, Union
12
+ from typing import Union
13
+ import datetime
14
+
15
+ if TYPE_CHECKING:
16
+ from ..models.slo_create_sli import SLOCreateSli
17
+ from ..models.tag import Tag
18
+
19
+
20
+
21
+
22
+
23
+ T = TypeVar("T", bound="SLOCreate")
24
+
25
+
26
+
27
+ @_attrs_define
28
+ class SLOCreate:
29
+ """
30
+ Attributes:
31
+ name (str): The name of the SLO. Example: My SLO.
32
+ sli (SLOCreateSli): Reference to the [Calculated Field (also called Derived Column)](/api/calculated-fields/)
33
+ used as the indicator of event success. Example: {'alias': 'error_sli'}.
34
+ time_period_days (int): The time period, in days, over which the SLO will be evaluated. Example: 30.
35
+ target_per_million (int): The number of events out of one million (1,000,000) that you expected qualified events
36
+ to succeed. Example: 990000.
37
+ id (Union[Unset, str]):
38
+ description (Union[Unset, str]): A nice description of the SLO's intent and context. Example: SLO to ensure
39
+ requests succeed and are fast.
40
+ tags (Union[Unset, list['Tag']]): A list of key-value pairs to help identify the SLO. Example: [{'key': 'team',
41
+ 'value': 'blue'}].
42
+ reset_at (Union[None, Unset, datetime.datetime]): The ISO8601-formatted time the SLO was last reset. The value
43
+ will be `null` if the SLO has not yet been reset. Example: 2022-011-11T09:53:04Z.
44
+ created_at (Union[Unset, datetime.datetime]): The ISO8601-formatted time when the SLO was created. Example:
45
+ 2022-09-22T17:32:11Z.
46
+ updated_at (Union[Unset, datetime.datetime]): The ISO8601-formatted time when the SLO was updated. Example:
47
+ 2022-10-31T15:08:11Z.
48
+ dataset_slugs (Union[Unset, list[str]]): The dataset(s) the SLO will be evaluated against. Required if using
49
+ `__all__` in the path. Example: ['mydataset1', 'mydataset2'].
50
+ """
51
+
52
+ name: str
53
+ sli: 'SLOCreateSli'
54
+ time_period_days: int
55
+ target_per_million: int
56
+ id: Union[Unset, str] = UNSET
57
+ description: Union[Unset, str] = UNSET
58
+ tags: Union[Unset, list['Tag']] = UNSET
59
+ reset_at: Union[None, Unset, datetime.datetime] = UNSET
60
+ created_at: Union[Unset, datetime.datetime] = UNSET
61
+ updated_at: Union[Unset, datetime.datetime] = UNSET
62
+ dataset_slugs: Union[Unset, list[str]] = UNSET
63
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
64
+
65
+
66
+ def to_dict(self) -> dict[str, Any]:
67
+ from ..models.slo_create_sli import SLOCreateSli
68
+ from ..models.tag import Tag
69
+ name = self.name
70
+
71
+ sli = self.sli.to_dict()
72
+
73
+ time_period_days = self.time_period_days
74
+
75
+ target_per_million = self.target_per_million
76
+
77
+ id = self.id
78
+
79
+ description = self.description
80
+
81
+ tags: Union[Unset, list[dict[str, Any]]] = UNSET
82
+ if not isinstance(self.tags, Unset):
83
+ tags = []
84
+ for tags_item_data in self.tags:
85
+ tags_item = tags_item_data.to_dict()
86
+ tags.append(tags_item)
87
+
88
+
89
+
90
+ reset_at: Union[None, Unset, str]
91
+ if isinstance(self.reset_at, Unset):
92
+ reset_at = UNSET
93
+ elif isinstance(self.reset_at, datetime.datetime):
94
+ reset_at = self.reset_at.isoformat()
95
+ else:
96
+ reset_at = self.reset_at
97
+
98
+ created_at: Union[Unset, str] = UNSET
99
+ if not isinstance(self.created_at, Unset):
100
+ created_at = self.created_at.isoformat()
101
+
102
+ updated_at: Union[Unset, str] = UNSET
103
+ if not isinstance(self.updated_at, Unset):
104
+ updated_at = self.updated_at.isoformat()
105
+
106
+ dataset_slugs: Union[Unset, list[str]] = UNSET
107
+ if not isinstance(self.dataset_slugs, Unset):
108
+ dataset_slugs = self.dataset_slugs
109
+
110
+
111
+
112
+
113
+ field_dict: dict[str, Any] = {}
114
+ field_dict.update(self.additional_properties)
115
+ field_dict.update({
116
+ "name": name,
117
+ "sli": sli,
118
+ "time_period_days": time_period_days,
119
+ "target_per_million": target_per_million,
120
+ })
121
+ if id is not UNSET:
122
+ field_dict["id"] = id
123
+ if description is not UNSET:
124
+ field_dict["description"] = description
125
+ if tags is not UNSET:
126
+ field_dict["tags"] = tags
127
+ if reset_at is not UNSET:
128
+ field_dict["reset_at"] = reset_at
129
+ if created_at is not UNSET:
130
+ field_dict["created_at"] = created_at
131
+ if updated_at is not UNSET:
132
+ field_dict["updated_at"] = updated_at
133
+ if dataset_slugs is not UNSET:
134
+ field_dict["dataset_slugs"] = dataset_slugs
135
+
136
+ return field_dict
137
+
138
+
139
+
140
+ @classmethod
141
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
142
+ from ..models.slo_create_sli import SLOCreateSli
143
+ from ..models.tag import Tag
144
+ d = src_dict.copy()
145
+ name = d.pop("name")
146
+
147
+ sli = SLOCreateSli.from_dict(d.pop("sli"))
148
+
149
+
150
+
151
+
152
+ time_period_days = d.pop("time_period_days")
153
+
154
+ target_per_million = d.pop("target_per_million")
155
+
156
+ id = d.pop("id", UNSET)
157
+
158
+ description = d.pop("description", UNSET)
159
+
160
+ tags = []
161
+ _tags = d.pop("tags", UNSET)
162
+ for tags_item_data in (_tags or []):
163
+ tags_item = Tag.from_dict(tags_item_data)
164
+
165
+
166
+
167
+ tags.append(tags_item)
168
+
169
+
170
+ def _parse_reset_at(data: object) -> Union[None, Unset, datetime.datetime]:
171
+ if data is None:
172
+ return data
173
+ if isinstance(data, Unset):
174
+ return data
175
+ try:
176
+ if not isinstance(data, str):
177
+ raise TypeError()
178
+ reset_at_type_1 = isoparse(data)
179
+
180
+
181
+
182
+ return reset_at_type_1
183
+ except: # noqa: E722
184
+ pass
185
+ return cast(Union[None, Unset, datetime.datetime], data)
186
+
187
+ reset_at = _parse_reset_at(d.pop("reset_at", UNSET))
188
+
189
+
190
+ _created_at = d.pop("created_at", UNSET)
191
+ created_at: Union[Unset, datetime.datetime]
192
+ if isinstance(_created_at, Unset):
193
+ created_at = UNSET
194
+ else:
195
+ created_at = isoparse(_created_at)
196
+
197
+
198
+
199
+
200
+ _updated_at = d.pop("updated_at", UNSET)
201
+ updated_at: Union[Unset, datetime.datetime]
202
+ if isinstance(_updated_at, Unset):
203
+ updated_at = UNSET
204
+ else:
205
+ updated_at = isoparse(_updated_at)
206
+
207
+
208
+
209
+
210
+ dataset_slugs = cast(list[str], d.pop("dataset_slugs", UNSET))
211
+
212
+
213
+ slo_create = cls(
214
+ name=name,
215
+ sli=sli,
216
+ time_period_days=time_period_days,
217
+ target_per_million=target_per_million,
218
+ id=id,
219
+ description=description,
220
+ tags=tags,
221
+ reset_at=reset_at,
222
+ created_at=created_at,
223
+ updated_at=updated_at,
224
+ dataset_slugs=dataset_slugs,
225
+ )
226
+
227
+
228
+ slo_create.additional_properties = d
229
+ return slo_create
230
+
231
+ @property
232
+ def additional_keys(self) -> list[str]:
233
+ return list(self.additional_properties.keys())
234
+
235
+ def __getitem__(self, key: str) -> Any:
236
+ return self.additional_properties[key]
237
+
238
+ def __setitem__(self, key: str, value: Any) -> None:
239
+ self.additional_properties[key] = value
240
+
241
+ def __delitem__(self, key: str) -> None:
242
+ del self.additional_properties[key]
243
+
244
+ def __contains__(self, key: str) -> bool:
245
+ return key in self.additional_properties
@@ -0,0 +1,75 @@
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="SLOCreateSli")
15
+
16
+
17
+
18
+ @_attrs_define
19
+ class SLOCreateSli:
20
+ """ Reference to the [Calculated Field (also called Derived Column)](/api/calculated-fields/) used as the indicator of
21
+ event success.
22
+
23
+ Example:
24
+ {'alias': 'error_sli'}
25
+
26
+ Attributes:
27
+ alias (str): The alias of the Calculated Field (also called Derived Column).
28
+ """
29
+
30
+ alias: str
31
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
32
+
33
+
34
+ def to_dict(self) -> dict[str, Any]:
35
+ alias = self.alias
36
+
37
+
38
+ field_dict: dict[str, Any] = {}
39
+ field_dict.update(self.additional_properties)
40
+ field_dict.update({
41
+ "alias": alias,
42
+ })
43
+
44
+ return field_dict
45
+
46
+
47
+
48
+ @classmethod
49
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
50
+ d = src_dict.copy()
51
+ alias = d.pop("alias")
52
+
53
+ slo_create_sli = cls(
54
+ alias=alias,
55
+ )
56
+
57
+
58
+ slo_create_sli.additional_properties = d
59
+ return slo_create_sli
60
+
61
+ @property
62
+ def additional_keys(self) -> list[str]:
63
+ return list(self.additional_properties.keys())
64
+
65
+ def __getitem__(self, key: str) -> Any:
66
+ return self.additional_properties[key]
67
+
68
+ def __setitem__(self, key: str, value: Any) -> None:
69
+ self.additional_properties[key] = value
70
+
71
+ def __delitem__(self, key: str) -> None:
72
+ del self.additional_properties[key]
73
+
74
+ def __contains__(self, key: str) -> bool:
75
+ return key in self.additional_properties
@@ -0,0 +1,312 @@
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.slo_detailed_response_status import SLODetailedResponseStatus
9
+ from ..types import UNSET, Unset
10
+ from dateutil.parser import isoparse
11
+ from typing import cast
12
+ from typing import cast, Union
13
+ from typing import Union
14
+ import datetime
15
+
16
+ if TYPE_CHECKING:
17
+ from ..models.slo_sli import SLOSli
18
+ from ..models.tag import Tag
19
+
20
+
21
+
22
+
23
+
24
+ T = TypeVar("T", bound="SLODetailedResponse")
25
+
26
+
27
+
28
+ @_attrs_define
29
+ class SLODetailedResponse:
30
+ """
31
+ Attributes:
32
+ name (str): The name of the SLO. Example: My SLO.
33
+ sli (SLOSli): Reference to the [Calculated Field](/api/calculated-fields/) used as the indicator of event
34
+ success. Example: {'alias': 'error_sli'}.
35
+ time_period_days (int): The time period, in days, over which the SLO will be evaluated. Example: 30.
36
+ target_per_million (int): The number of events out of one million (1,000,000) that you expected qualified events
37
+ to succeed. Example: 990000.
38
+ id (Union[Unset, str]):
39
+ description (Union[Unset, str]): A nice description of the SLO's intent and context. Example: SLO to ensure
40
+ requests succeed and are fast.
41
+ tags (Union[Unset, list['Tag']]): A list of key-value pairs to help identify the SLO. Example: [{'key': 'team',
42
+ 'value': 'blue'}].
43
+ reset_at (Union[None, Unset, datetime.datetime]): The ISO8601-formatted time the SLO was last reset. The value
44
+ will be `null` if the SLO has not yet been reset. Example: 2022-011-11T09:53:04Z.
45
+ created_at (Union[Unset, datetime.datetime]): The ISO8601-formatted time when the SLO was created. Example:
46
+ 2022-09-22T17:32:11Z.
47
+ updated_at (Union[Unset, datetime.datetime]): The ISO8601-formatted time when the SLO was updated. Example:
48
+ 2022-10-31T15:08:11Z.
49
+ dataset_slugs (Union[Unset, list[str]]): The dataset(s) the SLO will be evaluated against. Required if using
50
+ `__all__` in the path. Example: ['mydataset1', 'mydataset2'].
51
+ compliance (Union[Unset, float]): Reporting data to express historical compliance of the SLO. Only included when
52
+ the `?detailed` query param is passed.
53
+ Example: 95.39.
54
+ budget_remaining (Union[Unset, float]): Reporting data to express how much error budget remains for the time
55
+ period of the SLO. Only included when the `?detailed` query param is passed.
56
+ Example: 7.73.
57
+ status (Union[Unset, SLODetailedResponseStatus]): Reporting data to express the status of the SLO.
58
+
59
+ Status can be one of the following:
60
+ - `normal` : The SLO has no burn alerts triggered.
61
+ - `triggered`: The SLO has at least one burn alert triggered.
62
+ - `no_alerts`: The SLO has no burn alerts associated with it.
63
+ - `no_events`: The SLO has no events streaming in.
64
+
65
+ Only included when the `?detailed` query param is passed.
66
+ Example: normal.
67
+ burn_rate (Union[Unset, float]): Reporting data to express the ratio of actual failures in the SLO
68
+ to expected failures in the given time window.
69
+
70
+ The time window defaults to 4 hours for the API response.
71
+
72
+ Only included when the `?detailed` query param is passed.
73
+ Example: 5.39.
74
+ """
75
+
76
+ name: str
77
+ sli: 'SLOSli'
78
+ time_period_days: int
79
+ target_per_million: int
80
+ id: Union[Unset, str] = UNSET
81
+ description: Union[Unset, str] = UNSET
82
+ tags: Union[Unset, list['Tag']] = UNSET
83
+ reset_at: Union[None, Unset, datetime.datetime] = UNSET
84
+ created_at: Union[Unset, datetime.datetime] = UNSET
85
+ updated_at: Union[Unset, datetime.datetime] = UNSET
86
+ dataset_slugs: Union[Unset, list[str]] = UNSET
87
+ compliance: Union[Unset, float] = UNSET
88
+ budget_remaining: Union[Unset, float] = UNSET
89
+ status: Union[Unset, SLODetailedResponseStatus] = UNSET
90
+ burn_rate: Union[Unset, float] = UNSET
91
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
92
+
93
+
94
+ def to_dict(self) -> dict[str, Any]:
95
+ from ..models.slo_sli import SLOSli
96
+ from ..models.tag import Tag
97
+ name = self.name
98
+
99
+ sli = self.sli.to_dict()
100
+
101
+ time_period_days = self.time_period_days
102
+
103
+ target_per_million = self.target_per_million
104
+
105
+ id = self.id
106
+
107
+ description = self.description
108
+
109
+ tags: Union[Unset, list[dict[str, Any]]] = UNSET
110
+ if not isinstance(self.tags, Unset):
111
+ tags = []
112
+ for tags_item_data in self.tags:
113
+ tags_item = tags_item_data.to_dict()
114
+ tags.append(tags_item)
115
+
116
+
117
+
118
+ reset_at: Union[None, Unset, str]
119
+ if isinstance(self.reset_at, Unset):
120
+ reset_at = UNSET
121
+ elif isinstance(self.reset_at, datetime.datetime):
122
+ reset_at = self.reset_at.isoformat()
123
+ else:
124
+ reset_at = self.reset_at
125
+
126
+ created_at: Union[Unset, str] = UNSET
127
+ if not isinstance(self.created_at, Unset):
128
+ created_at = self.created_at.isoformat()
129
+
130
+ updated_at: Union[Unset, str] = UNSET
131
+ if not isinstance(self.updated_at, Unset):
132
+ updated_at = self.updated_at.isoformat()
133
+
134
+ dataset_slugs: Union[Unset, list[str]] = UNSET
135
+ if not isinstance(self.dataset_slugs, Unset):
136
+ dataset_slugs = self.dataset_slugs
137
+
138
+
139
+
140
+ compliance = self.compliance
141
+
142
+ budget_remaining = self.budget_remaining
143
+
144
+ status: Union[Unset, str] = UNSET
145
+ if not isinstance(self.status, Unset):
146
+ status = self.status.value
147
+
148
+
149
+ burn_rate = self.burn_rate
150
+
151
+
152
+ field_dict: dict[str, Any] = {}
153
+ field_dict.update(self.additional_properties)
154
+ field_dict.update({
155
+ "name": name,
156
+ "sli": sli,
157
+ "time_period_days": time_period_days,
158
+ "target_per_million": target_per_million,
159
+ })
160
+ if id is not UNSET:
161
+ field_dict["id"] = id
162
+ if description is not UNSET:
163
+ field_dict["description"] = description
164
+ if tags is not UNSET:
165
+ field_dict["tags"] = tags
166
+ if reset_at is not UNSET:
167
+ field_dict["reset_at"] = reset_at
168
+ if created_at is not UNSET:
169
+ field_dict["created_at"] = created_at
170
+ if updated_at is not UNSET:
171
+ field_dict["updated_at"] = updated_at
172
+ if dataset_slugs is not UNSET:
173
+ field_dict["dataset_slugs"] = dataset_slugs
174
+ if compliance is not UNSET:
175
+ field_dict["compliance"] = compliance
176
+ if budget_remaining is not UNSET:
177
+ field_dict["budget_remaining"] = budget_remaining
178
+ if status is not UNSET:
179
+ field_dict["status"] = status
180
+ if burn_rate is not UNSET:
181
+ field_dict["burn_rate"] = burn_rate
182
+
183
+ return field_dict
184
+
185
+
186
+
187
+ @classmethod
188
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
189
+ from ..models.slo_sli import SLOSli
190
+ from ..models.tag import Tag
191
+ d = src_dict.copy()
192
+ name = d.pop("name")
193
+
194
+ sli = SLOSli.from_dict(d.pop("sli"))
195
+
196
+
197
+
198
+
199
+ time_period_days = d.pop("time_period_days")
200
+
201
+ target_per_million = d.pop("target_per_million")
202
+
203
+ id = d.pop("id", UNSET)
204
+
205
+ description = d.pop("description", UNSET)
206
+
207
+ tags = []
208
+ _tags = d.pop("tags", UNSET)
209
+ for tags_item_data in (_tags or []):
210
+ tags_item = Tag.from_dict(tags_item_data)
211
+
212
+
213
+
214
+ tags.append(tags_item)
215
+
216
+
217
+ def _parse_reset_at(data: object) -> Union[None, Unset, datetime.datetime]:
218
+ if data is None:
219
+ return data
220
+ if isinstance(data, Unset):
221
+ return data
222
+ try:
223
+ if not isinstance(data, str):
224
+ raise TypeError()
225
+ reset_at_type_1 = isoparse(data)
226
+
227
+
228
+
229
+ return reset_at_type_1
230
+ except: # noqa: E722
231
+ pass
232
+ return cast(Union[None, Unset, datetime.datetime], data)
233
+
234
+ reset_at = _parse_reset_at(d.pop("reset_at", UNSET))
235
+
236
+
237
+ _created_at = d.pop("created_at", UNSET)
238
+ created_at: Union[Unset, datetime.datetime]
239
+ if isinstance(_created_at, Unset):
240
+ created_at = UNSET
241
+ else:
242
+ created_at = isoparse(_created_at)
243
+
244
+
245
+
246
+
247
+ _updated_at = d.pop("updated_at", UNSET)
248
+ updated_at: Union[Unset, datetime.datetime]
249
+ if isinstance(_updated_at, Unset):
250
+ updated_at = UNSET
251
+ else:
252
+ updated_at = isoparse(_updated_at)
253
+
254
+
255
+
256
+
257
+ dataset_slugs = cast(list[str], d.pop("dataset_slugs", UNSET))
258
+
259
+
260
+ compliance = d.pop("compliance", UNSET)
261
+
262
+ budget_remaining = d.pop("budget_remaining", UNSET)
263
+
264
+ _status = d.pop("status", UNSET)
265
+ status: Union[Unset, SLODetailedResponseStatus]
266
+ if isinstance(_status, Unset):
267
+ status = UNSET
268
+ else:
269
+ status = SLODetailedResponseStatus(_status)
270
+
271
+
272
+
273
+
274
+ burn_rate = d.pop("burn_rate", UNSET)
275
+
276
+ slo_detailed_response = cls(
277
+ name=name,
278
+ sli=sli,
279
+ time_period_days=time_period_days,
280
+ target_per_million=target_per_million,
281
+ id=id,
282
+ description=description,
283
+ tags=tags,
284
+ reset_at=reset_at,
285
+ created_at=created_at,
286
+ updated_at=updated_at,
287
+ dataset_slugs=dataset_slugs,
288
+ compliance=compliance,
289
+ budget_remaining=budget_remaining,
290
+ status=status,
291
+ burn_rate=burn_rate,
292
+ )
293
+
294
+
295
+ slo_detailed_response.additional_properties = d
296
+ return slo_detailed_response
297
+
298
+ @property
299
+ def additional_keys(self) -> list[str]:
300
+ return list(self.additional_properties.keys())
301
+
302
+ def __getitem__(self, key: str) -> Any:
303
+ return self.additional_properties[key]
304
+
305
+ def __setitem__(self, key: str, value: Any) -> None:
306
+ self.additional_properties[key] = value
307
+
308
+ def __delitem__(self, key: str) -> None:
309
+ del self.additional_properties[key]
310
+
311
+ def __contains__(self, key: str) -> bool:
312
+ return key in self.additional_properties
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+ class SLODetailedResponseStatus(str, Enum):
4
+ NORMAL = "normal"
5
+ NO_ALERTS = "no_alerts"
6
+ NO_EVENTS = "no_events"
7
+ TRIGGERED = "triggered"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)