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
@@ -1,16 +1,13 @@
1
- from typing import Any, TypeVar, Optional, BinaryIO, TextIO, TYPE_CHECKING
1
+ import datetime
2
+ from typing import (TYPE_CHECKING, Any, BinaryIO, Optional, TextIO, TypeVar,
3
+ Union, cast)
2
4
 
3
5
  from attrs import define as _attrs_define
4
6
  from attrs import field as _attrs_field
5
-
6
- from ..types import UNSET, Unset
7
+ from dateutil.parser import isoparse
7
8
 
8
9
  from ..models.webhook_recipient_type import WebhookRecipientType
9
10
  from ..types import UNSET, Unset
10
- from dateutil.parser import isoparse
11
- from typing import cast
12
- from typing import Union
13
- import datetime
14
11
 
15
12
  if TYPE_CHECKING:
16
13
  from ..models.webhook_recipient_details import WebhookRecipientDetails
@@ -1,17 +1,15 @@
1
- from typing import Any, TypeVar, Optional, BinaryIO, TextIO, TYPE_CHECKING
1
+ from typing import (TYPE_CHECKING, Any, BinaryIO, Optional, TextIO, TypeVar,
2
+ Union, cast)
2
3
 
3
4
  from attrs import define as _attrs_define
4
5
  from attrs import field as _attrs_field
5
6
 
6
7
  from ..types import UNSET, Unset
7
8
 
8
- from ..types import UNSET, Unset
9
- from typing import cast
10
- from typing import Union
11
-
12
9
  if TYPE_CHECKING:
13
10
  from ..models.webhook_header import WebhookHeader
14
- from ..models.webhook_recipient_details_webhook_payloads import WebhookRecipientDetailsWebhookPayloads
11
+ from ..models.webhook_recipient_details_webhook_payloads import \
12
+ WebhookRecipientDetailsWebhookPayloads
15
13
 
16
14
 
17
15
 
@@ -44,7 +42,8 @@ class WebhookRecipientDetails:
44
42
 
45
43
  def to_dict(self) -> dict[str, Any]:
46
44
  from ..models.webhook_header import WebhookHeader
47
- from ..models.webhook_recipient_details_webhook_payloads import WebhookRecipientDetailsWebhookPayloads
45
+ from ..models.webhook_recipient_details_webhook_payloads import \
46
+ WebhookRecipientDetailsWebhookPayloads
48
47
  webhook_name = self.webhook_name
49
48
 
50
49
  webhook_url = self.webhook_url
@@ -85,7 +84,8 @@ class WebhookRecipientDetails:
85
84
  @classmethod
86
85
  def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
87
86
  from ..models.webhook_header import WebhookHeader
88
- from ..models.webhook_recipient_details_webhook_payloads import WebhookRecipientDetailsWebhookPayloads
87
+ from ..models.webhook_recipient_details_webhook_payloads import \
88
+ WebhookRecipientDetailsWebhookPayloads
89
89
  d = src_dict.copy()
90
90
  webhook_name = d.pop("webhook_name")
91
91
 
@@ -1,17 +1,15 @@
1
- from typing import Any, TypeVar, Optional, BinaryIO, TextIO, TYPE_CHECKING
1
+ from typing import (TYPE_CHECKING, Any, BinaryIO, Optional, TextIO, TypeVar,
2
+ Union, cast)
2
3
 
3
4
  from attrs import define as _attrs_define
4
5
  from attrs import field as _attrs_field
5
6
 
6
7
  from ..types import UNSET, Unset
7
8
 
8
- from ..types import UNSET, Unset
9
- from typing import cast
10
- from typing import Union
11
-
12
9
  if TYPE_CHECKING:
13
10
  from ..models.template_variable_definition import TemplateVariableDefinition
14
- from ..models.webhook_recipient_details_webhook_payloads_payload_templates import WebhookRecipientDetailsWebhookPayloadsPayloadTemplates
11
+ from ..models.webhook_recipient_details_webhook_payloads_payload_templates import \
12
+ WebhookRecipientDetailsWebhookPayloadsPayloadTemplates
15
13
 
16
14
 
17
15
 
@@ -37,8 +35,10 @@ class WebhookRecipientDetailsWebhookPayloads:
37
35
 
38
36
 
39
37
  def to_dict(self) -> dict[str, Any]:
40
- from ..models.template_variable_definition import TemplateVariableDefinition
41
- from ..models.webhook_recipient_details_webhook_payloads_payload_templates import WebhookRecipientDetailsWebhookPayloadsPayloadTemplates
38
+ from ..models.template_variable_definition import \
39
+ TemplateVariableDefinition
40
+ from ..models.webhook_recipient_details_webhook_payloads_payload_templates import \
41
+ WebhookRecipientDetailsWebhookPayloadsPayloadTemplates
42
42
  template_variables: Union[Unset, list[dict[str, Any]]] = UNSET
43
43
  if not isinstance(self.template_variables, Unset):
44
44
  template_variables = []
@@ -68,8 +68,10 @@ class WebhookRecipientDetailsWebhookPayloads:
68
68
 
69
69
  @classmethod
70
70
  def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
71
- from ..models.template_variable_definition import TemplateVariableDefinition
72
- from ..models.webhook_recipient_details_webhook_payloads_payload_templates import WebhookRecipientDetailsWebhookPayloadsPayloadTemplates
71
+ from ..models.template_variable_definition import \
72
+ TemplateVariableDefinition
73
+ from ..models.webhook_recipient_details_webhook_payloads_payload_templates import \
74
+ WebhookRecipientDetailsWebhookPayloadsPayloadTemplates
73
75
  d = src_dict.copy()
74
76
  template_variables = []
75
77
  _template_variables = d.pop("template_variables", UNSET)
@@ -1,14 +1,11 @@
1
- from typing import Any, TypeVar, Optional, BinaryIO, TextIO, TYPE_CHECKING
1
+ from typing import (TYPE_CHECKING, Any, BinaryIO, Optional, TextIO, TypeVar,
2
+ Union, cast)
2
3
 
3
4
  from attrs import define as _attrs_define
4
5
  from attrs import field as _attrs_field
5
6
 
6
7
  from ..types import UNSET, Unset
7
8
 
8
- from ..types import UNSET, Unset
9
- from typing import cast
10
- from typing import Union
11
-
12
9
  if TYPE_CHECKING:
13
10
  from ..models.payload_template import PayloadTemplate
14
11
 
@@ -1,5 +1,6 @@
1
1
  from enum import Enum
2
2
 
3
+
3
4
  class WebhookRecipientType(str, Enum):
4
5
  WEBHOOK = "webhook"
5
6
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  from collections.abc import MutableMapping
4
4
  from http import HTTPStatus
5
- from typing import BinaryIO, Generic, Optional, TypeVar, Literal
5
+ from typing import BinaryIO, Generic, Literal, Optional, TypeVar
6
6
 
7
7
  from attrs import define
8
8
 
@@ -0,0 +1,85 @@
1
+ """
2
+ CLI for Honeycomb API operations.
3
+
4
+ Provides commands for managing triggers, SLOs, boards, queries, datasets,
5
+ markers, recipients, and derived columns.
6
+ """
7
+
8
+ import typer
9
+ from rich.console import Console
10
+
11
+ app = typer.Typer(
12
+ name="honeycomb",
13
+ help="CLI for Honeycomb.io API operations",
14
+ no_args_is_help=True,
15
+ )
16
+ console = Console()
17
+
18
+
19
+ # Import and register subcommands
20
+ # These imports are deferred to avoid circular dependencies
21
+ def _register_commands() -> None:
22
+ """Register all CLI subcommands."""
23
+ from honeycomb.cli import (
24
+ api_keys,
25
+ auth,
26
+ boards,
27
+ columns,
28
+ config,
29
+ datasets,
30
+ derived_columns,
31
+ environments,
32
+ markers,
33
+ queries,
34
+ recipients,
35
+ slos,
36
+ triggers,
37
+ )
38
+
39
+ # we can't do real aliases because Typer doesn't support them
40
+ # but watch this PR: https://github.com/fastapi/typer/pull/1422
41
+ app.add_typer(triggers.app, name="triggers")
42
+ app.add_typer(triggers.app, name="trigger", hidden=True)
43
+ app.add_typer(triggers.app, name="t", hidden=True)
44
+ app.add_typer(slos.app, name="slos")
45
+ app.add_typer(slos.app, name="slo", hidden=True)
46
+ app.add_typer(slos.app, name="s", hidden=True)
47
+ app.add_typer(boards.app, name="boards")
48
+ app.add_typer(boards.app, name="board", hidden=True)
49
+ app.add_typer(boards.app, name="b", hidden=True)
50
+ app.add_typer(columns.app, name="columns")
51
+ app.add_typer(columns.app, name="column", hidden=True)
52
+ app.add_typer(columns.app, name="c", hidden=True)
53
+ app.add_typer(queries.app, name="queries")
54
+ app.add_typer(queries.app, name="query", hidden=True)
55
+ app.add_typer(queries.app, name="q", hidden=True)
56
+ app.add_typer(datasets.app, name="datasets")
57
+ app.add_typer(datasets.app, name="dataset", hidden=True)
58
+ app.add_typer(datasets.app, name="d", hidden=True)
59
+ app.add_typer(markers.app, name="markers")
60
+ app.add_typer(markers.app, name="marker", hidden=True)
61
+ app.add_typer(markers.app, name="m", hidden=True)
62
+ app.add_typer(recipients.app, name="recipients")
63
+ app.add_typer(recipients.app, name="recipient", hidden=True)
64
+ app.add_typer(recipients.app, name="r", hidden=True)
65
+ app.add_typer(derived_columns.app, name="derived-columns")
66
+ app.add_typer(derived_columns.app, name="derived-column", hidden=True)
67
+ app.add_typer(derived_columns.app, name="dc", hidden=True)
68
+ app.add_typer(derived_columns.app, name="calculated-fields", hidden=True)
69
+ app.add_typer(derived_columns.app, name="calculated-field", hidden=True)
70
+ app.add_typer(derived_columns.app, name="cf", hidden=True)
71
+ app.add_typer(auth.app, name="auth")
72
+ app.add_typer(api_keys.app, name="api-keys")
73
+ app.add_typer(api_keys.app, name="api-key", hidden=True)
74
+ app.add_typer(api_keys.app, name="a", hidden=True)
75
+ app.add_typer(environments.app, name="environments")
76
+ app.add_typer(environments.app, name="environment", hidden=True)
77
+ app.add_typer(environments.app, name="e", hidden=True)
78
+ app.add_typer(config.app, name="config")
79
+ app.add_typer(config.app, name="conf", hidden=True)
80
+
81
+
82
+ _register_commands()
83
+
84
+ if __name__ == "__main__":
85
+ app()
@@ -0,0 +1,205 @@
1
+ """API Keys management commands (v2 team-scoped)."""
2
+
3
+ import typer
4
+ from rich.console import Console
5
+
6
+ from honeycomb.cli.config import get_client
7
+ from honeycomb.cli.formatters import DEFAULT_OUTPUT_FORMAT, OutputFormat, output_result
8
+ from honeycomb.models.api_keys import ApiKeyCreate, ApiKeyType
9
+
10
+ app = typer.Typer(help="Manage API keys (requires management key)")
11
+ console = Console()
12
+
13
+
14
+ @app.command("list")
15
+ def list_api_keys(
16
+ key_type: str | None = typer.Option(
17
+ None, "--type", help="Filter by type: ingest or configuration"
18
+ ),
19
+ profile: str | None = typer.Option(None, "--profile", "-p", help="Config profile to use"),
20
+ management_key: str | None = typer.Option(
21
+ None, "--management-key", envvar="HONEYCOMB_MANAGEMENT_KEY"
22
+ ),
23
+ management_secret: str | None = typer.Option(
24
+ None, "--management-secret", envvar="HONEYCOMB_MANAGEMENT_SECRET"
25
+ ),
26
+ output: OutputFormat = typer.Option(DEFAULT_OUTPUT_FORMAT, "--output", "-o"),
27
+ ) -> None:
28
+ """List all API keys for your authenticated team.
29
+
30
+ Examples:
31
+ # List all API keys
32
+ hny api-keys list
33
+
34
+ # Filter by type
35
+ hny api-keys list --type ingest
36
+ """
37
+ try:
38
+ client = get_client(
39
+ profile=profile,
40
+ management_key=management_key,
41
+ management_secret=management_secret,
42
+ )
43
+
44
+ keys = client.api_keys.list(key_type=key_type)
45
+ output_result(keys, output)
46
+
47
+ except Exception as e:
48
+ console.print(f"[red]Error:[/red] {e}", style="bold")
49
+ raise typer.Exit(1)
50
+
51
+
52
+ @app.command("get")
53
+ def get_api_key(
54
+ key_id: str = typer.Argument(..., help="API key ID"),
55
+ profile: str | None = typer.Option(None, "--profile", "-p", help="Config profile to use"),
56
+ management_key: str | None = typer.Option(
57
+ None, "--management-key", envvar="HONEYCOMB_MANAGEMENT_KEY"
58
+ ),
59
+ management_secret: str | None = typer.Option(
60
+ None, "--management-secret", envvar="HONEYCOMB_MANAGEMENT_SECRET"
61
+ ),
62
+ output: OutputFormat = typer.Option(DEFAULT_OUTPUT_FORMAT, "--output", "-o"),
63
+ ) -> None:
64
+ """Get a specific API key by ID for your authenticated team.
65
+
66
+ Examples:
67
+ hny api-keys get hcaik_123
68
+ """
69
+ try:
70
+ client = get_client(
71
+ profile=profile,
72
+ management_key=management_key,
73
+ management_secret=management_secret,
74
+ )
75
+
76
+ key = client.api_keys.get(key_id=key_id)
77
+ output_result(key, output)
78
+
79
+ except Exception as e:
80
+ console.print(f"[red]Error:[/red] {e}", style="bold")
81
+ raise typer.Exit(1)
82
+
83
+
84
+ @app.command("create")
85
+ def create_api_key(
86
+ name: str = typer.Option(..., "--name", help="API key name"),
87
+ key_type: ApiKeyType = typer.Option(..., "--type", help="Key type: ingest or configuration"),
88
+ environment_id: str = typer.Option(..., "--environment", "-e", help="Environment ID"),
89
+ profile: str | None = typer.Option(None, "--profile", "-p", help="Config profile to use"),
90
+ management_key: str | None = typer.Option(
91
+ None, "--management-key", envvar="HONEYCOMB_MANAGEMENT_KEY"
92
+ ),
93
+ management_secret: str | None = typer.Option(
94
+ None, "--management-secret", envvar="HONEYCOMB_MANAGEMENT_SECRET"
95
+ ),
96
+ output: OutputFormat = typer.Option(DEFAULT_OUTPUT_FORMAT, "--output", "-o"),
97
+ ) -> None:
98
+ """Create a new API key for your authenticated team.
99
+
100
+ Examples:
101
+ hny api-keys create --name "My Key" --type ingest --environment env-123
102
+ """
103
+ try:
104
+ client = get_client(
105
+ profile=profile,
106
+ management_key=management_key,
107
+ management_secret=management_secret,
108
+ )
109
+
110
+ api_key = ApiKeyCreate(
111
+ name=name,
112
+ key_type=key_type,
113
+ environment_id=environment_id,
114
+ )
115
+
116
+ created = client.api_keys.create(api_key=api_key)
117
+ output_result(created, output)
118
+
119
+ # Warn about secret
120
+ if created.secret and output == OutputFormat.table:
121
+ console.print(
122
+ "\n[yellow]Warning:[/yellow] The secret is only shown once. Save it securely!",
123
+ style="bold",
124
+ )
125
+
126
+ except Exception as e:
127
+ console.print(f"[red]Error:[/red] {e}", style="bold")
128
+ raise typer.Exit(1)
129
+
130
+
131
+ @app.command("update")
132
+ def update_api_key(
133
+ key_id: str = typer.Argument(..., help="API key ID"),
134
+ name: str | None = typer.Option(None, "--name", help="New name"),
135
+ disabled: bool | None = typer.Option(None, "--disabled", help="Disable the key"),
136
+ profile: str | None = typer.Option(None, "--profile", "-p", help="Config profile to use"),
137
+ management_key: str | None = typer.Option(
138
+ None, "--management-key", envvar="HONEYCOMB_MANAGEMENT_KEY"
139
+ ),
140
+ management_secret: str | None = typer.Option(
141
+ None, "--management-secret", envvar="HONEYCOMB_MANAGEMENT_SECRET"
142
+ ),
143
+ output: OutputFormat = typer.Option(DEFAULT_OUTPUT_FORMAT, "--output", "-o"),
144
+ ) -> None:
145
+ """Update an API key for your authenticated team.
146
+
147
+ Examples:
148
+ hny api-keys update hcaik_123 --name "New Name"
149
+ hny api-keys update hcaik_123 --disabled
150
+ """
151
+ try:
152
+ from honeycomb.models.api_keys import ApiKeyUpdate
153
+
154
+ client = get_client(
155
+ profile=profile,
156
+ management_key=management_key,
157
+ management_secret=management_secret,
158
+ )
159
+
160
+ update = ApiKeyUpdate(name=name, disabled=disabled)
161
+ updated = client.api_keys.update(key_id=key_id, api_key=update)
162
+ output_result(updated, output)
163
+
164
+ except Exception as e:
165
+ console.print(f"[red]Error:[/red] {e}", style="bold")
166
+ raise typer.Exit(1)
167
+
168
+
169
+ @app.command("delete")
170
+ def delete_api_key(
171
+ key_id: str = typer.Argument(..., help="API key ID"),
172
+ profile: str | None = typer.Option(None, "--profile", "-p", help="Config profile to use"),
173
+ management_key: str | None = typer.Option(
174
+ None, "--management-key", envvar="HONEYCOMB_MANAGEMENT_KEY"
175
+ ),
176
+ management_secret: str | None = typer.Option(
177
+ None, "--management-secret", envvar="HONEYCOMB_MANAGEMENT_SECRET"
178
+ ),
179
+ yes: bool = typer.Option(False, "--yes", "-y", help="Skip confirmation"),
180
+ ) -> None:
181
+ """Delete an API key for your authenticated team.
182
+
183
+ Examples:
184
+ hny api-keys delete hcaik_123
185
+ hny api-keys delete hcaik_123 --yes
186
+ """
187
+ try:
188
+ if not yes:
189
+ confirm = typer.confirm(f"Delete API key {key_id}?")
190
+ if not confirm:
191
+ console.print("Cancelled")
192
+ raise typer.Exit(0)
193
+
194
+ client = get_client(
195
+ profile=profile,
196
+ management_key=management_key,
197
+ management_secret=management_secret,
198
+ )
199
+
200
+ client.api_keys.delete(key_id=key_id)
201
+ console.print(f"[green]Deleted API key:[/green] {key_id}")
202
+
203
+ except Exception as e:
204
+ console.print(f"[red]Error:[/red] {e}", style="bold")
205
+ raise typer.Exit(1)
honeycomb/cli/auth.py ADDED
@@ -0,0 +1,70 @@
1
+ """Authentication information commands."""
2
+
3
+ import typer
4
+ from rich.console import Console
5
+
6
+ from honeycomb.cli.config import get_client
7
+ from honeycomb.cli.formatters import DEFAULT_OUTPUT_FORMAT, OutputFormat, output_result
8
+
9
+ app = typer.Typer(help="Authentication and API key information")
10
+ console = Console()
11
+
12
+
13
+ @app.command("get")
14
+ def get_auth(
15
+ v2: bool = typer.Option(False, "--v2", help="Use v2 endpoint (management key)"),
16
+ profile: str | None = typer.Option(None, "--profile", "-p", help="Config profile to use"),
17
+ api_key: str | None = typer.Option(None, "--api-key", envvar="HONEYCOMB_API_KEY"),
18
+ management_key: str | None = typer.Option(
19
+ None, "--management-key", envvar="HONEYCOMB_MANAGEMENT_KEY"
20
+ ),
21
+ management_secret: str | None = typer.Option(
22
+ None, "--management-secret", envvar="HONEYCOMB_MANAGEMENT_SECRET"
23
+ ),
24
+ output: OutputFormat = typer.Option(DEFAULT_OUTPUT_FORMAT, "--output", "-o"),
25
+ ) -> None:
26
+ """Get metadata about the current API key.
27
+
28
+ Shows information about the API key being used, including:
29
+ - Team and environment details
30
+ - Key type and permissions
31
+ - Expiration (if applicable)
32
+
33
+ By default, uses v1 endpoint (API key). Use --v2 to query management key info.
34
+
35
+ Examples:
36
+ # Use v1 endpoint (default)
37
+ hny auth get
38
+
39
+ # Use v2 endpoint (management key)
40
+ hny auth get --v2
41
+
42
+ # Output as JSON
43
+ hny auth get --output json
44
+ """
45
+ try:
46
+ # Based on the flag, only pass relevant credentials to client
47
+ if v2:
48
+ # Use v2: only pass management credentials
49
+ client = get_client(
50
+ profile=profile,
51
+ management_key=management_key,
52
+ management_secret=management_secret,
53
+ )
54
+ auth_info = client.auth.get(use_v2=True)
55
+ else:
56
+ # Use v1 (default): only pass API key
57
+ client = get_client(
58
+ profile=profile,
59
+ api_key=api_key,
60
+ )
61
+ auth_info = client.auth.get(use_v2=False)
62
+
63
+ output_result(auth_info, output)
64
+
65
+ except ValueError as e:
66
+ console.print(f"[red]Error:[/red] {e}", style="bold")
67
+ raise typer.Exit(1)
68
+ except Exception as e:
69
+ console.print(f"[red]Error:[/red] {e}", style="bold")
70
+ raise typer.Exit(1)