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,328 @@
1
+ """Triggers tool definitions for Claude API.
2
+
3
+ This module provides tool generators and descriptions for
4
+ triggers resources.
5
+ """
6
+
7
+ from typing import Any
8
+
9
+ from honeycomb.models import TriggerCreate
10
+ from honeycomb.tools.schemas import add_parameter, generate_schema_from_model
11
+
12
+ # ==============================================================================
13
+ # Triggers Descriptions
14
+ # ==============================================================================
15
+
16
+ TRIGGER_DESCRIPTIONS = {
17
+ "honeycomb_list_triggers": (
18
+ "Lists all triggers (alerts) configured in a Honeycomb dataset. "
19
+ "Use this to discover existing alerting rules before creating new ones or when migrating from another observability platform. "
20
+ "Requires the dataset slug parameter to specify which dataset's triggers to retrieve. "
21
+ "Returns a list of trigger objects with their IDs, names, thresholds, and recipient configurations."
22
+ ),
23
+ "honeycomb_get_trigger": (
24
+ "Retrieves detailed configuration for a specific trigger by ID. "
25
+ "Use this to inspect an existing trigger's query specification, threshold settings, frequency, and recipients before modifying or replicating it. "
26
+ "Requires both the dataset slug and trigger ID parameters. "
27
+ "Returns the complete trigger configuration including the query spec, threshold operator and value, evaluation frequency, and notification recipients."
28
+ ),
29
+ "honeycomb_create_trigger": (
30
+ "Creates a new trigger (alert) that fires when query results cross a threshold. "
31
+ "Use this when setting up alerting rules for service health monitoring, error rates, latency thresholds, or when migrating Datadog monitors to Honeycomb. "
32
+ "Requires a dataset, query specification with calculations and filters, threshold operator and value, and evaluation frequency in seconds. "
33
+ "The query can be provided inline with calculations, filters, and time range. "
34
+ "IMPORTANT: Recipients can be provided inline using the 'recipients' array - each recipient needs 'type' (email/webhook/slack/pagerduty/msteams) and 'target' (email address/URL/channel). "
35
+ "Inline recipient creation is PREFERRED - create trigger and recipients in one call for efficiency. Alternatively, you can reference existing recipient IDs. "
36
+ "Note: Trigger queries have a maximum time_range of 3600 seconds (1 hour) and support only a single calculation."
37
+ ),
38
+ "honeycomb_update_trigger": (
39
+ "Updates an existing trigger's configuration including its query, threshold, frequency, or recipients. "
40
+ "Use this to adjust alerting thresholds, change notification targets, or update query filters as service behavior evolves. "
41
+ "Requires the dataset slug, trigger ID, and the complete updated trigger configuration. "
42
+ "Note: This replaces the entire trigger configuration, so include all fields you want to preserve."
43
+ ),
44
+ "honeycomb_delete_trigger": (
45
+ "Permanently deletes a trigger from Honeycomb. "
46
+ "Use this when decommissioning services, consolidating redundant alerts, or cleaning up test triggers. "
47
+ "Requires both the dataset slug and trigger ID. "
48
+ "Warning: This action cannot be undone. The trigger will stop firing immediately and historical alert data will be lost."
49
+ ),
50
+ }
51
+
52
+
53
+ def get_description(tool_name: str) -> str:
54
+ """Get the description for a tool in this resource."""
55
+ return TRIGGER_DESCRIPTIONS[tool_name]
56
+
57
+
58
+ def create_tool_definition(
59
+ name: str,
60
+ description: str,
61
+ input_schema: dict[str, Any],
62
+ input_examples: list[dict[str, Any]] | None = None,
63
+ ) -> dict[str, Any]:
64
+ """Create a Claude tool definition."""
65
+ from honeycomb.tools.descriptions import validate_description
66
+ from honeycomb.tools.schemas import add_metadata_fields, validate_schema, validate_tool_name
67
+
68
+ validate_tool_name(name)
69
+ validate_description(description)
70
+ validate_schema(input_schema)
71
+ add_metadata_fields(input_schema)
72
+
73
+ definition: dict[str, Any] = {
74
+ "name": name,
75
+ "description": description,
76
+ "input_schema": input_schema,
77
+ }
78
+
79
+ if input_examples:
80
+ definition["input_examples"] = input_examples
81
+
82
+ return definition
83
+
84
+
85
+ # ==============================================================================
86
+ # Triggers Tool Definitions
87
+ # ==============================================================================
88
+
89
+
90
+ def generate_list_triggers_tool() -> dict[str, Any]:
91
+ """Generate honeycomb_list_triggers tool definition."""
92
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset"]}
93
+
94
+ add_parameter(
95
+ schema,
96
+ "dataset",
97
+ "string",
98
+ "The dataset slug to list triggers from",
99
+ required=True,
100
+ )
101
+
102
+ examples = [
103
+ {"dataset": "api-logs"},
104
+ {"dataset": "production"},
105
+ ]
106
+
107
+ return create_tool_definition(
108
+ name="honeycomb_list_triggers",
109
+ description=get_description("honeycomb_list_triggers"),
110
+ input_schema=schema,
111
+ input_examples=examples,
112
+ )
113
+
114
+
115
+ def generate_get_trigger_tool() -> dict[str, Any]:
116
+ """Generate honeycomb_get_trigger tool definition."""
117
+ schema: dict[str, Any] = {
118
+ "type": "object",
119
+ "properties": {},
120
+ "required": ["dataset", "trigger_id"],
121
+ }
122
+
123
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
124
+ add_parameter(schema, "trigger_id", "string", "The trigger ID to retrieve", required=True)
125
+
126
+ examples = [
127
+ {"dataset": "api-logs", "trigger_id": "aBcD123"},
128
+ {"dataset": "production", "trigger_id": "xyz789"},
129
+ ]
130
+
131
+ return create_tool_definition(
132
+ name="honeycomb_get_trigger",
133
+ description=get_description("honeycomb_get_trigger"),
134
+ input_schema=schema,
135
+ input_examples=examples,
136
+ )
137
+
138
+
139
+ def generate_create_trigger_tool() -> dict[str, Any]:
140
+ """Generate honeycomb_create_trigger tool definition."""
141
+ # Start with TriggerCreate schema
142
+ base_schema = generate_schema_from_model(
143
+ TriggerCreate,
144
+ exclude_fields={"created_at", "updated_at", "id"},
145
+ )
146
+
147
+ # Add dataset parameter
148
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset"]}
149
+ add_parameter(
150
+ schema, "dataset", "string", "The dataset slug to create the trigger in", required=True
151
+ )
152
+
153
+ # Merge with TriggerCreate schema
154
+ schema["properties"].update(base_schema["properties"])
155
+ schema["required"].extend(base_schema.get("required", []))
156
+
157
+ # Add definitions if present
158
+ if "$defs" in base_schema:
159
+ schema["$defs"] = base_schema["$defs"]
160
+
161
+ examples = [
162
+ # Minimal example with COUNT
163
+ {
164
+ "dataset": "api-logs",
165
+ "name": "High Error Rate",
166
+ "query": {
167
+ "time_range": 900,
168
+ "calculations": [{"op": "COUNT"}],
169
+ "filters": [{"column": "status_code", "op": ">=", "value": 500}],
170
+ },
171
+ "threshold": {"op": ">", "value": 100},
172
+ "frequency": 900,
173
+ },
174
+ # P99 latency with recipients
175
+ {
176
+ "dataset": "production",
177
+ "name": "P99 Latency Alert",
178
+ "description": "Alerts when P99 latency exceeds 2 seconds",
179
+ "query": {
180
+ "time_range": 3600,
181
+ "calculations": [{"op": "P99", "column": "duration_ms"}],
182
+ },
183
+ "threshold": {"op": ">=", "value": 2000},
184
+ "frequency": 3600,
185
+ "recipients": [{"type": "email", "target": "oncall@example.com"}],
186
+ "alert_type": "on_change",
187
+ },
188
+ # Advanced: Multiple filters with string operations and tags
189
+ {
190
+ "dataset": "api-logs",
191
+ "name": "API Gateway Errors",
192
+ "description": "Monitors error rates for specific service with path filtering",
193
+ "query": {
194
+ "time_range": 1800,
195
+ "calculations": [{"op": "COUNT"}],
196
+ "filters": [
197
+ {"column": "status_code", "op": ">=", "value": 500},
198
+ {"column": "service_name", "op": "=", "value": "api-gateway"},
199
+ {"column": "path", "op": "starts-with", "value": "/api/v2"},
200
+ ],
201
+ "filter_combination": "AND",
202
+ "breakdowns": ["endpoint"],
203
+ },
204
+ "threshold": {"op": ">", "value": 50, "exceeded_limit": 2},
205
+ "frequency": 900,
206
+ "recipients": [
207
+ {"type": "slack", "target": "#alerts"},
208
+ {
209
+ "type": "pagerduty",
210
+ "target": "routing-key-123",
211
+ "details": {"severity": "critical"},
212
+ },
213
+ ],
214
+ "tags": [
215
+ {"key": "team", "value": "platform"},
216
+ {"key": "severity", "value": "high"},
217
+ ],
218
+ },
219
+ # HEATMAP calculation example
220
+ {
221
+ "dataset": "traces",
222
+ "name": "Request Duration Distribution",
223
+ "query": {
224
+ "time_range": 3600,
225
+ "calculations": [{"op": "HEATMAP", "column": "duration_ms"}],
226
+ },
227
+ "threshold": {"op": ">", "value": 1000},
228
+ "frequency": 3600,
229
+ },
230
+ # COUNT_DISTINCT example
231
+ {
232
+ "dataset": "api-logs",
233
+ "name": "Unique Error Messages",
234
+ "query": {
235
+ "time_range": 3600,
236
+ "calculations": [{"op": "COUNT_DISTINCT", "column": "error_message"}],
237
+ "filters": [{"column": "level", "op": "=", "value": "error"}],
238
+ },
239
+ "threshold": {"op": ">", "value": 10},
240
+ "frequency": 1800,
241
+ },
242
+ ]
243
+
244
+ return create_tool_definition(
245
+ name="honeycomb_create_trigger",
246
+ description=get_description("honeycomb_create_trigger"),
247
+ input_schema=schema,
248
+ input_examples=examples,
249
+ )
250
+
251
+
252
+ def generate_update_trigger_tool() -> dict[str, Any]:
253
+ """Generate honeycomb_update_trigger tool definition."""
254
+ base_schema = generate_schema_from_model(
255
+ TriggerCreate,
256
+ exclude_fields={"created_at", "updated_at", "id"},
257
+ )
258
+
259
+ schema: dict[str, Any] = {
260
+ "type": "object",
261
+ "properties": {},
262
+ "required": ["dataset", "trigger_id"],
263
+ }
264
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
265
+ add_parameter(schema, "trigger_id", "string", "The trigger ID to update", required=True)
266
+
267
+ schema["properties"].update(base_schema["properties"])
268
+ schema["required"].extend(base_schema.get("required", []))
269
+
270
+ if "$defs" in base_schema:
271
+ schema["$defs"] = base_schema["$defs"]
272
+
273
+ examples = [
274
+ {
275
+ "dataset": "api-logs",
276
+ "trigger_id": "abc123",
277
+ "name": "Updated High Error Rate",
278
+ "query": {
279
+ "time_range": 900,
280
+ "calculations": [{"op": "COUNT"}],
281
+ "filters": [{"column": "status_code", "op": ">=", "value": 500}],
282
+ },
283
+ "threshold": {"op": ">", "value": 150}, # Updated threshold
284
+ "frequency": 900,
285
+ },
286
+ ]
287
+
288
+ return create_tool_definition(
289
+ name="honeycomb_update_trigger",
290
+ description=get_description("honeycomb_update_trigger"),
291
+ input_schema=schema,
292
+ input_examples=examples,
293
+ )
294
+
295
+
296
+ def generate_delete_trigger_tool() -> dict[str, Any]:
297
+ """Generate honeycomb_delete_trigger tool definition."""
298
+ schema: dict[str, Any] = {
299
+ "type": "object",
300
+ "properties": {},
301
+ "required": ["dataset", "trigger_id"],
302
+ }
303
+
304
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
305
+ add_parameter(schema, "trigger_id", "string", "The trigger ID to delete", required=True)
306
+
307
+ examples = [
308
+ {"dataset": "api-logs", "trigger_id": "abc123"},
309
+ {"dataset": "production", "trigger_id": "xyz789"},
310
+ ]
311
+
312
+ return create_tool_definition(
313
+ name="honeycomb_delete_trigger",
314
+ description=get_description("honeycomb_delete_trigger"),
315
+ input_schema=schema,
316
+ input_examples=examples,
317
+ )
318
+
319
+
320
+ def get_tools() -> list[dict[str, Any]]:
321
+ """Get all triggers tool definitions."""
322
+ return [
323
+ generate_list_triggers_tool(),
324
+ generate_get_trigger_tool(),
325
+ generate_create_trigger_tool(),
326
+ generate_update_trigger_tool(),
327
+ generate_delete_trigger_tool(),
328
+ ]
@@ -9,6 +9,87 @@ from typing import Any
9
9
 
10
10
  from pydantic import BaseModel
11
11
 
12
+ # ==============================================================================
13
+ # Metadata Field Schemas (for Claude reasoning - stripped before API execution)
14
+ # ==============================================================================
15
+
16
+ CONFIDENCE_SCHEMA: dict[str, Any] = {
17
+ "type": "string",
18
+ "enum": ["high", "medium", "low", "none"],
19
+ "description": (
20
+ "Claude's confidence level in this tool call. "
21
+ "'high' = certain this matches user intent and will succeed, "
22
+ "'medium' = likely correct but some uncertainty, "
23
+ "'low' = uncertain but best available option, "
24
+ "'none' = guessing or placeholder value."
25
+ ),
26
+ }
27
+
28
+ NOTES_SCHEMA: dict[str, Any] = {
29
+ "type": "object",
30
+ "description": (
31
+ "Structured reasoning notes explaining Claude's decision-making process. "
32
+ "All categories are optional arrays of single-sentence strings."
33
+ ),
34
+ "properties": {
35
+ "decisions": {
36
+ "type": "array",
37
+ "items": {"type": "string"},
38
+ "description": "Key decisions made (e.g., 'Chose COUNT over AVG for error rate')",
39
+ },
40
+ "concerns": {
41
+ "type": "array",
42
+ "items": {"type": "string"},
43
+ "description": "Potential issues or risks (e.g., 'Time range may be too short')",
44
+ },
45
+ "assumptions": {
46
+ "type": "array",
47
+ "items": {"type": "string"},
48
+ "description": "Assumptions being made (e.g., 'Assuming status_code column exists')",
49
+ },
50
+ "questions": {
51
+ "type": "array",
52
+ "items": {"type": "string"},
53
+ "description": (
54
+ "Clarifying questions for increased confidence "
55
+ "(e.g., 'I would be more confident if I knew the expected error baseline')"
56
+ ),
57
+ },
58
+ },
59
+ "additionalProperties": False,
60
+ }
61
+
62
+ # Fields that are metadata for downstream applications, not sent to Honeycomb API
63
+ METADATA_FIELDS: set[str] = {"confidence", "notes"}
64
+
65
+
66
+ def add_metadata_fields(schema: dict[str, Any]) -> None:
67
+ """Add confidence and notes metadata fields to a tool schema.
68
+
69
+ These fields are for Claude's reasoning and are NOT sent to the Honeycomb API.
70
+ They are stripped by the executor before API calls.
71
+
72
+ Both fields are optional - they are not added to the required list.
73
+
74
+ Args:
75
+ schema: The tool input schema to modify (mutated in place)
76
+
77
+ Example:
78
+ >>> schema = {"type": "object", "properties": {}, "required": ["dataset"]}
79
+ >>> add_metadata_fields(schema)
80
+ >>> "confidence" in schema["properties"]
81
+ True
82
+ >>> "notes" in schema["properties"]
83
+ True
84
+ >>> "confidence" in schema.get("required", [])
85
+ False
86
+ """
87
+ import copy
88
+
89
+ schema["properties"]["confidence"] = copy.deepcopy(CONFIDENCE_SCHEMA)
90
+ schema["properties"]["notes"] = copy.deepcopy(NOTES_SCHEMA)
91
+ # Note: Both fields are OPTIONAL - not added to required list
92
+
12
93
 
13
94
  def validate_tool_name(name: str) -> None:
14
95
  """Validate tool name follows Claude's naming constraints.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: honeycomb-api
3
- Version: 0.1.0
3
+ Version: 0.5.3
4
4
  Summary: Python client for the Honeycomb.io API
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -20,6 +20,9 @@ Requires-Dist: httpx (>=0.27)
20
20
  Requires-Dist: pydantic (>=2.0)
21
21
  Requires-Dist: pytest-xdist (>=3.8.0,<4.0.0)
22
22
  Requires-Dist: python-dateutil (>=2.8)
23
+ Requires-Dist: pyyaml (>=6.0)
24
+ Requires-Dist: rich (>=13.0)
25
+ Requires-Dist: typer (>=0.21.0)
23
26
  Project-URL: Homepage, https://github.com/irvingpop/honeycomb-api-python
24
27
  Project-URL: Repository, https://github.com/irvingpop/honeycomb-api-python
25
28
  Description-Content-Type: text/markdown
@@ -38,22 +41,22 @@ A modern, async-first Python client for the [Honeycomb.io](https://www.honeycomb
38
41
 
39
42
  - **Async-first design** with full sync support
40
43
  - **Fluent builder pattern** for queries, triggers, SLOs, and boards
44
+ - **CLI tool** for porting objects between environments
45
+ - **Claude tool definitions** exposing the full Honeycomb API for Claude-based agents
41
46
  - **Pydantic models** for type-safe request/response handling
42
47
  - **Automatic retries** with exponential backoff for transient failures
43
48
  - **Comprehensive error handling** with specific exception types
44
49
  - **Dual authentication** support (API keys and Management keys)
45
50
  - **Resource-oriented API** for intuitive usage
46
51
 
47
- ## Installation (coming soon)
52
+ ## Installation
48
53
 
49
54
  ```bash
50
- pip install honeycomb-api-python
51
- ```
52
-
53
- Or with Poetry:
55
+ # Using Poetry
56
+ poetry add honeycomb-api
54
57
 
55
- ```bash
56
- poetry add honeycomb-api-python
58
+ # Using uv
59
+ uv add honeycomb-api
57
60
  ```
58
61
 
59
62
  ## Quick Start
@@ -227,6 +230,28 @@ client = HoneycombClient(
227
230
 
228
231
  Management credentials are sent via the `Authorization: Bearer` header.
229
232
 
233
+ ## CLI Tool
234
+
235
+ For quick operations without writing Python:
236
+
237
+ ```bash
238
+ # Run without installing (using uvx or pipx)
239
+ export HONEYCOMB_API_KEY=your_api_key_here
240
+ uvx honeycomb-api triggers list
241
+ # or
242
+ pipx run honeycomb-api triggers list
243
+
244
+ # Or install and use the short alias
245
+ uv tool install honeycomb-api
246
+ # or
247
+ pipx install honeycomb-api
248
+
249
+ hny triggers list
250
+ hny query run --dataset my-dataset --count --last-30-minutes
251
+ ```
252
+
253
+ See the [CLI Reference](https://irvingpop.github.io/honeycomb-api-python/cli/) for full documentation.
254
+
230
255
  ## Usage Guide
231
256
 
232
257
  For complete usage examples and guides, see the [full documentation](https://irvingpop.github.io/honeycomb-api-python/):