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,311 @@
1
+ """Derived Columns tool definitions for Claude API.
2
+
3
+ This module provides tool generators and descriptions for
4
+ derived columns resources.
5
+ """
6
+
7
+ from typing import Any
8
+
9
+ from honeycomb.models import DerivedColumnCreate
10
+ from honeycomb.tools.schemas import add_parameter, generate_schema_from_model
11
+
12
+ # ==============================================================================
13
+ # Derived Columns Descriptions
14
+ # ==============================================================================
15
+
16
+ _DERIVED_COLUMN_SYNTAX_GUIDE = """
17
+ EXPRESSION SYNTAX REFERENCE:
18
+ - Column refs: $column_name or $"column with spaces" (CASE-SENSITIVE)
19
+ - Strings: double quotes ("value")
20
+ - Regex patterns: backticks (`pattern`)
21
+ - DCs operate on ONE ROW at a time - they are NOT aggregation functions
22
+
23
+ CONDITIONALS:
24
+ - IF(cond, true_val, false_val) - e.g., IF(LT($status, 400), "ok", "error")
25
+ - SWITCH($field, "case1", result1, "case2", result2, default) - string matching
26
+ - COALESCE(a, b, c) - first non-null value
27
+
28
+ COMPARISONS (return bool):
29
+ - LT, LTE, GT, GTE - e.g., LT($duration_ms, 1000)
30
+ - EQUALS($a, $b) - e.g., EQUALS($method, "GET")
31
+ - IN($field, val1, val2, ...) - e.g., IN($status, 200, 201, 204)
32
+
33
+ BOOLEAN:
34
+ - EXISTS($field) - true if field is non-null
35
+ - NOT(cond), AND(a, b, ...), OR(a, b, ...)
36
+
37
+ MATH: MIN, MAX, SUM, SUB, MUL, DIV, MOD, LOG10
38
+
39
+ STRING:
40
+ - CONCAT($a, " ", $b) - join strings
41
+ - STARTS_WITH($str, "prefix"), ENDS_WITH, CONTAINS - return bool
42
+ - TO_LOWER($str), LENGTH($str)
43
+
44
+ REGEX (use backticks for patterns):
45
+ - REG_MATCH($str, `pattern`) - returns bool
46
+ - REG_VALUE($str, `^/api/(.+)`) - extracts first capture group
47
+ - REG_COUNT($str, `pattern`) - count matches
48
+
49
+ TIME:
50
+ - EVENT_TIMESTAMP() - event time as Unix timestamp
51
+ - UNIX_TIMESTAMP($field) - parse field as timestamp
52
+ - FORMAT_TIME("%Y-%m-%d", $timestamp_field) - strftime formatting
53
+
54
+ DATA: BUCKET($val, size) - numeric bucketing
55
+
56
+ TYPE CONVERSION: INT(), FLOAT(), BOOL(), STRING()
57
+
58
+ COMMON PATTERNS:
59
+ - SLI for SLOs (MUST return boolean; 1/0 coerced to true/false): LT($status_code, 500)
60
+ - Root span detection: NOT(EXISTS($trace.parent_id))
61
+ - Error classification: IF(GTE($status, 500), "server_error", IF(GTE($status, 400), "client_error", "success"))
62
+ """
63
+
64
+ DERIVED_COLUMN_DESCRIPTIONS = {
65
+ "honeycomb_list_derived_columns": (
66
+ "Lists all derived columns (calculated fields) in a dataset. "
67
+ "Use this to discover existing calculated fields before creating new ones, understand available computed metrics, or audit data transformations. "
68
+ "Requires the dataset slug parameter (use '__all__' to list environment-wide derived columns). "
69
+ "Returns a list of derived column objects including their IDs, aliases, expressions, and descriptions."
70
+ ),
71
+ "honeycomb_get_derived_column": (
72
+ "Retrieves detailed configuration for a specific derived column by ID. "
73
+ "Use this to inspect a derived column's expression syntax, alias, and description before modifying it. "
74
+ "Requires both the dataset slug and derived column ID parameters. "
75
+ "Returns the complete derived column configuration including the calculation expression and metadata."
76
+ ),
77
+ "honeycomb_create_derived_column": (
78
+ "Creates a new standalone derived column that calculates values from event fields using expressions. "
79
+ "Use this for general-purpose computed metrics, data normalization, or calculations that will be used in multiple queries. "
80
+ "NOTE: If you are creating a derived column specifically for an SLO, use honeycomb_create_slo instead with an inline SLI expression - it creates both in one operation. "
81
+ "Requires the dataset slug (use '__all__' for environment-wide), an alias (the column name), and an expression. "
82
+ "Optional description parameter documents the column's purpose for team members. "
83
+ + _DERIVED_COLUMN_SYNTAX_GUIDE
84
+ ),
85
+ "honeycomb_update_derived_column": (
86
+ "Updates an existing derived column's alias, expression, or description. "
87
+ "Use this to fix calculation logic, rename computed fields, or improve documentation as your understanding evolves. "
88
+ "Requires the dataset slug, derived column ID, and the complete updated configuration. "
89
+ "Note: Changing the expression only affects new queries - existing query results are not recalculated. "
90
+ + _DERIVED_COLUMN_SYNTAX_GUIDE
91
+ ),
92
+ "honeycomb_delete_derived_column": (
93
+ "Permanently deletes a derived column from a dataset. "
94
+ "Use this when removing unused calculated fields or cleaning up temporary analysis columns. "
95
+ "Requires both the dataset slug and derived column ID parameters. "
96
+ "Warning: This action cannot be undone. SLOs, triggers, or queries using this derived column may break if they reference it."
97
+ ),
98
+ }
99
+
100
+
101
+ def get_description(tool_name: str) -> str:
102
+ """Get the description for a tool in this resource."""
103
+ return DERIVED_COLUMN_DESCRIPTIONS[tool_name]
104
+
105
+
106
+ def create_tool_definition(
107
+ name: str,
108
+ description: str,
109
+ input_schema: dict[str, Any],
110
+ input_examples: list[dict[str, Any]] | None = None,
111
+ ) -> dict[str, Any]:
112
+ """Create a Claude tool definition."""
113
+ from honeycomb.tools.descriptions import validate_description
114
+ from honeycomb.tools.schemas import add_metadata_fields, validate_schema, validate_tool_name
115
+
116
+ validate_tool_name(name)
117
+ validate_description(description)
118
+ validate_schema(input_schema)
119
+ add_metadata_fields(input_schema)
120
+
121
+ definition: dict[str, Any] = {
122
+ "name": name,
123
+ "description": description,
124
+ "input_schema": input_schema,
125
+ }
126
+
127
+ if input_examples:
128
+ definition["input_examples"] = input_examples
129
+
130
+ return definition
131
+
132
+
133
+ # ==============================================================================
134
+ # Derived Columns Tool Definitions
135
+ # ==============================================================================
136
+
137
+
138
+ def generate_list_derived_columns_tool() -> dict[str, Any]:
139
+ """Generate honeycomb_list_derived_columns tool definition."""
140
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset"]}
141
+
142
+ add_parameter(
143
+ schema,
144
+ "dataset",
145
+ "string",
146
+ "The dataset slug to list derived columns from (use '__all__' for environment-wide)",
147
+ required=True,
148
+ )
149
+
150
+ examples: list[dict[str, Any]] = [
151
+ {"dataset": "api-logs"},
152
+ {"dataset": "__all__"},
153
+ ]
154
+
155
+ return create_tool_definition(
156
+ name="honeycomb_list_derived_columns",
157
+ description=get_description("honeycomb_list_derived_columns"),
158
+ input_schema=schema,
159
+ input_examples=examples,
160
+ )
161
+
162
+
163
+ def generate_get_derived_column_tool() -> dict[str, Any]:
164
+ """Generate honeycomb_get_derived_column tool definition."""
165
+ schema: dict[str, Any] = {
166
+ "type": "object",
167
+ "properties": {},
168
+ "required": ["dataset", "derived_column_id"],
169
+ }
170
+
171
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
172
+ add_parameter(
173
+ schema, "derived_column_id", "string", "The derived column ID to retrieve", required=True
174
+ )
175
+
176
+ examples: list[dict[str, Any]] = [
177
+ {"dataset": "api-logs", "derived_column_id": "dc-123"},
178
+ {"dataset": "__all__", "derived_column_id": "dc-456"},
179
+ ]
180
+
181
+ return create_tool_definition(
182
+ name="honeycomb_get_derived_column",
183
+ description=get_description("honeycomb_get_derived_column"),
184
+ input_schema=schema,
185
+ input_examples=examples,
186
+ )
187
+
188
+
189
+ def generate_create_derived_column_tool() -> dict[str, Any]:
190
+ """Generate honeycomb_create_derived_column tool definition."""
191
+ base_schema = generate_schema_from_model(
192
+ DerivedColumnCreate,
193
+ exclude_fields={"id", "created_at", "updated_at"},
194
+ )
195
+
196
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset"]}
197
+ add_parameter(
198
+ schema,
199
+ "dataset",
200
+ "string",
201
+ "The dataset slug (use '__all__' for environment-wide)",
202
+ required=True,
203
+ )
204
+
205
+ schema["properties"].update(base_schema["properties"])
206
+ schema["required"].extend(base_schema.get("required", []))
207
+
208
+ examples: list[dict[str, Any]] = [
209
+ # Boolean flag
210
+ {
211
+ "dataset": "api-logs",
212
+ "alias": "is_error",
213
+ "expression": "IF(GTE($status_code, 500), 1, 0)",
214
+ "description": "1 if error, 0 otherwise",
215
+ },
216
+ # Categorization
217
+ {
218
+ "dataset": "api-logs",
219
+ "alias": "status_category",
220
+ "expression": "IF(LT($status_code, 400), 'success', IF(LT($status_code, 500), 'client_error', 'server_error'))",
221
+ },
222
+ # Environment-wide
223
+ {
224
+ "dataset": "__all__",
225
+ "alias": "request_success",
226
+ "expression": "IF(LT($status_code, 400), 1, 0)",
227
+ "description": "Success indicator for all datasets",
228
+ },
229
+ ]
230
+
231
+ return create_tool_definition(
232
+ name="honeycomb_create_derived_column",
233
+ description=get_description("honeycomb_create_derived_column"),
234
+ input_schema=schema,
235
+ input_examples=examples,
236
+ )
237
+
238
+
239
+ def generate_update_derived_column_tool() -> dict[str, Any]:
240
+ """Generate honeycomb_update_derived_column tool definition."""
241
+ base_schema = generate_schema_from_model(
242
+ DerivedColumnCreate,
243
+ exclude_fields={"id", "created_at", "updated_at"},
244
+ )
245
+
246
+ schema: dict[str, Any] = {
247
+ "type": "object",
248
+ "properties": {},
249
+ "required": ["dataset", "derived_column_id"],
250
+ }
251
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
252
+ add_parameter(
253
+ schema, "derived_column_id", "string", "The derived column ID to update", required=True
254
+ )
255
+
256
+ schema["properties"].update(base_schema["properties"])
257
+ schema["required"].extend(base_schema.get("required", []))
258
+
259
+ examples: list[dict[str, Any]] = [
260
+ {
261
+ "dataset": "api-logs",
262
+ "derived_column_id": "dc-123",
263
+ "alias": "is_error",
264
+ "expression": "IF(GTE($status_code, 500), 1, 0)",
265
+ "description": "Updated error flag",
266
+ },
267
+ ]
268
+
269
+ return create_tool_definition(
270
+ name="honeycomb_update_derived_column",
271
+ description=get_description("honeycomb_update_derived_column"),
272
+ input_schema=schema,
273
+ input_examples=examples,
274
+ )
275
+
276
+
277
+ def generate_delete_derived_column_tool() -> dict[str, Any]:
278
+ """Generate honeycomb_delete_derived_column tool definition."""
279
+ schema: dict[str, Any] = {
280
+ "type": "object",
281
+ "properties": {},
282
+ "required": ["dataset", "derived_column_id"],
283
+ }
284
+
285
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
286
+ add_parameter(
287
+ schema, "derived_column_id", "string", "The derived column ID to delete", required=True
288
+ )
289
+
290
+ examples: list[dict[str, Any]] = [
291
+ {"dataset": "api-logs", "derived_column_id": "dc-123"},
292
+ {"dataset": "__all__", "derived_column_id": "dc-456"},
293
+ ]
294
+
295
+ return create_tool_definition(
296
+ name="honeycomb_delete_derived_column",
297
+ description=get_description("honeycomb_delete_derived_column"),
298
+ input_schema=schema,
299
+ input_examples=examples,
300
+ )
301
+
302
+
303
+ def get_tools() -> list[dict[str, Any]]:
304
+ """Get all derived columns tool definitions."""
305
+ return [
306
+ generate_list_derived_columns_tool(),
307
+ generate_get_derived_column_tool(),
308
+ generate_create_derived_column_tool(),
309
+ generate_update_derived_column_tool(),
310
+ generate_delete_derived_column_tool(),
311
+ ]
@@ -0,0 +1,211 @@
1
+ """Environments tool definitions for Claude API.
2
+
3
+ This module provides tool generators and descriptions for
4
+ environments resources.
5
+ """
6
+
7
+ from typing import Any
8
+
9
+ from honeycomb.tools.schemas import add_parameter
10
+
11
+ # ==============================================================================
12
+ # Environments Descriptions
13
+ # ==============================================================================
14
+
15
+ ENVIRONMENT_DESCRIPTIONS = {
16
+ "honeycomb_list_environments": (
17
+ "Lists all environments for your authenticated team. "
18
+ "Use this to discover existing environments, understand team organization, or before creating API keys scoped to specific environments. "
19
+ "Requires management key authentication. The team is automatically detected from your credentials (no team parameter needed). "
20
+ "Returns a list of environment objects with their IDs, names, slugs, colors, descriptions, and delete protection status. "
21
+ "Environments help organize your telemetry data by separating production, staging, development, etc."
22
+ ),
23
+ "honeycomb_get_environment": (
24
+ "Retrieves detailed information about a specific environment by ID, optionally including its datasets. "
25
+ "Use this to inspect an environment's configuration or get a complete view of an environment including all its datasets. "
26
+ "Requires only the environment ID parameter - the team is automatically detected from your management key. "
27
+ "Set with_datasets=true to also return the list of datasets in this environment (useful for understanding environment contents). "
28
+ "Returns the environment configuration plus optionally a datasets array with all datasets in this environment."
29
+ ),
30
+ "honeycomb_create_environment": (
31
+ "Creates a new environment for organizing telemetry data within your authenticated team. "
32
+ "Use this when setting up new deployment stages (production, staging, dev), isolating customer data, or creating test environments. "
33
+ "Requires only the environment name - the team is automatically detected from your management key. "
34
+ "Optional parameters include description for documentation and color (blue, green, gold, red, purple, or light variants) for visual distinction. "
35
+ "The environment slug is auto-generated from the name and used for API operations and dataset scoping. "
36
+ "New environments are delete-protected by default to prevent accidental deletion."
37
+ ),
38
+ "honeycomb_update_environment": (
39
+ "Updates an existing environment's description, color, or delete protection status. "
40
+ "Use this to add documentation, change visual appearance, or enable/disable delete protection for production environments. "
41
+ "Requires environment ID and at least one of: description, color, or delete_protected (boolean). The team is automatically detected from your credentials. "
42
+ "Note: The name and slug cannot be changed after creation. Setting delete_protected=true prevents accidental deletion. "
43
+ "To delete a protected environment, you must first update it with delete_protected=false."
44
+ ),
45
+ "honeycomb_delete_environment": (
46
+ "Permanently deletes an environment from Honeycomb. "
47
+ "Use this when decommissioning deployment stages, cleaning up test environments, or reorganizing team structure. "
48
+ "Requires only the environment ID parameter - the team is automatically detected from your management key. "
49
+ "Warning: This action cannot be undone. The environment must not be delete-protected. "
50
+ "All API keys scoped to this environment will become invalid. Datasets are NOT deleted automatically."
51
+ ),
52
+ }
53
+
54
+
55
+ def get_description(tool_name: str) -> str:
56
+ """Get the description for a tool in this resource."""
57
+ return ENVIRONMENT_DESCRIPTIONS[tool_name]
58
+
59
+
60
+ def create_tool_definition(
61
+ name: str,
62
+ description: str,
63
+ input_schema: dict[str, Any],
64
+ input_examples: list[dict[str, Any]] | None = None,
65
+ ) -> dict[str, Any]:
66
+ """Create a Claude tool definition."""
67
+ from honeycomb.tools.descriptions import validate_description
68
+ from honeycomb.tools.schemas import add_metadata_fields, validate_schema, validate_tool_name
69
+
70
+ validate_tool_name(name)
71
+ validate_description(description)
72
+ validate_schema(input_schema)
73
+ add_metadata_fields(input_schema)
74
+
75
+ definition: dict[str, Any] = {
76
+ "name": name,
77
+ "description": description,
78
+ "input_schema": input_schema,
79
+ }
80
+
81
+ if input_examples:
82
+ definition["input_examples"] = input_examples
83
+
84
+ return definition
85
+
86
+
87
+ # ==============================================================================
88
+ # Environments Tool Definitions
89
+ # ==============================================================================
90
+
91
+
92
+ def generate_list_environments_tool() -> dict[str, Any]:
93
+ """Generate honeycomb_list_environments tool definition."""
94
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": []}
95
+
96
+ examples: list[dict[str, Any]] = [{}]
97
+
98
+ return create_tool_definition(
99
+ name="honeycomb_list_environments",
100
+ description=get_description("honeycomb_list_environments"),
101
+ input_schema=schema,
102
+ input_examples=examples,
103
+ )
104
+
105
+
106
+ def generate_get_environment_tool() -> dict[str, Any]:
107
+ """Generate honeycomb_get_environment tool definition."""
108
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["env_id"]}
109
+
110
+ add_parameter(schema, "env_id", "string", "The environment ID", required=True)
111
+ add_parameter(
112
+ schema,
113
+ "with_datasets",
114
+ "boolean",
115
+ "Also return list of datasets in this environment",
116
+ required=False,
117
+ )
118
+
119
+ examples: list[dict[str, Any]] = [
120
+ {"env_id": "hcaen_123"},
121
+ {"env_id": "hcaen_123", "with_datasets": True},
122
+ ]
123
+
124
+ return create_tool_definition(
125
+ name="honeycomb_get_environment",
126
+ description=get_description("honeycomb_get_environment"),
127
+ input_schema=schema,
128
+ input_examples=examples,
129
+ )
130
+
131
+
132
+ def generate_create_environment_tool() -> dict[str, Any]:
133
+ """Generate honeycomb_create_environment tool definition."""
134
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["name"]}
135
+
136
+ add_parameter(schema, "name", "string", "Environment name", required=True)
137
+ add_parameter(schema, "description", "string", "Environment description", required=False)
138
+ add_parameter(
139
+ schema,
140
+ "color",
141
+ "string",
142
+ "Display color (blue, green, gold, red, purple, or light variants)",
143
+ required=False,
144
+ )
145
+
146
+ examples: list[dict[str, Any]] = [
147
+ {"name": "Production"},
148
+ {"name": "Staging", "color": "blue", "description": "Staging env"},
149
+ ]
150
+
151
+ return create_tool_definition(
152
+ name="honeycomb_create_environment",
153
+ description=get_description("honeycomb_create_environment"),
154
+ input_schema=schema,
155
+ input_examples=examples,
156
+ )
157
+
158
+
159
+ def generate_update_environment_tool() -> dict[str, Any]:
160
+ """Generate honeycomb_update_environment tool definition."""
161
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["env_id"]}
162
+
163
+ add_parameter(schema, "env_id", "string", "The environment ID", required=True)
164
+ add_parameter(schema, "description", "string", "New description", required=False)
165
+ add_parameter(schema, "color", "string", "New color", required=False)
166
+ add_parameter(
167
+ schema,
168
+ "delete_protected",
169
+ "boolean",
170
+ "Enable (true) or disable (false) delete protection",
171
+ required=False,
172
+ )
173
+
174
+ examples: list[dict[str, Any]] = [
175
+ {"env_id": "hcaen_123", "description": "Updated description"},
176
+ {"env_id": "hcaen_123", "delete_protected": False},
177
+ ]
178
+
179
+ return create_tool_definition(
180
+ name="honeycomb_update_environment",
181
+ description=get_description("honeycomb_update_environment"),
182
+ input_schema=schema,
183
+ input_examples=examples,
184
+ )
185
+
186
+
187
+ def generate_delete_environment_tool() -> dict[str, Any]:
188
+ """Generate honeycomb_delete_environment tool definition."""
189
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["env_id"]}
190
+
191
+ add_parameter(schema, "env_id", "string", "The environment ID to delete", required=True)
192
+
193
+ examples: list[dict[str, Any]] = [{"env_id": "hcaen_123"}]
194
+
195
+ return create_tool_definition(
196
+ name="honeycomb_delete_environment",
197
+ description=get_description("honeycomb_delete_environment"),
198
+ input_schema=schema,
199
+ input_examples=examples,
200
+ )
201
+
202
+
203
+ def get_tools() -> list[dict[str, Any]]:
204
+ """Get all environments tool definitions."""
205
+ return [
206
+ generate_list_environments_tool(),
207
+ generate_get_environment_tool(),
208
+ generate_create_environment_tool(),
209
+ generate_update_environment_tool(),
210
+ generate_delete_environment_tool(),
211
+ ]
@@ -0,0 +1,158 @@
1
+ """Events tool definitions for Claude API.
2
+
3
+ This module provides tool generators and descriptions for
4
+ events resources.
5
+ """
6
+
7
+ from typing import Any
8
+
9
+ from honeycomb.tools.schemas import add_parameter
10
+
11
+ # ==============================================================================
12
+ # Events Descriptions
13
+ # ==============================================================================
14
+
15
+ EVENT_DESCRIPTIONS = {
16
+ "honeycomb_send_event": (
17
+ "Sends a SINGLE telemetry event to a Honeycomb dataset. Use ONLY for one-off events or testing. "
18
+ "STRUCTURE: Flat - parameters are 'dataset' (string) and 'data' (object with key-value pairs) provided directly at top level. "
19
+ "Example: {dataset: 'api-logs', data: {status_code: 200, endpoint: '/api/users'}}. "
20
+ "For 2+ events, you MUST use honeycomb_send_batch_events instead. "
21
+ "Optional parameters: timestamp (Unix seconds), samplerate (integer). "
22
+ "IMPORTANT: This is for SINGLE events only - batch tool is required for multiple events."
23
+ ),
24
+ "honeycomb_send_batch_events": (
25
+ "Sends MULTIPLE telemetry events to a Honeycomb dataset in a single API call (preferred for 2+ events). "
26
+ "STRUCTURE: Nested - requires 'dataset' (string) and 'events' (array) where EACH event object has a 'data' field. "
27
+ "Example: {dataset: 'api-logs', events: [{data: {status_code: 200}}, {data: {status_code: 201}}]}. "
28
+ "CRITICAL: The 'events' parameter is REQUIRED and must be an ARRAY of event objects. Each event MUST have a 'data' field containing key-value pairs. "
29
+ "Per-event optional fields: 'time' (ISO8601 string like '2024-01-15T10:30:00Z'), 'samplerate' (integer). "
30
+ "Use this for efficient bulk data ingestion, application logs, traces, or metrics. "
31
+ "Returns status for each event, allowing identification and retry of failed events."
32
+ ),
33
+ }
34
+
35
+
36
+ def get_description(tool_name: str) -> str:
37
+ """Get the description for a tool in this resource."""
38
+ return EVENT_DESCRIPTIONS[tool_name]
39
+
40
+
41
+ def create_tool_definition(
42
+ name: str,
43
+ description: str,
44
+ input_schema: dict[str, Any],
45
+ input_examples: list[dict[str, Any]] | None = None,
46
+ ) -> dict[str, Any]:
47
+ """Create a Claude tool definition."""
48
+ from honeycomb.tools.descriptions import validate_description
49
+ from honeycomb.tools.schemas import add_metadata_fields, validate_schema, validate_tool_name
50
+
51
+ validate_tool_name(name)
52
+ validate_description(description)
53
+ validate_schema(input_schema)
54
+ add_metadata_fields(input_schema)
55
+
56
+ definition: dict[str, Any] = {
57
+ "name": name,
58
+ "description": description,
59
+ "input_schema": input_schema,
60
+ }
61
+
62
+ if input_examples:
63
+ definition["input_examples"] = input_examples
64
+
65
+ return definition
66
+
67
+
68
+ # ==============================================================================
69
+ # Events Tool Definitions
70
+ # ==============================================================================
71
+
72
+
73
+ def generate_send_event_tool() -> dict[str, Any]:
74
+ """Generate honeycomb_send_event tool definition."""
75
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset", "data"]}
76
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
77
+ add_parameter(schema, "data", "object", "Event data as key-value pairs", required=True)
78
+ add_parameter(schema, "timestamp", "integer", "Unix timestamp for the event", required=False)
79
+ add_parameter(schema, "samplerate", "integer", "Sample rate (default: 1)", required=False)
80
+
81
+ examples: list[dict[str, Any]] = [
82
+ {
83
+ "dataset": "api-logs",
84
+ "data": {"endpoint": "/api/users", "duration_ms": 42, "status_code": 200},
85
+ },
86
+ {
87
+ "dataset": "production",
88
+ "data": {"service": "auth", "latency": 15},
89
+ "timestamp": 1640000000,
90
+ },
91
+ ]
92
+
93
+ return create_tool_definition(
94
+ name="honeycomb_send_event",
95
+ description=get_description("honeycomb_send_event"),
96
+ input_schema=schema,
97
+ input_examples=examples,
98
+ )
99
+
100
+
101
+ def generate_send_batch_events_tool() -> dict[str, Any]:
102
+ """Generate honeycomb_send_batch_events tool definition."""
103
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset", "events"]}
104
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
105
+
106
+ schema["properties"]["events"] = {
107
+ "type": "array",
108
+ "description": "Array of event objects. Each event must have a 'data' field with event payload.",
109
+ "items": {
110
+ "type": "object",
111
+ "properties": {
112
+ "data": {
113
+ "type": "object",
114
+ "description": "Event payload as key-value pairs (required for each event)",
115
+ },
116
+ "time": {
117
+ "type": "string",
118
+ "description": "Event timestamp in ISO8601 format (e.g., '2024-01-15T10:30:00Z'). Optional, defaults to server time.",
119
+ },
120
+ "samplerate": {
121
+ "type": "integer",
122
+ "description": "Sample rate for this event (optional, defaults to 1)",
123
+ },
124
+ },
125
+ "required": ["data"],
126
+ },
127
+ }
128
+
129
+ examples: list[dict[str, Any]] = [
130
+ {
131
+ "dataset": "api-logs",
132
+ "events": [
133
+ {
134
+ "data": {"endpoint": "/api/users", "duration_ms": 42, "status_code": 200},
135
+ "time": "2024-01-15T10:30:00Z",
136
+ },
137
+ {
138
+ "data": {"endpoint": "/api/posts", "duration_ms": 18, "status_code": 201},
139
+ "time": "2024-01-15T10:30:15Z",
140
+ },
141
+ ],
142
+ },
143
+ ]
144
+
145
+ return create_tool_definition(
146
+ name="honeycomb_send_batch_events",
147
+ description=get_description("honeycomb_send_batch_events"),
148
+ input_schema=schema,
149
+ input_examples=examples,
150
+ )
151
+
152
+
153
+ def get_tools() -> list[dict[str, Any]]:
154
+ """Get all events tool definitions."""
155
+ return [
156
+ generate_send_event_tool(),
157
+ generate_send_batch_events_tool(),
158
+ ]