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.
- honeycomb/__init__.py +9 -0
- honeycomb/_generated/api/auth/get_auth.py +2 -5
- honeycomb/_generated/api/auth/get_v2_auth.py +2 -5
- honeycomb/_generated/api/boards/create_board.py +6 -5
- honeycomb/_generated/api/boards/create_board_view.py +14 -9
- honeycomb/_generated/api/boards/delete_board.py +2 -5
- honeycomb/_generated/api/boards/delete_board_view.py +2 -5
- honeycomb/_generated/api/boards/get_board.py +2 -5
- honeycomb/_generated/api/boards/get_board_view.py +2 -5
- honeycomb/_generated/api/boards/list_board_views.py +10 -9
- honeycomb/_generated/api/boards/list_boards.py +2 -5
- honeycomb/_generated/api/boards/update_board.py +10 -5
- honeycomb/_generated/api/boards/update_board_view.py +2 -5
- honeycomb/_generated/api/burn_alerts/create_burn_alert.py +6 -8
- honeycomb/_generated/api/burn_alerts/delete_burn_alert.py +2 -5
- honeycomb/_generated/api/burn_alerts/get_burn_alert.py +2 -5
- honeycomb/_generated/api/burn_alerts/list_burn_alerts_by_slo.py +2 -5
- honeycomb/_generated/api/calculated_fields/create_calculated_field.py +2 -5
- honeycomb/_generated/api/calculated_fields/delete_calculated_field.py +2 -5
- honeycomb/_generated/api/calculated_fields/get_calculated_field.py +2 -5
- honeycomb/_generated/api/calculated_fields/list_calculated_fields.py +2 -8
- honeycomb/_generated/api/calculated_fields/update_calculated_field.py +2 -5
- honeycomb/_generated/api/columns/create_column.py +2 -5
- honeycomb/_generated/api/columns/delete_column.py +2 -5
- honeycomb/_generated/api/columns/get_column.py +2 -5
- honeycomb/_generated/api/columns/list_columns.py +2 -8
- honeycomb/_generated/api/columns/update_column.py +2 -5
- honeycomb/_generated/api/dataset_definitions/list_dataset_definitions.py +2 -5
- honeycomb/_generated/api/dataset_definitions/patch_dataset_definitions.py +2 -5
- honeycomb/_generated/api/datasets/create_dataset.py +2 -5
- honeycomb/_generated/api/datasets/delete_dataset.py +2 -5
- honeycomb/_generated/api/datasets/get_dataset.py +2 -5
- honeycomb/_generated/api/datasets/list_datasets.py +2 -5
- honeycomb/_generated/api/datasets/update_dataset.py +2 -5
- honeycomb/_generated/api/enhance/record_enhance_indexer_usage.py +4 -6
- honeycomb/_generated/api/environments/create_environment.py +2 -5
- honeycomb/_generated/api/environments/delete_environment.py +2 -5
- honeycomb/_generated/api/environments/get_environment.py +2 -5
- honeycomb/_generated/api/environments/list_environments.py +2 -7
- honeycomb/_generated/api/environments/update_environment.py +2 -5
- honeycomb/_generated/api/events/create_event.py +2 -7
- honeycomb/_generated/api/events/create_events.py +7 -11
- honeycomb/_generated/api/key_management/create_api_key.py +2 -5
- honeycomb/_generated/api/key_management/delete_api_key.py +2 -5
- honeycomb/_generated/api/key_management/get_api_key.py +2 -5
- honeycomb/_generated/api/key_management/list_api_keys.py +2 -7
- honeycomb/_generated/api/key_management/update_api_key.py +2 -5
- honeycomb/_generated/api/kinesis_events/create_kinesis_events.py +2 -5
- honeycomb/_generated/api/marker_settings/create_marker_setting.py +2 -5
- honeycomb/_generated/api/marker_settings/delete_marker_settings.py +2 -5
- honeycomb/_generated/api/marker_settings/list_marker_settings.py +2 -5
- honeycomb/_generated/api/marker_settings/update_marker_settings.py +2 -5
- honeycomb/_generated/api/markers/create_marker.py +2 -5
- honeycomb/_generated/api/markers/create_marker_v2.py +2 -5
- honeycomb/_generated/api/markers/delete_marker.py +2 -5
- honeycomb/_generated/api/markers/get_marker.py +2 -5
- honeycomb/_generated/api/markers/update_marker.py +2 -5
- honeycomb/_generated/api/markers/update_marker_v2.py +2 -5
- honeycomb/_generated/api/pipelines/get_pipeline_configuration.py +4 -8
- honeycomb/_generated/api/pipelines/record_pipeline_usage.py +4 -6
- honeycomb/_generated/api/pipelines/update_pipeline_configuration_rollout.py +6 -7
- honeycomb/_generated/api/queries/create_query.py +2 -5
- honeycomb/_generated/api/queries/get_query.py +2 -5
- honeycomb/_generated/api/query_annotations/create_query_annotation.py +2 -5
- honeycomb/_generated/api/query_annotations/delete_query_annotation.py +2 -5
- honeycomb/_generated/api/query_annotations/get_query_annotation.py +2 -5
- honeycomb/_generated/api/query_annotations/list_query_annotations.py +2 -7
- honeycomb/_generated/api/query_annotations/update_query_annotation.py +2 -5
- honeycomb/_generated/api/query_data/create_query_result.py +2 -5
- honeycomb/_generated/api/query_data/get_query_result.py +2 -5
- honeycomb/_generated/api/recipients/create_recipient.py +2 -6
- honeycomb/_generated/api/recipients/delete_recipient.py +2 -5
- honeycomb/_generated/api/recipients/get_recipient.py +2 -6
- honeycomb/_generated/api/recipients/list_recipients.py +2 -6
- honeycomb/_generated/api/recipients/update_recipient.py +2 -6
- honeycomb/_generated/api/reporting/get_slo_history.py +2 -5
- honeycomb/_generated/api/service_maps/create_map_dependency_request.py +6 -9
- honeycomb/_generated/api/service_maps/get_map_dependencies.py +2 -7
- honeycomb/_generated/api/sl_os/create_slo.py +2 -5
- honeycomb/_generated/api/sl_os/delete_slo.py +2 -5
- honeycomb/_generated/api/sl_os/get_slo.py +2 -8
- honeycomb/_generated/api/sl_os/list_slos.py +2 -5
- honeycomb/_generated/api/sl_os/update_slo.py +2 -5
- honeycomb/_generated/api/triggers/create_trigger.py +2 -6
- honeycomb/_generated/api/triggers/delete_trigger.py +2 -5
- honeycomb/_generated/api/triggers/get_trigger.py +2 -5
- honeycomb/_generated/api/triggers/list_triggers.py +2 -5
- honeycomb/_generated/api/triggers/list_triggers_with_recipient.py +2 -5
- honeycomb/_generated/api/triggers/update_trigger.py +2 -5
- honeycomb/_generated/client.py +2 -5
- honeycomb/_generated/models/__init__.py +195 -88
- honeycomb/_generated/models/api_key_create_request.py +6 -5
- honeycomb/_generated/models/api_key_create_request_data.py +15 -11
- honeycomb/_generated/models/api_key_create_request_data_relationships.py +2 -3
- honeycomb/_generated/models/api_key_create_request_data_type.py +1 -0
- honeycomb/_generated/models/api_key_list_response.py +2 -5
- honeycomb/_generated/models/api_key_object.py +14 -14
- honeycomb/_generated/models/api_key_object_links.py +2 -9
- honeycomb/_generated/models/api_key_object_relationships.py +5 -9
- honeycomb/_generated/models/api_key_object_type.py +1 -0
- honeycomb/_generated/models/api_key_response.py +2 -3
- honeycomb/_generated/models/api_key_update_request.py +15 -17
- honeycomb/_generated/models/auth.py +2 -5
- honeycomb/_generated/models/auth_api_key_access.py +2 -9
- honeycomb/_generated/models/auth_environment.py +2 -9
- honeycomb/_generated/models/auth_team.py +2 -9
- honeycomb/_generated/models/auth_type.py +1 -0
- honeycomb/_generated/models/auth_v2_response.py +5 -8
- honeycomb/_generated/models/auth_v2_response_data.py +14 -11
- honeycomb/_generated/models/auth_v2_response_data_attributes.py +10 -9
- honeycomb/_generated/models/auth_v2_response_data_attributes_key_type.py +1 -0
- honeycomb/_generated/models/auth_v2_response_data_attributes_timestamps.py +4 -12
- honeycomb/_generated/models/auth_v2_response_data_relationships.py +1 -7
- honeycomb/_generated/models/auth_v2_response_data_type.py +1 -0
- honeycomb/_generated/models/base_trigger.py +21 -18
- honeycomb/_generated/models/base_trigger_alert_type.py +1 -0
- honeycomb/_generated/models/base_trigger_baseline_details_type_0.py +5 -9
- honeycomb/_generated/models/base_trigger_baseline_details_type_0_offset_minutes.py +1 -0
- honeycomb/_generated/models/base_trigger_baseline_details_type_0_type.py +1 -0
- honeycomb/_generated/models/base_trigger_evaluation_schedule.py +8 -6
- honeycomb/_generated/models/base_trigger_evaluation_schedule_type.py +1 -0
- honeycomb/_generated/models/base_trigger_evaluation_schedule_window.py +4 -9
- honeycomb/_generated/models/base_trigger_evaluation_schedule_window_days_of_week_item.py +1 -0
- honeycomb/_generated/models/base_trigger_threshold.py +2 -9
- honeycomb/_generated/models/base_trigger_threshold_op.py +1 -0
- honeycomb/_generated/models/batch_event.py +2 -5
- honeycomb/_generated/models/board.py +15 -17
- honeycomb/_generated/models/board_layout_generation.py +1 -0
- honeycomb/_generated/models/board_links.py +2 -9
- honeycomb/_generated/models/board_panel_position.py +2 -9
- honeycomb/_generated/models/board_query_visualization_settings.py +8 -8
- honeycomb/_generated/models/board_query_visualization_settings_charts_item.py +4 -10
- honeycomb/_generated/models/board_query_visualization_settings_charts_item_chart_type.py +1 -0
- honeycomb/_generated/models/board_type.py +1 -0
- honeycomb/_generated/models/board_view_filter.py +2 -9
- honeycomb/_generated/models/board_view_filter_operation.py +1 -0
- honeycomb/_generated/models/board_view_response.py +2 -5
- honeycomb/_generated/models/budget_rate.py +4 -12
- honeycomb/_generated/models/budget_rate_alert_type.py +1 -0
- honeycomb/_generated/models/burn_alert_shared_params.py +4 -12
- honeycomb/_generated/models/calculated_field.py +2 -9
- honeycomb/_generated/models/configuration_key_attributes.py +16 -12
- honeycomb/_generated/models/configuration_key_attributes_key_type.py +1 -0
- honeycomb/_generated/models/configuration_key_attributes_permissions.py +172 -0
- honeycomb/_generated/models/configuration_key_attributes_timestamps.py +4 -12
- honeycomb/_generated/models/configuration_key_request.py +101 -0
- honeycomb/_generated/models/configuration_key_request_attributes.py +107 -0
- honeycomb/_generated/models/configuration_key_request_attributes_permissions.py +168 -0
- honeycomb/_generated/models/configuration_key_request_type.py +8 -0
- honeycomb/_generated/models/create_board_view_request.py +2 -3
- honeycomb/_generated/models/create_budget_rate_burn_alert_request.py +10 -10
- honeycomb/_generated/models/create_budget_rate_burn_alert_request_slo.py +1 -7
- honeycomb/_generated/models/create_column.py +2 -9
- honeycomb/_generated/models/create_column_type.py +1 -0
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request.py +8 -6
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data.py +10 -7
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes.py +8 -8
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data.py +8 -6
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item.py +8 -6
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item.py +8 -6
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item.py +8 -8
- 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
- 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
- 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
- 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
- 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
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_type.py +1 -0
- honeycomb/_generated/models/create_environment_request.py +8 -6
- honeycomb/_generated/models/create_environment_request_data.py +10 -7
- honeycomb/_generated/models/create_environment_request_data_attributes.py +2 -9
- honeycomb/_generated/models/create_environment_request_data_type.py +1 -0
- honeycomb/_generated/models/create_events_content_encoding.py +1 -0
- honeycomb/_generated/models/create_events_response_200_item.py +2 -9
- honeycomb/_generated/models/create_exhaustion_time_burn_alert_request.py +10 -10
- honeycomb/_generated/models/create_exhaustion_time_burn_alert_request_slo.py +1 -7
- honeycomb/_generated/models/create_map_dependencies_request.py +2 -5
- honeycomb/_generated/models/create_map_dependencies_response.py +4 -10
- honeycomb/_generated/models/create_map_dependencies_response_status.py +1 -0
- honeycomb/_generated/models/create_pipeline_health_record_request.py +8 -6
- honeycomb/_generated/models/create_pipeline_health_record_request_data.py +10 -7
- honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes.py +8 -8
- honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data.py +8 -6
- honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item.py +8 -6
- honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item.py +8 -6
- honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item.py +8 -8
- honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum.py +10 -7
- 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
- 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
- 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
- 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
- honeycomb/_generated/models/create_pipeline_health_record_request_data_type.py +1 -0
- honeycomb/_generated/models/create_query_result_request.py +2 -9
- honeycomb/_generated/models/dataset.py +2 -6
- honeycomb/_generated/models/dataset_creation_payload.py +2 -9
- honeycomb/_generated/models/dataset_definition_type_1.py +4 -10
- honeycomb/_generated/models/dataset_definition_type_1_column_type.py +1 -0
- honeycomb/_generated/models/dataset_definitions.py +2 -6
- honeycomb/_generated/models/dataset_relationship.py +2 -3
- honeycomb/_generated/models/dataset_relationship_data.py +2 -8
- honeycomb/_generated/models/dataset_relationship_data_type.py +1 -0
- honeycomb/_generated/models/dataset_settings.py +2 -9
- honeycomb/_generated/models/dataset_update_payload.py +8 -8
- honeycomb/_generated/models/dataset_update_payload_settings.py +2 -9
- honeycomb/_generated/models/detailed_error.py +2 -9
- honeycomb/_generated/models/email_recipient.py +4 -7
- honeycomb/_generated/models/email_recipient_details.py +1 -7
- honeycomb/_generated/models/email_recipient_type.py +1 -0
- honeycomb/_generated/models/environment.py +6 -7
- honeycomb/_generated/models/environment_attributes.py +11 -9
- honeycomb/_generated/models/environment_attributes_color_type_1.py +1 -0
- honeycomb/_generated/models/environment_attributes_settings.py +1 -7
- honeycomb/_generated/models/environment_color.py +1 -0
- honeycomb/_generated/models/environment_links.py +1 -7
- honeycomb/_generated/models/environment_list_response.py +2 -5
- honeycomb/_generated/models/environment_relationship.py +8 -6
- honeycomb/_generated/models/environment_relationship_data.py +3 -8
- honeycomb/_generated/models/environment_relationship_data_type.py +1 -0
- honeycomb/_generated/models/environment_response.py +2 -3
- honeycomb/_generated/models/environment_type.py +1 -0
- honeycomb/_generated/models/error.py +2 -9
- honeycomb/_generated/models/event.py +2 -8
- honeycomb/_generated/models/exhaustion_time.py +4 -12
- honeycomb/_generated/models/exhaustion_time_alert_type.py +1 -0
- honeycomb/_generated/models/exhaustion_time_burn_alert_list_response.py +10 -10
- honeycomb/_generated/models/exhaustion_time_burn_alert_list_response_slo.py +2 -9
- honeycomb/_generated/models/filter_op.py +1 -0
- honeycomb/_generated/models/get_map_dependencies_response.py +7 -10
- honeycomb/_generated/models/get_map_dependencies_response_status.py +1 -0
- honeycomb/_generated/models/having_calculate_op.py +1 -0
- honeycomb/_generated/models/having_op.py +1 -0
- honeycomb/_generated/models/included_resource.py +6 -7
- honeycomb/_generated/models/included_resource_attributes.py +1 -7
- honeycomb/_generated/models/ingest_key_attributes.py +14 -11
- honeycomb/_generated/models/ingest_key_attributes_key_type.py +1 -0
- honeycomb/_generated/models/ingest_key_attributes_permissions.py +2 -9
- honeycomb/_generated/models/ingest_key_attributes_timestamps.py +4 -12
- honeycomb/_generated/models/ingest_key_request.py +100 -0
- honeycomb/_generated/models/ingest_key_request_attributes.py +75 -0
- honeycomb/_generated/models/ingest_key_request_type.py +8 -0
- honeycomb/_generated/models/ingest_key_type.py +2 -9
- honeycomb/_generated/models/ingest_key_type_key_type.py +1 -0
- honeycomb/_generated/models/jsonapi_error_source.py +2 -9
- honeycomb/_generated/models/kinesis_event.py +2 -5
- honeycomb/_generated/models/kinesis_event_record.py +2 -9
- honeycomb/_generated/models/kinesis_response.py +2 -9
- honeycomb/_generated/models/list_api_keys_filtertype.py +1 -0
- honeycomb/_generated/models/map_dependency.py +2 -5
- honeycomb/_generated/models/map_node.py +2 -9
- honeycomb/_generated/models/map_node_type.py +1 -0
- honeycomb/_generated/models/marker.py +2 -9
- honeycomb/_generated/models/marker_create_request.py +2 -3
- honeycomb/_generated/models/marker_create_request_data.py +16 -10
- honeycomb/_generated/models/marker_create_request_data_attributes.py +2 -9
- honeycomb/_generated/models/marker_create_request_data_relationships.py +2 -3
- honeycomb/_generated/models/marker_create_request_data_type.py +1 -0
- honeycomb/_generated/models/marker_object.py +7 -8
- honeycomb/_generated/models/marker_object_attributes.py +8 -8
- honeycomb/_generated/models/marker_object_attributes_timestamps.py +4 -12
- honeycomb/_generated/models/marker_object_links.py +2 -9
- honeycomb/_generated/models/marker_object_relationships.py +8 -8
- honeycomb/_generated/models/marker_object_relationships_dataset.py +8 -9
- honeycomb/_generated/models/marker_object_relationships_dataset_data_type_0.py +4 -10
- honeycomb/_generated/models/marker_object_relationships_dataset_data_type_0_type.py +1 -0
- honeycomb/_generated/models/marker_object_type.py +1 -0
- honeycomb/_generated/models/marker_response.py +2 -3
- honeycomb/_generated/models/marker_setting.py +2 -10
- honeycomb/_generated/models/marker_update_request.py +2 -3
- honeycomb/_generated/models/marker_update_request_data.py +16 -10
- honeycomb/_generated/models/marker_update_request_data_attributes.py +2 -9
- honeycomb/_generated/models/marker_update_request_data_relationships.py +2 -3
- honeycomb/_generated/models/marker_update_request_data_type.py +1 -0
- honeycomb/_generated/models/ms_teams_recipient.py +4 -7
- honeycomb/_generated/models/ms_teams_recipient_details.py +1 -7
- honeycomb/_generated/models/ms_teams_recipient_type.py +1 -0
- honeycomb/_generated/models/ms_teams_workflow_recipient.py +12 -11
- honeycomb/_generated/models/ms_teams_workflow_recipient_details.py +1 -7
- honeycomb/_generated/models/ms_teams_workflow_recipient_type.py +1 -0
- honeycomb/_generated/models/notification_recipient.py +8 -8
- honeycomb/_generated/models/notification_recipient_details.py +10 -9
- honeycomb/_generated/models/notification_recipient_details_pagerduty_severity.py +1 -0
- honeycomb/_generated/models/notification_recipient_details_variables_item.py +2 -9
- honeycomb/_generated/models/pager_duty_recipient.py +8 -9
- honeycomb/_generated/models/pager_duty_recipient_details.py +1 -7
- honeycomb/_generated/models/pager_duty_recipient_type.py +1 -0
- honeycomb/_generated/models/pagination_links.py +2 -8
- honeycomb/_generated/models/payload_template.py +2 -9
- honeycomb/_generated/models/pipeline_configuration_response.py +16 -10
- honeycomb/_generated/models/pipeline_configuration_response_attributes.py +8 -8
- honeycomb/_generated/models/pipeline_configuration_response_attributes_configs_item.py +1 -7
- honeycomb/_generated/models/pipeline_configuration_response_links.py +2 -9
- honeycomb/_generated/models/pipeline_configuration_response_type.py +1 -0
- honeycomb/_generated/models/pipeline_configuration_rollout.py +16 -10
- honeycomb/_generated/models/pipeline_configuration_rollout_attributes.py +3 -8
- honeycomb/_generated/models/pipeline_configuration_rollout_attributes_status.py +1 -0
- honeycomb/_generated/models/pipeline_configuration_rollout_links.py +2 -9
- honeycomb/_generated/models/pipeline_configuration_rollout_type.py +1 -0
- honeycomb/_generated/models/preset_filter.py +1 -7
- honeycomb/_generated/models/query.py +11 -11
- honeycomb/_generated/models/query_annotation.py +4 -12
- honeycomb/_generated/models/query_annotation_source.py +1 -0
- honeycomb/_generated/models/query_calculated_fields_item.py +1 -7
- honeycomb/_generated/models/query_calculations_item.py +2 -10
- honeycomb/_generated/models/query_compare_time_offset_seconds.py +1 -0
- honeycomb/_generated/models/query_filter_combination.py +1 -0
- honeycomb/_generated/models/query_filters_item.py +2 -11
- honeycomb/_generated/models/query_havings_item.py +2 -10
- honeycomb/_generated/models/query_op.py +1 -0
- honeycomb/_generated/models/query_orders_item.py +2 -9
- honeycomb/_generated/models/query_orders_item_order.py +1 -0
- honeycomb/_generated/models/query_panel.py +2 -6
- honeycomb/_generated/models/query_panel_query_panel.py +10 -9
- honeycomb/_generated/models/query_panel_query_panel_query_style.py +1 -0
- honeycomb/_generated/models/query_result.py +2 -5
- honeycomb/_generated/models/query_result_details.py +5 -8
- honeycomb/_generated/models/query_result_details_data.py +5 -8
- honeycomb/_generated/models/query_result_details_links.py +2 -9
- honeycomb/_generated/models/query_result_links.py +2 -9
- honeycomb/_generated/models/query_results_data.py +2 -5
- honeycomb/_generated/models/query_results_data_data.py +2 -8
- honeycomb/_generated/models/query_results_series.py +2 -5
- honeycomb/_generated/models/recipient_properties.py +4 -12
- honeycomb/_generated/models/recipient_type.py +1 -0
- honeycomb/_generated/models/slack_recipient.py +4 -7
- honeycomb/_generated/models/slack_recipient_details.py +1 -7
- honeycomb/_generated/models/slack_recipient_type.py +1 -0
- honeycomb/_generated/models/slo.py +4 -8
- honeycomb/_generated/models/slo_create.py +4 -8
- honeycomb/_generated/models/slo_create_sli.py +1 -7
- honeycomb/_generated/models/slo_detailed_response.py +4 -8
- honeycomb/_generated/models/slo_detailed_response_status.py +1 -0
- honeycomb/_generated/models/slo_history.py +2 -9
- honeycomb/_generated/models/slo_history_request.py +2 -8
- honeycomb/_generated/models/slo_history_response.py +2 -3
- honeycomb/_generated/models/slo_panel.py +2 -6
- honeycomb/_generated/models/slo_panel_slo_panel.py +2 -9
- honeycomb/_generated/models/slo_sli.py +1 -7
- honeycomb/_generated/models/tag.py +1 -7
- honeycomb/_generated/models/team_relationship.py +2 -3
- honeycomb/_generated/models/team_relationship_team.py +6 -5
- honeycomb/_generated/models/team_relationship_team_data.py +3 -8
- honeycomb/_generated/models/team_relationship_team_data_type.py +1 -0
- honeycomb/_generated/models/template_variable_definition.py +2 -9
- honeycomb/_generated/models/text_panel.py +2 -6
- honeycomb/_generated/models/text_panel_text_panel.py +1 -7
- honeycomb/_generated/models/trigger_response.py +27 -21
- honeycomb/_generated/models/trigger_with_inline_query.py +27 -21
- honeycomb/_generated/models/trigger_with_inline_query_query.py +1 -7
- honeycomb/_generated/models/trigger_with_query_reference.py +21 -18
- honeycomb/_generated/models/update_board_view_request.py +2 -5
- honeycomb/_generated/models/update_environment_request.py +8 -6
- honeycomb/_generated/models/update_environment_request_data.py +10 -7
- honeycomb/_generated/models/update_environment_request_data_attributes.py +8 -8
- honeycomb/_generated/models/update_environment_request_data_attributes_settings.py +2 -9
- honeycomb/_generated/models/update_environment_request_data_type.py +1 -0
- honeycomb/_generated/models/update_exhaustion_time_burn_alert_request.py +4 -7
- honeycomb/_generated/models/update_pipeline_configuration_rollout.py +10 -7
- honeycomb/_generated/models/update_pipeline_configuration_rollout_attributes.py +3 -8
- honeycomb/_generated/models/update_pipeline_configuration_rollout_attributes_status.py +1 -0
- honeycomb/_generated/models/update_pipeline_configuration_rollout_request.py +8 -6
- honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data.py +10 -7
- honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data_attributes.py +3 -8
- honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data_attributes_status.py +1 -0
- honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data_type.py +1 -0
- honeycomb/_generated/models/update_pipeline_configuration_rollout_response.py +8 -6
- honeycomb/_generated/models/update_pipeline_configuration_rollout_type.py +1 -0
- honeycomb/_generated/models/user_relationship.py +2 -3
- honeycomb/_generated/models/user_relationship_data.py +2 -8
- honeycomb/_generated/models/user_relationship_data_type.py +1 -0
- honeycomb/_generated/models/validation_error.py +8 -8
- honeycomb/_generated/models/validation_error_type_detail_item.py +4 -10
- honeycomb/_generated/models/validation_error_type_detail_item_code.py +1 -0
- honeycomb/_generated/models/webhook_header.py +2 -9
- honeycomb/_generated/models/webhook_recipient.py +4 -7
- honeycomb/_generated/models/webhook_recipient_details.py +8 -8
- honeycomb/_generated/models/webhook_recipient_details_webhook_payloads.py +12 -10
- honeycomb/_generated/models/webhook_recipient_details_webhook_payloads_payload_templates.py +2 -5
- honeycomb/_generated/models/webhook_recipient_type.py +1 -0
- honeycomb/_generated/types.py +1 -1
- honeycomb/cli/__init__.py +85 -0
- honeycomb/cli/api_keys.py +205 -0
- honeycomb/cli/auth.py +70 -0
- honeycomb/cli/boards.py +203 -0
- honeycomb/cli/columns.py +256 -0
- honeycomb/cli/config.py +259 -0
- honeycomb/cli/datasets.py +186 -0
- honeycomb/cli/derived_columns.py +222 -0
- honeycomb/cli/environments.py +240 -0
- honeycomb/cli/formatters.py +242 -0
- honeycomb/cli/markers.py +151 -0
- honeycomb/cli/queries.py +380 -0
- honeycomb/cli/recipients.py +211 -0
- honeycomb/cli/slos.py +338 -0
- honeycomb/cli/triggers.py +271 -0
- honeycomb/client.py +13 -7
- honeycomb/models/__init__.py +18 -3
- honeycomb/models/api_keys.py +49 -5
- honeycomb/models/auth.py +71 -0
- honeycomb/models/board_builder.py +97 -25
- honeycomb/models/boards.py +95 -1
- honeycomb/models/datasets.py +42 -0
- honeycomb/models/queries.py +21 -0
- honeycomb/models/query_builder.py +119 -59
- honeycomb/models/recipient_builder.py +51 -4
- honeycomb/models/slo_builder.py +24 -19
- honeycomb/models/slos.py +50 -3
- honeycomb/models/tool_inputs.py +630 -0
- honeycomb/models/triggers.py +39 -9
- honeycomb/resources/__init__.py +2 -0
- honeycomb/resources/api_keys.py +66 -29
- honeycomb/resources/auth.py +97 -0
- honeycomb/resources/boards.py +272 -18
- honeycomb/resources/datasets.py +49 -11
- honeycomb/resources/environments.py +54 -31
- honeycomb/resources/slos.py +87 -61
- honeycomb/tools/__main__.py +40 -4
- honeycomb/tools/builders.py +235 -150
- honeycomb/tools/descriptions.py +175 -7
- honeycomb/tools/executor.py +212 -25
- honeycomb/tools/generator.py +61 -2264
- honeycomb/tools/resources/__init__.py +42 -0
- honeycomb/tools/resources/api_keys.py +249 -0
- honeycomb/tools/resources/auth.py +98 -0
- honeycomb/tools/resources/boards.py +313 -0
- honeycomb/tools/resources/burn_alerts.py +278 -0
- honeycomb/tools/resources/columns.py +257 -0
- honeycomb/tools/resources/datasets.py +215 -0
- honeycomb/tools/resources/derived_columns.py +311 -0
- honeycomb/tools/resources/environments.py +211 -0
- honeycomb/tools/resources/events.py +158 -0
- honeycomb/tools/resources/marker_settings.py +216 -0
- honeycomb/tools/resources/markers.py +197 -0
- honeycomb/tools/resources/queries.py +220 -0
- honeycomb/tools/resources/recipients.py +297 -0
- honeycomb/tools/resources/service_map.py +110 -0
- honeycomb/tools/resources/slos.py +276 -0
- honeycomb/tools/resources/triggers.py +328 -0
- honeycomb/tools/schemas.py +81 -0
- {honeycomb_api-0.1.0.dist-info → honeycomb_api-0.5.3.dist-info}/METADATA +33 -8
- honeycomb_api-0.5.3.dist-info/RECORD +497 -0
- honeycomb_api-0.5.3.dist-info/entry_points.txt +5 -0
- honeycomb_api-0.1.0.dist-info/RECORD +0 -453
- {honeycomb_api-0.1.0.dist-info → honeycomb_api-0.5.3.dist-info}/WHEEL +0 -0
- {honeycomb_api-0.1.0.dist-info → honeycomb_api-0.5.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
"""Boards tool definitions for Claude API.
|
|
2
|
+
|
|
3
|
+
This module provides tool generators and descriptions for
|
|
4
|
+
boards resources.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
from honeycomb.models import BoardCreate
|
|
10
|
+
from honeycomb.models.tool_inputs import BoardToolInput
|
|
11
|
+
from honeycomb.tools.schemas import add_parameter, generate_schema_from_model
|
|
12
|
+
|
|
13
|
+
# ==============================================================================
|
|
14
|
+
# Boards Descriptions
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
BOARD_DESCRIPTIONS = {
|
|
18
|
+
"honeycomb_list_boards": (
|
|
19
|
+
"Lists all boards (dashboards) in your Honeycomb environment (no parameters required). "
|
|
20
|
+
"Use this to discover existing dashboards before creating new ones, audit dashboard organization, or find boards to update. "
|
|
21
|
+
"This operation requires no parameters - it automatically lists all boards you have access to. "
|
|
22
|
+
"Returns a list of board objects including their IDs, names, descriptions, panel configurations, and layout settings."
|
|
23
|
+
),
|
|
24
|
+
"honeycomb_get_board": (
|
|
25
|
+
"Retrieves detailed configuration for a specific board by its ID. "
|
|
26
|
+
"Use this to inspect a board's panel layout, query configurations, SLO displays, and text content before modifying it. "
|
|
27
|
+
"Requires the board ID parameter. "
|
|
28
|
+
"Returns the complete board configuration including all panel definitions, layout mode (auto or manual), tags, and links to visualizations."
|
|
29
|
+
),
|
|
30
|
+
"honeycomb_create_board": (
|
|
31
|
+
"Creates a new board (dashboard) with inline query panels, SLO panels, text panels, board views, and preset filters in a single operation. "
|
|
32
|
+
"Use this to build comprehensive dashboards for service monitoring, create SRE views, or consolidate related visualizations. "
|
|
33
|
+
"Requires a name and supports inline_query_panels (array of query definitions that will be created automatically), text_panels (markdown content), slo_panels (SLO IDs), views (filtered perspectives), and preset_filters (dynamic filters). "
|
|
34
|
+
"Each inline query panel needs a name, dataset, time_range, and calculations - optionally include filters, breakdowns, orders, and limit. "
|
|
35
|
+
"Query panels can include calculated_fields (derived columns) - see honeycomb_create_derived_column for expression syntax. "
|
|
36
|
+
"For inline SLO panels with SLI expressions: must return boolean, use $ prefix for columns. Example: LT($status_code, 500). "
|
|
37
|
+
"Board views allow creating filtered perspectives (max 50 per board): each view has a name and filters array with column, operation (=, !=, >, >=, <, <=, contains, starts-with, ends-with, exists, in), and value. "
|
|
38
|
+
"Preset filters (max 5) allow dynamic filtering of board data: each has column and alias properties. "
|
|
39
|
+
"Layout defaults to auto-layout (Honeycomb arranges panels) but supports manual layout with explicit positioning. "
|
|
40
|
+
"The tool orchestrates: creating all inline queries with annotations, inline SLOs, board views, preset filters, assembling panel configurations, and creating the board with all components in one API call."
|
|
41
|
+
),
|
|
42
|
+
"honeycomb_update_board": (
|
|
43
|
+
"Updates an existing board's name, description, or panel configuration. "
|
|
44
|
+
"Use this to add new panels, reorder visualizations, update board metadata, or reorganize dashboards as monitoring needs evolve. "
|
|
45
|
+
"Requires the board ID and the complete updated board configuration. "
|
|
46
|
+
"Note: This replaces the entire board configuration, so include all panels you want to preserve."
|
|
47
|
+
),
|
|
48
|
+
"honeycomb_delete_board": (
|
|
49
|
+
"Permanently deletes a board from Honeycomb. "
|
|
50
|
+
"Use this when removing outdated dashboards, cleaning up test boards, or consolidating overlapping views. "
|
|
51
|
+
"Requires the board ID parameter. "
|
|
52
|
+
"Warning: This action cannot be undone. The board and its panel configurations will be permanently deleted, but the underlying queries and SLOs are preserved."
|
|
53
|
+
),
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def get_description(tool_name: str) -> str:
|
|
58
|
+
"""Get the description for a tool in this resource."""
|
|
59
|
+
return BOARD_DESCRIPTIONS[tool_name]
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def create_tool_definition(
|
|
63
|
+
name: str,
|
|
64
|
+
description: str,
|
|
65
|
+
input_schema: dict[str, Any],
|
|
66
|
+
input_examples: list[dict[str, Any]] | None = None,
|
|
67
|
+
) -> dict[str, Any]:
|
|
68
|
+
"""Create a Claude tool definition."""
|
|
69
|
+
from honeycomb.tools.descriptions import validate_description
|
|
70
|
+
from honeycomb.tools.schemas import add_metadata_fields, validate_schema, validate_tool_name
|
|
71
|
+
|
|
72
|
+
validate_tool_name(name)
|
|
73
|
+
validate_description(description)
|
|
74
|
+
validate_schema(input_schema)
|
|
75
|
+
add_metadata_fields(input_schema)
|
|
76
|
+
|
|
77
|
+
definition: dict[str, Any] = {
|
|
78
|
+
"name": name,
|
|
79
|
+
"description": description,
|
|
80
|
+
"input_schema": input_schema,
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if input_examples:
|
|
84
|
+
definition["input_examples"] = input_examples
|
|
85
|
+
|
|
86
|
+
return definition
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
# ==============================================================================
|
|
90
|
+
# Boards Tool Definitions
|
|
91
|
+
# ==============================================================================
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def generate_list_boards_tool() -> dict[str, Any]:
|
|
95
|
+
"""Generate honeycomb_list_boards tool definition."""
|
|
96
|
+
schema: dict[str, Any] = {"type": "object", "properties": {}, "required": []}
|
|
97
|
+
|
|
98
|
+
examples: list[dict[str, Any]] = [
|
|
99
|
+
{}, # List all boards
|
|
100
|
+
]
|
|
101
|
+
|
|
102
|
+
return create_tool_definition(
|
|
103
|
+
name="honeycomb_list_boards",
|
|
104
|
+
description=get_description("honeycomb_list_boards"),
|
|
105
|
+
input_schema=schema,
|
|
106
|
+
input_examples=examples,
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def generate_get_board_tool() -> dict[str, Any]:
|
|
111
|
+
"""Generate honeycomb_get_board tool definition."""
|
|
112
|
+
schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["board_id"]}
|
|
113
|
+
|
|
114
|
+
add_parameter(schema, "board_id", "string", "The board ID to retrieve", required=True)
|
|
115
|
+
|
|
116
|
+
examples: list[dict[str, Any]] = [
|
|
117
|
+
{"board_id": "board-123"},
|
|
118
|
+
{"board_id": "board-456"},
|
|
119
|
+
]
|
|
120
|
+
|
|
121
|
+
return create_tool_definition(
|
|
122
|
+
name="honeycomb_get_board",
|
|
123
|
+
description=get_description("honeycomb_get_board"),
|
|
124
|
+
input_schema=schema,
|
|
125
|
+
input_examples=examples,
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def generate_create_board_tool() -> dict[str, Any]:
|
|
130
|
+
"""Generate honeycomb_create_board tool definition."""
|
|
131
|
+
# Use Pydantic model for schema generation (replaces 300+ lines of manual schema building)
|
|
132
|
+
schema = BoardToolInput.model_json_schema()
|
|
133
|
+
|
|
134
|
+
examples: list[dict[str, Any]] = [
|
|
135
|
+
# Simple: inline query panels with auto-layout
|
|
136
|
+
{
|
|
137
|
+
"name": "API Dashboard",
|
|
138
|
+
"layout_generation": "auto",
|
|
139
|
+
"inline_query_panels": [
|
|
140
|
+
{
|
|
141
|
+
"name": "Error Count",
|
|
142
|
+
"dataset": "api-logs",
|
|
143
|
+
"time_range": 3600,
|
|
144
|
+
"calculations": [{"op": "COUNT"}],
|
|
145
|
+
"filters": [{"column": "status_code", "op": ">=", "value": 500}],
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"name": "P99 Latency",
|
|
149
|
+
"dataset": "api-logs",
|
|
150
|
+
"time_range": 3600,
|
|
151
|
+
"calculations": [{"op": "P99", "column": "duration_ms"}],
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
# With text panel
|
|
156
|
+
{
|
|
157
|
+
"name": "Service Overview",
|
|
158
|
+
"description": "Main service health dashboard",
|
|
159
|
+
"layout_generation": "auto",
|
|
160
|
+
"inline_query_panels": [
|
|
161
|
+
{
|
|
162
|
+
"name": "Request Rate",
|
|
163
|
+
"dataset": "production",
|
|
164
|
+
"time_range": 7200,
|
|
165
|
+
"calculations": [{"op": "COUNT"}],
|
|
166
|
+
"breakdowns": ["endpoint"],
|
|
167
|
+
}
|
|
168
|
+
],
|
|
169
|
+
"text_panels": [{"content": "## Service Status\nMonitor during peak hours"}],
|
|
170
|
+
},
|
|
171
|
+
# Complex: with existing SLO ID
|
|
172
|
+
{
|
|
173
|
+
"name": "SRE Dashboard",
|
|
174
|
+
"layout_generation": "auto",
|
|
175
|
+
"inline_query_panels": [
|
|
176
|
+
{
|
|
177
|
+
"name": "Error Rate",
|
|
178
|
+
"dataset": "api-logs",
|
|
179
|
+
"time_range": 3600,
|
|
180
|
+
"calculations": [{"op": "COUNT"}],
|
|
181
|
+
"filters": [{"column": "status_code", "op": ">=", "value": 500}],
|
|
182
|
+
"breakdowns": ["service"],
|
|
183
|
+
"orders": [{"op": "COUNT", "order": "descending"}],
|
|
184
|
+
"limit": 20,
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"slo_panels": ["slo-123"],
|
|
188
|
+
"text_panels": [{"content": "## Alerts\nCheck PagerDuty for incidents"}],
|
|
189
|
+
"tags": [{"key": "team", "value": "platform"}],
|
|
190
|
+
},
|
|
191
|
+
# Advanced: inline SLO creation with derived column
|
|
192
|
+
{
|
|
193
|
+
"name": "Production Monitoring",
|
|
194
|
+
"layout_generation": "auto",
|
|
195
|
+
"inline_query_panels": [
|
|
196
|
+
{
|
|
197
|
+
"name": "Request Count",
|
|
198
|
+
"dataset": "production",
|
|
199
|
+
"time_range": 86400,
|
|
200
|
+
"calculations": [{"op": "COUNT"}],
|
|
201
|
+
"breakdowns": ["service"],
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
"inline_slo_panels": [
|
|
205
|
+
{
|
|
206
|
+
"name": "API Availability",
|
|
207
|
+
"dataset": "api-logs",
|
|
208
|
+
"sli": {
|
|
209
|
+
"alias": "success_rate",
|
|
210
|
+
"expression": "IF(LT($status_code, 400), 1, 0)",
|
|
211
|
+
"description": "1 if successful, 0 if error",
|
|
212
|
+
},
|
|
213
|
+
"target_percentage": 99.9,
|
|
214
|
+
"time_period_days": 30,
|
|
215
|
+
"description": "99.9% availability target",
|
|
216
|
+
}
|
|
217
|
+
],
|
|
218
|
+
"text_panels": [{"content": "## SLO Policy\nReview weekly"}],
|
|
219
|
+
},
|
|
220
|
+
# With board views for filtered perspectives
|
|
221
|
+
{
|
|
222
|
+
"name": "Service Dashboard",
|
|
223
|
+
"layout_generation": "auto",
|
|
224
|
+
"inline_query_panels": [
|
|
225
|
+
{
|
|
226
|
+
"name": "Request Metrics",
|
|
227
|
+
"dataset": "api-logs",
|
|
228
|
+
"time_range": 3600,
|
|
229
|
+
"calculations": [{"op": "COUNT"}],
|
|
230
|
+
"breakdowns": ["service"],
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"views": [
|
|
234
|
+
{
|
|
235
|
+
"name": "Active Services",
|
|
236
|
+
"filters": [{"column": "status", "operation": "=", "value": "active"}],
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"name": "Production Errors",
|
|
240
|
+
"filters": [
|
|
241
|
+
{"column": "environment", "operation": "=", "value": "production"},
|
|
242
|
+
{"column": "status_code", "operation": ">=", "value": 500},
|
|
243
|
+
],
|
|
244
|
+
},
|
|
245
|
+
],
|
|
246
|
+
},
|
|
247
|
+
]
|
|
248
|
+
|
|
249
|
+
return create_tool_definition(
|
|
250
|
+
name="honeycomb_create_board",
|
|
251
|
+
description=get_description("honeycomb_create_board"),
|
|
252
|
+
input_schema=schema,
|
|
253
|
+
input_examples=examples,
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
def generate_update_board_tool() -> dict[str, Any]:
|
|
258
|
+
"""Generate honeycomb_update_board tool definition."""
|
|
259
|
+
base_schema = generate_schema_from_model(
|
|
260
|
+
BoardCreate,
|
|
261
|
+
exclude_fields={"id", "links"},
|
|
262
|
+
)
|
|
263
|
+
|
|
264
|
+
schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["board_id"]}
|
|
265
|
+
add_parameter(schema, "board_id", "string", "The board ID to update", required=True)
|
|
266
|
+
|
|
267
|
+
schema["properties"].update(base_schema["properties"])
|
|
268
|
+
schema["required"].extend(base_schema.get("required", []))
|
|
269
|
+
|
|
270
|
+
examples: list[dict[str, Any]] = [
|
|
271
|
+
{
|
|
272
|
+
"board_id": "board-123",
|
|
273
|
+
"name": "Updated Dashboard",
|
|
274
|
+
"description": "New description",
|
|
275
|
+
},
|
|
276
|
+
]
|
|
277
|
+
|
|
278
|
+
return create_tool_definition(
|
|
279
|
+
name="honeycomb_update_board",
|
|
280
|
+
description=get_description("honeycomb_update_board"),
|
|
281
|
+
input_schema=schema,
|
|
282
|
+
input_examples=examples,
|
|
283
|
+
)
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
def generate_delete_board_tool() -> dict[str, Any]:
|
|
287
|
+
"""Generate honeycomb_delete_board tool definition."""
|
|
288
|
+
schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["board_id"]}
|
|
289
|
+
|
|
290
|
+
add_parameter(schema, "board_id", "string", "The board ID to delete", required=True)
|
|
291
|
+
|
|
292
|
+
examples: list[dict[str, Any]] = [
|
|
293
|
+
{"board_id": "board-123"},
|
|
294
|
+
{"board_id": "board-456"},
|
|
295
|
+
]
|
|
296
|
+
|
|
297
|
+
return create_tool_definition(
|
|
298
|
+
name="honeycomb_delete_board",
|
|
299
|
+
description=get_description("honeycomb_delete_board"),
|
|
300
|
+
input_schema=schema,
|
|
301
|
+
input_examples=examples,
|
|
302
|
+
)
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
def get_tools() -> list[dict[str, Any]]:
|
|
306
|
+
"""Get all boards tool definitions."""
|
|
307
|
+
return [
|
|
308
|
+
generate_list_boards_tool(),
|
|
309
|
+
generate_get_board_tool(),
|
|
310
|
+
generate_create_board_tool(),
|
|
311
|
+
generate_update_board_tool(),
|
|
312
|
+
generate_delete_board_tool(),
|
|
313
|
+
]
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"""Burn Alerts tool definitions for Claude API.
|
|
2
|
+
|
|
3
|
+
This module provides tool generators and descriptions for
|
|
4
|
+
burn alerts resources.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
from honeycomb.models import BurnAlertCreate
|
|
10
|
+
from honeycomb.tools.schemas import add_parameter, generate_schema_from_model
|
|
11
|
+
|
|
12
|
+
# ==============================================================================
|
|
13
|
+
# Burn Alerts Descriptions
|
|
14
|
+
# ==============================================================================
|
|
15
|
+
|
|
16
|
+
BURN_ALERT_DESCRIPTIONS = {
|
|
17
|
+
"honeycomb_list_burn_alerts": (
|
|
18
|
+
"Lists all burn alerts configured for a specific SLO. "
|
|
19
|
+
"Use this to discover existing error budget alerts before creating new ones or when reviewing SLO alerting configuration. "
|
|
20
|
+
"Requires both the dataset slug and SLO ID parameters. "
|
|
21
|
+
"Returns a list of burn alert objects with their IDs, alert types (exhaustion_time or budget_rate), thresholds, and recipients."
|
|
22
|
+
),
|
|
23
|
+
"honeycomb_get_burn_alert": (
|
|
24
|
+
"Retrieves detailed configuration for a specific burn alert by ID. "
|
|
25
|
+
"Use this to inspect an existing burn alert's threshold, alert type, and recipient configuration. "
|
|
26
|
+
"Requires both the dataset slug and burn alert ID. "
|
|
27
|
+
"Returns the complete burn alert configuration including the SLO it's attached to."
|
|
28
|
+
),
|
|
29
|
+
"honeycomb_create_burn_alert": (
|
|
30
|
+
"Creates a new burn alert that fires when an SLO's error budget is depleting too quickly. "
|
|
31
|
+
"Use this to get early warning when service reliability is degrading, before completely exhausting your error budget. "
|
|
32
|
+
"Requires a dataset, the SLO ID to attach to, alert type (exhaustion_time or budget_rate), and threshold value. "
|
|
33
|
+
"For exhaustion_time alerts, specify the threshold in minutes (fires when budget will be exhausted in X minutes). "
|
|
34
|
+
"For budget_rate alerts, specify threshold as percentage drop within a time window. "
|
|
35
|
+
"Recipients are OPTIONAL - omit them to create a silent alert, or include inline recipients "
|
|
36
|
+
"(type + target) to create and attach them automatically."
|
|
37
|
+
),
|
|
38
|
+
"honeycomb_update_burn_alert": (
|
|
39
|
+
"Updates an existing burn alert's threshold, recipients, or alert type. "
|
|
40
|
+
"Use this to adjust alerting sensitivity as you learn about your service's error budget consumption patterns. "
|
|
41
|
+
"Requires the dataset slug, burn alert ID, and the complete updated burn alert configuration. "
|
|
42
|
+
"Note: This replaces the entire burn alert configuration, so include all fields you want to preserve."
|
|
43
|
+
),
|
|
44
|
+
"honeycomb_delete_burn_alert": (
|
|
45
|
+
"Permanently deletes a burn alert from an SLO. "
|
|
46
|
+
"Use this when adjusting SLO alerting strategy or removing redundant burn alerts. "
|
|
47
|
+
"Requires both the dataset slug and burn alert ID. "
|
|
48
|
+
"Warning: This action cannot be undone. The alert will stop firing immediately."
|
|
49
|
+
),
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def get_description(tool_name: str) -> str:
|
|
54
|
+
"""Get the description for a tool in this resource."""
|
|
55
|
+
return BURN_ALERT_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
|
+
# Burn Alerts Tool Definitions
|
|
87
|
+
# ==============================================================================
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def generate_list_burn_alerts_tool() -> dict[str, Any]:
|
|
91
|
+
"""Generate honeycomb_list_burn_alerts tool definition."""
|
|
92
|
+
schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset", "slo_id"]}
|
|
93
|
+
|
|
94
|
+
add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
|
|
95
|
+
add_parameter(schema, "slo_id", "string", "The SLO ID to list burn alerts for", required=True)
|
|
96
|
+
|
|
97
|
+
examples = [
|
|
98
|
+
{"dataset": "api-logs", "slo_id": "slo-123"},
|
|
99
|
+
{"dataset": "production", "slo_id": "slo-456"},
|
|
100
|
+
]
|
|
101
|
+
|
|
102
|
+
return create_tool_definition(
|
|
103
|
+
name="honeycomb_list_burn_alerts",
|
|
104
|
+
description=get_description("honeycomb_list_burn_alerts"),
|
|
105
|
+
input_schema=schema,
|
|
106
|
+
input_examples=examples,
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def generate_get_burn_alert_tool() -> dict[str, Any]:
|
|
111
|
+
"""Generate honeycomb_get_burn_alert tool definition."""
|
|
112
|
+
schema: dict[str, Any] = {
|
|
113
|
+
"type": "object",
|
|
114
|
+
"properties": {},
|
|
115
|
+
"required": ["dataset", "burn_alert_id"],
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
|
|
119
|
+
add_parameter(schema, "burn_alert_id", "string", "The burn alert ID to retrieve", required=True)
|
|
120
|
+
|
|
121
|
+
examples = [
|
|
122
|
+
{"dataset": "api-logs", "burn_alert_id": "ba-123"},
|
|
123
|
+
{"dataset": "production", "burn_alert_id": "ba-456"},
|
|
124
|
+
]
|
|
125
|
+
|
|
126
|
+
return create_tool_definition(
|
|
127
|
+
name="honeycomb_get_burn_alert",
|
|
128
|
+
description=get_description("honeycomb_get_burn_alert"),
|
|
129
|
+
input_schema=schema,
|
|
130
|
+
input_examples=examples,
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def generate_create_burn_alert_tool() -> dict[str, Any]:
|
|
135
|
+
"""Generate honeycomb_create_burn_alert tool definition."""
|
|
136
|
+
base_schema = generate_schema_from_model(
|
|
137
|
+
BurnAlertCreate,
|
|
138
|
+
exclude_fields={"created_at", "updated_at", "id"},
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
schema: dict[str, Any] = {"type": "object", "properties": {}, "required": ["dataset"]}
|
|
142
|
+
add_parameter(
|
|
143
|
+
schema, "dataset", "string", "The dataset slug to create the burn alert in", required=True
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
schema["properties"].update(base_schema["properties"])
|
|
147
|
+
schema["required"].extend(base_schema.get("required", []))
|
|
148
|
+
|
|
149
|
+
if "$defs" in base_schema:
|
|
150
|
+
schema["$defs"] = base_schema["$defs"]
|
|
151
|
+
|
|
152
|
+
examples = [
|
|
153
|
+
# Exhaustion time alert without recipients (recipients are optional)
|
|
154
|
+
{
|
|
155
|
+
"dataset": "api-logs",
|
|
156
|
+
"alert_type": "exhaustion_time",
|
|
157
|
+
"slo_id": "slo-123",
|
|
158
|
+
"exhaustion_minutes": 60,
|
|
159
|
+
},
|
|
160
|
+
# Exhaustion time alert with ID-based recipient
|
|
161
|
+
{
|
|
162
|
+
"dataset": "api-logs",
|
|
163
|
+
"alert_type": "exhaustion_time",
|
|
164
|
+
"slo_id": "slo-456",
|
|
165
|
+
"exhaustion_minutes": 60,
|
|
166
|
+
"recipients": [{"id": "recip-123"}],
|
|
167
|
+
},
|
|
168
|
+
# Budget rate alert with inline recipients
|
|
169
|
+
{
|
|
170
|
+
"dataset": "production",
|
|
171
|
+
"alert_type": "budget_rate",
|
|
172
|
+
"slo_id": "slo-789",
|
|
173
|
+
"budget_rate_window_minutes": 60,
|
|
174
|
+
"budget_rate_decrease_threshold_per_million": 10000, # 1% drop in 1 hour
|
|
175
|
+
"description": "Alert when error budget drops by 1% in 1 hour",
|
|
176
|
+
"recipients": [
|
|
177
|
+
{"type": "email", "target": "sre@example.com"},
|
|
178
|
+
{"type": "slack", "target": "#slo-alerts"},
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
# Critical exhaustion alert with PagerDuty
|
|
182
|
+
{
|
|
183
|
+
"dataset": "critical-services",
|
|
184
|
+
"alert_type": "exhaustion_time",
|
|
185
|
+
"slo_id": "slo-abc",
|
|
186
|
+
"exhaustion_minutes": 30,
|
|
187
|
+
"description": "Critical: Budget exhausting in 30 minutes",
|
|
188
|
+
"recipients": [
|
|
189
|
+
{
|
|
190
|
+
"type": "pagerduty",
|
|
191
|
+
"target": "routing-key-critical",
|
|
192
|
+
"details": {"severity": "critical"},
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
},
|
|
196
|
+
]
|
|
197
|
+
|
|
198
|
+
return create_tool_definition(
|
|
199
|
+
name="honeycomb_create_burn_alert",
|
|
200
|
+
description=get_description("honeycomb_create_burn_alert"),
|
|
201
|
+
input_schema=schema,
|
|
202
|
+
input_examples=examples,
|
|
203
|
+
)
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
def generate_update_burn_alert_tool() -> dict[str, Any]:
|
|
207
|
+
"""Generate honeycomb_update_burn_alert tool definition."""
|
|
208
|
+
base_schema = generate_schema_from_model(
|
|
209
|
+
BurnAlertCreate,
|
|
210
|
+
exclude_fields={"created_at", "updated_at", "id"},
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
schema: dict[str, Any] = {
|
|
214
|
+
"type": "object",
|
|
215
|
+
"properties": {},
|
|
216
|
+
"required": ["dataset", "burn_alert_id"],
|
|
217
|
+
}
|
|
218
|
+
add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
|
|
219
|
+
add_parameter(schema, "burn_alert_id", "string", "The burn alert ID to update", required=True)
|
|
220
|
+
|
|
221
|
+
schema["properties"].update(base_schema["properties"])
|
|
222
|
+
schema["required"].extend(base_schema.get("required", []))
|
|
223
|
+
|
|
224
|
+
if "$defs" in base_schema:
|
|
225
|
+
schema["$defs"] = base_schema["$defs"]
|
|
226
|
+
|
|
227
|
+
examples = [
|
|
228
|
+
{
|
|
229
|
+
"dataset": "api-logs",
|
|
230
|
+
"burn_alert_id": "ba-123",
|
|
231
|
+
"alert_type": "exhaustion_time",
|
|
232
|
+
"slo_id": "slo-123",
|
|
233
|
+
"exhaustion_minutes": 30, # Updated from 60 to 30
|
|
234
|
+
"recipients": [{"id": "recip-123"}],
|
|
235
|
+
},
|
|
236
|
+
]
|
|
237
|
+
|
|
238
|
+
return create_tool_definition(
|
|
239
|
+
name="honeycomb_update_burn_alert",
|
|
240
|
+
description=get_description("honeycomb_update_burn_alert"),
|
|
241
|
+
input_schema=schema,
|
|
242
|
+
input_examples=examples,
|
|
243
|
+
)
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
def generate_delete_burn_alert_tool() -> dict[str, Any]:
|
|
247
|
+
"""Generate honeycomb_delete_burn_alert tool definition."""
|
|
248
|
+
schema: dict[str, Any] = {
|
|
249
|
+
"type": "object",
|
|
250
|
+
"properties": {},
|
|
251
|
+
"required": ["dataset", "burn_alert_id"],
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
add_parameter(schema, "dataset", "string", "The dataset slug", required=True)
|
|
255
|
+
add_parameter(schema, "burn_alert_id", "string", "The burn alert ID to delete", required=True)
|
|
256
|
+
|
|
257
|
+
examples = [
|
|
258
|
+
{"dataset": "api-logs", "burn_alert_id": "ba-123"},
|
|
259
|
+
{"dataset": "production", "burn_alert_id": "ba-456"},
|
|
260
|
+
]
|
|
261
|
+
|
|
262
|
+
return create_tool_definition(
|
|
263
|
+
name="honeycomb_delete_burn_alert",
|
|
264
|
+
description=get_description("honeycomb_delete_burn_alert"),
|
|
265
|
+
input_schema=schema,
|
|
266
|
+
input_examples=examples,
|
|
267
|
+
)
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
def get_tools() -> list[dict[str, Any]]:
|
|
271
|
+
"""Get all burn alerts tool definitions."""
|
|
272
|
+
return [
|
|
273
|
+
generate_list_burn_alerts_tool(),
|
|
274
|
+
generate_get_burn_alert_tool(),
|
|
275
|
+
generate_create_burn_alert_tool(),
|
|
276
|
+
generate_update_burn_alert_tool(),
|
|
277
|
+
generate_delete_burn_alert_tool(),
|
|
278
|
+
]
|