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