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
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"""Columns resource for Honeycomb API."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import TYPE_CHECKING
|
|
6
|
+
|
|
7
|
+
from ..models.columns import Column, ColumnCreate
|
|
8
|
+
from .base import BaseResource
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from ..client import HoneycombClient
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ColumnsResource(BaseResource):
|
|
15
|
+
"""Resource for managing dataset columns.
|
|
16
|
+
|
|
17
|
+
Columns define the schema of your datasets and control how fields
|
|
18
|
+
are displayed and queried in the Honeycomb UI.
|
|
19
|
+
|
|
20
|
+
Example (async):
|
|
21
|
+
>>> async with HoneycombClient(api_key="...") as client:
|
|
22
|
+
... columns = await client.columns.list(dataset="my-dataset")
|
|
23
|
+
... column = await client.columns.get(
|
|
24
|
+
... dataset="my-dataset",
|
|
25
|
+
... column_id="abc123"
|
|
26
|
+
... )
|
|
27
|
+
|
|
28
|
+
Example (sync):
|
|
29
|
+
>>> with HoneycombClient(api_key="...", sync=True) as client:
|
|
30
|
+
... columns = client.columns.list(dataset="my-dataset")
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
def __init__(self, client: HoneycombClient) -> None:
|
|
34
|
+
super().__init__(client)
|
|
35
|
+
|
|
36
|
+
def _build_path(self, dataset: str, column_id: str | None = None) -> str:
|
|
37
|
+
"""Build API path for columns."""
|
|
38
|
+
base = f"/1/columns/{dataset}"
|
|
39
|
+
if column_id:
|
|
40
|
+
return f"{base}/{column_id}"
|
|
41
|
+
return base
|
|
42
|
+
|
|
43
|
+
# -------------------------------------------------------------------------
|
|
44
|
+
# Async methods
|
|
45
|
+
# -------------------------------------------------------------------------
|
|
46
|
+
|
|
47
|
+
async def list_async(self, dataset: str) -> list[Column]:
|
|
48
|
+
"""List all columns for a dataset (async).
|
|
49
|
+
|
|
50
|
+
Args:
|
|
51
|
+
dataset: Dataset slug.
|
|
52
|
+
|
|
53
|
+
Returns:
|
|
54
|
+
List of Column objects.
|
|
55
|
+
"""
|
|
56
|
+
data = await self._get_async(self._build_path(dataset))
|
|
57
|
+
return self._parse_model_list(Column, data)
|
|
58
|
+
|
|
59
|
+
async def get_async(self, dataset: str, column_id: str) -> Column:
|
|
60
|
+
"""Get a specific column (async).
|
|
61
|
+
|
|
62
|
+
Args:
|
|
63
|
+
dataset: Dataset slug.
|
|
64
|
+
column_id: Column ID.
|
|
65
|
+
|
|
66
|
+
Returns:
|
|
67
|
+
Column object.
|
|
68
|
+
"""
|
|
69
|
+
data = await self._get_async(self._build_path(dataset, column_id))
|
|
70
|
+
return self._parse_model(Column, data)
|
|
71
|
+
|
|
72
|
+
async def create_async(self, dataset: str, column: ColumnCreate) -> Column:
|
|
73
|
+
"""Create a new column (async).
|
|
74
|
+
|
|
75
|
+
Args:
|
|
76
|
+
dataset: Dataset slug.
|
|
77
|
+
column: Column configuration.
|
|
78
|
+
|
|
79
|
+
Returns:
|
|
80
|
+
Created Column object.
|
|
81
|
+
"""
|
|
82
|
+
data = await self._post_async(self._build_path(dataset), json=column.model_dump_for_api())
|
|
83
|
+
return self._parse_model(Column, data)
|
|
84
|
+
|
|
85
|
+
async def update_async(self, dataset: str, column_id: str, column: ColumnCreate) -> Column:
|
|
86
|
+
"""Update an existing column (async).
|
|
87
|
+
|
|
88
|
+
Args:
|
|
89
|
+
dataset: Dataset slug.
|
|
90
|
+
column_id: Column ID.
|
|
91
|
+
column: Updated column configuration.
|
|
92
|
+
|
|
93
|
+
Returns:
|
|
94
|
+
Updated Column object.
|
|
95
|
+
"""
|
|
96
|
+
data = await self._put_async(
|
|
97
|
+
self._build_path(dataset, column_id), json=column.model_dump_for_api()
|
|
98
|
+
)
|
|
99
|
+
return self._parse_model(Column, data)
|
|
100
|
+
|
|
101
|
+
async def delete_async(self, dataset: str, column_id: str) -> None:
|
|
102
|
+
"""Delete a column (async).
|
|
103
|
+
|
|
104
|
+
Args:
|
|
105
|
+
dataset: Dataset slug.
|
|
106
|
+
column_id: Column ID.
|
|
107
|
+
"""
|
|
108
|
+
await self._delete_async(self._build_path(dataset, column_id))
|
|
109
|
+
|
|
110
|
+
# -------------------------------------------------------------------------
|
|
111
|
+
# Sync methods
|
|
112
|
+
# -------------------------------------------------------------------------
|
|
113
|
+
|
|
114
|
+
def list(self, dataset: str) -> list[Column]:
|
|
115
|
+
"""List all columns for a dataset.
|
|
116
|
+
|
|
117
|
+
Args:
|
|
118
|
+
dataset: Dataset slug.
|
|
119
|
+
|
|
120
|
+
Returns:
|
|
121
|
+
List of Column objects.
|
|
122
|
+
"""
|
|
123
|
+
if not self._client.is_sync:
|
|
124
|
+
raise RuntimeError("Use list_async() for async mode, or pass sync=True to client")
|
|
125
|
+
data = self._get_sync(self._build_path(dataset))
|
|
126
|
+
return self._parse_model_list(Column, data)
|
|
127
|
+
|
|
128
|
+
def get(self, dataset: str, column_id: str) -> Column:
|
|
129
|
+
"""Get a specific column.
|
|
130
|
+
|
|
131
|
+
Args:
|
|
132
|
+
dataset: Dataset slug.
|
|
133
|
+
column_id: Column ID.
|
|
134
|
+
|
|
135
|
+
Returns:
|
|
136
|
+
Column object.
|
|
137
|
+
"""
|
|
138
|
+
if not self._client.is_sync:
|
|
139
|
+
raise RuntimeError("Use get_async() for async mode, or pass sync=True to client")
|
|
140
|
+
data = self._get_sync(self._build_path(dataset, column_id))
|
|
141
|
+
return self._parse_model(Column, data)
|
|
142
|
+
|
|
143
|
+
def create(self, dataset: str, column: ColumnCreate) -> Column:
|
|
144
|
+
"""Create a new column.
|
|
145
|
+
|
|
146
|
+
Args:
|
|
147
|
+
dataset: Dataset slug.
|
|
148
|
+
column: Column configuration.
|
|
149
|
+
|
|
150
|
+
Returns:
|
|
151
|
+
Created Column object.
|
|
152
|
+
"""
|
|
153
|
+
if not self._client.is_sync:
|
|
154
|
+
raise RuntimeError("Use create_async() for async mode, or pass sync=True to client")
|
|
155
|
+
data = self._post_sync(self._build_path(dataset), json=column.model_dump_for_api())
|
|
156
|
+
return self._parse_model(Column, data)
|
|
157
|
+
|
|
158
|
+
def update(self, dataset: str, column_id: str, column: ColumnCreate) -> Column:
|
|
159
|
+
"""Update an existing column.
|
|
160
|
+
|
|
161
|
+
Args:
|
|
162
|
+
dataset: Dataset slug.
|
|
163
|
+
column_id: Column ID.
|
|
164
|
+
column: Updated column configuration.
|
|
165
|
+
|
|
166
|
+
Returns:
|
|
167
|
+
Updated Column object.
|
|
168
|
+
"""
|
|
169
|
+
if not self._client.is_sync:
|
|
170
|
+
raise RuntimeError("Use update_async() for async mode, or pass sync=True to client")
|
|
171
|
+
data = self._put_sync(
|
|
172
|
+
self._build_path(dataset, column_id), json=column.model_dump_for_api()
|
|
173
|
+
)
|
|
174
|
+
return self._parse_model(Column, data)
|
|
175
|
+
|
|
176
|
+
def delete(self, dataset: str, column_id: str) -> None:
|
|
177
|
+
"""Delete a column.
|
|
178
|
+
|
|
179
|
+
Args:
|
|
180
|
+
dataset: Dataset slug.
|
|
181
|
+
column_id: Column ID.
|
|
182
|
+
"""
|
|
183
|
+
if not self._client.is_sync:
|
|
184
|
+
raise RuntimeError("Use delete_async() for async mode, or pass sync=True to client")
|
|
185
|
+
self._delete_sync(self._build_path(dataset, column_id))
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"""Datasets resource for Honeycomb API."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import TYPE_CHECKING
|
|
6
|
+
|
|
7
|
+
from ..models.datasets import Dataset, DatasetCreate
|
|
8
|
+
from .base import BaseResource
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from ..client import HoneycombClient
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class DatasetsResource(BaseResource):
|
|
15
|
+
"""Resource for managing Honeycomb datasets.
|
|
16
|
+
|
|
17
|
+
Datasets are containers for your telemetry data in Honeycomb.
|
|
18
|
+
|
|
19
|
+
Example (async):
|
|
20
|
+
>>> async with HoneycombClient(api_key="...") as client:
|
|
21
|
+
... datasets = await client.datasets.list()
|
|
22
|
+
... dataset = await client.datasets.get(slug="my-dataset")
|
|
23
|
+
|
|
24
|
+
Example (sync):
|
|
25
|
+
>>> with HoneycombClient(api_key="...", sync=True) as client:
|
|
26
|
+
... datasets = client.datasets.list()
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
def __init__(self, client: HoneycombClient) -> None:
|
|
30
|
+
super().__init__(client)
|
|
31
|
+
|
|
32
|
+
def _build_path(self, slug: str | None = None) -> str:
|
|
33
|
+
"""Build API path for datasets."""
|
|
34
|
+
base = "/1/datasets"
|
|
35
|
+
if slug:
|
|
36
|
+
return f"{base}/{slug}"
|
|
37
|
+
return base
|
|
38
|
+
|
|
39
|
+
# -------------------------------------------------------------------------
|
|
40
|
+
# Async methods
|
|
41
|
+
# -------------------------------------------------------------------------
|
|
42
|
+
|
|
43
|
+
async def list_async(self) -> list[Dataset]:
|
|
44
|
+
"""List all datasets (async).
|
|
45
|
+
|
|
46
|
+
Returns:
|
|
47
|
+
List of Dataset objects.
|
|
48
|
+
"""
|
|
49
|
+
data = await self._get_async(self._build_path())
|
|
50
|
+
return self._parse_model_list(Dataset, data)
|
|
51
|
+
|
|
52
|
+
async def get_async(self, slug: str) -> Dataset:
|
|
53
|
+
"""Get a specific dataset (async).
|
|
54
|
+
|
|
55
|
+
Args:
|
|
56
|
+
slug: Dataset slug.
|
|
57
|
+
|
|
58
|
+
Returns:
|
|
59
|
+
Dataset object.
|
|
60
|
+
"""
|
|
61
|
+
data = await self._get_async(self._build_path(slug))
|
|
62
|
+
return self._parse_model(Dataset, data)
|
|
63
|
+
|
|
64
|
+
async def create_async(self, dataset: DatasetCreate) -> Dataset:
|
|
65
|
+
"""Create a new dataset (async).
|
|
66
|
+
|
|
67
|
+
Args:
|
|
68
|
+
dataset: Dataset configuration.
|
|
69
|
+
|
|
70
|
+
Returns:
|
|
71
|
+
Created Dataset object.
|
|
72
|
+
"""
|
|
73
|
+
data = await self._post_async(self._build_path(), json=dataset.model_dump_for_api())
|
|
74
|
+
return self._parse_model(Dataset, data)
|
|
75
|
+
|
|
76
|
+
async def update_async(self, slug: str, dataset: DatasetCreate) -> Dataset:
|
|
77
|
+
"""Update an existing dataset (async).
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
slug: Dataset slug.
|
|
81
|
+
dataset: Updated dataset configuration.
|
|
82
|
+
|
|
83
|
+
Returns:
|
|
84
|
+
Updated Dataset object.
|
|
85
|
+
"""
|
|
86
|
+
data = await self._put_async(self._build_path(slug), json=dataset.model_dump_for_api())
|
|
87
|
+
return self._parse_model(Dataset, data)
|
|
88
|
+
|
|
89
|
+
async def delete_async(self, slug: str) -> None:
|
|
90
|
+
"""Delete a dataset (async).
|
|
91
|
+
|
|
92
|
+
Args:
|
|
93
|
+
slug: Dataset slug.
|
|
94
|
+
"""
|
|
95
|
+
await self._delete_async(self._build_path(slug))
|
|
96
|
+
|
|
97
|
+
# -------------------------------------------------------------------------
|
|
98
|
+
# Sync methods
|
|
99
|
+
# -------------------------------------------------------------------------
|
|
100
|
+
|
|
101
|
+
def list(self) -> list[Dataset]:
|
|
102
|
+
"""List all datasets.
|
|
103
|
+
|
|
104
|
+
Returns:
|
|
105
|
+
List of Dataset objects.
|
|
106
|
+
"""
|
|
107
|
+
if not self._client.is_sync:
|
|
108
|
+
raise RuntimeError("Use list_async() for async mode, or pass sync=True to client")
|
|
109
|
+
data = self._get_sync(self._build_path())
|
|
110
|
+
return self._parse_model_list(Dataset, data)
|
|
111
|
+
|
|
112
|
+
def get(self, slug: str) -> Dataset:
|
|
113
|
+
"""Get a specific dataset.
|
|
114
|
+
|
|
115
|
+
Args:
|
|
116
|
+
slug: Dataset slug.
|
|
117
|
+
|
|
118
|
+
Returns:
|
|
119
|
+
Dataset object.
|
|
120
|
+
"""
|
|
121
|
+
if not self._client.is_sync:
|
|
122
|
+
raise RuntimeError("Use get_async() for async mode, or pass sync=True to client")
|
|
123
|
+
data = self._get_sync(self._build_path(slug))
|
|
124
|
+
return self._parse_model(Dataset, data)
|
|
125
|
+
|
|
126
|
+
def create(self, dataset: DatasetCreate) -> Dataset:
|
|
127
|
+
"""Create a new dataset.
|
|
128
|
+
|
|
129
|
+
Args:
|
|
130
|
+
dataset: Dataset configuration.
|
|
131
|
+
|
|
132
|
+
Returns:
|
|
133
|
+
Created Dataset object.
|
|
134
|
+
"""
|
|
135
|
+
if not self._client.is_sync:
|
|
136
|
+
raise RuntimeError("Use create_async() for async mode, or pass sync=True to client")
|
|
137
|
+
data = self._post_sync(self._build_path(), json=dataset.model_dump_for_api())
|
|
138
|
+
return self._parse_model(Dataset, data)
|
|
139
|
+
|
|
140
|
+
def update(self, slug: str, dataset: DatasetCreate) -> Dataset:
|
|
141
|
+
"""Update an existing dataset.
|
|
142
|
+
|
|
143
|
+
Args:
|
|
144
|
+
slug: Dataset slug.
|
|
145
|
+
dataset: Updated dataset configuration.
|
|
146
|
+
|
|
147
|
+
Returns:
|
|
148
|
+
Updated Dataset object.
|
|
149
|
+
"""
|
|
150
|
+
if not self._client.is_sync:
|
|
151
|
+
raise RuntimeError("Use update_async() for async mode, or pass sync=True to client")
|
|
152
|
+
data = self._put_sync(self._build_path(slug), json=dataset.model_dump_for_api())
|
|
153
|
+
return self._parse_model(Dataset, data)
|
|
154
|
+
|
|
155
|
+
def delete(self, slug: str) -> None:
|
|
156
|
+
"""Delete a dataset.
|
|
157
|
+
|
|
158
|
+
Args:
|
|
159
|
+
slug: Dataset slug.
|
|
160
|
+
"""
|
|
161
|
+
if not self._client.is_sync:
|
|
162
|
+
raise RuntimeError("Use delete_async() for async mode, or pass sync=True to client")
|
|
163
|
+
self._delete_sync(self._build_path(slug))
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"""Derived Columns (Calculated Fields) resource for Honeycomb API."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import TYPE_CHECKING
|
|
6
|
+
|
|
7
|
+
from ..models.derived_columns import DerivedColumn, DerivedColumnCreate
|
|
8
|
+
from .base import BaseResource
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from ..client import HoneycombClient
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class DerivedColumnsResource(BaseResource):
|
|
15
|
+
"""Resource for managing derived columns (calculated fields).
|
|
16
|
+
|
|
17
|
+
Derived columns (also called Calculated Fields) allow you to run queries
|
|
18
|
+
based on the value of an expression that is calculated from the fields in an event.
|
|
19
|
+
|
|
20
|
+
Can be scoped to a specific dataset or environment-wide (use dataset="__all__").
|
|
21
|
+
|
|
22
|
+
Example (async):
|
|
23
|
+
>>> async with HoneycombClient(api_key="...") as client:
|
|
24
|
+
... # List derived columns in a dataset
|
|
25
|
+
... columns = await client.derived_columns.list_async(dataset="my-dataset")
|
|
26
|
+
...
|
|
27
|
+
... # Create a derived column
|
|
28
|
+
... dc = await client.derived_columns.create_async(
|
|
29
|
+
... dataset="my-dataset",
|
|
30
|
+
... derived_column=DerivedColumnCreate(
|
|
31
|
+
... alias="request_success",
|
|
32
|
+
... expression="IF(LT($status_code, 400), 1, 0)",
|
|
33
|
+
... description="1 if request succeeded, 0 otherwise"
|
|
34
|
+
... )
|
|
35
|
+
... )
|
|
36
|
+
...
|
|
37
|
+
... # Create environment-wide derived column
|
|
38
|
+
... dc = await client.derived_columns.create_async(
|
|
39
|
+
... dataset="__all__",
|
|
40
|
+
... derived_column=DerivedColumnCreate(
|
|
41
|
+
... alias="error_flag",
|
|
42
|
+
... expression="IF(EQUALS($level, 'error'), 1, 0)"
|
|
43
|
+
... )
|
|
44
|
+
... )
|
|
45
|
+
|
|
46
|
+
Example (sync):
|
|
47
|
+
>>> with HoneycombClient(api_key="...", sync=True) as client:
|
|
48
|
+
... columns = client.derived_columns.list(dataset="my-dataset")
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
def __init__(self, client: HoneycombClient) -> None:
|
|
52
|
+
super().__init__(client)
|
|
53
|
+
|
|
54
|
+
def _build_path(self, dataset: str, column_id: str | None = None) -> str:
|
|
55
|
+
"""Build API path for derived columns.
|
|
56
|
+
|
|
57
|
+
Args:
|
|
58
|
+
dataset: Dataset slug or "__all__" for environment-wide.
|
|
59
|
+
column_id: Optional derived column ID.
|
|
60
|
+
|
|
61
|
+
Returns:
|
|
62
|
+
API path string.
|
|
63
|
+
"""
|
|
64
|
+
base = f"/1/derived_columns/{dataset}"
|
|
65
|
+
if column_id:
|
|
66
|
+
return f"{base}/{column_id}"
|
|
67
|
+
return base
|
|
68
|
+
|
|
69
|
+
# -------------------------------------------------------------------------
|
|
70
|
+
# Async methods
|
|
71
|
+
# -------------------------------------------------------------------------
|
|
72
|
+
|
|
73
|
+
async def list_async(self, dataset: str, *, alias: str | None = None) -> list[DerivedColumn]:
|
|
74
|
+
"""List all derived columns for a dataset or environment (async).
|
|
75
|
+
|
|
76
|
+
Args:
|
|
77
|
+
dataset: Dataset slug or "__all__" for environment-wide.
|
|
78
|
+
alias: Optional alias to filter by (returns single column if found).
|
|
79
|
+
|
|
80
|
+
Returns:
|
|
81
|
+
List of DerivedColumn objects (or single-item list if alias provided).
|
|
82
|
+
"""
|
|
83
|
+
params = {"alias": alias} if alias else None
|
|
84
|
+
data = await self._get_async(self._build_path(dataset), params=params)
|
|
85
|
+
|
|
86
|
+
# API returns either a list or a single object when alias is used
|
|
87
|
+
if isinstance(data, list):
|
|
88
|
+
return self._parse_model_list(DerivedColumn, data)
|
|
89
|
+
else:
|
|
90
|
+
return [self._parse_model(DerivedColumn, data)]
|
|
91
|
+
|
|
92
|
+
async def get_async(self, dataset: str, column_id: str) -> DerivedColumn:
|
|
93
|
+
"""Get a specific derived column (async).
|
|
94
|
+
|
|
95
|
+
Args:
|
|
96
|
+
dataset: Dataset slug or "__all__" for environment-wide.
|
|
97
|
+
column_id: Derived column ID.
|
|
98
|
+
|
|
99
|
+
Returns:
|
|
100
|
+
DerivedColumn object.
|
|
101
|
+
"""
|
|
102
|
+
data = await self._get_async(self._build_path(dataset, column_id))
|
|
103
|
+
return self._parse_model(DerivedColumn, data)
|
|
104
|
+
|
|
105
|
+
async def create_async(
|
|
106
|
+
self, dataset: str, derived_column: DerivedColumnCreate
|
|
107
|
+
) -> DerivedColumn:
|
|
108
|
+
"""Create a new derived column (async).
|
|
109
|
+
|
|
110
|
+
Args:
|
|
111
|
+
dataset: Dataset slug or "__all__" for environment-wide.
|
|
112
|
+
derived_column: Derived column configuration.
|
|
113
|
+
|
|
114
|
+
Returns:
|
|
115
|
+
Created DerivedColumn object.
|
|
116
|
+
"""
|
|
117
|
+
data = await self._post_async(
|
|
118
|
+
self._build_path(dataset), json=derived_column.model_dump_for_api()
|
|
119
|
+
)
|
|
120
|
+
return self._parse_model(DerivedColumn, data)
|
|
121
|
+
|
|
122
|
+
async def update_async(
|
|
123
|
+
self, dataset: str, column_id: str, derived_column: DerivedColumnCreate
|
|
124
|
+
) -> DerivedColumn:
|
|
125
|
+
"""Update an existing derived column (async).
|
|
126
|
+
|
|
127
|
+
Args:
|
|
128
|
+
dataset: Dataset slug or "__all__" for environment-wide.
|
|
129
|
+
column_id: Derived column ID.
|
|
130
|
+
derived_column: Updated derived column configuration.
|
|
131
|
+
|
|
132
|
+
Returns:
|
|
133
|
+
Updated DerivedColumn object.
|
|
134
|
+
"""
|
|
135
|
+
data = await self._put_async(
|
|
136
|
+
self._build_path(dataset, column_id), json=derived_column.model_dump_for_api()
|
|
137
|
+
)
|
|
138
|
+
return self._parse_model(DerivedColumn, data)
|
|
139
|
+
|
|
140
|
+
async def delete_async(self, dataset: str, column_id: str) -> None:
|
|
141
|
+
"""Delete a derived column (async).
|
|
142
|
+
|
|
143
|
+
Args:
|
|
144
|
+
dataset: Dataset slug or "__all__" for environment-wide.
|
|
145
|
+
column_id: Derived column ID.
|
|
146
|
+
"""
|
|
147
|
+
await self._delete_async(self._build_path(dataset, column_id))
|
|
148
|
+
|
|
149
|
+
# -------------------------------------------------------------------------
|
|
150
|
+
# Sync methods
|
|
151
|
+
# -------------------------------------------------------------------------
|
|
152
|
+
|
|
153
|
+
def list(self, dataset: str, *, alias: str | None = None) -> list[DerivedColumn]:
|
|
154
|
+
"""List all derived columns for a dataset or environment.
|
|
155
|
+
|
|
156
|
+
Args:
|
|
157
|
+
dataset: Dataset slug or "__all__" for environment-wide.
|
|
158
|
+
alias: Optional alias to filter by (returns single column if found).
|
|
159
|
+
|
|
160
|
+
Returns:
|
|
161
|
+
List of DerivedColumn objects (or single-item list if alias provided).
|
|
162
|
+
"""
|
|
163
|
+
if not self._client.is_sync:
|
|
164
|
+
raise RuntimeError("Use list_async() for async mode, or pass sync=True to client")
|
|
165
|
+
params = {"alias": alias} if alias else None
|
|
166
|
+
data = self._get_sync(self._build_path(dataset), params=params)
|
|
167
|
+
|
|
168
|
+
# API returns either a list or a single object when alias is used
|
|
169
|
+
if isinstance(data, list):
|
|
170
|
+
return self._parse_model_list(DerivedColumn, data)
|
|
171
|
+
else:
|
|
172
|
+
return [self._parse_model(DerivedColumn, data)]
|
|
173
|
+
|
|
174
|
+
def get(self, dataset: str, column_id: str) -> DerivedColumn:
|
|
175
|
+
"""Get a specific derived column.
|
|
176
|
+
|
|
177
|
+
Args:
|
|
178
|
+
dataset: Dataset slug or "__all__" for environment-wide.
|
|
179
|
+
column_id: Derived column ID.
|
|
180
|
+
|
|
181
|
+
Returns:
|
|
182
|
+
DerivedColumn object.
|
|
183
|
+
"""
|
|
184
|
+
if not self._client.is_sync:
|
|
185
|
+
raise RuntimeError("Use get_async() for async mode, or pass sync=True to client")
|
|
186
|
+
data = self._get_sync(self._build_path(dataset, column_id))
|
|
187
|
+
return self._parse_model(DerivedColumn, data)
|
|
188
|
+
|
|
189
|
+
def create(self, dataset: str, derived_column: DerivedColumnCreate) -> DerivedColumn:
|
|
190
|
+
"""Create a new derived column.
|
|
191
|
+
|
|
192
|
+
Args:
|
|
193
|
+
dataset: Dataset slug or "__all__" for environment-wide.
|
|
194
|
+
derived_column: Derived column configuration.
|
|
195
|
+
|
|
196
|
+
Returns:
|
|
197
|
+
Created DerivedColumn object.
|
|
198
|
+
"""
|
|
199
|
+
if not self._client.is_sync:
|
|
200
|
+
raise RuntimeError("Use create_async() for async mode, or pass sync=True to client")
|
|
201
|
+
data = self._post_sync(self._build_path(dataset), json=derived_column.model_dump_for_api())
|
|
202
|
+
return self._parse_model(DerivedColumn, data)
|
|
203
|
+
|
|
204
|
+
def update(
|
|
205
|
+
self, dataset: str, column_id: str, derived_column: DerivedColumnCreate
|
|
206
|
+
) -> DerivedColumn:
|
|
207
|
+
"""Update an existing derived column.
|
|
208
|
+
|
|
209
|
+
Args:
|
|
210
|
+
dataset: Dataset slug or "__all__" for environment-wide.
|
|
211
|
+
column_id: Derived column ID.
|
|
212
|
+
derived_column: Updated derived column configuration.
|
|
213
|
+
|
|
214
|
+
Returns:
|
|
215
|
+
Updated DerivedColumn object.
|
|
216
|
+
"""
|
|
217
|
+
if not self._client.is_sync:
|
|
218
|
+
raise RuntimeError("Use update_async() for async mode, or pass sync=True to client")
|
|
219
|
+
data = self._put_sync(
|
|
220
|
+
self._build_path(dataset, column_id), json=derived_column.model_dump_for_api()
|
|
221
|
+
)
|
|
222
|
+
return self._parse_model(DerivedColumn, data)
|
|
223
|
+
|
|
224
|
+
def delete(self, dataset: str, column_id: str) -> None:
|
|
225
|
+
"""Delete a derived column.
|
|
226
|
+
|
|
227
|
+
Args:
|
|
228
|
+
dataset: Dataset slug or "__all__" for environment-wide.
|
|
229
|
+
column_id: Derived column ID.
|
|
230
|
+
"""
|
|
231
|
+
if not self._client.is_sync:
|
|
232
|
+
raise RuntimeError("Use delete_async() for async mode, or pass sync=True to client")
|
|
233
|
+
self._delete_sync(self._build_path(dataset, column_id))
|