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,202 @@
|
|
|
1
|
+
"""Recipients resource for Honeycomb API."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import TYPE_CHECKING, Any, List # noqa: UP035
|
|
6
|
+
|
|
7
|
+
from ..models.recipients import Recipient, RecipientCreate
|
|
8
|
+
from .base import BaseResource
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from ..client import HoneycombClient
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class RecipientsResource(BaseResource):
|
|
15
|
+
"""Resource for managing notification recipients.
|
|
16
|
+
|
|
17
|
+
Recipients define where to send notifications when triggers fire.
|
|
18
|
+
Supported types include email, Slack, PagerDuty, webhooks, and MS Teams.
|
|
19
|
+
|
|
20
|
+
Example (async):
|
|
21
|
+
>>> async with HoneycombClient(api_key="...") as client:
|
|
22
|
+
... recipients = await client.recipients.list()
|
|
23
|
+
... recipient = await client.recipients.create(
|
|
24
|
+
... recipient=RecipientCreate(
|
|
25
|
+
... type=RecipientType.EMAIL,
|
|
26
|
+
... details={"email_address": "alerts@example.com"}
|
|
27
|
+
... )
|
|
28
|
+
... )
|
|
29
|
+
|
|
30
|
+
Example (sync):
|
|
31
|
+
>>> with HoneycombClient(api_key="...", sync=True) as client:
|
|
32
|
+
... recipients = client.recipients.list()
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
def __init__(self, client: HoneycombClient) -> None:
|
|
36
|
+
super().__init__(client)
|
|
37
|
+
|
|
38
|
+
def _build_path(self, recipient_id: str | None = None) -> str:
|
|
39
|
+
"""Build API path for recipients."""
|
|
40
|
+
base = "/1/recipients"
|
|
41
|
+
if recipient_id:
|
|
42
|
+
return f"{base}/{recipient_id}"
|
|
43
|
+
return base
|
|
44
|
+
|
|
45
|
+
# -------------------------------------------------------------------------
|
|
46
|
+
# Async methods
|
|
47
|
+
# -------------------------------------------------------------------------
|
|
48
|
+
|
|
49
|
+
async def list_async(self) -> list[Recipient]:
|
|
50
|
+
"""List all recipients (async).
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
List of Recipient objects.
|
|
54
|
+
"""
|
|
55
|
+
data = await self._get_async(self._build_path())
|
|
56
|
+
return self._parse_model_list(Recipient, data)
|
|
57
|
+
|
|
58
|
+
async def get_async(self, recipient_id: str) -> Recipient:
|
|
59
|
+
"""Get a specific recipient (async).
|
|
60
|
+
|
|
61
|
+
Args:
|
|
62
|
+
recipient_id: Recipient ID.
|
|
63
|
+
|
|
64
|
+
Returns:
|
|
65
|
+
Recipient object.
|
|
66
|
+
"""
|
|
67
|
+
data = await self._get_async(self._build_path(recipient_id))
|
|
68
|
+
return self._parse_model(Recipient, data)
|
|
69
|
+
|
|
70
|
+
async def create_async(self, recipient: RecipientCreate) -> Recipient:
|
|
71
|
+
"""Create a new recipient (async).
|
|
72
|
+
|
|
73
|
+
Args:
|
|
74
|
+
recipient: Recipient configuration.
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
Created Recipient object.
|
|
78
|
+
"""
|
|
79
|
+
data = await self._post_async(self._build_path(), json=recipient.model_dump_for_api())
|
|
80
|
+
return self._parse_model(Recipient, data)
|
|
81
|
+
|
|
82
|
+
async def update_async(self, recipient_id: str, recipient: RecipientCreate) -> Recipient:
|
|
83
|
+
"""Update an existing recipient (async).
|
|
84
|
+
|
|
85
|
+
Args:
|
|
86
|
+
recipient_id: Recipient ID.
|
|
87
|
+
recipient: Updated recipient configuration.
|
|
88
|
+
|
|
89
|
+
Returns:
|
|
90
|
+
Updated Recipient object.
|
|
91
|
+
"""
|
|
92
|
+
data = await self._put_async(
|
|
93
|
+
self._build_path(recipient_id), json=recipient.model_dump_for_api()
|
|
94
|
+
)
|
|
95
|
+
return self._parse_model(Recipient, data)
|
|
96
|
+
|
|
97
|
+
async def delete_async(self, recipient_id: str) -> None:
|
|
98
|
+
"""Delete a recipient (async).
|
|
99
|
+
|
|
100
|
+
Args:
|
|
101
|
+
recipient_id: Recipient ID.
|
|
102
|
+
"""
|
|
103
|
+
await self._delete_async(self._build_path(recipient_id))
|
|
104
|
+
|
|
105
|
+
async def get_triggers_async(self, recipient_id: str) -> List[dict[str, Any]]: # noqa: UP006
|
|
106
|
+
"""Get all triggers associated with a recipient (async).
|
|
107
|
+
|
|
108
|
+
Args:
|
|
109
|
+
recipient_id: Recipient ID.
|
|
110
|
+
|
|
111
|
+
Returns:
|
|
112
|
+
List of trigger objects.
|
|
113
|
+
"""
|
|
114
|
+
path = f"{self._build_path(recipient_id)}/triggers"
|
|
115
|
+
data = await self._get_async(path)
|
|
116
|
+
# Return raw dict list as we don't want circular dependency on Trigger model
|
|
117
|
+
return data if isinstance(data, list) else []
|
|
118
|
+
|
|
119
|
+
# -------------------------------------------------------------------------
|
|
120
|
+
# Sync methods
|
|
121
|
+
# -------------------------------------------------------------------------
|
|
122
|
+
|
|
123
|
+
def list(self) -> list[Recipient]:
|
|
124
|
+
"""List all recipients.
|
|
125
|
+
|
|
126
|
+
Returns:
|
|
127
|
+
List of Recipient objects.
|
|
128
|
+
"""
|
|
129
|
+
if not self._client.is_sync:
|
|
130
|
+
raise RuntimeError("Use list_async() for async mode, or pass sync=True to client")
|
|
131
|
+
data = self._get_sync(self._build_path())
|
|
132
|
+
return self._parse_model_list(Recipient, data)
|
|
133
|
+
|
|
134
|
+
def get(self, recipient_id: str) -> Recipient:
|
|
135
|
+
"""Get a specific recipient.
|
|
136
|
+
|
|
137
|
+
Args:
|
|
138
|
+
recipient_id: Recipient ID.
|
|
139
|
+
|
|
140
|
+
Returns:
|
|
141
|
+
Recipient object.
|
|
142
|
+
"""
|
|
143
|
+
if not self._client.is_sync:
|
|
144
|
+
raise RuntimeError("Use get_async() for async mode, or pass sync=True to client")
|
|
145
|
+
data = self._get_sync(self._build_path(recipient_id))
|
|
146
|
+
return self._parse_model(Recipient, data)
|
|
147
|
+
|
|
148
|
+
def create(self, recipient: RecipientCreate) -> Recipient:
|
|
149
|
+
"""Create a new recipient.
|
|
150
|
+
|
|
151
|
+
Args:
|
|
152
|
+
recipient: Recipient configuration.
|
|
153
|
+
|
|
154
|
+
Returns:
|
|
155
|
+
Created Recipient object.
|
|
156
|
+
"""
|
|
157
|
+
if not self._client.is_sync:
|
|
158
|
+
raise RuntimeError("Use create_async() for async mode, or pass sync=True to client")
|
|
159
|
+
data = self._post_sync(self._build_path(), json=recipient.model_dump_for_api())
|
|
160
|
+
return self._parse_model(Recipient, data)
|
|
161
|
+
|
|
162
|
+
def update(self, recipient_id: str, recipient: RecipientCreate) -> Recipient:
|
|
163
|
+
"""Update an existing recipient.
|
|
164
|
+
|
|
165
|
+
Args:
|
|
166
|
+
recipient_id: Recipient ID.
|
|
167
|
+
recipient: Updated recipient configuration.
|
|
168
|
+
|
|
169
|
+
Returns:
|
|
170
|
+
Updated Recipient object.
|
|
171
|
+
"""
|
|
172
|
+
if not self._client.is_sync:
|
|
173
|
+
raise RuntimeError("Use update_async() for async mode, or pass sync=True to client")
|
|
174
|
+
data = self._put_sync(self._build_path(recipient_id), json=recipient.model_dump_for_api())
|
|
175
|
+
return self._parse_model(Recipient, data)
|
|
176
|
+
|
|
177
|
+
def delete(self, recipient_id: str) -> None:
|
|
178
|
+
"""Delete a recipient.
|
|
179
|
+
|
|
180
|
+
Args:
|
|
181
|
+
recipient_id: Recipient 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(recipient_id))
|
|
186
|
+
|
|
187
|
+
def get_triggers(self, recipient_id: str) -> List[dict[str, Any]]: # noqa: UP006
|
|
188
|
+
"""Get all triggers associated with a recipient.
|
|
189
|
+
|
|
190
|
+
Args:
|
|
191
|
+
recipient_id: Recipient ID.
|
|
192
|
+
|
|
193
|
+
Returns:
|
|
194
|
+
List of trigger objects.
|
|
195
|
+
"""
|
|
196
|
+
if not self._client.is_sync:
|
|
197
|
+
raise RuntimeError(
|
|
198
|
+
"Use get_triggers_async() for async mode, or pass sync=True to client"
|
|
199
|
+
)
|
|
200
|
+
path = f"{self._build_path(recipient_id)}/triggers"
|
|
201
|
+
data = self._get_sync(path)
|
|
202
|
+
return data if isinstance(data, list) else []
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
"""Service Map Dependencies resource for Honeycomb API."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import asyncio
|
|
6
|
+
import time
|
|
7
|
+
from typing import TYPE_CHECKING, Any
|
|
8
|
+
from urllib.parse import parse_qs, urlparse
|
|
9
|
+
|
|
10
|
+
from ..models.service_map_dependencies import (
|
|
11
|
+
ServiceMapDependency,
|
|
12
|
+
ServiceMapDependencyRequest,
|
|
13
|
+
ServiceMapDependencyRequestCreate,
|
|
14
|
+
ServiceMapDependencyRequestStatus,
|
|
15
|
+
ServiceMapDependencyResult,
|
|
16
|
+
)
|
|
17
|
+
from .base import BaseResource
|
|
18
|
+
|
|
19
|
+
if TYPE_CHECKING:
|
|
20
|
+
from ..client import HoneycombClient
|
|
21
|
+
|
|
22
|
+
# Default page size for pagination (API max is 100)
|
|
23
|
+
DEFAULT_PAGE_SIZE = 100
|
|
24
|
+
|
|
25
|
+
# Default max pages to prevent runaway pagination (64000 items / 100 per page = 640)
|
|
26
|
+
DEFAULT_MAX_PAGES = 640
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class ServiceMapDependenciesResource(BaseResource):
|
|
30
|
+
"""Resource for querying service map dependencies.
|
|
31
|
+
|
|
32
|
+
Service Map Dependencies allow you to query the relationships between services
|
|
33
|
+
in your distributed system based on trace data.
|
|
34
|
+
|
|
35
|
+
Warning:
|
|
36
|
+
Large time ranges or unfiltered queries can return up to 64,000 dependencies.
|
|
37
|
+
With a page size of 100, this may result in up to 640 API requests.
|
|
38
|
+
The default rate limit is 100 requests per minute per operation.
|
|
39
|
+
If you need higher limits, contact Honeycomb support: https://www.honeycomb.io/support
|
|
40
|
+
|
|
41
|
+
Example (async):
|
|
42
|
+
>>> async with HoneycombClient(api_key="...") as client:
|
|
43
|
+
... # Get dependencies for the last 2 hours
|
|
44
|
+
... deps = await client.service_map_dependencies.get_async(
|
|
45
|
+
... request=ServiceMapDependencyRequestCreate(time_range=7200)
|
|
46
|
+
... )
|
|
47
|
+
...
|
|
48
|
+
... # Filter to specific services
|
|
49
|
+
... deps = await client.service_map_dependencies.get_async(
|
|
50
|
+
... request=ServiceMapDependencyRequestCreate(
|
|
51
|
+
... time_range=3600,
|
|
52
|
+
... filters=[ServiceMapNode(name="user-service")]
|
|
53
|
+
... )
|
|
54
|
+
... )
|
|
55
|
+
|
|
56
|
+
Example (sync):
|
|
57
|
+
>>> with HoneycombClient(api_key="...", sync=True) as client:
|
|
58
|
+
... deps = client.service_map_dependencies.get(
|
|
59
|
+
... request=ServiceMapDependencyRequestCreate(time_range=7200)
|
|
60
|
+
... )
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
def __init__(self, client: HoneycombClient) -> None:
|
|
64
|
+
super().__init__(client)
|
|
65
|
+
|
|
66
|
+
def _extract_cursor(self, next_link: str | None) -> str | None:
|
|
67
|
+
"""Extract cursor value from pagination next link."""
|
|
68
|
+
if not next_link:
|
|
69
|
+
return None
|
|
70
|
+
parsed = urlparse(next_link)
|
|
71
|
+
query_params = parse_qs(parsed.query)
|
|
72
|
+
cursor_values = query_params.get("page[after]", [])
|
|
73
|
+
return cursor_values[0] if cursor_values else None
|
|
74
|
+
|
|
75
|
+
def _build_params(
|
|
76
|
+
self,
|
|
77
|
+
cursor: str | None = None,
|
|
78
|
+
page_size: int = DEFAULT_PAGE_SIZE,
|
|
79
|
+
) -> dict[str, Any]:
|
|
80
|
+
"""Build query parameters for get requests."""
|
|
81
|
+
params: dict[str, Any] = {"page[size]": page_size}
|
|
82
|
+
if cursor:
|
|
83
|
+
params["page[after]"] = cursor
|
|
84
|
+
return params
|
|
85
|
+
|
|
86
|
+
# -------------------------------------------------------------------------
|
|
87
|
+
# Async methods
|
|
88
|
+
# -------------------------------------------------------------------------
|
|
89
|
+
|
|
90
|
+
async def create_async(
|
|
91
|
+
self,
|
|
92
|
+
request: ServiceMapDependencyRequestCreate,
|
|
93
|
+
limit: int = 10000,
|
|
94
|
+
) -> ServiceMapDependencyRequest:
|
|
95
|
+
"""Create a Service Map Dependencies request (async).
|
|
96
|
+
|
|
97
|
+
This initiates an asynchronous query for service dependencies.
|
|
98
|
+
Use get_async() with the returned request_id to retrieve results.
|
|
99
|
+
|
|
100
|
+
Args:
|
|
101
|
+
request: The dependency query parameters.
|
|
102
|
+
limit: Maximum number of dependencies to return (default: 10000, max: 64000).
|
|
103
|
+
|
|
104
|
+
Returns:
|
|
105
|
+
ServiceMapDependencyRequest with request_id and status.
|
|
106
|
+
"""
|
|
107
|
+
params = {"limit": min(limit, 64000)}
|
|
108
|
+
data = await self._post_async(
|
|
109
|
+
"/1/maps/dependencies/requests",
|
|
110
|
+
json=request.model_dump_for_api(),
|
|
111
|
+
params=params,
|
|
112
|
+
)
|
|
113
|
+
return ServiceMapDependencyRequest.model_validate(data)
|
|
114
|
+
|
|
115
|
+
async def get_result_async(
|
|
116
|
+
self,
|
|
117
|
+
request_id: str,
|
|
118
|
+
max_pages: int = DEFAULT_MAX_PAGES,
|
|
119
|
+
) -> ServiceMapDependencyResult:
|
|
120
|
+
"""Get results for a Service Map Dependencies request (async).
|
|
121
|
+
|
|
122
|
+
Automatically paginates through all results. For queries returning
|
|
123
|
+
many dependencies, this may result in multiple API requests.
|
|
124
|
+
|
|
125
|
+
Args:
|
|
126
|
+
request_id: The request ID from create_async().
|
|
127
|
+
max_pages: Maximum number of pages to fetch (default: 640).
|
|
128
|
+
Set to limit API requests for very large result sets.
|
|
129
|
+
|
|
130
|
+
Returns:
|
|
131
|
+
ServiceMapDependencyResult with all dependencies.
|
|
132
|
+
|
|
133
|
+
Note:
|
|
134
|
+
Large queries can return up to 64,000 dependencies (640 pages).
|
|
135
|
+
The default rate limit is 100 requests per minute per operation.
|
|
136
|
+
Contact Honeycomb support for higher limits: https://www.honeycomb.io/support
|
|
137
|
+
"""
|
|
138
|
+
all_dependencies: list[ServiceMapDependency] = []
|
|
139
|
+
cursor: str | None = None
|
|
140
|
+
result_status: ServiceMapDependencyRequestStatus = ServiceMapDependencyRequestStatus.PENDING
|
|
141
|
+
result_request_id: str = request_id
|
|
142
|
+
pages_fetched = 0
|
|
143
|
+
|
|
144
|
+
while pages_fetched < max_pages:
|
|
145
|
+
params = self._build_params(cursor=cursor)
|
|
146
|
+
data = await self._get_async(
|
|
147
|
+
f"/1/maps/dependencies/requests/{request_id}",
|
|
148
|
+
params=params,
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
result_status = ServiceMapDependencyRequestStatus(data.get("status", "pending"))
|
|
152
|
+
result_request_id = data.get("request_id", request_id)
|
|
153
|
+
|
|
154
|
+
# If not ready yet, return current state
|
|
155
|
+
if result_status != ServiceMapDependencyRequestStatus.READY:
|
|
156
|
+
return ServiceMapDependencyResult(
|
|
157
|
+
request_id=result_request_id,
|
|
158
|
+
status=result_status,
|
|
159
|
+
dependencies=None,
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
# Parse dependencies from this page
|
|
163
|
+
deps = data.get("dependencies") or []
|
|
164
|
+
all_dependencies.extend(ServiceMapDependency.model_validate(d) for d in deps)
|
|
165
|
+
pages_fetched += 1
|
|
166
|
+
|
|
167
|
+
# Check for next page
|
|
168
|
+
next_link = data.get("links", {}).get("next")
|
|
169
|
+
cursor = self._extract_cursor(next_link)
|
|
170
|
+
if not cursor:
|
|
171
|
+
break
|
|
172
|
+
|
|
173
|
+
return ServiceMapDependencyResult(
|
|
174
|
+
request_id=result_request_id,
|
|
175
|
+
status=result_status,
|
|
176
|
+
dependencies=all_dependencies,
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
async def get_async(
|
|
180
|
+
self,
|
|
181
|
+
request: ServiceMapDependencyRequestCreate,
|
|
182
|
+
limit: int = 10000,
|
|
183
|
+
max_pages: int = DEFAULT_MAX_PAGES,
|
|
184
|
+
poll_interval: float = 1.0,
|
|
185
|
+
timeout: float = 60.0,
|
|
186
|
+
) -> ServiceMapDependencyResult:
|
|
187
|
+
"""Create and retrieve Service Map Dependencies in one call (async).
|
|
188
|
+
|
|
189
|
+
This is a convenience method that creates a request, polls until
|
|
190
|
+
ready, and returns all dependencies with automatic pagination.
|
|
191
|
+
|
|
192
|
+
Args:
|
|
193
|
+
request: The dependency query parameters.
|
|
194
|
+
limit: Maximum dependencies to return (default: 10000, max: 64000).
|
|
195
|
+
max_pages: Maximum pages to fetch (default: 640).
|
|
196
|
+
poll_interval: Seconds between status checks (default: 1.0).
|
|
197
|
+
timeout: Maximum seconds to wait for results (default: 60.0).
|
|
198
|
+
|
|
199
|
+
Returns:
|
|
200
|
+
ServiceMapDependencyResult with all dependencies.
|
|
201
|
+
|
|
202
|
+
Raises:
|
|
203
|
+
TimeoutError: If results are not ready within timeout.
|
|
204
|
+
|
|
205
|
+
Note:
|
|
206
|
+
Large queries can return up to 64,000 dependencies (640 pages).
|
|
207
|
+
The default rate limit is 100 requests per minute per operation.
|
|
208
|
+
Contact Honeycomb support for higher limits: https://www.honeycomb.io/support
|
|
209
|
+
"""
|
|
210
|
+
# Create the request
|
|
211
|
+
req = await self.create_async(request, limit=limit)
|
|
212
|
+
|
|
213
|
+
# Poll until ready
|
|
214
|
+
start_time = asyncio.get_event_loop().time()
|
|
215
|
+
while True:
|
|
216
|
+
result = await self.get_result_async(req.request_id, max_pages=max_pages)
|
|
217
|
+
|
|
218
|
+
if result.status == ServiceMapDependencyRequestStatus.READY:
|
|
219
|
+
return result
|
|
220
|
+
|
|
221
|
+
if result.status == ServiceMapDependencyRequestStatus.ERROR:
|
|
222
|
+
return result
|
|
223
|
+
|
|
224
|
+
# Check timeout
|
|
225
|
+
elapsed = asyncio.get_event_loop().time() - start_time
|
|
226
|
+
if elapsed >= timeout:
|
|
227
|
+
raise TimeoutError(
|
|
228
|
+
f"Service map dependencies request {req.request_id} did not complete "
|
|
229
|
+
f"within {timeout} seconds"
|
|
230
|
+
)
|
|
231
|
+
|
|
232
|
+
await asyncio.sleep(poll_interval)
|
|
233
|
+
|
|
234
|
+
# -------------------------------------------------------------------------
|
|
235
|
+
# Sync methods
|
|
236
|
+
# -------------------------------------------------------------------------
|
|
237
|
+
|
|
238
|
+
def create(
|
|
239
|
+
self,
|
|
240
|
+
request: ServiceMapDependencyRequestCreate,
|
|
241
|
+
limit: int = 10000,
|
|
242
|
+
) -> ServiceMapDependencyRequest:
|
|
243
|
+
"""Create a Service Map Dependencies request.
|
|
244
|
+
|
|
245
|
+
This initiates an asynchronous query for service dependencies.
|
|
246
|
+
Use get_result() with the returned request_id to retrieve results.
|
|
247
|
+
|
|
248
|
+
Args:
|
|
249
|
+
request: The dependency query parameters.
|
|
250
|
+
limit: Maximum number of dependencies to return (default: 10000, max: 64000).
|
|
251
|
+
|
|
252
|
+
Returns:
|
|
253
|
+
ServiceMapDependencyRequest with request_id and status.
|
|
254
|
+
"""
|
|
255
|
+
if not self._client.is_sync:
|
|
256
|
+
raise RuntimeError("Use create_async() for async mode, or pass sync=True to client")
|
|
257
|
+
|
|
258
|
+
params = {"limit": min(limit, 64000)}
|
|
259
|
+
data = self._post_sync(
|
|
260
|
+
"/1/maps/dependencies/requests",
|
|
261
|
+
json=request.model_dump_for_api(),
|
|
262
|
+
params=params,
|
|
263
|
+
)
|
|
264
|
+
return ServiceMapDependencyRequest.model_validate(data)
|
|
265
|
+
|
|
266
|
+
def get_result(
|
|
267
|
+
self,
|
|
268
|
+
request_id: str,
|
|
269
|
+
max_pages: int = DEFAULT_MAX_PAGES,
|
|
270
|
+
) -> ServiceMapDependencyResult:
|
|
271
|
+
"""Get results for a Service Map Dependencies request.
|
|
272
|
+
|
|
273
|
+
Automatically paginates through all results. For queries returning
|
|
274
|
+
many dependencies, this may result in multiple API requests.
|
|
275
|
+
|
|
276
|
+
Args:
|
|
277
|
+
request_id: The request ID from create().
|
|
278
|
+
max_pages: Maximum number of pages to fetch (default: 640).
|
|
279
|
+
Set to limit API requests for very large result sets.
|
|
280
|
+
|
|
281
|
+
Returns:
|
|
282
|
+
ServiceMapDependencyResult with all dependencies.
|
|
283
|
+
|
|
284
|
+
Note:
|
|
285
|
+
Large queries can return up to 64,000 dependencies (640 pages).
|
|
286
|
+
The default rate limit is 100 requests per minute per operation.
|
|
287
|
+
Contact Honeycomb support for higher limits: https://www.honeycomb.io/support
|
|
288
|
+
"""
|
|
289
|
+
if not self._client.is_sync:
|
|
290
|
+
raise RuntimeError("Use get_result_async() for async mode, or pass sync=True to client")
|
|
291
|
+
|
|
292
|
+
all_dependencies: list[ServiceMapDependency] = []
|
|
293
|
+
cursor: str | None = None
|
|
294
|
+
result_status: ServiceMapDependencyRequestStatus = ServiceMapDependencyRequestStatus.PENDING
|
|
295
|
+
result_request_id: str = request_id
|
|
296
|
+
pages_fetched = 0
|
|
297
|
+
|
|
298
|
+
while pages_fetched < max_pages:
|
|
299
|
+
params = self._build_params(cursor=cursor)
|
|
300
|
+
data = self._get_sync(
|
|
301
|
+
f"/1/maps/dependencies/requests/{request_id}",
|
|
302
|
+
params=params,
|
|
303
|
+
)
|
|
304
|
+
|
|
305
|
+
result_status = ServiceMapDependencyRequestStatus(data.get("status", "pending"))
|
|
306
|
+
result_request_id = data.get("request_id", request_id)
|
|
307
|
+
|
|
308
|
+
# If not ready yet, return current state
|
|
309
|
+
if result_status != ServiceMapDependencyRequestStatus.READY:
|
|
310
|
+
return ServiceMapDependencyResult(
|
|
311
|
+
request_id=result_request_id,
|
|
312
|
+
status=result_status,
|
|
313
|
+
dependencies=None,
|
|
314
|
+
)
|
|
315
|
+
|
|
316
|
+
# Parse dependencies from this page
|
|
317
|
+
deps = data.get("dependencies") or []
|
|
318
|
+
all_dependencies.extend(ServiceMapDependency.model_validate(d) for d in deps)
|
|
319
|
+
pages_fetched += 1
|
|
320
|
+
|
|
321
|
+
# Check for next page
|
|
322
|
+
next_link = data.get("links", {}).get("next")
|
|
323
|
+
cursor = self._extract_cursor(next_link)
|
|
324
|
+
if not cursor:
|
|
325
|
+
break
|
|
326
|
+
|
|
327
|
+
return ServiceMapDependencyResult(
|
|
328
|
+
request_id=result_request_id,
|
|
329
|
+
status=result_status,
|
|
330
|
+
dependencies=all_dependencies,
|
|
331
|
+
)
|
|
332
|
+
|
|
333
|
+
def get(
|
|
334
|
+
self,
|
|
335
|
+
request: ServiceMapDependencyRequestCreate,
|
|
336
|
+
limit: int = 10000,
|
|
337
|
+
max_pages: int = DEFAULT_MAX_PAGES,
|
|
338
|
+
poll_interval: float = 1.0,
|
|
339
|
+
timeout: float = 60.0,
|
|
340
|
+
) -> ServiceMapDependencyResult:
|
|
341
|
+
"""Create and retrieve Service Map Dependencies in one call.
|
|
342
|
+
|
|
343
|
+
This is a convenience method that creates a request, polls until
|
|
344
|
+
ready, and returns all dependencies with automatic pagination.
|
|
345
|
+
|
|
346
|
+
Args:
|
|
347
|
+
request: The dependency query parameters.
|
|
348
|
+
limit: Maximum dependencies to return (default: 10000, max: 64000).
|
|
349
|
+
max_pages: Maximum pages to fetch (default: 640).
|
|
350
|
+
poll_interval: Seconds between status checks (default: 1.0).
|
|
351
|
+
timeout: Maximum seconds to wait for results (default: 60.0).
|
|
352
|
+
|
|
353
|
+
Returns:
|
|
354
|
+
ServiceMapDependencyResult with all dependencies.
|
|
355
|
+
|
|
356
|
+
Raises:
|
|
357
|
+
TimeoutError: If results are not ready within timeout.
|
|
358
|
+
|
|
359
|
+
Note:
|
|
360
|
+
Large queries can return up to 64,000 dependencies (640 pages).
|
|
361
|
+
The default rate limit is 100 requests per minute per operation.
|
|
362
|
+
Contact Honeycomb support for higher limits: https://www.honeycomb.io/support
|
|
363
|
+
"""
|
|
364
|
+
if not self._client.is_sync:
|
|
365
|
+
raise RuntimeError("Use get_async() for async mode, or pass sync=True to client")
|
|
366
|
+
|
|
367
|
+
# Create the request
|
|
368
|
+
req = self.create(request, limit=limit)
|
|
369
|
+
|
|
370
|
+
# Poll until ready
|
|
371
|
+
start_time = time.time()
|
|
372
|
+
while True:
|
|
373
|
+
result = self.get_result(req.request_id, max_pages=max_pages)
|
|
374
|
+
|
|
375
|
+
if result.status == ServiceMapDependencyRequestStatus.READY:
|
|
376
|
+
return result
|
|
377
|
+
|
|
378
|
+
if result.status == ServiceMapDependencyRequestStatus.ERROR:
|
|
379
|
+
return result
|
|
380
|
+
|
|
381
|
+
# Check timeout
|
|
382
|
+
elapsed = time.time() - start_time
|
|
383
|
+
if elapsed >= timeout:
|
|
384
|
+
raise TimeoutError(
|
|
385
|
+
f"Service map dependencies request {req.request_id} did not complete "
|
|
386
|
+
f"within {timeout} seconds"
|
|
387
|
+
)
|
|
388
|
+
|
|
389
|
+
time.sleep(poll_interval)
|