honeycomb-api 0.1.0__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 +217 -0
- honeycomb/_generated/__init__.py +8 -0
- honeycomb/_generated/api/__init__.py +1 -0
- honeycomb/_generated/api/auth/__init__.py +0 -0
- honeycomb/_generated/api/auth/get_auth.py +172 -0
- honeycomb/_generated/api/auth/get_v2_auth.py +168 -0
- honeycomb/_generated/api/boards/__init__.py +0 -0
- honeycomb/_generated/api/boards/create_board.py +217 -0
- honeycomb/_generated/api/boards/create_board_view.py +237 -0
- honeycomb/_generated/api/boards/delete_board.py +191 -0
- honeycomb/_generated/api/boards/delete_board_view.py +210 -0
- honeycomb/_generated/api/boards/get_board.py +208 -0
- honeycomb/_generated/api/boards/get_board_view.py +214 -0
- honeycomb/_generated/api/boards/list_board_views.py +206 -0
- honeycomb/_generated/api/boards/list_boards.py +177 -0
- honeycomb/_generated/api/boards/update_board.py +238 -0
- honeycomb/_generated/api/boards/update_board_view.py +250 -0
- honeycomb/_generated/api/burn_alerts/__init__.py +0 -0
- honeycomb/_generated/api/burn_alerts/create_burn_alert.py +224 -0
- honeycomb/_generated/api/burn_alerts/delete_burn_alert.py +204 -0
- honeycomb/_generated/api/burn_alerts/get_burn_alert.py +208 -0
- honeycomb/_generated/api/burn_alerts/list_burn_alerts_by_slo.py +220 -0
- honeycomb/_generated/api/calculated_fields/__init__.py +0 -0
- honeycomb/_generated/api/calculated_fields/create_calculated_field.py +239 -0
- honeycomb/_generated/api/calculated_fields/delete_calculated_field.py +225 -0
- honeycomb/_generated/api/calculated_fields/get_calculated_field.py +207 -0
- honeycomb/_generated/api/calculated_fields/list_calculated_fields.py +252 -0
- honeycomb/_generated/api/calculated_fields/update_calculated_field.py +242 -0
- honeycomb/_generated/api/columns/__init__.py +0 -0
- honeycomb/_generated/api/columns/create_column.py +241 -0
- honeycomb/_generated/api/columns/delete_column.py +221 -0
- honeycomb/_generated/api/columns/get_column.py +206 -0
- honeycomb/_generated/api/columns/list_columns.py +256 -0
- honeycomb/_generated/api/columns/update_column.py +242 -0
- honeycomb/_generated/api/dataset_definitions/__init__.py +0 -0
- honeycomb/_generated/api/dataset_definitions/list_dataset_definitions.py +193 -0
- honeycomb/_generated/api/dataset_definitions/patch_dataset_definitions.py +235 -0
- honeycomb/_generated/api/datasets/__init__.py +0 -0
- honeycomb/_generated/api/datasets/create_dataset.py +227 -0
- honeycomb/_generated/api/datasets/delete_dataset.py +251 -0
- honeycomb/_generated/api/datasets/get_dataset.py +195 -0
- honeycomb/_generated/api/datasets/list_datasets.py +177 -0
- honeycomb/_generated/api/datasets/update_dataset.py +217 -0
- honeycomb/_generated/api/enhance/__init__.py +0 -0
- honeycomb/_generated/api/enhance/record_enhance_indexer_usage.py +231 -0
- honeycomb/_generated/api/environments/__init__.py +0 -0
- honeycomb/_generated/api/environments/create_environment.py +247 -0
- honeycomb/_generated/api/environments/delete_environment.py +245 -0
- honeycomb/_generated/api/environments/get_environment.py +213 -0
- honeycomb/_generated/api/environments/list_environments.py +245 -0
- honeycomb/_generated/api/environments/update_environment.py +254 -0
- honeycomb/_generated/api/events/__init__.py +0 -0
- honeycomb/_generated/api/events/create_event.py +269 -0
- honeycomb/_generated/api/events/create_events.py +314 -0
- honeycomb/_generated/api/key_management/__init__.py +0 -0
- honeycomb/_generated/api/key_management/create_api_key.py +286 -0
- honeycomb/_generated/api/key_management/delete_api_key.py +223 -0
- honeycomb/_generated/api/key_management/get_api_key.py +225 -0
- honeycomb/_generated/api/key_management/list_api_keys.py +281 -0
- honeycomb/_generated/api/key_management/update_api_key.py +270 -0
- honeycomb/_generated/api/kinesis_events/__init__.py +0 -0
- honeycomb/_generated/api/kinesis_events/create_kinesis_events.py +220 -0
- honeycomb/_generated/api/marker_settings/__init__.py +0 -0
- honeycomb/_generated/api/marker_settings/create_marker_setting.py +209 -0
- honeycomb/_generated/api/marker_settings/delete_marker_settings.py +194 -0
- honeycomb/_generated/api/marker_settings/list_marker_settings.py +186 -0
- honeycomb/_generated/api/marker_settings/update_marker_settings.py +230 -0
- honeycomb/_generated/api/markers/__init__.py +0 -0
- honeycomb/_generated/api/markers/create_marker.py +220 -0
- honeycomb/_generated/api/markers/create_marker_v2.py +253 -0
- honeycomb/_generated/api/markers/delete_marker.py +200 -0
- honeycomb/_generated/api/markers/get_marker.py +194 -0
- honeycomb/_generated/api/markers/update_marker.py +233 -0
- honeycomb/_generated/api/markers/update_marker_v2.py +262 -0
- honeycomb/_generated/api/pipelines/__init__.py +0 -0
- honeycomb/_generated/api/pipelines/get_pipeline_configuration.py +306 -0
- honeycomb/_generated/api/pipelines/record_pipeline_usage.py +244 -0
- honeycomb/_generated/api/pipelines/update_pipeline_configuration_rollout.py +261 -0
- honeycomb/_generated/api/queries/__init__.py +0 -0
- honeycomb/_generated/api/queries/create_query.py +224 -0
- honeycomb/_generated/api/queries/get_query.py +208 -0
- honeycomb/_generated/api/query_annotations/__init__.py +0 -0
- honeycomb/_generated/api/query_annotations/create_query_annotation.py +226 -0
- honeycomb/_generated/api/query_annotations/delete_query_annotation.py +198 -0
- honeycomb/_generated/api/query_annotations/get_query_annotation.py +202 -0
- honeycomb/_generated/api/query_annotations/list_query_annotations.py +217 -0
- honeycomb/_generated/api/query_annotations/update_query_annotation.py +237 -0
- honeycomb/_generated/api/query_data/__init__.py +0 -0
- honeycomb/_generated/api/query_data/create_query_result.py +247 -0
- honeycomb/_generated/api/query_data/get_query_result.py +208 -0
- honeycomb/_generated/api/recipients/__init__.py +0 -0
- honeycomb/_generated/api/recipients/create_recipient.py +317 -0
- honeycomb/_generated/api/recipients/delete_recipient.py +199 -0
- honeycomb/_generated/api/recipients/get_recipient.py +252 -0
- honeycomb/_generated/api/recipients/list_recipients.py +230 -0
- honeycomb/_generated/api/recipients/update_recipient.py +323 -0
- honeycomb/_generated/api/reporting/__init__.py +0 -0
- honeycomb/_generated/api/reporting/get_slo_history.py +218 -0
- honeycomb/_generated/api/service_maps/__init__.py +0 -0
- honeycomb/_generated/api/service_maps/create_map_dependency_request.py +252 -0
- honeycomb/_generated/api/service_maps/get_map_dependencies.py +265 -0
- honeycomb/_generated/api/sl_os/__init__.py +0 -0
- honeycomb/_generated/api/sl_os/create_slo.py +229 -0
- honeycomb/_generated/api/sl_os/delete_slo.py +210 -0
- honeycomb/_generated/api/sl_os/get_slo.py +256 -0
- honeycomb/_generated/api/sl_os/list_slos.py +210 -0
- honeycomb/_generated/api/sl_os/update_slo.py +242 -0
- honeycomb/_generated/api/triggers/__init__.py +0 -0
- honeycomb/_generated/api/triggers/create_trigger.py +250 -0
- honeycomb/_generated/api/triggers/delete_trigger.py +204 -0
- honeycomb/_generated/api/triggers/get_trigger.py +214 -0
- honeycomb/_generated/api/triggers/list_triggers.py +206 -0
- honeycomb/_generated/api/triggers/list_triggers_with_recipient.py +208 -0
- honeycomb/_generated/api/triggers/update_trigger.py +248 -0
- honeycomb/_generated/client.py +271 -0
- honeycomb/_generated/errors.py +14 -0
- honeycomb/_generated/models/__init__.py +561 -0
- honeycomb/_generated/models/api_key_create_request.py +78 -0
- honeycomb/_generated/models/api_key_create_request_data.py +130 -0
- honeycomb/_generated/models/api_key_create_request_data_relationships.py +78 -0
- honeycomb/_generated/models/api_key_create_request_data_type.py +7 -0
- honeycomb/_generated/models/api_key_list_response.py +112 -0
- honeycomb/_generated/models/api_key_object.py +189 -0
- honeycomb/_generated/models/api_key_object_links.py +74 -0
- honeycomb/_generated/models/api_key_object_relationships.py +150 -0
- honeycomb/_generated/models/api_key_object_type.py +7 -0
- honeycomb/_generated/models/api_key_response.py +78 -0
- honeycomb/_generated/models/api_key_update_request.py +104 -0
- honeycomb/_generated/models/auth.py +140 -0
- honeycomb/_generated/models/auth_api_key_access.py +154 -0
- honeycomb/_generated/models/auth_environment.py +82 -0
- honeycomb/_generated/models/auth_team.py +82 -0
- honeycomb/_generated/models/auth_type.py +8 -0
- honeycomb/_generated/models/auth_v2_response.py +108 -0
- honeycomb/_generated/models/auth_v2_response_data.py +122 -0
- honeycomb/_generated/models/auth_v2_response_data_attributes.py +141 -0
- honeycomb/_generated/models/auth_v2_response_data_attributes_key_type.py +7 -0
- honeycomb/_generated/models/auth_v2_response_data_attributes_timestamps.py +107 -0
- honeycomb/_generated/models/auth_v2_response_data_relationships.py +59 -0
- honeycomb/_generated/models/auth_v2_response_data_type.py +7 -0
- honeycomb/_generated/models/base_trigger.py +367 -0
- honeycomb/_generated/models/base_trigger_alert_type.py +8 -0
- honeycomb/_generated/models/base_trigger_baseline_details_type_0.py +92 -0
- honeycomb/_generated/models/base_trigger_baseline_details_type_0_offset_minutes.py +10 -0
- honeycomb/_generated/models/base_trigger_baseline_details_type_0_type.py +8 -0
- honeycomb/_generated/models/base_trigger_evaluation_schedule.py +83 -0
- honeycomb/_generated/models/base_trigger_evaluation_schedule_type.py +8 -0
- honeycomb/_generated/models/base_trigger_evaluation_schedule_window.py +103 -0
- honeycomb/_generated/models/base_trigger_evaluation_schedule_window_days_of_week_item.py +13 -0
- honeycomb/_generated/models/base_trigger_threshold.py +95 -0
- honeycomb/_generated/models/base_trigger_threshold_op.py +10 -0
- honeycomb/_generated/models/batch_event.py +110 -0
- honeycomb/_generated/models/board.py +276 -0
- honeycomb/_generated/models/board_layout_generation.py +8 -0
- honeycomb/_generated/models/board_links.py +74 -0
- honeycomb/_generated/models/board_panel_position.py +104 -0
- honeycomb/_generated/models/board_query_visualization_settings.py +141 -0
- honeycomb/_generated/models/board_query_visualization_settings_charts_item.py +113 -0
- honeycomb/_generated/models/board_query_visualization_settings_charts_item_chart_type.py +13 -0
- honeycomb/_generated/models/board_type.py +7 -0
- honeycomb/_generated/models/board_view_filter.py +93 -0
- honeycomb/_generated/models/board_view_filter_operation.py +22 -0
- honeycomb/_generated/models/board_view_response.py +111 -0
- honeycomb/_generated/models/budget_rate.py +189 -0
- honeycomb/_generated/models/budget_rate_alert_type.py +8 -0
- honeycomb/_generated/models/burn_alert_shared_params.py +136 -0
- honeycomb/_generated/models/calculated_field.py +117 -0
- honeycomb/_generated/models/configuration_key_attributes.py +140 -0
- honeycomb/_generated/models/configuration_key_attributes_key_type.py +7 -0
- honeycomb/_generated/models/configuration_key_attributes_timestamps.py +107 -0
- honeycomb/_generated/models/create_board_view_request.py +96 -0
- honeycomb/_generated/models/create_budget_rate_burn_alert_request.py +232 -0
- honeycomb/_generated/models/create_budget_rate_burn_alert_request_slo.py +74 -0
- honeycomb/_generated/models/create_column.py +149 -0
- honeycomb/_generated/models/create_column_type.py +11 -0
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request.py +78 -0
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data.py +90 -0
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes.py +97 -0
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data.py +88 -0
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item.py +89 -0
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item.py +89 -0
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item.py +97 -0
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum.py +102 -0
- 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 +7 -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 +105 -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_attributes_item.py +87 -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_attributes_item_value.py +73 -0
- honeycomb/_generated/models/create_enhance_indexer_usage_record_request_data_type.py +7 -0
- honeycomb/_generated/models/create_environment_request.py +78 -0
- honeycomb/_generated/models/create_environment_request_data.py +90 -0
- honeycomb/_generated/models/create_environment_request_data_attributes.py +102 -0
- honeycomb/_generated/models/create_environment_request_data_type.py +7 -0
- honeycomb/_generated/models/create_events_content_encoding.py +8 -0
- honeycomb/_generated/models/create_events_response_200_item.py +82 -0
- honeycomb/_generated/models/create_exhaustion_time_burn_alert_request.py +217 -0
- honeycomb/_generated/models/create_exhaustion_time_burn_alert_request_slo.py +74 -0
- honeycomb/_generated/models/create_map_dependencies_request.py +128 -0
- honeycomb/_generated/models/create_map_dependencies_response.py +97 -0
- honeycomb/_generated/models/create_map_dependencies_response_status.py +9 -0
- honeycomb/_generated/models/create_pipeline_health_record_request.py +78 -0
- honeycomb/_generated/models/create_pipeline_health_record_request_data.py +98 -0
- honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes.py +88 -0
- honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data.py +88 -0
- honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item.py +89 -0
- honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item.py +89 -0
- honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item.py +97 -0
- honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum.py +102 -0
- honeycomb/_generated/models/create_pipeline_health_record_request_data_attributes_usage_data_resource_metrics_item_scope_metrics_item_metrics_item_sum_aggregation_temporality.py +7 -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 +105 -0
- 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 +87 -0
- 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 +73 -0
- honeycomb/_generated/models/create_pipeline_health_record_request_data_type.py +7 -0
- honeycomb/_generated/models/create_query_result_request.py +118 -0
- honeycomb/_generated/models/dataset.py +183 -0
- honeycomb/_generated/models/dataset_creation_payload.py +93 -0
- honeycomb/_generated/models/dataset_definition_type_1.py +96 -0
- honeycomb/_generated/models/dataset_definition_type_1_column_type.py +8 -0
- honeycomb/_generated/models/dataset_definitions.py +599 -0
- honeycomb/_generated/models/dataset_relationship.py +79 -0
- honeycomb/_generated/models/dataset_relationship_data.py +82 -0
- honeycomb/_generated/models/dataset_relationship_data_type.py +7 -0
- honeycomb/_generated/models/dataset_settings.py +73 -0
- honeycomb/_generated/models/dataset_update_payload.py +105 -0
- honeycomb/_generated/models/dataset_update_payload_settings.py +73 -0
- honeycomb/_generated/models/detailed_error.py +115 -0
- honeycomb/_generated/models/email_recipient.py +160 -0
- honeycomb/_generated/models/email_recipient_details.py +71 -0
- honeycomb/_generated/models/email_recipient_type.py +7 -0
- honeycomb/_generated/models/environment.py +112 -0
- honeycomb/_generated/models/environment_attributes.py +140 -0
- honeycomb/_generated/models/environment_attributes_color_type_1.py +7 -0
- honeycomb/_generated/models/environment_attributes_settings.py +70 -0
- honeycomb/_generated/models/environment_color.py +16 -0
- honeycomb/_generated/models/environment_links.py +70 -0
- honeycomb/_generated/models/environment_list_response.py +112 -0
- honeycomb/_generated/models/environment_relationship.py +79 -0
- honeycomb/_generated/models/environment_relationship_data.py +82 -0
- honeycomb/_generated/models/environment_relationship_data_type.py +7 -0
- honeycomb/_generated/models/environment_response.py +78 -0
- honeycomb/_generated/models/environment_type.py +7 -0
- honeycomb/_generated/models/error.py +74 -0
- honeycomb/_generated/models/event.py +71 -0
- honeycomb/_generated/models/exhaustion_time.py +174 -0
- honeycomb/_generated/models/exhaustion_time_alert_type.py +8 -0
- honeycomb/_generated/models/exhaustion_time_burn_alert_list_response.py +198 -0
- honeycomb/_generated/models/exhaustion_time_burn_alert_list_response_slo.py +77 -0
- honeycomb/_generated/models/filter_op.py +22 -0
- honeycomb/_generated/models/get_map_dependencies_response.py +169 -0
- honeycomb/_generated/models/get_map_dependencies_response_status.py +9 -0
- honeycomb/_generated/models/having_calculate_op.py +29 -0
- honeycomb/_generated/models/having_op.py +12 -0
- honeycomb/_generated/models/included_resource.py +106 -0
- honeycomb/_generated/models/included_resource_attributes.py +62 -0
- honeycomb/_generated/models/ingest_key_attributes.py +153 -0
- honeycomb/_generated/models/ingest_key_attributes_key_type.py +7 -0
- honeycomb/_generated/models/ingest_key_attributes_permissions.py +74 -0
- honeycomb/_generated/models/ingest_key_attributes_timestamps.py +107 -0
- honeycomb/_generated/models/ingest_key_type.py +90 -0
- honeycomb/_generated/models/ingest_key_type_key_type.py +7 -0
- honeycomb/_generated/models/jsonapi_error_source.py +92 -0
- honeycomb/_generated/models/kinesis_event.py +111 -0
- honeycomb/_generated/models/kinesis_event_record.py +73 -0
- honeycomb/_generated/models/kinesis_response.py +91 -0
- honeycomb/_generated/models/list_api_keys_filtertype.py +8 -0
- honeycomb/_generated/models/map_dependency.py +118 -0
- honeycomb/_generated/models/map_node.py +97 -0
- honeycomb/_generated/models/map_node_type.py +7 -0
- honeycomb/_generated/models/marker.py +151 -0
- honeycomb/_generated/models/marker_create_request.py +78 -0
- honeycomb/_generated/models/marker_create_request_data.py +104 -0
- honeycomb/_generated/models/marker_create_request_data_attributes.py +110 -0
- honeycomb/_generated/models/marker_create_request_data_relationships.py +92 -0
- honeycomb/_generated/models/marker_create_request_data_type.py +7 -0
- honeycomb/_generated/models/marker_object.py +136 -0
- honeycomb/_generated/models/marker_object_attributes.py +146 -0
- honeycomb/_generated/models/marker_object_attributes_timestamps.py +107 -0
- honeycomb/_generated/models/marker_object_links.py +74 -0
- honeycomb/_generated/models/marker_object_relationships.py +111 -0
- honeycomb/_generated/models/marker_object_relationships_dataset.py +104 -0
- honeycomb/_generated/models/marker_object_relationships_dataset_data_type_0.py +94 -0
- honeycomb/_generated/models/marker_object_relationships_dataset_data_type_0_type.py +7 -0
- honeycomb/_generated/models/marker_object_type.py +7 -0
- honeycomb/_generated/models/marker_response.py +78 -0
- honeycomb/_generated/models/marker_setting.py +125 -0
- honeycomb/_generated/models/marker_update_request.py +78 -0
- honeycomb/_generated/models/marker_update_request_data.py +104 -0
- honeycomb/_generated/models/marker_update_request_data_attributes.py +111 -0
- honeycomb/_generated/models/marker_update_request_data_relationships.py +92 -0
- honeycomb/_generated/models/marker_update_request_data_type.py +7 -0
- honeycomb/_generated/models/ms_teams_recipient.py +161 -0
- honeycomb/_generated/models/ms_teams_recipient_details.py +80 -0
- honeycomb/_generated/models/ms_teams_recipient_type.py +7 -0
- honeycomb/_generated/models/ms_teams_workflow_recipient.py +161 -0
- honeycomb/_generated/models/ms_teams_workflow_recipient_details.py +80 -0
- honeycomb/_generated/models/ms_teams_workflow_recipient_type.py +7 -0
- honeycomb/_generated/models/notification_recipient.py +131 -0
- honeycomb/_generated/models/notification_recipient_details.py +117 -0
- honeycomb/_generated/models/notification_recipient_details_pagerduty_severity.py +10 -0
- honeycomb/_generated/models/notification_recipient_details_variables_item.py +81 -0
- honeycomb/_generated/models/pager_duty_recipient.py +160 -0
- honeycomb/_generated/models/pager_duty_recipient_details.py +79 -0
- honeycomb/_generated/models/pager_duty_recipient_type.py +7 -0
- honeycomb/_generated/models/pagination_links.py +80 -0
- honeycomb/_generated/models/payload_template.py +73 -0
- honeycomb/_generated/models/pipeline_configuration_response.py +112 -0
- honeycomb/_generated/models/pipeline_configuration_response_attributes.py +101 -0
- honeycomb/_generated/models/pipeline_configuration_response_attributes_configs_item.py +85 -0
- honeycomb/_generated/models/pipeline_configuration_response_links.py +73 -0
- honeycomb/_generated/models/pipeline_configuration_response_type.py +7 -0
- honeycomb/_generated/models/pipeline_configuration_rollout.py +112 -0
- honeycomb/_generated/models/pipeline_configuration_rollout_attributes.py +75 -0
- honeycomb/_generated/models/pipeline_configuration_rollout_attributes_status.py +12 -0
- honeycomb/_generated/models/pipeline_configuration_rollout_links.py +73 -0
- honeycomb/_generated/models/pipeline_configuration_rollout_type.py +7 -0
- honeycomb/_generated/models/preset_filter.py +78 -0
- honeycomb/_generated/models/query.py +346 -0
- honeycomb/_generated/models/query_annotation.py +166 -0
- honeycomb/_generated/models/query_annotation_source.py +8 -0
- honeycomb/_generated/models/query_calculated_fields_item.py +80 -0
- honeycomb/_generated/models/query_calculations_item.py +98 -0
- honeycomb/_generated/models/query_compare_time_offset_seconds.py +14 -0
- honeycomb/_generated/models/query_filter_combination.py +8 -0
- honeycomb/_generated/models/query_filters_item.py +126 -0
- honeycomb/_generated/models/query_havings_item.py +128 -0
- honeycomb/_generated/models/query_op.py +30 -0
- honeycomb/_generated/models/query_orders_item.py +115 -0
- honeycomb/_generated/models/query_orders_item_order.py +8 -0
- honeycomb/_generated/models/query_panel.py +114 -0
- honeycomb/_generated/models/query_panel_query_panel.py +143 -0
- honeycomb/_generated/models/query_panel_query_panel_query_style.py +9 -0
- honeycomb/_generated/models/query_result.py +130 -0
- honeycomb/_generated/models/query_result_details.py +156 -0
- honeycomb/_generated/models/query_result_details_data.py +188 -0
- honeycomb/_generated/models/query_result_details_links.py +85 -0
- honeycomb/_generated/models/query_result_links.py +85 -0
- honeycomb/_generated/models/query_results_data.py +89 -0
- honeycomb/_generated/models/query_results_data_data.py +71 -0
- honeycomb/_generated/models/query_results_series.py +97 -0
- honeycomb/_generated/models/recipient_properties.py +137 -0
- honeycomb/_generated/models/recipient_type.py +12 -0
- honeycomb/_generated/models/slack_recipient.py +160 -0
- honeycomb/_generated/models/slack_recipient_details.py +71 -0
- honeycomb/_generated/models/slack_recipient_type.py +7 -0
- honeycomb/_generated/models/slo.py +245 -0
- honeycomb/_generated/models/slo_create.py +245 -0
- honeycomb/_generated/models/slo_create_sli.py +75 -0
- honeycomb/_generated/models/slo_detailed_response.py +312 -0
- honeycomb/_generated/models/slo_detailed_response_status.py +10 -0
- honeycomb/_generated/models/slo_history.py +94 -0
- honeycomb/_generated/models/slo_history_request.py +93 -0
- honeycomb/_generated/models/slo_history_response.py +91 -0
- honeycomb/_generated/models/slo_panel.py +114 -0
- honeycomb/_generated/models/slo_panel_slo_panel.py +75 -0
- honeycomb/_generated/models/slo_sli.py +74 -0
- honeycomb/_generated/models/tag.py +79 -0
- honeycomb/_generated/models/team_relationship.py +78 -0
- honeycomb/_generated/models/team_relationship_team.py +78 -0
- honeycomb/_generated/models/team_relationship_team_data.py +82 -0
- honeycomb/_generated/models/team_relationship_team_data_type.py +7 -0
- honeycomb/_generated/models/template_variable_definition.py +81 -0
- honeycomb/_generated/models/text_panel.py +114 -0
- honeycomb/_generated/models/text_panel_text_panel.py +71 -0
- honeycomb/_generated/models/trigger_response.py +399 -0
- honeycomb/_generated/models/trigger_with_inline_query.py +390 -0
- honeycomb/_generated/models/trigger_with_inline_query_query.py +60 -0
- honeycomb/_generated/models/trigger_with_query_reference.py +376 -0
- honeycomb/_generated/models/update_board_view_request.py +107 -0
- honeycomb/_generated/models/update_environment_request.py +78 -0
- honeycomb/_generated/models/update_environment_request_data.py +98 -0
- honeycomb/_generated/models/update_environment_request_data_attributes.py +118 -0
- honeycomb/_generated/models/update_environment_request_data_attributes_settings.py +73 -0
- honeycomb/_generated/models/update_environment_request_data_type.py +7 -0
- honeycomb/_generated/models/update_exhaustion_time_burn_alert_request.py +202 -0
- honeycomb/_generated/models/update_pipeline_configuration_rollout.py +98 -0
- honeycomb/_generated/models/update_pipeline_configuration_rollout_attributes.py +75 -0
- honeycomb/_generated/models/update_pipeline_configuration_rollout_attributes_status.py +12 -0
- honeycomb/_generated/models/update_pipeline_configuration_rollout_request.py +78 -0
- honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data.py +98 -0
- honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data_attributes.py +75 -0
- honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data_attributes_status.py +12 -0
- honeycomb/_generated/models/update_pipeline_configuration_rollout_request_data_type.py +7 -0
- honeycomb/_generated/models/update_pipeline_configuration_rollout_response.py +78 -0
- honeycomb/_generated/models/update_pipeline_configuration_rollout_type.py +7 -0
- honeycomb/_generated/models/user_relationship.py +78 -0
- honeycomb/_generated/models/user_relationship_data.py +82 -0
- honeycomb/_generated/models/user_relationship_data_type.py +7 -0
- honeycomb/_generated/models/validation_error.py +145 -0
- honeycomb/_generated/models/validation_error_type_detail_item.py +103 -0
- honeycomb/_generated/models/validation_error_type_detail_item_code.py +10 -0
- honeycomb/_generated/models/webhook_header.py +81 -0
- honeycomb/_generated/models/webhook_recipient.py +160 -0
- honeycomb/_generated/models/webhook_recipient_details.py +142 -0
- honeycomb/_generated/models/webhook_recipient_details_webhook_payloads.py +117 -0
- honeycomb/_generated/models/webhook_recipient_details_webhook_payloads_payload_templates.py +126 -0
- honeycomb/_generated/models/webhook_recipient_type.py +7 -0
- honeycomb/_generated/py.typed +1 -0
- honeycomb/_generated/types.py +46 -0
- honeycomb/auth.py +152 -0
- honeycomb/client.py +736 -0
- honeycomb/exceptions.py +236 -0
- honeycomb/models/__init__.py +157 -0
- honeycomb/models/api_keys.py +81 -0
- honeycomb/models/board_builder.py +387 -0
- honeycomb/models/boards.py +86 -0
- honeycomb/models/burn_alerts.py +124 -0
- honeycomb/models/columns.py +59 -0
- honeycomb/models/datasets.py +51 -0
- honeycomb/models/derived_columns.py +107 -0
- honeycomb/models/environments.py +106 -0
- honeycomb/models/events.py +35 -0
- honeycomb/models/marker_builder.py +136 -0
- honeycomb/models/markers.py +73 -0
- honeycomb/models/queries.py +210 -0
- honeycomb/models/query_annotations.py +63 -0
- honeycomb/models/query_builder.py +840 -0
- honeycomb/models/recipient_builder.py +248 -0
- honeycomb/models/recipients.py +43 -0
- honeycomb/models/service_map_dependencies.py +126 -0
- honeycomb/models/slo_builder.py +463 -0
- honeycomb/models/slos.py +66 -0
- honeycomb/models/tags_mixin.py +79 -0
- honeycomb/models/trigger_builder.py +561 -0
- honeycomb/models/triggers.py +208 -0
- honeycomb/resources/__init__.py +35 -0
- honeycomb/resources/_recipient_utils.py +156 -0
- honeycomb/resources/api_keys.py +303 -0
- honeycomb/resources/base.py +142 -0
- honeycomb/resources/boards.py +350 -0
- honeycomb/resources/burn_alerts.py +205 -0
- honeycomb/resources/columns.py +185 -0
- honeycomb/resources/datasets.py +163 -0
- honeycomb/resources/derived_columns.py +233 -0
- honeycomb/resources/environments.py +295 -0
- honeycomb/resources/events.py +156 -0
- honeycomb/resources/markers.py +334 -0
- honeycomb/resources/queries.py +256 -0
- honeycomb/resources/query_annotations.py +207 -0
- honeycomb/resources/query_results.py +886 -0
- honeycomb/resources/recipients.py +202 -0
- honeycomb/resources/service_map_dependencies.py +389 -0
- honeycomb/resources/slos.py +353 -0
- honeycomb/resources/triggers.py +284 -0
- honeycomb/tools/__init__.py +85 -0
- honeycomb/tools/__main__.py +204 -0
- honeycomb/tools/builders.py +512 -0
- honeycomb/tools/descriptions.py +523 -0
- honeycomb/tools/executor.py +860 -0
- honeycomb/tools/generator.py +2386 -0
- honeycomb/tools/schemas.py +184 -0
- honeycomb_api-0.1.0.dist-info/METADATA +451 -0
- honeycomb_api-0.1.0.dist-info/RECORD +453 -0
- honeycomb_api-0.1.0.dist-info/WHEEL +4 -0
- honeycomb_api-0.1.0.dist-info/licenses/LICENSE +21 -0
honeycomb/exceptions.py
ADDED
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"""Exception hierarchy for Honeycomb API errors."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class HoneycombAPIError(Exception):
|
|
7
|
+
"""Base exception for all Honeycomb API errors.
|
|
8
|
+
|
|
9
|
+
Attributes:
|
|
10
|
+
message: Human-readable error message.
|
|
11
|
+
status_code: HTTP status code from the response.
|
|
12
|
+
request_id: Honeycomb request ID for support debugging (if available).
|
|
13
|
+
response_body: Raw response body (if available).
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
def __init__(
|
|
17
|
+
self,
|
|
18
|
+
message: str,
|
|
19
|
+
status_code: int,
|
|
20
|
+
request_id: str | None = None,
|
|
21
|
+
response_body: dict | None = None,
|
|
22
|
+
) -> None:
|
|
23
|
+
super().__init__(message)
|
|
24
|
+
self.message = message
|
|
25
|
+
self.status_code = status_code
|
|
26
|
+
self.request_id = request_id
|
|
27
|
+
self.response_body = response_body
|
|
28
|
+
|
|
29
|
+
def __str__(self) -> str:
|
|
30
|
+
parts = [f"[{self.status_code}] {self.message}"]
|
|
31
|
+
if self.request_id:
|
|
32
|
+
parts.append(f"(request_id: {self.request_id})")
|
|
33
|
+
return " ".join(parts)
|
|
34
|
+
|
|
35
|
+
def __repr__(self) -> str:
|
|
36
|
+
return (
|
|
37
|
+
f"{self.__class__.__name__}("
|
|
38
|
+
f"message={self.message!r}, "
|
|
39
|
+
f"status_code={self.status_code}, "
|
|
40
|
+
f"request_id={self.request_id!r})"
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class HoneycombAuthError(HoneycombAPIError):
|
|
45
|
+
"""401 Unauthorized - Invalid or missing API key.
|
|
46
|
+
|
|
47
|
+
Raised when the API key is missing, invalid, or expired.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
pass
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class HoneycombForbiddenError(HoneycombAPIError):
|
|
54
|
+
"""403 Forbidden - Insufficient permissions.
|
|
55
|
+
|
|
56
|
+
Raised when the API key doesn't have permission for the requested operation.
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
pass
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
class HoneycombNotFoundError(HoneycombAPIError):
|
|
63
|
+
"""404 Not Found - Resource doesn't exist.
|
|
64
|
+
|
|
65
|
+
Raised when the requested resource (dataset, trigger, SLO, etc.) is not found.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
pass
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class HoneycombValidationError(HoneycombAPIError):
|
|
72
|
+
"""422 Validation Error - Invalid request data.
|
|
73
|
+
|
|
74
|
+
Raised when the request body fails validation.
|
|
75
|
+
|
|
76
|
+
Attributes:
|
|
77
|
+
errors: List of field-level validation errors (if available).
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
def __init__(
|
|
81
|
+
self,
|
|
82
|
+
message: str,
|
|
83
|
+
status_code: int = 422,
|
|
84
|
+
request_id: str | None = None,
|
|
85
|
+
response_body: dict | None = None,
|
|
86
|
+
errors: list[dict] | None = None,
|
|
87
|
+
) -> None:
|
|
88
|
+
super().__init__(message, status_code, request_id, response_body)
|
|
89
|
+
self.errors = errors or []
|
|
90
|
+
|
|
91
|
+
def __str__(self) -> str:
|
|
92
|
+
base = super().__str__()
|
|
93
|
+
if self.errors:
|
|
94
|
+
error_details = "; ".join(
|
|
95
|
+
f"{e.get('field', 'unknown')}: {e.get('message', 'invalid')}" for e in self.errors
|
|
96
|
+
)
|
|
97
|
+
return f"{base} - {error_details}"
|
|
98
|
+
return base
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class HoneycombRateLimitError(HoneycombAPIError):
|
|
102
|
+
"""429 Rate Limited - Too many requests.
|
|
103
|
+
|
|
104
|
+
Raised when the API rate limit has been exceeded.
|
|
105
|
+
|
|
106
|
+
Attributes:
|
|
107
|
+
retry_after: Seconds to wait before retrying (if provided by API).
|
|
108
|
+
"""
|
|
109
|
+
|
|
110
|
+
def __init__(
|
|
111
|
+
self,
|
|
112
|
+
message: str,
|
|
113
|
+
status_code: int = 429,
|
|
114
|
+
request_id: str | None = None,
|
|
115
|
+
response_body: dict | None = None,
|
|
116
|
+
retry_after: int | None = None,
|
|
117
|
+
) -> None:
|
|
118
|
+
super().__init__(message, status_code, request_id, response_body)
|
|
119
|
+
self.retry_after = retry_after
|
|
120
|
+
|
|
121
|
+
def __str__(self) -> str:
|
|
122
|
+
base = super().__str__()
|
|
123
|
+
if self.retry_after:
|
|
124
|
+
return f"{base} (retry after {self.retry_after}s)"
|
|
125
|
+
return base
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
class HoneycombServerError(HoneycombAPIError):
|
|
129
|
+
"""5xx Server Error - Honeycomb service issue.
|
|
130
|
+
|
|
131
|
+
Raised when Honeycomb's servers encounter an error.
|
|
132
|
+
These errors are typically transient and can be retried.
|
|
133
|
+
"""
|
|
134
|
+
|
|
135
|
+
pass
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
class HoneycombTimeoutError(HoneycombAPIError):
|
|
139
|
+
"""Request timed out.
|
|
140
|
+
|
|
141
|
+
Raised when a request to the Honeycomb API times out.
|
|
142
|
+
"""
|
|
143
|
+
|
|
144
|
+
def __init__(
|
|
145
|
+
self,
|
|
146
|
+
message: str = "Request timed out",
|
|
147
|
+
timeout: float | None = None,
|
|
148
|
+
) -> None:
|
|
149
|
+
super().__init__(message, status_code=0)
|
|
150
|
+
self.timeout = timeout
|
|
151
|
+
|
|
152
|
+
def __str__(self) -> str:
|
|
153
|
+
if self.timeout:
|
|
154
|
+
return f"{self.message} (timeout: {self.timeout}s)"
|
|
155
|
+
return self.message
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
class HoneycombConnectionError(HoneycombAPIError):
|
|
159
|
+
"""Connection error.
|
|
160
|
+
|
|
161
|
+
Raised when unable to connect to the Honeycomb API.
|
|
162
|
+
"""
|
|
163
|
+
|
|
164
|
+
def __init__(
|
|
165
|
+
self,
|
|
166
|
+
message: str = "Failed to connect to Honeycomb API",
|
|
167
|
+
original_error: Exception | None = None,
|
|
168
|
+
) -> None:
|
|
169
|
+
super().__init__(message, status_code=0)
|
|
170
|
+
self.original_error = original_error
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def raise_for_status(
|
|
174
|
+
status_code: int,
|
|
175
|
+
response_body: dict | None = None,
|
|
176
|
+
request_id: str | None = None,
|
|
177
|
+
) -> None:
|
|
178
|
+
"""Raise an appropriate exception based on HTTP status code.
|
|
179
|
+
|
|
180
|
+
Args:
|
|
181
|
+
status_code: HTTP status code from the response.
|
|
182
|
+
response_body: Parsed response body (if available).
|
|
183
|
+
request_id: Request ID from response headers (if available).
|
|
184
|
+
|
|
185
|
+
Raises:
|
|
186
|
+
HoneycombAuthError: For 401 responses.
|
|
187
|
+
HoneycombForbiddenError: For 403 responses.
|
|
188
|
+
HoneycombNotFoundError: For 404 responses.
|
|
189
|
+
HoneycombValidationError: For 422 responses.
|
|
190
|
+
HoneycombRateLimitError: For 429 responses.
|
|
191
|
+
HoneycombServerError: For 5xx responses.
|
|
192
|
+
HoneycombAPIError: For other error responses.
|
|
193
|
+
"""
|
|
194
|
+
if 200 <= status_code < 300:
|
|
195
|
+
return
|
|
196
|
+
|
|
197
|
+
# Extract error message from response body
|
|
198
|
+
message = "Unknown error"
|
|
199
|
+
errors: list[dict] | None = None
|
|
200
|
+
retry_after: int | None = None
|
|
201
|
+
|
|
202
|
+
if response_body:
|
|
203
|
+
# Try different error formats
|
|
204
|
+
if "error" in response_body:
|
|
205
|
+
message = response_body["error"]
|
|
206
|
+
elif "message" in response_body:
|
|
207
|
+
message = response_body["message"]
|
|
208
|
+
elif "title" in response_body:
|
|
209
|
+
message = response_body["title"]
|
|
210
|
+
if "detail" in response_body:
|
|
211
|
+
message = f"{message}: {response_body['detail']}"
|
|
212
|
+
elif "errors" in response_body and isinstance(response_body["errors"], list):
|
|
213
|
+
# JSON:API format
|
|
214
|
+
first_error = response_body["errors"][0] if response_body["errors"] else {}
|
|
215
|
+
message = first_error.get("detail") or first_error.get("title") or message
|
|
216
|
+
errors = response_body["errors"]
|
|
217
|
+
|
|
218
|
+
# Extract validation errors
|
|
219
|
+
if "type_detail" in response_body:
|
|
220
|
+
errors = response_body.get("type_detail", [])
|
|
221
|
+
|
|
222
|
+
# Map status codes to exceptions
|
|
223
|
+
if status_code == 401:
|
|
224
|
+
raise HoneycombAuthError(message, status_code, request_id, response_body)
|
|
225
|
+
elif status_code == 403:
|
|
226
|
+
raise HoneycombForbiddenError(message, status_code, request_id, response_body)
|
|
227
|
+
elif status_code == 404:
|
|
228
|
+
raise HoneycombNotFoundError(message, status_code, request_id, response_body)
|
|
229
|
+
elif status_code == 422:
|
|
230
|
+
raise HoneycombValidationError(message, status_code, request_id, response_body, errors)
|
|
231
|
+
elif status_code == 429:
|
|
232
|
+
raise HoneycombRateLimitError(message, status_code, request_id, response_body, retry_after)
|
|
233
|
+
elif 500 <= status_code < 600:
|
|
234
|
+
raise HoneycombServerError(message, status_code, request_id, response_body)
|
|
235
|
+
else:
|
|
236
|
+
raise HoneycombAPIError(message, status_code, request_id, response_body)
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"""Pydantic models for Honeycomb API resources."""
|
|
2
|
+
|
|
3
|
+
from .api_keys import ApiKey, ApiKeyCreate, ApiKeyType
|
|
4
|
+
from .board_builder import (
|
|
5
|
+
BoardBuilder,
|
|
6
|
+
BoardBundle,
|
|
7
|
+
ExistingQueryPanel,
|
|
8
|
+
ExistingSLOPanel,
|
|
9
|
+
QueryBuilderPanel,
|
|
10
|
+
SLOBuilderPanel,
|
|
11
|
+
TextPanel,
|
|
12
|
+
)
|
|
13
|
+
from .boards import Board, BoardCreate
|
|
14
|
+
from .burn_alerts import BurnAlert, BurnAlertCreate, BurnAlertRecipient, BurnAlertType
|
|
15
|
+
from .columns import Column, ColumnCreate, ColumnType
|
|
16
|
+
from .datasets import Dataset, DatasetCreate
|
|
17
|
+
from .derived_columns import DerivedColumn, DerivedColumnBuilder, DerivedColumnCreate
|
|
18
|
+
from .environments import Environment, EnvironmentColor, EnvironmentCreate, EnvironmentUpdate
|
|
19
|
+
from .events import BatchEvent, BatchEventResult
|
|
20
|
+
from .marker_builder import MarkerBuilder
|
|
21
|
+
from .markers import Marker, MarkerCreate, MarkerSetting, MarkerSettingCreate
|
|
22
|
+
from .queries import Query, QueryResult, QueryResultData, QuerySpec
|
|
23
|
+
from .query_annotations import QueryAnnotation, QueryAnnotationCreate, QueryAnnotationSource
|
|
24
|
+
from .query_builder import (
|
|
25
|
+
CalcOp,
|
|
26
|
+
Calculation,
|
|
27
|
+
Filter,
|
|
28
|
+
FilterCombination,
|
|
29
|
+
FilterOp,
|
|
30
|
+
Having,
|
|
31
|
+
Order,
|
|
32
|
+
OrderDirection,
|
|
33
|
+
QueryBuilder,
|
|
34
|
+
)
|
|
35
|
+
from .recipient_builder import RecipientBuilder, RecipientMixin
|
|
36
|
+
from .recipients import Recipient, RecipientCreate, RecipientType
|
|
37
|
+
from .service_map_dependencies import (
|
|
38
|
+
ServiceMapDependency,
|
|
39
|
+
ServiceMapDependencyRequest,
|
|
40
|
+
ServiceMapDependencyRequestCreate,
|
|
41
|
+
ServiceMapDependencyRequestStatus,
|
|
42
|
+
ServiceMapDependencyResult,
|
|
43
|
+
ServiceMapNode,
|
|
44
|
+
ServiceMapNodeType,
|
|
45
|
+
)
|
|
46
|
+
from .slo_builder import BurnAlertBuilder, BurnAlertDefinition, SLIDefinition, SLOBuilder, SLOBundle
|
|
47
|
+
from .slos import SLI, SLO, SLOCreate
|
|
48
|
+
from .tags_mixin import TagsMixin
|
|
49
|
+
from .trigger_builder import TriggerBuilder, TriggerBundle
|
|
50
|
+
from .triggers import (
|
|
51
|
+
Trigger,
|
|
52
|
+
TriggerAlertType,
|
|
53
|
+
TriggerCreate,
|
|
54
|
+
TriggerQuery,
|
|
55
|
+
TriggerThreshold,
|
|
56
|
+
TriggerThresholdOp,
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
__all__ = [
|
|
60
|
+
# Query Builder (enums and typed models)
|
|
61
|
+
"CalcOp",
|
|
62
|
+
"FilterOp",
|
|
63
|
+
"OrderDirection",
|
|
64
|
+
"FilterCombination",
|
|
65
|
+
"Calculation",
|
|
66
|
+
"Filter",
|
|
67
|
+
"Order",
|
|
68
|
+
"Having",
|
|
69
|
+
"QueryBuilder",
|
|
70
|
+
# Triggers
|
|
71
|
+
"Trigger",
|
|
72
|
+
"TriggerCreate",
|
|
73
|
+
"TriggerThreshold",
|
|
74
|
+
"TriggerThresholdOp",
|
|
75
|
+
"TriggerAlertType",
|
|
76
|
+
"TriggerQuery",
|
|
77
|
+
"TriggerBuilder",
|
|
78
|
+
"TriggerBundle",
|
|
79
|
+
# SLOs
|
|
80
|
+
"SLO",
|
|
81
|
+
"SLOCreate",
|
|
82
|
+
"SLI",
|
|
83
|
+
"SLOBuilder",
|
|
84
|
+
"SLOBundle",
|
|
85
|
+
"SLIDefinition",
|
|
86
|
+
"BurnAlertBuilder",
|
|
87
|
+
"BurnAlertDefinition",
|
|
88
|
+
# Datasets
|
|
89
|
+
"Dataset",
|
|
90
|
+
"DatasetCreate",
|
|
91
|
+
# Boards
|
|
92
|
+
"Board",
|
|
93
|
+
"BoardBuilder",
|
|
94
|
+
"BoardBundle",
|
|
95
|
+
"BoardCreate",
|
|
96
|
+
"ExistingQueryPanel",
|
|
97
|
+
"ExistingSLOPanel",
|
|
98
|
+
"QueryBuilderPanel",
|
|
99
|
+
"SLOBuilderPanel",
|
|
100
|
+
"TextPanel",
|
|
101
|
+
# Queries
|
|
102
|
+
"Query",
|
|
103
|
+
"QuerySpec",
|
|
104
|
+
"QueryResult",
|
|
105
|
+
"QueryResultData",
|
|
106
|
+
# Query Annotations
|
|
107
|
+
"QueryAnnotation",
|
|
108
|
+
"QueryAnnotationCreate",
|
|
109
|
+
"QueryAnnotationSource",
|
|
110
|
+
# Columns
|
|
111
|
+
"Column",
|
|
112
|
+
"ColumnCreate",
|
|
113
|
+
"ColumnType",
|
|
114
|
+
# Derived Columns (Calculated Fields)
|
|
115
|
+
"DerivedColumn",
|
|
116
|
+
"DerivedColumnCreate",
|
|
117
|
+
"DerivedColumnBuilder",
|
|
118
|
+
# Markers
|
|
119
|
+
"Marker",
|
|
120
|
+
"MarkerBuilder",
|
|
121
|
+
"MarkerCreate",
|
|
122
|
+
"MarkerSetting",
|
|
123
|
+
"MarkerSettingCreate",
|
|
124
|
+
# Recipients
|
|
125
|
+
"Recipient",
|
|
126
|
+
"RecipientCreate",
|
|
127
|
+
"RecipientType",
|
|
128
|
+
"RecipientBuilder",
|
|
129
|
+
"RecipientMixin",
|
|
130
|
+
# Tags
|
|
131
|
+
"TagsMixin",
|
|
132
|
+
# Burn Alerts
|
|
133
|
+
"BurnAlert",
|
|
134
|
+
"BurnAlertCreate",
|
|
135
|
+
"BurnAlertRecipient",
|
|
136
|
+
"BurnAlertType",
|
|
137
|
+
# Events
|
|
138
|
+
"BatchEvent",
|
|
139
|
+
"BatchEventResult",
|
|
140
|
+
# API Keys (v2)
|
|
141
|
+
"ApiKey",
|
|
142
|
+
"ApiKeyCreate",
|
|
143
|
+
"ApiKeyType",
|
|
144
|
+
# Environments (v2)
|
|
145
|
+
"Environment",
|
|
146
|
+
"EnvironmentCreate",
|
|
147
|
+
"EnvironmentUpdate",
|
|
148
|
+
"EnvironmentColor",
|
|
149
|
+
# Service Map Dependencies
|
|
150
|
+
"ServiceMapDependency",
|
|
151
|
+
"ServiceMapDependencyRequest",
|
|
152
|
+
"ServiceMapDependencyRequestCreate",
|
|
153
|
+
"ServiceMapDependencyRequestStatus",
|
|
154
|
+
"ServiceMapDependencyResult",
|
|
155
|
+
"ServiceMapNode",
|
|
156
|
+
"ServiceMapNodeType",
|
|
157
|
+
]
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"""Pydantic models for Honeycomb API Keys (v2 team-scoped)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from datetime import datetime
|
|
6
|
+
from enum import Enum
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, Field
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ApiKeyType(str, Enum):
|
|
13
|
+
"""API key types."""
|
|
14
|
+
|
|
15
|
+
INGEST = "ingest"
|
|
16
|
+
CONFIGURATION = "configuration"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class ApiKeyCreate(BaseModel):
|
|
20
|
+
"""Model for creating a new API key."""
|
|
21
|
+
|
|
22
|
+
name: str = Field(description="Name for the API key")
|
|
23
|
+
key_type: ApiKeyType = Field(description="Type of API key")
|
|
24
|
+
environment_id: str = Field(description="Environment ID this key belongs to")
|
|
25
|
+
disabled: bool = Field(default=False, description="Whether key is disabled")
|
|
26
|
+
|
|
27
|
+
def to_jsonapi(self) -> dict[str, Any]:
|
|
28
|
+
"""Convert to JSON:API format for API request."""
|
|
29
|
+
return {
|
|
30
|
+
"data": {
|
|
31
|
+
"type": "api-keys",
|
|
32
|
+
"attributes": {
|
|
33
|
+
"name": self.name,
|
|
34
|
+
"key_type": self.key_type.value,
|
|
35
|
+
"disabled": self.disabled,
|
|
36
|
+
},
|
|
37
|
+
"relationships": {
|
|
38
|
+
"environment": {"data": {"type": "environments", "id": self.environment_id}}
|
|
39
|
+
},
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class ApiKey(BaseModel):
|
|
45
|
+
"""A Honeycomb API key (response model)."""
|
|
46
|
+
|
|
47
|
+
id: str = Field(description="Unique identifier (includes key prefix)")
|
|
48
|
+
name: str = Field(description="Name of the API key")
|
|
49
|
+
key_type: ApiKeyType = Field(description="Type of API key")
|
|
50
|
+
environment_id: str | None = Field(default=None, description="Environment ID")
|
|
51
|
+
disabled: bool = Field(default=False, description="Whether key is disabled")
|
|
52
|
+
secret: str | None = Field(
|
|
53
|
+
default=None, description="Key secret (only available during creation)"
|
|
54
|
+
)
|
|
55
|
+
created_at: datetime | None = Field(default=None, description="Creation timestamp")
|
|
56
|
+
updated_at: datetime | None = Field(default=None, description="Last update timestamp")
|
|
57
|
+
|
|
58
|
+
model_config = {"extra": "allow"}
|
|
59
|
+
|
|
60
|
+
@classmethod
|
|
61
|
+
def from_jsonapi(cls, data: dict[str, Any]) -> ApiKey:
|
|
62
|
+
"""Parse from JSON:API format."""
|
|
63
|
+
obj = data.get("data", data) # Handle both wrapped and unwrapped
|
|
64
|
+
attributes = obj.get("attributes", {})
|
|
65
|
+
relationships = obj.get("relationships", {})
|
|
66
|
+
|
|
67
|
+
env_id = None
|
|
68
|
+
if "environment" in relationships:
|
|
69
|
+
env_data = relationships["environment"].get("data", {})
|
|
70
|
+
env_id = env_data.get("id")
|
|
71
|
+
|
|
72
|
+
return cls(
|
|
73
|
+
id=obj.get("id", ""),
|
|
74
|
+
name=attributes.get("name", ""),
|
|
75
|
+
key_type=attributes.get("key_type", "ingest"),
|
|
76
|
+
environment_id=env_id,
|
|
77
|
+
disabled=attributes.get("disabled", False),
|
|
78
|
+
secret=attributes.get("secret"),
|
|
79
|
+
created_at=attributes.get("created_at"),
|
|
80
|
+
updated_at=attributes.get("updated_at"),
|
|
81
|
+
)
|