honeycomb-api 0.1.0__py3-none-any.whl → 0.5.3__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 (443) hide show
  1. honeycomb/__init__.py +9 -0
  2. honeycomb/_generated/api/auth/get_auth.py +2 -5
  3. honeycomb/_generated/api/auth/get_v2_auth.py +2 -5
  4. honeycomb/_generated/api/boards/create_board.py +6 -5
  5. honeycomb/_generated/api/boards/create_board_view.py +14 -9
  6. honeycomb/_generated/api/boards/delete_board.py +2 -5
  7. honeycomb/_generated/api/boards/delete_board_view.py +2 -5
  8. honeycomb/_generated/api/boards/get_board.py +2 -5
  9. honeycomb/_generated/api/boards/get_board_view.py +2 -5
  10. honeycomb/_generated/api/boards/list_board_views.py +10 -9
  11. honeycomb/_generated/api/boards/list_boards.py +2 -5
  12. honeycomb/_generated/api/boards/update_board.py +10 -5
  13. honeycomb/_generated/api/boards/update_board_view.py +2 -5
  14. honeycomb/_generated/api/burn_alerts/create_burn_alert.py +6 -8
  15. honeycomb/_generated/api/burn_alerts/delete_burn_alert.py +2 -5
  16. honeycomb/_generated/api/burn_alerts/get_burn_alert.py +2 -5
  17. honeycomb/_generated/api/burn_alerts/list_burn_alerts_by_slo.py +2 -5
  18. honeycomb/_generated/api/calculated_fields/create_calculated_field.py +2 -5
  19. honeycomb/_generated/api/calculated_fields/delete_calculated_field.py +2 -5
  20. honeycomb/_generated/api/calculated_fields/get_calculated_field.py +2 -5
  21. honeycomb/_generated/api/calculated_fields/list_calculated_fields.py +2 -8
  22. honeycomb/_generated/api/calculated_fields/update_calculated_field.py +2 -5
  23. honeycomb/_generated/api/columns/create_column.py +2 -5
  24. honeycomb/_generated/api/columns/delete_column.py +2 -5
  25. honeycomb/_generated/api/columns/get_column.py +2 -5
  26. honeycomb/_generated/api/columns/list_columns.py +2 -8
  27. honeycomb/_generated/api/columns/update_column.py +2 -5
  28. honeycomb/_generated/api/dataset_definitions/list_dataset_definitions.py +2 -5
  29. honeycomb/_generated/api/dataset_definitions/patch_dataset_definitions.py +2 -5
  30. honeycomb/_generated/api/datasets/create_dataset.py +2 -5
  31. honeycomb/_generated/api/datasets/delete_dataset.py +2 -5
  32. honeycomb/_generated/api/datasets/get_dataset.py +2 -5
  33. honeycomb/_generated/api/datasets/list_datasets.py +2 -5
  34. honeycomb/_generated/api/datasets/update_dataset.py +2 -5
  35. honeycomb/_generated/api/enhance/record_enhance_indexer_usage.py +4 -6
  36. honeycomb/_generated/api/environments/create_environment.py +2 -5
  37. honeycomb/_generated/api/environments/delete_environment.py +2 -5
  38. honeycomb/_generated/api/environments/get_environment.py +2 -5
  39. honeycomb/_generated/api/environments/list_environments.py +2 -7
  40. honeycomb/_generated/api/environments/update_environment.py +2 -5
  41. honeycomb/_generated/api/events/create_event.py +2 -7
  42. honeycomb/_generated/api/events/create_events.py +7 -11
  43. honeycomb/_generated/api/key_management/create_api_key.py +2 -5
  44. honeycomb/_generated/api/key_management/delete_api_key.py +2 -5
  45. honeycomb/_generated/api/key_management/get_api_key.py +2 -5
  46. honeycomb/_generated/api/key_management/list_api_keys.py +2 -7
  47. honeycomb/_generated/api/key_management/update_api_key.py +2 -5
  48. honeycomb/_generated/api/kinesis_events/create_kinesis_events.py +2 -5
  49. honeycomb/_generated/api/marker_settings/create_marker_setting.py +2 -5
  50. honeycomb/_generated/api/marker_settings/delete_marker_settings.py +2 -5
  51. honeycomb/_generated/api/marker_settings/list_marker_settings.py +2 -5
  52. honeycomb/_generated/api/marker_settings/update_marker_settings.py +2 -5
  53. honeycomb/_generated/api/markers/create_marker.py +2 -5
  54. honeycomb/_generated/api/markers/create_marker_v2.py +2 -5
  55. honeycomb/_generated/api/markers/delete_marker.py +2 -5
  56. honeycomb/_generated/api/markers/get_marker.py +2 -5
  57. honeycomb/_generated/api/markers/update_marker.py +2 -5
  58. honeycomb/_generated/api/markers/update_marker_v2.py +2 -5
  59. honeycomb/_generated/api/pipelines/get_pipeline_configuration.py +4 -8
  60. honeycomb/_generated/api/pipelines/record_pipeline_usage.py +4 -6
  61. honeycomb/_generated/api/pipelines/update_pipeline_configuration_rollout.py +6 -7
  62. honeycomb/_generated/api/queries/create_query.py +2 -5
  63. honeycomb/_generated/api/queries/get_query.py +2 -5
  64. honeycomb/_generated/api/query_annotations/create_query_annotation.py +2 -5
  65. honeycomb/_generated/api/query_annotations/delete_query_annotation.py +2 -5
  66. honeycomb/_generated/api/query_annotations/get_query_annotation.py +2 -5
  67. honeycomb/_generated/api/query_annotations/list_query_annotations.py +2 -7
  68. honeycomb/_generated/api/query_annotations/update_query_annotation.py +2 -5
  69. honeycomb/_generated/api/query_data/create_query_result.py +2 -5
  70. honeycomb/_generated/api/query_data/get_query_result.py +2 -5
  71. honeycomb/_generated/api/recipients/create_recipient.py +2 -6
  72. honeycomb/_generated/api/recipients/delete_recipient.py +2 -5
  73. honeycomb/_generated/api/recipients/get_recipient.py +2 -6
  74. honeycomb/_generated/api/recipients/list_recipients.py +2 -6
  75. honeycomb/_generated/api/recipients/update_recipient.py +2 -6
  76. honeycomb/_generated/api/reporting/get_slo_history.py +2 -5
  77. honeycomb/_generated/api/service_maps/create_map_dependency_request.py +6 -9
  78. honeycomb/_generated/api/service_maps/get_map_dependencies.py +2 -7
  79. honeycomb/_generated/api/sl_os/create_slo.py +2 -5
  80. honeycomb/_generated/api/sl_os/delete_slo.py +2 -5
  81. honeycomb/_generated/api/sl_os/get_slo.py +2 -8
  82. honeycomb/_generated/api/sl_os/list_slos.py +2 -5
  83. honeycomb/_generated/api/sl_os/update_slo.py +2 -5
  84. honeycomb/_generated/api/triggers/create_trigger.py +2 -6
  85. honeycomb/_generated/api/triggers/delete_trigger.py +2 -5
  86. honeycomb/_generated/api/triggers/get_trigger.py +2 -5
  87. honeycomb/_generated/api/triggers/list_triggers.py +2 -5
  88. honeycomb/_generated/api/triggers/list_triggers_with_recipient.py +2 -5
  89. honeycomb/_generated/api/triggers/update_trigger.py +2 -5
  90. honeycomb/_generated/client.py +2 -5
  91. honeycomb/_generated/models/__init__.py +195 -88
  92. honeycomb/_generated/models/api_key_create_request.py +6 -5
  93. honeycomb/_generated/models/api_key_create_request_data.py +15 -11
  94. honeycomb/_generated/models/api_key_create_request_data_relationships.py +2 -3
  95. honeycomb/_generated/models/api_key_create_request_data_type.py +1 -0
  96. honeycomb/_generated/models/api_key_list_response.py +2 -5
  97. honeycomb/_generated/models/api_key_object.py +14 -14
  98. honeycomb/_generated/models/api_key_object_links.py +2 -9
  99. honeycomb/_generated/models/api_key_object_relationships.py +5 -9
  100. honeycomb/_generated/models/api_key_object_type.py +1 -0
  101. honeycomb/_generated/models/api_key_response.py +2 -3
  102. honeycomb/_generated/models/api_key_update_request.py +15 -17
  103. honeycomb/_generated/models/auth.py +2 -5
  104. honeycomb/_generated/models/auth_api_key_access.py +2 -9
  105. honeycomb/_generated/models/auth_environment.py +2 -9
  106. honeycomb/_generated/models/auth_team.py +2 -9
  107. honeycomb/_generated/models/auth_type.py +1 -0
  108. honeycomb/_generated/models/auth_v2_response.py +5 -8
  109. honeycomb/_generated/models/auth_v2_response_data.py +14 -11
  110. honeycomb/_generated/models/auth_v2_response_data_attributes.py +10 -9
  111. honeycomb/_generated/models/auth_v2_response_data_attributes_key_type.py +1 -0
  112. honeycomb/_generated/models/auth_v2_response_data_attributes_timestamps.py +4 -12
  113. honeycomb/_generated/models/auth_v2_response_data_relationships.py +1 -7
  114. honeycomb/_generated/models/auth_v2_response_data_type.py +1 -0
  115. honeycomb/_generated/models/base_trigger.py +21 -18
  116. honeycomb/_generated/models/base_trigger_alert_type.py +1 -0
  117. honeycomb/_generated/models/base_trigger_baseline_details_type_0.py +5 -9
  118. honeycomb/_generated/models/base_trigger_baseline_details_type_0_offset_minutes.py +1 -0
  119. honeycomb/_generated/models/base_trigger_baseline_details_type_0_type.py +1 -0
  120. honeycomb/_generated/models/base_trigger_evaluation_schedule.py +8 -6
  121. honeycomb/_generated/models/base_trigger_evaluation_schedule_type.py +1 -0
  122. honeycomb/_generated/models/base_trigger_evaluation_schedule_window.py +4 -9
  123. honeycomb/_generated/models/base_trigger_evaluation_schedule_window_days_of_week_item.py +1 -0
  124. honeycomb/_generated/models/base_trigger_threshold.py +2 -9
  125. honeycomb/_generated/models/base_trigger_threshold_op.py +1 -0
  126. honeycomb/_generated/models/batch_event.py +2 -5
  127. honeycomb/_generated/models/board.py +15 -17
  128. honeycomb/_generated/models/board_layout_generation.py +1 -0
  129. honeycomb/_generated/models/board_links.py +2 -9
  130. honeycomb/_generated/models/board_panel_position.py +2 -9
  131. honeycomb/_generated/models/board_query_visualization_settings.py +8 -8
  132. honeycomb/_generated/models/board_query_visualization_settings_charts_item.py +4 -10
  133. honeycomb/_generated/models/board_query_visualization_settings_charts_item_chart_type.py +1 -0
  134. honeycomb/_generated/models/board_type.py +1 -0
  135. honeycomb/_generated/models/board_view_filter.py +2 -9
  136. honeycomb/_generated/models/board_view_filter_operation.py +1 -0
  137. honeycomb/_generated/models/board_view_response.py +2 -5
  138. honeycomb/_generated/models/budget_rate.py +4 -12
  139. honeycomb/_generated/models/budget_rate_alert_type.py +1 -0
  140. honeycomb/_generated/models/burn_alert_shared_params.py +4 -12
  141. honeycomb/_generated/models/calculated_field.py +2 -9
  142. honeycomb/_generated/models/configuration_key_attributes.py +16 -12
  143. honeycomb/_generated/models/configuration_key_attributes_key_type.py +1 -0
  144. honeycomb/_generated/models/configuration_key_attributes_permissions.py +172 -0
  145. honeycomb/_generated/models/configuration_key_attributes_timestamps.py +4 -12
  146. honeycomb/_generated/models/configuration_key_request.py +101 -0
  147. honeycomb/_generated/models/configuration_key_request_attributes.py +107 -0
  148. honeycomb/_generated/models/configuration_key_request_attributes_permissions.py +168 -0
  149. honeycomb/_generated/models/configuration_key_request_type.py +8 -0
  150. honeycomb/_generated/models/create_board_view_request.py +2 -3
  151. honeycomb/_generated/models/create_budget_rate_burn_alert_request.py +10 -10
  152. honeycomb/_generated/models/create_budget_rate_burn_alert_request_slo.py +1 -7
  153. honeycomb/_generated/models/create_column.py +2 -9
  154. honeycomb/_generated/models/create_column_type.py +1 -0
  155. honeycomb/_generated/models/create_enhance_indexer_usage_record_request.py +8 -6
  156. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data.py +10 -7
  157. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes.py +8 -8
  158. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data.py +8 -6
  159. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item.py +8 -6
  160. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item.py +8 -6
  161. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item.py +8 -8
  162. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum.py +10 -7
  163. 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 +1 -0
  164. 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 +8 -6
  165. 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 +8 -6
  166. 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 +2 -9
  167. honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_type.py +1 -0
  168. honeycomb/_generated/models/create_environment_request.py +8 -6
  169. honeycomb/_generated/models/create_environment_request_data.py +10 -7
  170. honeycomb/_generated/models/create_environment_request_data_attributes.py +2 -9
  171. honeycomb/_generated/models/create_environment_request_data_type.py +1 -0
  172. honeycomb/_generated/models/create_events_content_encoding.py +1 -0
  173. honeycomb/_generated/models/create_events_response_200_item.py +2 -9
  174. honeycomb/_generated/models/create_exhaustion_time_burn_alert_request.py +10 -10
  175. honeycomb/_generated/models/create_exhaustion_time_burn_alert_request_slo.py +1 -7
  176. honeycomb/_generated/models/create_map_dependencies_request.py +2 -5
  177. honeycomb/_generated/models/create_map_dependencies_response.py +4 -10
  178. honeycomb/_generated/models/create_map_dependencies_response_status.py +1 -0
  179. honeycomb/_generated/models/create_pipeline_health_record_request.py +8 -6
  180. honeycomb/_generated/models/create_pipeline_health_record_request_data.py +10 -7
  181. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes.py +8 -8
  182. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data.py +8 -6
  183. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item.py +8 -6
  184. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item.py +8 -6
  185. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item.py +8 -8
  186. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum.py +10 -7
  187. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum_aggregation_temporality.py +1 -0
  188. honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum_datapoints_item.py +8 -6
  189. 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 +8 -6
  190. 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 +2 -9
  191. honeycomb/_generated/models/create_pipeline_health_record_request_data_type.py +1 -0
  192. honeycomb/_generated/models/create_query_result_request.py +2 -9
  193. honeycomb/_generated/models/dataset.py +2 -6
  194. honeycomb/_generated/models/dataset_creation_payload.py +2 -9
  195. honeycomb/_generated/models/dataset_definition_type_1.py +4 -10
  196. honeycomb/_generated/models/dataset_definition_type_1_column_type.py +1 -0
  197. honeycomb/_generated/models/dataset_definitions.py +2 -6
  198. honeycomb/_generated/models/dataset_relationship.py +2 -3
  199. honeycomb/_generated/models/dataset_relationship_data.py +2 -8
  200. honeycomb/_generated/models/dataset_relationship_data_type.py +1 -0
  201. honeycomb/_generated/models/dataset_settings.py +2 -9
  202. honeycomb/_generated/models/dataset_update_payload.py +8 -8
  203. honeycomb/_generated/models/dataset_update_payload_settings.py +2 -9
  204. honeycomb/_generated/models/detailed_error.py +2 -9
  205. honeycomb/_generated/models/email_recipient.py +4 -7
  206. honeycomb/_generated/models/email_recipient_details.py +1 -7
  207. honeycomb/_generated/models/email_recipient_type.py +1 -0
  208. honeycomb/_generated/models/environment.py +6 -7
  209. honeycomb/_generated/models/environment_attributes.py +11 -9
  210. honeycomb/_generated/models/environment_attributes_color_type_1.py +1 -0
  211. honeycomb/_generated/models/environment_attributes_settings.py +1 -7
  212. honeycomb/_generated/models/environment_color.py +1 -0
  213. honeycomb/_generated/models/environment_links.py +1 -7
  214. honeycomb/_generated/models/environment_list_response.py +2 -5
  215. honeycomb/_generated/models/environment_relationship.py +8 -6
  216. honeycomb/_generated/models/environment_relationship_data.py +3 -8
  217. honeycomb/_generated/models/environment_relationship_data_type.py +1 -0
  218. honeycomb/_generated/models/environment_response.py +2 -3
  219. honeycomb/_generated/models/environment_type.py +1 -0
  220. honeycomb/_generated/models/error.py +2 -9
  221. honeycomb/_generated/models/event.py +2 -8
  222. honeycomb/_generated/models/exhaustion_time.py +4 -12
  223. honeycomb/_generated/models/exhaustion_time_alert_type.py +1 -0
  224. honeycomb/_generated/models/exhaustion_time_burn_alert_list_response.py +10 -10
  225. honeycomb/_generated/models/exhaustion_time_burn_alert_list_response_slo.py +2 -9
  226. honeycomb/_generated/models/filter_op.py +1 -0
  227. honeycomb/_generated/models/get_map_dependencies_response.py +7 -10
  228. honeycomb/_generated/models/get_map_dependencies_response_status.py +1 -0
  229. honeycomb/_generated/models/having_calculate_op.py +1 -0
  230. honeycomb/_generated/models/having_op.py +1 -0
  231. honeycomb/_generated/models/included_resource.py +6 -7
  232. honeycomb/_generated/models/included_resource_attributes.py +1 -7
  233. honeycomb/_generated/models/ingest_key_attributes.py +14 -11
  234. honeycomb/_generated/models/ingest_key_attributes_key_type.py +1 -0
  235. honeycomb/_generated/models/ingest_key_attributes_permissions.py +2 -9
  236. honeycomb/_generated/models/ingest_key_attributes_timestamps.py +4 -12
  237. honeycomb/_generated/models/ingest_key_request.py +100 -0
  238. honeycomb/_generated/models/ingest_key_request_attributes.py +75 -0
  239. honeycomb/_generated/models/ingest_key_request_type.py +8 -0
  240. honeycomb/_generated/models/ingest_key_type.py +2 -9
  241. honeycomb/_generated/models/ingest_key_type_key_type.py +1 -0
  242. honeycomb/_generated/models/jsonapi_error_source.py +2 -9
  243. honeycomb/_generated/models/kinesis_event.py +2 -5
  244. honeycomb/_generated/models/kinesis_event_record.py +2 -9
  245. honeycomb/_generated/models/kinesis_response.py +2 -9
  246. honeycomb/_generated/models/list_api_keys_filtertype.py +1 -0
  247. honeycomb/_generated/models/map_dependency.py +2 -5
  248. honeycomb/_generated/models/map_node.py +2 -9
  249. honeycomb/_generated/models/map_node_type.py +1 -0
  250. honeycomb/_generated/models/marker.py +2 -9
  251. honeycomb/_generated/models/marker_create_request.py +2 -3
  252. honeycomb/_generated/models/marker_create_request_data.py +16 -10
  253. honeycomb/_generated/models/marker_create_request_data_attributes.py +2 -9
  254. honeycomb/_generated/models/marker_create_request_data_relationships.py +2 -3
  255. honeycomb/_generated/models/marker_create_request_data_type.py +1 -0
  256. honeycomb/_generated/models/marker_object.py +7 -8
  257. honeycomb/_generated/models/marker_object_attributes.py +8 -8
  258. honeycomb/_generated/models/marker_object_attributes_timestamps.py +4 -12
  259. honeycomb/_generated/models/marker_object_links.py +2 -9
  260. honeycomb/_generated/models/marker_object_relationships.py +8 -8
  261. honeycomb/_generated/models/marker_object_relationships_dataset.py +8 -9
  262. honeycomb/_generated/models/marker_object_relationships_dataset_data_type_0.py +4 -10
  263. honeycomb/_generated/models/marker_object_relationships_dataset_data_type_0_type.py +1 -0
  264. honeycomb/_generated/models/marker_object_type.py +1 -0
  265. honeycomb/_generated/models/marker_response.py +2 -3
  266. honeycomb/_generated/models/marker_setting.py +2 -10
  267. honeycomb/_generated/models/marker_update_request.py +2 -3
  268. honeycomb/_generated/models/marker_update_request_data.py +16 -10
  269. honeycomb/_generated/models/marker_update_request_data_attributes.py +2 -9
  270. honeycomb/_generated/models/marker_update_request_data_relationships.py +2 -3
  271. honeycomb/_generated/models/marker_update_request_data_type.py +1 -0
  272. honeycomb/_generated/models/ms_teams_recipient.py +4 -7
  273. honeycomb/_generated/models/ms_teams_recipient_details.py +1 -7
  274. honeycomb/_generated/models/ms_teams_recipient_type.py +1 -0
  275. honeycomb/_generated/models/ms_teams_workflow_recipient.py +12 -11
  276. honeycomb/_generated/models/ms_teams_workflow_recipient_details.py +1 -7
  277. honeycomb/_generated/models/ms_teams_workflow_recipient_type.py +1 -0
  278. honeycomb/_generated/models/notification_recipient.py +8 -8
  279. honeycomb/_generated/models/notification_recipient_details.py +10 -9
  280. honeycomb/_generated/models/notification_recipient_details_pagerduty_severity.py +1 -0
  281. honeycomb/_generated/models/notification_recipient_details_variables_item.py +2 -9
  282. honeycomb/_generated/models/pager_duty_recipient.py +8 -9
  283. honeycomb/_generated/models/pager_duty_recipient_details.py +1 -7
  284. honeycomb/_generated/models/pager_duty_recipient_type.py +1 -0
  285. honeycomb/_generated/models/pagination_links.py +2 -8
  286. honeycomb/_generated/models/payload_template.py +2 -9
  287. honeycomb/_generated/models/pipeline_configuration_response.py +16 -10
  288. honeycomb/_generated/models/pipeline_configuration_response_attributes.py +8 -8
  289. honeycomb/_generated/models/pipeline_configuration_response_attributes_configs_item.py +1 -7
  290. honeycomb/_generated/models/pipeline_configuration_response_links.py +2 -9
  291. honeycomb/_generated/models/pipeline_configuration_response_type.py +1 -0
  292. honeycomb/_generated/models/pipeline_configuration_rollout.py +16 -10
  293. honeycomb/_generated/models/pipeline_configuration_rollout_attributes.py +3 -8
  294. honeycomb/_generated/models/pipeline_configuration_rollout_attributes_status.py +1 -0
  295. honeycomb/_generated/models/pipeline_configuration_rollout_links.py +2 -9
  296. honeycomb/_generated/models/pipeline_configuration_rollout_type.py +1 -0
  297. honeycomb/_generated/models/preset_filter.py +1 -7
  298. honeycomb/_generated/models/query.py +11 -11
  299. honeycomb/_generated/models/query_annotation.py +4 -12
  300. honeycomb/_generated/models/query_annotation_source.py +1 -0
  301. honeycomb/_generated/models/query_calculated_fields_item.py +1 -7
  302. honeycomb/_generated/models/query_calculations_item.py +2 -10
  303. honeycomb/_generated/models/query_compare_time_offset_seconds.py +1 -0
  304. honeycomb/_generated/models/query_filter_combination.py +1 -0
  305. honeycomb/_generated/models/query_filters_item.py +2 -11
  306. honeycomb/_generated/models/query_havings_item.py +2 -10
  307. honeycomb/_generated/models/query_op.py +1 -0
  308. honeycomb/_generated/models/query_orders_item.py +2 -9
  309. honeycomb/_generated/models/query_orders_item_order.py +1 -0
  310. honeycomb/_generated/models/query_panel.py +2 -6
  311. honeycomb/_generated/models/query_panel_query_panel.py +10 -9
  312. honeycomb/_generated/models/query_panel_query_panel_query_style.py +1 -0
  313. honeycomb/_generated/models/query_result.py +2 -5
  314. honeycomb/_generated/models/query_result_details.py +5 -8
  315. honeycomb/_generated/models/query_result_details_data.py +5 -8
  316. honeycomb/_generated/models/query_result_details_links.py +2 -9
  317. honeycomb/_generated/models/query_result_links.py +2 -9
  318. honeycomb/_generated/models/query_results_data.py +2 -5
  319. honeycomb/_generated/models/query_results_data_data.py +2 -8
  320. honeycomb/_generated/models/query_results_series.py +2 -5
  321. honeycomb/_generated/models/recipient_properties.py +4 -12
  322. honeycomb/_generated/models/recipient_type.py +1 -0
  323. honeycomb/_generated/models/slack_recipient.py +4 -7
  324. honeycomb/_generated/models/slack_recipient_details.py +1 -7
  325. honeycomb/_generated/models/slack_recipient_type.py +1 -0
  326. honeycomb/_generated/models/slo.py +4 -8
  327. honeycomb/_generated/models/slo_create.py +4 -8
  328. honeycomb/_generated/models/slo_create_sli.py +1 -7
  329. honeycomb/_generated/models/slo_detailed_response.py +4 -8
  330. honeycomb/_generated/models/slo_detailed_response_status.py +1 -0
  331. honeycomb/_generated/models/slo_history.py +2 -9
  332. honeycomb/_generated/models/slo_history_request.py +2 -8
  333. honeycomb/_generated/models/slo_history_response.py +2 -3
  334. honeycomb/_generated/models/slo_panel.py +2 -6
  335. honeycomb/_generated/models/slo_panel_slo_panel.py +2 -9
  336. honeycomb/_generated/models/slo_sli.py +1 -7
  337. honeycomb/_generated/models/tag.py +1 -7
  338. honeycomb/_generated/models/team_relationship.py +2 -3
  339. honeycomb/_generated/models/team_relationship_team.py +6 -5
  340. honeycomb/_generated/models/team_relationship_team_data.py +3 -8
  341. honeycomb/_generated/models/team_relationship_team_data_type.py +1 -0
  342. honeycomb/_generated/models/template_variable_definition.py +2 -9
  343. honeycomb/_generated/models/text_panel.py +2 -6
  344. honeycomb/_generated/models/text_panel_text_panel.py +1 -7
  345. honeycomb/_generated/models/trigger_response.py +27 -21
  346. honeycomb/_generated/models/trigger_with_inline_query.py +27 -21
  347. honeycomb/_generated/models/trigger_with_inline_query_query.py +1 -7
  348. honeycomb/_generated/models/trigger_with_query_reference.py +21 -18
  349. honeycomb/_generated/models/update_board_view_request.py +2 -5
  350. honeycomb/_generated/models/update_environment_request.py +8 -6
  351. honeycomb/_generated/models/update_environment_request_data.py +10 -7
  352. honeycomb/_generated/models/update_environment_request_data_attributes.py +8 -8
  353. honeycomb/_generated/models/update_environment_request_data_attributes_settings.py +2 -9
  354. honeycomb/_generated/models/update_environment_request_data_type.py +1 -0
  355. honeycomb/_generated/models/update_exhaustion_time_burn_alert_request.py +4 -7
  356. honeycomb/_generated/models/update_pipeline_configuration_rollout.py +10 -7
  357. honeycomb/_generated/models/update_pipeline_configuration_rollout_attributes.py +3 -8
  358. honeycomb/_generated/models/update_pipeline_configuration_rollout_attributes_status.py +1 -0
  359. honeycomb/_generated/models/update_pipeline_configuration_rollout_request.py +8 -6
  360. honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data.py +10 -7
  361. honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data_attributes.py +3 -8
  362. honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data_attributes_status.py +1 -0
  363. honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data_type.py +1 -0
  364. honeycomb/_generated/models/update_pipeline_configuration_rollout_response.py +8 -6
  365. honeycomb/_generated/models/update_pipeline_configuration_rollout_type.py +1 -0
  366. honeycomb/_generated/models/user_relationship.py +2 -3
  367. honeycomb/_generated/models/user_relationship_data.py +2 -8
  368. honeycomb/_generated/models/user_relationship_data_type.py +1 -0
  369. honeycomb/_generated/models/validation_error.py +8 -8
  370. honeycomb/_generated/models/validation_error_type_detail_item.py +4 -10
  371. honeycomb/_generated/models/validation_error_type_detail_item_code.py +1 -0
  372. honeycomb/_generated/models/webhook_header.py +2 -9
  373. honeycomb/_generated/models/webhook_recipient.py +4 -7
  374. honeycomb/_generated/models/webhook_recipient_details.py +8 -8
  375. honeycomb/_generated/models/webhook_recipient_details_webhook_payloads.py +12 -10
  376. honeycomb/_generated/models/webhook_recipient_details_webhook_payloads_payload_templates.py +2 -5
  377. honeycomb/_generated/models/webhook_recipient_type.py +1 -0
  378. honeycomb/_generated/types.py +1 -1
  379. honeycomb/cli/__init__.py +85 -0
  380. honeycomb/cli/api_keys.py +205 -0
  381. honeycomb/cli/auth.py +70 -0
  382. honeycomb/cli/boards.py +203 -0
  383. honeycomb/cli/columns.py +256 -0
  384. honeycomb/cli/config.py +259 -0
  385. honeycomb/cli/datasets.py +186 -0
  386. honeycomb/cli/derived_columns.py +222 -0
  387. honeycomb/cli/environments.py +240 -0
  388. honeycomb/cli/formatters.py +242 -0
  389. honeycomb/cli/markers.py +151 -0
  390. honeycomb/cli/queries.py +380 -0
  391. honeycomb/cli/recipients.py +211 -0
  392. honeycomb/cli/slos.py +338 -0
  393. honeycomb/cli/triggers.py +271 -0
  394. honeycomb/client.py +13 -7
  395. honeycomb/models/__init__.py +18 -3
  396. honeycomb/models/api_keys.py +49 -5
  397. honeycomb/models/auth.py +71 -0
  398. honeycomb/models/board_builder.py +97 -25
  399. honeycomb/models/boards.py +95 -1
  400. honeycomb/models/datasets.py +42 -0
  401. honeycomb/models/queries.py +21 -0
  402. honeycomb/models/query_builder.py +119 -59
  403. honeycomb/models/recipient_builder.py +51 -4
  404. honeycomb/models/slo_builder.py +24 -19
  405. honeycomb/models/slos.py +50 -3
  406. honeycomb/models/tool_inputs.py +630 -0
  407. honeycomb/models/triggers.py +39 -9
  408. honeycomb/resources/__init__.py +2 -0
  409. honeycomb/resources/api_keys.py +66 -29
  410. honeycomb/resources/auth.py +97 -0
  411. honeycomb/resources/boards.py +272 -18
  412. honeycomb/resources/datasets.py +49 -11
  413. honeycomb/resources/environments.py +54 -31
  414. honeycomb/resources/slos.py +87 -61
  415. honeycomb/tools/__main__.py +40 -4
  416. honeycomb/tools/builders.py +235 -150
  417. honeycomb/tools/descriptions.py +175 -7
  418. honeycomb/tools/executor.py +212 -25
  419. honeycomb/tools/generator.py +61 -2264
  420. honeycomb/tools/resources/__init__.py +42 -0
  421. honeycomb/tools/resources/api_keys.py +249 -0
  422. honeycomb/tools/resources/auth.py +98 -0
  423. honeycomb/tools/resources/boards.py +313 -0
  424. honeycomb/tools/resources/burn_alerts.py +278 -0
  425. honeycomb/tools/resources/columns.py +257 -0
  426. honeycomb/tools/resources/datasets.py +215 -0
  427. honeycomb/tools/resources/derived_columns.py +311 -0
  428. honeycomb/tools/resources/environments.py +211 -0
  429. honeycomb/tools/resources/events.py +158 -0
  430. honeycomb/tools/resources/marker_settings.py +216 -0
  431. honeycomb/tools/resources/markers.py +197 -0
  432. honeycomb/tools/resources/queries.py +220 -0
  433. honeycomb/tools/resources/recipients.py +297 -0
  434. honeycomb/tools/resources/service_map.py +110 -0
  435. honeycomb/tools/resources/slos.py +276 -0
  436. honeycomb/tools/resources/triggers.py +328 -0
  437. honeycomb/tools/schemas.py +81 -0
  438. {honeycomb_api-0.1.0.dist-info → honeycomb_api-0.5.3.dist-info}/METADATA +33 -8
  439. honeycomb_api-0.5.3.dist-info/RECORD +497 -0
  440. honeycomb_api-0.5.3.dist-info/entry_points.txt +5 -0
  441. honeycomb_api-0.1.0.dist-info/RECORD +0 -453
  442. {honeycomb_api-0.1.0.dist-info → honeycomb_api-0.5.3.dist-info}/WHEEL +0 -0
  443. {honeycomb_api-0.1.0.dist-info → honeycomb_api-0.5.3.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,216 @@
1
+ """Marker Settings tool definitions for Claude API.
2
+
3
+ This module provides tool generators and descriptions for
4
+ marker settings resources.
5
+ """
6
+
7
+ from typing import Any
8
+
9
+ from honeycomb.models import MarkerSettingCreate
10
+ from honeycomb.tools.schemas import add_parameter, generate_schema_from_model
11
+
12
+ # ==============================================================================
13
+ # Marker Settings Descriptions
14
+ # ==============================================================================
15
+
16
+ MARKER_SETTING_DESCRIPTIONS = {
17
+ "honeycomb_list_marker_settings": (
18
+ "Lists all marker type-to-color mappings for a dataset. "
19
+ "Use this as the primary way to view all marker settings, see which marker types have custom colors, or audit marker visualization configuration. "
20
+ "Requires the dataset slug parameter (or '__all__' for environment-wide settings). "
21
+ "Returns a list of all marker settings showing type names (e.g., 'deploy', 'incident') and their associated hex color codes."
22
+ ),
23
+ "honeycomb_get_marker_setting": (
24
+ "Retrieves a specific marker setting by its ID. "
25
+ "Use this rarely when you need a specific setting by ID - prefer list_marker_settings to view all settings. "
26
+ "Requires both the dataset slug and setting ID parameters. "
27
+ "Returns the marker setting configuration including type name and color code."
28
+ ),
29
+ "honeycomb_create_marker_setting": (
30
+ "Creates a new marker type-to-color mapping. "
31
+ "Use this to assign colors to marker types for visual consistency (e.g., deployments in green, incidents in red). "
32
+ "Requires the dataset slug (or '__all__' for environment-wide), marker type name, and hex color code (e.g., '#00FF00'). "
33
+ "Once created, all markers of this type will display in the specified color on graphs and timelines."
34
+ ),
35
+ "honeycomb_update_marker_setting": (
36
+ "Updates an existing marker setting's type or color. "
37
+ "Use this to change marker colors for better visual distinction or rename marker types. "
38
+ "Requires the dataset slug, setting ID, and updated configuration (type and color). "
39
+ "The color change applies immediately to all existing and future markers of this type."
40
+ ),
41
+ "honeycomb_delete_marker_setting": (
42
+ "Permanently deletes a marker setting. "
43
+ "Use this when removing unused marker types or resetting color customizations. "
44
+ "Requires both the dataset slug and setting ID parameters. "
45
+ "Warning: Existing markers of this type will lose their custom color and revert to default visualization."
46
+ ),
47
+ }
48
+
49
+
50
+ def get_description(tool_name: str) -> str:
51
+ """Get the description for a tool in this resource."""
52
+ return MARKER_SETTING_DESCRIPTIONS[tool_name]
53
+
54
+
55
+ def create_tool_definition(
56
+ name: str,
57
+ description: str,
58
+ input_schema: dict[str, Any],
59
+ input_examples: list[dict[str, Any]] | None = None,
60
+ ) -> dict[str, Any]:
61
+ """Create a Claude tool definition."""
62
+ from honeycomb.tools.descriptions import validate_description
63
+ from honeycomb.tools.schemas import add_metadata_fields, validate_schema, validate_tool_name
64
+
65
+ validate_tool_name(name)
66
+ validate_description(description)
67
+ validate_schema(input_schema)
68
+ add_metadata_fields(input_schema)
69
+
70
+ definition: dict[str, Any] = {
71
+ "name": name,
72
+ "description": description,
73
+ "input_schema": input_schema,
74
+ }
75
+
76
+ if input_examples:
77
+ definition["input_examples"] = input_examples
78
+
79
+ return definition
80
+
81
+
82
+ # ==============================================================================
83
+ # Marker Settings Tool Definitions
84
+ # ==============================================================================
85
+
86
+
87
+ def generate_list_marker_settings_tool() -> dict[str, Any]:
88
+ """Generate honeycomb_list_marker_settings tool definition."""
89
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset"]}
90
+ add_parameter(
91
+ schema,
92
+ "dataset",
93
+ "string",
94
+ "The dataset slug (or '__all__' for environment-wide)",
95
+ required=True,
96
+ )
97
+
98
+ examples: list[dict[str, Any]] = [{"dataset": "api-logs"}, {"dataset": "__all__"}]
99
+
100
+ return create_tool_definition(
101
+ name="honeycomb_list_marker_settings",
102
+ description=get_description("honeycomb_list_marker_settings"),
103
+ input_schema=schema,
104
+ input_examples=examples,
105
+ )
106
+
107
+
108
+ def generate_get_marker_setting_tool() -> dict[str, Any]:
109
+ """Generate honeycomb_get_marker_setting tool definition."""
110
+ schema: dict[str, Any] = {
111
+ "type": "object",
112
+ "properties": {},
113
+ "required": ["dataset", "setting_id"],
114
+ }
115
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
116
+ add_parameter(schema, "setting_id", "string", "The marker setting ID", required=True)
117
+
118
+ examples: list[dict[str, Any]] = [{"dataset": "api-logs", "setting_id": "set-123"}]
119
+
120
+ return create_tool_definition(
121
+ name="honeycomb_get_marker_setting",
122
+ description=get_description("honeycomb_get_marker_setting"),
123
+ input_schema=schema,
124
+ input_examples=examples,
125
+ )
126
+
127
+
128
+ def generate_create_marker_setting_tool() -> dict[str, Any]:
129
+ """Generate honeycomb_create_marker_setting tool definition."""
130
+ base_schema = generate_schema_from_model(
131
+ MarkerSettingCreate, exclude_fields={"id", "created_at", "updated_at"}
132
+ )
133
+
134
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset"]}
135
+ add_parameter(
136
+ schema,
137
+ "dataset",
138
+ "string",
139
+ "The dataset slug (or '__all__' for environment-wide)",
140
+ required=True,
141
+ )
142
+
143
+ schema["properties"].update(base_schema["properties"])
144
+ schema["required"].extend(base_schema.get("required", []))
145
+
146
+ examples: list[dict[str, Any]] = [
147
+ {"dataset": "api-logs", "type": "deploy", "color": "#00FF00"},
148
+ {"dataset": "__all__", "type": "incident", "color": "#FF0000"},
149
+ ]
150
+
151
+ return create_tool_definition(
152
+ name="honeycomb_create_marker_setting",
153
+ description=get_description("honeycomb_create_marker_setting"),
154
+ input_schema=schema,
155
+ input_examples=examples,
156
+ )
157
+
158
+
159
+ def generate_update_marker_setting_tool() -> dict[str, Any]:
160
+ """Generate honeycomb_update_marker_setting tool definition."""
161
+ base_schema = generate_schema_from_model(
162
+ MarkerSettingCreate, exclude_fields={"id", "created_at", "updated_at"}
163
+ )
164
+
165
+ schema: dict[str, Any] = {
166
+ "type": "object",
167
+ "properties": {},
168
+ "required": ["dataset", "setting_id"],
169
+ }
170
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
171
+ add_parameter(schema, "setting_id", "string", "The marker setting ID to update", required=True)
172
+
173
+ schema["properties"].update(base_schema["properties"])
174
+ schema["required"].extend(base_schema.get("required", []))
175
+
176
+ examples: list[dict[str, Any]] = [
177
+ {"dataset": "api-logs", "setting_id": "set-123", "type": "deploy", "color": "#0000FF"},
178
+ ]
179
+
180
+ return create_tool_definition(
181
+ name="honeycomb_update_marker_setting",
182
+ description=get_description("honeycomb_update_marker_setting"),
183
+ input_schema=schema,
184
+ input_examples=examples,
185
+ )
186
+
187
+
188
+ def generate_delete_marker_setting_tool() -> dict[str, Any]:
189
+ """Generate honeycomb_delete_marker_setting tool definition."""
190
+ schema: dict[str, Any] = {
191
+ "type": "object",
192
+ "properties": {},
193
+ "required": ["dataset", "setting_id"],
194
+ }
195
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
196
+ add_parameter(schema, "setting_id", "string", "The marker setting ID to delete", required=True)
197
+
198
+ examples: list[dict[str, Any]] = [{"dataset": "api-logs", "setting_id": "set-123"}]
199
+
200
+ return create_tool_definition(
201
+ name="honeycomb_delete_marker_setting",
202
+ description=get_description("honeycomb_delete_marker_setting"),
203
+ input_schema=schema,
204
+ input_examples=examples,
205
+ )
206
+
207
+
208
+ def get_tools() -> list[dict[str, Any]]:
209
+ """Get all marker settings tool definitions."""
210
+ return [
211
+ generate_list_marker_settings_tool(),
212
+ generate_get_marker_setting_tool(),
213
+ generate_create_marker_setting_tool(),
214
+ generate_update_marker_setting_tool(),
215
+ generate_delete_marker_setting_tool(),
216
+ ]
@@ -0,0 +1,197 @@
1
+ """Markers tool definitions for Claude API.
2
+
3
+ This module provides tool generators and descriptions for
4
+ markers resources.
5
+ """
6
+
7
+ from typing import Any
8
+
9
+ from honeycomb.models import MarkerCreate
10
+ from honeycomb.tools.schemas import add_parameter, generate_schema_from_model
11
+
12
+ # ==============================================================================
13
+ # Markers Descriptions
14
+ # ==============================================================================
15
+
16
+ MARKER_DESCRIPTIONS = {
17
+ "honeycomb_list_markers": (
18
+ "Lists all markers (event annotations) in a dataset. "
19
+ "Use this to view deployment history, configuration changes, incidents, or other significant events marked on your data. "
20
+ "Requires the dataset slug parameter. "
21
+ "Returns a list of marker objects including their IDs, messages, types, timestamps, colors, and URLs."
22
+ ),
23
+ "honeycomb_create_marker": (
24
+ "Creates a new marker to annotate your data with significant events like deployments, configuration changes, or incidents. "
25
+ "Use this to track deployments, mark maintenance windows, document configuration changes, or flag incidents for correlation with metrics. "
26
+ "Requires dataset slug (or '__all__' for environment-wide), message, and type parameters. "
27
+ "Optional color parameter (hex code like '#FF5733') can be provided for visual customization - if the marker setting for that type doesn't exist, it should be created first. "
28
+ "Optional start_time and end_time (Unix timestamps) create time-range markers, otherwise defaults to current time as a point marker."
29
+ ),
30
+ "honeycomb_update_marker": (
31
+ "Updates an existing marker's message, type, timestamps, or URL. "
32
+ "Use this to correct marker details, update deployment notes, or adjust time ranges for maintenance windows. "
33
+ "Requires the dataset slug, marker ID, and updated marker configuration. "
34
+ "Note: Colors are controlled by marker settings, not directly on markers."
35
+ ),
36
+ "honeycomb_delete_marker": (
37
+ "Permanently deletes a marker from a dataset. "
38
+ "Use this when removing incorrect markers, cleaning up test annotations, or removing outdated event tracking. "
39
+ "Requires both the dataset slug and marker ID parameters. "
40
+ "Warning: This action cannot be undone. The marker will be removed from all visualizations."
41
+ ),
42
+ }
43
+
44
+
45
+ def get_description(tool_name: str) -> str:
46
+ """Get the description for a tool in this resource."""
47
+ return MARKER_DESCRIPTIONS[tool_name]
48
+
49
+
50
+ def create_tool_definition(
51
+ name: str,
52
+ description: str,
53
+ input_schema: dict[str, Any],
54
+ input_examples: list[dict[str, Any]] | None = None,
55
+ ) -> dict[str, Any]:
56
+ """Create a Claude tool definition."""
57
+ from honeycomb.tools.descriptions import validate_description
58
+ from honeycomb.tools.schemas import add_metadata_fields, validate_schema, validate_tool_name
59
+
60
+ validate_tool_name(name)
61
+ validate_description(description)
62
+ validate_schema(input_schema)
63
+ add_metadata_fields(input_schema)
64
+
65
+ definition: dict[str, Any] = {
66
+ "name": name,
67
+ "description": description,
68
+ "input_schema": input_schema,
69
+ }
70
+
71
+ if input_examples:
72
+ definition["input_examples"] = input_examples
73
+
74
+ return definition
75
+
76
+
77
+ # ==============================================================================
78
+ # Markers Tool Definitions
79
+ # ==============================================================================
80
+
81
+
82
+ def generate_list_markers_tool() -> dict[str, Any]:
83
+ """Generate honeycomb_list_markers tool definition."""
84
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset"]}
85
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
86
+
87
+ examples: list[dict[str, Any]] = [{"dataset": "api-logs"}, {"dataset": "production"}]
88
+
89
+ return create_tool_definition(
90
+ name="honeycomb_list_markers",
91
+ description=get_description("honeycomb_list_markers"),
92
+ input_schema=schema,
93
+ input_examples=examples,
94
+ )
95
+
96
+
97
+ def generate_create_marker_tool() -> dict[str, Any]:
98
+ """Generate honeycomb_create_marker tool definition."""
99
+ base_schema = generate_schema_from_model(
100
+ MarkerCreate, exclude_fields={"id", "created_at", "updated_at", "color"}
101
+ )
102
+
103
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset"]}
104
+ add_parameter(
105
+ schema,
106
+ "dataset",
107
+ "string",
108
+ "The dataset slug (or '__all__' for environment-wide)",
109
+ required=True,
110
+ )
111
+ add_parameter(schema, "color", "string", "Optional hex color (e.g., '#FF5733')", required=False)
112
+
113
+ schema["properties"].update(base_schema["properties"])
114
+ schema["required"].extend(base_schema.get("required", []))
115
+
116
+ examples: list[dict[str, Any]] = [
117
+ {"dataset": "api-logs", "message": "deploy v1.2.3", "type": "deploy"},
118
+ {
119
+ "dataset": "__all__",
120
+ "message": "maintenance window",
121
+ "type": "maintenance",
122
+ "start_time": 1640000000,
123
+ "end_time": 1640003600,
124
+ },
125
+ {"dataset": "production", "message": "config change", "type": "config", "color": "#FF5733"},
126
+ ]
127
+
128
+ return create_tool_definition(
129
+ name="honeycomb_create_marker",
130
+ description=get_description("honeycomb_create_marker"),
131
+ input_schema=schema,
132
+ input_examples=examples,
133
+ )
134
+
135
+
136
+ def generate_update_marker_tool() -> dict[str, Any]:
137
+ """Generate honeycomb_update_marker tool definition."""
138
+ base_schema = generate_schema_from_model(
139
+ MarkerCreate, exclude_fields={"id", "created_at", "updated_at", "color"}
140
+ )
141
+
142
+ schema: dict[str, Any] = {
143
+ "type": "object",
144
+ "properties": {},
145
+ "required": ["dataset", "marker_id"],
146
+ }
147
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
148
+ add_parameter(schema, "marker_id", "string", "The marker ID to update", required=True)
149
+
150
+ schema["properties"].update(base_schema["properties"])
151
+ schema["required"].extend(base_schema.get("required", []))
152
+
153
+ examples: list[dict[str, Any]] = [
154
+ {
155
+ "dataset": "api-logs",
156
+ "marker_id": "abc123",
157
+ "message": "updated deploy v1.2.4",
158
+ "type": "deploy",
159
+ },
160
+ ]
161
+
162
+ return create_tool_definition(
163
+ name="honeycomb_update_marker",
164
+ description=get_description("honeycomb_update_marker"),
165
+ input_schema=schema,
166
+ input_examples=examples,
167
+ )
168
+
169
+
170
+ def generate_delete_marker_tool() -> dict[str, Any]:
171
+ """Generate honeycomb_delete_marker tool definition."""
172
+ schema: dict[str, Any] = {
173
+ "type": "object",
174
+ "properties": {},
175
+ "required": ["dataset", "marker_id"],
176
+ }
177
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
178
+ add_parameter(schema, "marker_id", "string", "The marker ID to delete", required=True)
179
+
180
+ examples: list[dict[str, Any]] = [{"dataset": "api-logs", "marker_id": "abc123"}]
181
+
182
+ return create_tool_definition(
183
+ name="honeycomb_delete_marker",
184
+ description=get_description("honeycomb_delete_marker"),
185
+ input_schema=schema,
186
+ input_examples=examples,
187
+ )
188
+
189
+
190
+ def get_tools() -> list[dict[str, Any]]:
191
+ """Get all markers tool definitions."""
192
+ return [
193
+ generate_list_markers_tool(),
194
+ generate_create_marker_tool(),
195
+ generate_update_marker_tool(),
196
+ generate_delete_marker_tool(),
197
+ ]
@@ -0,0 +1,220 @@
1
+ """Queries tool definitions for Claude API.
2
+
3
+ This module provides tool generators and descriptions for
4
+ queries resources.
5
+ """
6
+
7
+ from typing import Any
8
+
9
+ from honeycomb.models import QuerySpec
10
+ from honeycomb.tools.schemas import add_parameter, generate_schema_from_model
11
+
12
+ # ==============================================================================
13
+ # Queries Descriptions
14
+ # ==============================================================================
15
+
16
+ QUERY_DESCRIPTIONS = {
17
+ "honeycomb_create_query": (
18
+ "Creates a new saved query in a dataset that can be reused in boards, analysis, or referenced by ID. "
19
+ "Use this to save frequently-used queries, create queries for dashboard panels, or prepare queries for trigger definitions. "
20
+ "Requires the dataset slug and query specification including time_range and calculations. "
21
+ "Optional annotation_name parameter creates the query with a display name for easier identification in the UI. "
22
+ "The query specification supports multiple calculations (unlike triggers which allow only one), filters, breakdowns, orders, havings, and limits for comprehensive data analysis."
23
+ "Queries can include calculated_fields (derived columns) - see honeycomb_create_derived_column for expression syntax. "
24
+ ),
25
+ "honeycomb_get_query": (
26
+ "Retrieves a saved query's configuration by its ID. "
27
+ "Use this to inspect an existing query's calculations, filters, time range, and other settings before modifying it or using it as a template. "
28
+ "Requires both the dataset slug and query ID parameters. "
29
+ "Returns the complete query specification including all calculation definitions, filter conditions, breakdown fields, and ordering rules."
30
+ ),
31
+ "honeycomb_run_query": (
32
+ "Creates a saved query, executes it, and returns results with automatic polling until completion. "
33
+ "Use this for ad-hoc data analysis, investigating issues, or when you want both a saved query and immediate results in one operation. "
34
+ "Requires the dataset slug (or '__all__' for environment-wide queries) and query specification (time_range, calculations, optional filters/breakdowns/orders/havings/limit). "
35
+ "This tool performs two operations: first creates a permanent saved query, then executes it with polling and returns the query results including data rows and metadata. "
36
+ "Supports all query features including multiple calculations (COUNT, AVG, SUM, MIN, MAX, P50-P99, HEATMAP, RATE_*), complex filters, breakdowns, ordering, HAVING clauses, and result limits."
37
+ ),
38
+ }
39
+
40
+
41
+ def get_description(tool_name: str) -> str:
42
+ """Get the description for a tool in this resource."""
43
+ return QUERY_DESCRIPTIONS[tool_name]
44
+
45
+
46
+ def create_tool_definition(
47
+ name: str,
48
+ description: str,
49
+ input_schema: dict[str, Any],
50
+ input_examples: list[dict[str, Any]] | None = None,
51
+ ) -> dict[str, Any]:
52
+ """Create a Claude tool definition."""
53
+ from honeycomb.tools.descriptions import validate_description
54
+ from honeycomb.tools.schemas import add_metadata_fields, validate_schema, validate_tool_name
55
+
56
+ validate_tool_name(name)
57
+ validate_description(description)
58
+ validate_schema(input_schema)
59
+ add_metadata_fields(input_schema)
60
+
61
+ definition: dict[str, Any] = {
62
+ "name": name,
63
+ "description": description,
64
+ "input_schema": input_schema,
65
+ }
66
+
67
+ if input_examples:
68
+ definition["input_examples"] = input_examples
69
+
70
+ return definition
71
+
72
+
73
+ # ==============================================================================
74
+ # Queries Tool Definitions
75
+ # ==============================================================================
76
+
77
+
78
+ def generate_create_query_tool() -> dict[str, Any]:
79
+ """Generate honeycomb_create_query tool definition."""
80
+ base_schema = generate_schema_from_model(
81
+ QuerySpec,
82
+ exclude_fields={"id", "created_at", "updated_at"},
83
+ )
84
+
85
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset"]}
86
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
87
+
88
+ # Add optional annotation_name parameter
89
+ add_parameter(
90
+ schema,
91
+ "annotation_name",
92
+ "string",
93
+ "Optional name for the query annotation (saves query with a display name)",
94
+ required=False,
95
+ )
96
+
97
+ schema["properties"].update(base_schema["properties"])
98
+ schema["required"].extend(base_schema.get("required", []))
99
+
100
+ # Add definitions if present
101
+ if "$defs" in base_schema:
102
+ schema["$defs"] = base_schema["$defs"]
103
+
104
+ examples: list[dict[str, Any]] = [
105
+ # Simple COUNT query
106
+ {
107
+ "dataset": "api-logs",
108
+ "time_range": 3600,
109
+ "calculations": [{"op": "COUNT"}],
110
+ },
111
+ # P99 with filters
112
+ {
113
+ "dataset": "api-logs",
114
+ "time_range": 3600,
115
+ "calculations": [{"op": "P99", "column": "duration_ms"}],
116
+ "filters": [{"column": "status_code", "op": ">=", "value": 200}],
117
+ },
118
+ # With annotation name
119
+ {
120
+ "dataset": "api-logs",
121
+ "annotation_name": "Error Rate Dashboard",
122
+ "time_range": 7200,
123
+ "calculations": [{"op": "COUNT"}],
124
+ "filters": [{"column": "status_code", "op": ">=", "value": 500}],
125
+ },
126
+ ]
127
+
128
+ return create_tool_definition(
129
+ name="honeycomb_create_query",
130
+ description=get_description("honeycomb_create_query"),
131
+ input_schema=schema,
132
+ input_examples=examples,
133
+ )
134
+
135
+
136
+ def generate_get_query_tool() -> dict[str, Any]:
137
+ """Generate honeycomb_get_query tool definition."""
138
+ schema: dict[str, Any] = {
139
+ "type": "object",
140
+ "properties": {},
141
+ "required": ["dataset", "query_id"],
142
+ }
143
+
144
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
145
+ add_parameter(schema, "query_id", "string", "The query ID to retrieve", required=True)
146
+
147
+ examples: list[dict[str, Any]] = [
148
+ {"dataset": "api-logs", "query_id": "q-123"},
149
+ {"dataset": "production", "query_id": "q-456"},
150
+ ]
151
+
152
+ return create_tool_definition(
153
+ name="honeycomb_get_query",
154
+ description=get_description("honeycomb_get_query"),
155
+ input_schema=schema,
156
+ input_examples=examples,
157
+ )
158
+
159
+
160
+ def generate_run_query_tool() -> dict[str, Any]:
161
+ """Generate honeycomb_run_query tool definition."""
162
+ base_schema = generate_schema_from_model(
163
+ QuerySpec,
164
+ exclude_fields={"id", "created_at", "updated_at"},
165
+ )
166
+
167
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset"]}
168
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
169
+
170
+ schema["properties"].update(base_schema["properties"])
171
+ schema["required"].extend(base_schema.get("required", []))
172
+
173
+ # Add definitions if present
174
+ if "$defs" in base_schema:
175
+ schema["$defs"] = base_schema["$defs"]
176
+
177
+ examples: list[dict[str, Any]] = [
178
+ # Count in last hour
179
+ {
180
+ "dataset": "api-logs",
181
+ "time_range": 3600,
182
+ "calculations": [{"op": "COUNT"}],
183
+ },
184
+ # P99 with breakdowns
185
+ {
186
+ "dataset": "api-logs",
187
+ "time_range": 7200,
188
+ "calculations": [{"op": "P99", "column": "duration_ms"}],
189
+ "breakdowns": ["endpoint"],
190
+ },
191
+ # Multiple calculations with filters and ordering
192
+ {
193
+ "dataset": "api-logs",
194
+ "time_range": 3600,
195
+ "calculations": [
196
+ {"op": "COUNT"},
197
+ {"op": "AVG", "column": "duration_ms"},
198
+ {"op": "P99", "column": "duration_ms"},
199
+ ],
200
+ "filters": [{"column": "status_code", "op": ">=", "value": 500}],
201
+ "orders": [{"column": "COUNT", "order": "descending"}],
202
+ "limit": 100,
203
+ },
204
+ ]
205
+
206
+ return create_tool_definition(
207
+ name="honeycomb_run_query",
208
+ description=get_description("honeycomb_run_query"),
209
+ input_schema=schema,
210
+ input_examples=examples,
211
+ )
212
+
213
+
214
+ def get_tools() -> list[dict[str, Any]]:
215
+ """Get all queries tool definitions."""
216
+ return [
217
+ generate_create_query_tool(),
218
+ generate_get_query_tool(),
219
+ generate_run_query_tool(),
220
+ ]