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,257 @@
1
+ """Columns tool definitions for Claude API.
2
+
3
+ This module provides tool generators and descriptions for
4
+ columns resources.
5
+ """
6
+
7
+ from typing import Any
8
+
9
+ from honeycomb.models import ColumnCreate
10
+ from honeycomb.tools.schemas import add_parameter, generate_schema_from_model
11
+
12
+ # ==============================================================================
13
+ # Columns Descriptions
14
+ # ==============================================================================
15
+
16
+ COLUMN_DESCRIPTIONS = {
17
+ "honeycomb_list_columns": (
18
+ "Lists all columns defined in a dataset's schema. "
19
+ "Use this to discover available fields for querying, understand your data structure, or validate that new columns are being sent correctly. "
20
+ "Requires the dataset slug parameter. "
21
+ "Returns a list of column objects including their IDs, key names, types (string, integer, float, boolean), descriptions, hidden status, and timestamps."
22
+ ),
23
+ "honeycomb_get_column": (
24
+ "Retrieves detailed information about a specific column by its ID. "
25
+ "Use this to inspect a column's configuration including its data type, visibility, description, and usage statistics. "
26
+ "Requires both the dataset slug and column ID parameters. "
27
+ "Returns the complete column configuration including creation timestamp, last update timestamp, and last written timestamp."
28
+ ),
29
+ "honeycomb_create_column": (
30
+ "Creates a new column in a dataset's schema. "
31
+ "Use this to pre-define columns before sending data, add metadata like descriptions, or create hidden columns for internal fields. "
32
+ "Requires the dataset slug and key_name (the column identifier). "
33
+ "Optional parameters include type (string, integer, float, boolean - defaults to string), description for documentation, and hidden flag to exclude from autocomplete. "
34
+ "Columns are automatically created when new fields appear in events, but pre-defining them allows you to set type and visibility."
35
+ ),
36
+ "honeycomb_update_column": (
37
+ "Updates an existing column's description, type, or visibility settings. "
38
+ "Use this to add documentation to columns, change data types, or hide internal debugging fields from query builders. "
39
+ "Requires the dataset slug, column ID, and the complete updated column configuration. "
40
+ "Note: Changing the type doesn't convert existing data, it only affects how the column is displayed and queried in the UI."
41
+ ),
42
+ "honeycomb_delete_column": (
43
+ "Permanently deletes a column from a dataset's schema. "
44
+ "Use this when cleaning up unused columns or removing fields that are no longer being sent. "
45
+ "Requires both the dataset slug and column ID parameters. "
46
+ "Warning: This action cannot be undone. The column definition will be removed, but existing event data containing this field is preserved."
47
+ ),
48
+ }
49
+
50
+
51
+ def get_description(tool_name: str) -> str:
52
+ """Get the description for a tool in this resource."""
53
+ return COLUMN_DESCRIPTIONS[tool_name]
54
+
55
+
56
+ def create_tool_definition(
57
+ name: str,
58
+ description: str,
59
+ input_schema: dict[str, Any],
60
+ input_examples: list[dict[str, Any]] | None = None,
61
+ ) -> dict[str, Any]:
62
+ """Create a Claude tool definition."""
63
+ from honeycomb.tools.descriptions import validate_description
64
+ from honeycomb.tools.schemas import add_metadata_fields, validate_schema, validate_tool_name
65
+
66
+ validate_tool_name(name)
67
+ validate_description(description)
68
+ validate_schema(input_schema)
69
+ add_metadata_fields(input_schema)
70
+
71
+ definition: dict[str, Any] = {
72
+ "name": name,
73
+ "description": description,
74
+ "input_schema": input_schema,
75
+ }
76
+
77
+ if input_examples:
78
+ definition["input_examples"] = input_examples
79
+
80
+ return definition
81
+
82
+
83
+ # ==============================================================================
84
+ # Columns Tool Definitions
85
+ # ==============================================================================
86
+
87
+
88
+ def generate_list_columns_tool() -> dict[str, Any]:
89
+ """Generate honeycomb_list_columns tool definition."""
90
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset"]}
91
+
92
+ add_parameter(
93
+ schema, "dataset", "string", "The dataset slug to list columns from", required=True
94
+ )
95
+
96
+ examples: list[dict[str, Any]] = [
97
+ {"dataset": "api-logs"},
98
+ {"dataset": "production"},
99
+ ]
100
+
101
+ return create_tool_definition(
102
+ name="honeycomb_list_columns",
103
+ description=get_description("honeycomb_list_columns"),
104
+ input_schema=schema,
105
+ input_examples=examples,
106
+ )
107
+
108
+
109
+ def generate_get_column_tool() -> dict[str, Any]:
110
+ """Generate honeycomb_get_column tool definition."""
111
+ schema: dict[str, Any] = {
112
+ "type": "object",
113
+ "properties": {},
114
+ "required": ["dataset", "column_id"],
115
+ }
116
+
117
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
118
+ add_parameter(schema, "column_id", "string", "The column ID to retrieve", required=True)
119
+
120
+ examples: list[dict[str, Any]] = [
121
+ {"dataset": "api-logs", "column_id": "col-123"},
122
+ {"dataset": "production", "column_id": "col-456"},
123
+ ]
124
+
125
+ return create_tool_definition(
126
+ name="honeycomb_get_column",
127
+ description=get_description("honeycomb_get_column"),
128
+ input_schema=schema,
129
+ input_examples=examples,
130
+ )
131
+
132
+
133
+ def generate_create_column_tool() -> dict[str, Any]:
134
+ """Generate honeycomb_create_column tool definition."""
135
+ base_schema = generate_schema_from_model(
136
+ ColumnCreate,
137
+ exclude_fields={"id", "created_at", "updated_at", "last_written"},
138
+ )
139
+
140
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset"]}
141
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
142
+
143
+ schema["properties"].update(base_schema["properties"])
144
+ schema["required"].extend(base_schema.get("required", []))
145
+
146
+ # Add definitions if present
147
+ if "$defs" in base_schema:
148
+ schema["$defs"] = base_schema["$defs"]
149
+
150
+ examples: list[dict[str, Any]] = [
151
+ # Minimal example (string column)
152
+ {"dataset": "api-logs", "key_name": "endpoint", "type": "string"},
153
+ # With description and type
154
+ {
155
+ "dataset": "api-logs",
156
+ "key_name": "duration_ms",
157
+ "type": "float",
158
+ "description": "Request duration in milliseconds",
159
+ },
160
+ # Hidden column
161
+ {
162
+ "dataset": "production",
163
+ "key_name": "internal_id",
164
+ "type": "integer",
165
+ "hidden": True,
166
+ "description": "Internal debugging ID",
167
+ },
168
+ ]
169
+
170
+ return create_tool_definition(
171
+ name="honeycomb_create_column",
172
+ description=get_description("honeycomb_create_column"),
173
+ input_schema=schema,
174
+ input_examples=examples,
175
+ )
176
+
177
+
178
+ def generate_update_column_tool() -> dict[str, Any]:
179
+ """Generate honeycomb_update_column tool definition."""
180
+ base_schema = generate_schema_from_model(
181
+ ColumnCreate,
182
+ exclude_fields={"id", "created_at", "updated_at", "last_written"},
183
+ )
184
+
185
+ schema: dict[str, Any] = {
186
+ "type": "object",
187
+ "properties": {},
188
+ "required": ["dataset", "column_id"],
189
+ }
190
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
191
+ add_parameter(schema, "column_id", "string", "The column ID to update", required=True)
192
+
193
+ schema["properties"].update(base_schema["properties"])
194
+ schema["required"].extend(base_schema.get("required", []))
195
+
196
+ # Add definitions if present
197
+ if "$defs" in base_schema:
198
+ schema["$defs"] = base_schema["$defs"]
199
+
200
+ examples: list[dict[str, Any]] = [
201
+ {
202
+ "dataset": "api-logs",
203
+ "column_id": "col-123",
204
+ "key_name": "endpoint",
205
+ "type": "string",
206
+ "description": "API endpoint path",
207
+ },
208
+ {
209
+ "dataset": "production",
210
+ "column_id": "col-456",
211
+ "key_name": "status_code",
212
+ "type": "integer",
213
+ "hidden": False,
214
+ },
215
+ ]
216
+
217
+ return create_tool_definition(
218
+ name="honeycomb_update_column",
219
+ description=get_description("honeycomb_update_column"),
220
+ input_schema=schema,
221
+ input_examples=examples,
222
+ )
223
+
224
+
225
+ def generate_delete_column_tool() -> dict[str, Any]:
226
+ """Generate honeycomb_delete_column tool definition."""
227
+ schema: dict[str, Any] = {
228
+ "type": "object",
229
+ "properties": {},
230
+ "required": ["dataset", "column_id"],
231
+ }
232
+
233
+ add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
234
+ add_parameter(schema, "column_id", "string", "The column ID to delete", required=True)
235
+
236
+ examples: list[dict[str, Any]] = [
237
+ {"dataset": "api-logs", "column_id": "col-123"},
238
+ {"dataset": "production", "column_id": "col-456"},
239
+ ]
240
+
241
+ return create_tool_definition(
242
+ name="honeycomb_delete_column",
243
+ description=get_description("honeycomb_delete_column"),
244
+ input_schema=schema,
245
+ input_examples=examples,
246
+ )
247
+
248
+
249
+ def get_tools() -> list[dict[str, Any]]:
250
+ """Get all columns tool definitions."""
251
+ return [
252
+ generate_list_columns_tool(),
253
+ generate_get_column_tool(),
254
+ generate_create_column_tool(),
255
+ generate_update_column_tool(),
256
+ generate_delete_column_tool(),
257
+ ]
@@ -0,0 +1,215 @@
1
+ """Datasets tool definitions for Claude API.
2
+
3
+ This module provides tool generators and descriptions for
4
+ datasets resources.
5
+ """
6
+
7
+ from typing import Any
8
+
9
+ from honeycomb.models import DatasetCreate, DatasetUpdate
10
+ from honeycomb.tools.schemas import add_parameter, generate_schema_from_model
11
+
12
+ # ==============================================================================
13
+ # Datasets Descriptions
14
+ # ==============================================================================
15
+
16
+ DATASET_DESCRIPTIONS = {
17
+ "honeycomb_list_datasets": (
18
+ "Lists all datasets in your Honeycomb environment (no parameters required). "
19
+ "Use this to discover existing datasets before creating new ones, when setting up observability for a new service, or when migrating data from another platform. "
20
+ "This operation requires no parameters - it automatically lists all datasets you have access to. "
21
+ "Returns a list of dataset objects including their slugs, names, descriptions, and metadata like creation timestamps and column counts."
22
+ ),
23
+ "honeycomb_get_dataset": (
24
+ "Retrieves detailed information about a specific dataset by its slug. "
25
+ "Use this to inspect a dataset's configuration including its name, description, JSON expansion settings, and usage statistics. "
26
+ "Requires the dataset slug parameter. "
27
+ "Returns the complete dataset configuration including creation timestamp, last written timestamp, and regular columns count."
28
+ ),
29
+ "honeycomb_create_dataset": (
30
+ "Creates a new dataset to store telemetry data in Honeycomb. "
31
+ "Use this when setting up observability for a new service, creating test environments, or segmenting data by application or team. "
32
+ "Requires a name parameter which will be converted to a URL-safe slug. "
33
+ "Optional parameters include description for documentation and expand_json_depth (0-10) to automatically expand nested JSON fields into separate columns. "
34
+ "The dataset slug will be automatically generated from the name and used for API operations."
35
+ ),
36
+ "honeycomb_update_dataset": (
37
+ "Updates an existing dataset's name, description, JSON expansion settings, or delete protection. "
38
+ "Use this to correct dataset metadata, add documentation, adjust JSON parsing behavior, or toggle delete protection. "
39
+ "Requires the dataset slug. All other fields are optional - only provided fields will be updated. "
40
+ "Set delete_protected=true to prevent accidental deletion, or delete_protected=false to allow deletion. "
41
+ "Note: The slug itself cannot be changed. Changing expand_json_depth only affects new events, not existing data."
42
+ ),
43
+ "honeycomb_delete_dataset": (
44
+ "Permanently deletes a dataset and all its data from Honeycomb. "
45
+ "Use this when decommissioning services, cleaning up test datasets, or consolidating data storage. "
46
+ "Requires the dataset slug parameter. "
47
+ "Warning: This action cannot be undone. All events, columns, queries, triggers, and SLOs in this dataset will be permanently deleted. "
48
+ "Note: Datasets with delete protection enabled cannot be deleted. Use honeycomb_update_dataset to disable delete_protected first."
49
+ ),
50
+ }
51
+
52
+
53
+ def get_description(tool_name: str) -> str:
54
+ """Get the description for a tool in this resource."""
55
+ return DATASET_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
+ # Datasets Tool Definitions
87
+ # ==============================================================================
88
+
89
+
90
+ def generate_list_datasets_tool() -> dict[str, Any]:
91
+ """Generate honeycomb_list_datasets tool definition."""
92
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": []}
93
+
94
+ examples: list[dict[str, Any]] = [
95
+ {}, # List all datasets
96
+ ]
97
+
98
+ return create_tool_definition(
99
+ name="honeycomb_list_datasets",
100
+ description=get_description("honeycomb_list_datasets"),
101
+ input_schema=schema,
102
+ input_examples=examples,
103
+ )
104
+
105
+
106
+ def generate_get_dataset_tool() -> dict[str, Any]:
107
+ """Generate honeycomb_get_dataset tool definition."""
108
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["slug"]}
109
+
110
+ add_parameter(schema, "slug", "string", "The dataset slug to retrieve", required=True)
111
+
112
+ examples: list[dict[str, Any]] = [
113
+ {"slug": "api-logs"},
114
+ {"slug": "production"},
115
+ ]
116
+
117
+ return create_tool_definition(
118
+ name="honeycomb_get_dataset",
119
+ description=get_description("honeycomb_get_dataset"),
120
+ input_schema=schema,
121
+ input_examples=examples,
122
+ )
123
+
124
+
125
+ def generate_create_dataset_tool() -> dict[str, Any]:
126
+ """Generate honeycomb_create_dataset tool definition."""
127
+ # Start with DatasetCreate schema
128
+ base_schema = generate_schema_from_model(
129
+ DatasetCreate,
130
+ exclude_fields={"created_at", "last_written_at", "slug", "regular_columns_count"},
131
+ )
132
+
133
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": []}
134
+ schema["properties"].update(base_schema["properties"])
135
+ schema["required"].extend(base_schema.get("required", []))
136
+
137
+ examples: list[dict[str, Any]] = [
138
+ # Minimal example
139
+ {"name": "api-logs"},
140
+ # With description
141
+ {
142
+ "name": "production-logs",
143
+ "description": "Production API logs from main services",
144
+ },
145
+ # With JSON expansion
146
+ {
147
+ "name": "trace-data",
148
+ "description": "Distributed traces with nested JSON",
149
+ "expand_json_depth": 3,
150
+ },
151
+ ]
152
+
153
+ return create_tool_definition(
154
+ name="honeycomb_create_dataset",
155
+ description=get_description("honeycomb_create_dataset"),
156
+ input_schema=schema,
157
+ input_examples=examples,
158
+ )
159
+
160
+
161
+ def generate_update_dataset_tool() -> dict[str, Any]:
162
+ """Generate honeycomb_update_dataset tool definition."""
163
+ # Use DatasetUpdate which supports partial updates and delete_protected
164
+ base_schema = generate_schema_from_model(DatasetUpdate)
165
+
166
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["slug"]}
167
+ add_parameter(schema, "slug", "string", "The dataset slug to update", required=True)
168
+
169
+ # Add properties from DatasetUpdate (all optional)
170
+ schema["properties"].update(base_schema["properties"])
171
+ # Don't extend required - DatasetUpdate fields are all optional
172
+
173
+ examples: list[dict[str, Any]] = [
174
+ {"slug": "api-logs", "name": "API Logs", "description": "Updated description"},
175
+ {"slug": "production", "expand_json_depth": 5},
176
+ {"slug": "critical-data", "delete_protected": True},
177
+ {"slug": "test-dataset", "delete_protected": False},
178
+ ]
179
+
180
+ return create_tool_definition(
181
+ name="honeycomb_update_dataset",
182
+ description=get_description("honeycomb_update_dataset"),
183
+ input_schema=schema,
184
+ input_examples=examples,
185
+ )
186
+
187
+
188
+ def generate_delete_dataset_tool() -> dict[str, Any]:
189
+ """Generate honeycomb_delete_dataset tool definition."""
190
+ schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["slug"]}
191
+
192
+ add_parameter(schema, "slug", "string", "The dataset slug to delete", required=True)
193
+
194
+ examples: list[dict[str, Any]] = [
195
+ {"slug": "test-dataset"},
196
+ {"slug": "old-logs"},
197
+ ]
198
+
199
+ return create_tool_definition(
200
+ name="honeycomb_delete_dataset",
201
+ description=get_description("honeycomb_delete_dataset"),
202
+ input_schema=schema,
203
+ input_examples=examples,
204
+ )
205
+
206
+
207
+ def get_tools() -> list[dict[str, Any]]:
208
+ """Get all datasets tool definitions."""
209
+ return [
210
+ generate_list_datasets_tool(),
211
+ generate_get_dataset_tool(),
212
+ generate_create_dataset_tool(),
213
+ generate_update_dataset_tool(),
214
+ generate_delete_dataset_tool(),
215
+ ]