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,248 @@
|
|
|
1
|
+
"""Builder pattern for Honeycomb Recipients."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any, Literal
|
|
6
|
+
|
|
7
|
+
from typing_extensions import Self
|
|
8
|
+
|
|
9
|
+
from .recipients import RecipientCreate, RecipientType
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class RecipientMixin:
|
|
13
|
+
"""Mixin providing recipient creation methods.
|
|
14
|
+
|
|
15
|
+
This mixin is designed to be composed into other builders (TriggerBuilder,
|
|
16
|
+
BurnAlertBuilder) to provide fluent methods for adding recipients.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
def __init__(self) -> None:
|
|
20
|
+
"""Initialize recipient storage."""
|
|
21
|
+
self._recipients: list[dict[str, Any]] = [] # Existing recipient IDs
|
|
22
|
+
self._new_recipients: list[dict[str, Any]] = [] # Inline-created recipients
|
|
23
|
+
|
|
24
|
+
def email(self, address: str) -> Self:
|
|
25
|
+
"""Add an email recipient.
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
address: Email address to notify.
|
|
29
|
+
|
|
30
|
+
Returns:
|
|
31
|
+
Self for method chaining.
|
|
32
|
+
"""
|
|
33
|
+
self._new_recipients.append(
|
|
34
|
+
{
|
|
35
|
+
"type": "email",
|
|
36
|
+
"target": address,
|
|
37
|
+
}
|
|
38
|
+
)
|
|
39
|
+
return self
|
|
40
|
+
|
|
41
|
+
def slack(self, channel: str) -> Self:
|
|
42
|
+
"""Add a Slack recipient.
|
|
43
|
+
|
|
44
|
+
Args:
|
|
45
|
+
channel: Slack channel name (e.g., "#alerts").
|
|
46
|
+
|
|
47
|
+
Returns:
|
|
48
|
+
Self for method chaining.
|
|
49
|
+
"""
|
|
50
|
+
self._new_recipients.append(
|
|
51
|
+
{
|
|
52
|
+
"type": "slack",
|
|
53
|
+
"target": channel,
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
return self
|
|
57
|
+
|
|
58
|
+
def pagerduty(
|
|
59
|
+
self,
|
|
60
|
+
routing_key: str,
|
|
61
|
+
severity: Literal["info", "warning", "error", "critical"] = "critical",
|
|
62
|
+
) -> Self:
|
|
63
|
+
"""Add a PagerDuty recipient.
|
|
64
|
+
|
|
65
|
+
Args:
|
|
66
|
+
routing_key: PagerDuty integration routing key.
|
|
67
|
+
severity: Alert severity level.
|
|
68
|
+
|
|
69
|
+
Returns:
|
|
70
|
+
Self for method chaining.
|
|
71
|
+
"""
|
|
72
|
+
self._new_recipients.append(
|
|
73
|
+
{
|
|
74
|
+
"type": "pagerduty",
|
|
75
|
+
"target": routing_key,
|
|
76
|
+
"details": {"severity": severity},
|
|
77
|
+
}
|
|
78
|
+
)
|
|
79
|
+
return self
|
|
80
|
+
|
|
81
|
+
def webhook(self, url: str, name: str = "Webhook", secret: str | None = None) -> Self:
|
|
82
|
+
"""Add a webhook recipient (inline format for triggers/burn alerts).
|
|
83
|
+
|
|
84
|
+
Args:
|
|
85
|
+
url: Webhook URL to POST to.
|
|
86
|
+
name: A name for this webhook (default: "Webhook").
|
|
87
|
+
secret: Optional webhook secret for signing.
|
|
88
|
+
|
|
89
|
+
Returns:
|
|
90
|
+
Self for method chaining.
|
|
91
|
+
|
|
92
|
+
Note:
|
|
93
|
+
This creates inline recipients for triggers/burn alerts.
|
|
94
|
+
For standalone recipient creation via Recipients API, use RecipientBuilder.webhook().
|
|
95
|
+
"""
|
|
96
|
+
details: dict[str, Any] = {
|
|
97
|
+
"webhook_url": url,
|
|
98
|
+
"webhook_name": name,
|
|
99
|
+
}
|
|
100
|
+
if secret:
|
|
101
|
+
details["webhook_secret"] = secret
|
|
102
|
+
|
|
103
|
+
self._new_recipients.append(
|
|
104
|
+
{
|
|
105
|
+
"type": "webhook",
|
|
106
|
+
"target": url,
|
|
107
|
+
"details": details,
|
|
108
|
+
}
|
|
109
|
+
)
|
|
110
|
+
return self
|
|
111
|
+
|
|
112
|
+
def msteams(self, workflow_url: str) -> Self:
|
|
113
|
+
"""Add an MS Teams workflow recipient.
|
|
114
|
+
|
|
115
|
+
Args:
|
|
116
|
+
workflow_url: MS Teams workflow webhook URL.
|
|
117
|
+
|
|
118
|
+
Returns:
|
|
119
|
+
Self for method chaining.
|
|
120
|
+
"""
|
|
121
|
+
self._new_recipients.append(
|
|
122
|
+
{
|
|
123
|
+
"type": "msteams_workflow",
|
|
124
|
+
"target": workflow_url,
|
|
125
|
+
}
|
|
126
|
+
)
|
|
127
|
+
return self
|
|
128
|
+
|
|
129
|
+
def recipient_id(self, recipient_id: str) -> Self:
|
|
130
|
+
"""Reference an existing recipient by ID.
|
|
131
|
+
|
|
132
|
+
Args:
|
|
133
|
+
recipient_id: ID of an existing recipient.
|
|
134
|
+
|
|
135
|
+
Returns:
|
|
136
|
+
Self for method chaining.
|
|
137
|
+
"""
|
|
138
|
+
self._recipients.append({"id": recipient_id})
|
|
139
|
+
return self
|
|
140
|
+
|
|
141
|
+
def _get_all_recipients(self) -> list[dict[str, Any]]:
|
|
142
|
+
"""Get combined list of recipients for API.
|
|
143
|
+
|
|
144
|
+
Returns:
|
|
145
|
+
List of recipient dictionaries.
|
|
146
|
+
"""
|
|
147
|
+
return self._recipients + self._new_recipients
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
class RecipientBuilder:
|
|
151
|
+
"""Factory for creating standalone RecipientCreate objects.
|
|
152
|
+
|
|
153
|
+
This builder provides convenient factory methods for creating recipients
|
|
154
|
+
that can be saved independently using the Recipients API.
|
|
155
|
+
|
|
156
|
+
Example:
|
|
157
|
+
>>> recipient = RecipientBuilder.email("oncall@example.com")
|
|
158
|
+
>>> await client.recipients.create_async(recipient)
|
|
159
|
+
"""
|
|
160
|
+
|
|
161
|
+
@staticmethod
|
|
162
|
+
def email(address: str) -> RecipientCreate:
|
|
163
|
+
"""Create an email recipient.
|
|
164
|
+
|
|
165
|
+
Args:
|
|
166
|
+
address: Email address to notify.
|
|
167
|
+
|
|
168
|
+
Returns:
|
|
169
|
+
RecipientCreate object.
|
|
170
|
+
"""
|
|
171
|
+
return RecipientCreate(type=RecipientType.EMAIL, details={"email_address": address})
|
|
172
|
+
|
|
173
|
+
@staticmethod
|
|
174
|
+
def slack(channel: str) -> RecipientCreate:
|
|
175
|
+
"""Create a Slack recipient.
|
|
176
|
+
|
|
177
|
+
Args:
|
|
178
|
+
channel: Slack channel name (e.g., "#alerts").
|
|
179
|
+
|
|
180
|
+
Returns:
|
|
181
|
+
RecipientCreate object.
|
|
182
|
+
"""
|
|
183
|
+
return RecipientCreate(type=RecipientType.SLACK, details={"slack_channel": channel})
|
|
184
|
+
|
|
185
|
+
@staticmethod
|
|
186
|
+
def pagerduty(
|
|
187
|
+
integration_key: str,
|
|
188
|
+
integration_name: str = "PagerDuty Integration",
|
|
189
|
+
) -> RecipientCreate:
|
|
190
|
+
"""Create a PagerDuty recipient.
|
|
191
|
+
|
|
192
|
+
Args:
|
|
193
|
+
integration_key: PagerDuty integration key (32 characters).
|
|
194
|
+
integration_name: A name for this integration.
|
|
195
|
+
|
|
196
|
+
Returns:
|
|
197
|
+
RecipientCreate object.
|
|
198
|
+
"""
|
|
199
|
+
return RecipientCreate(
|
|
200
|
+
type=RecipientType.PAGERDUTY,
|
|
201
|
+
details={
|
|
202
|
+
"pagerduty_integration_key": integration_key,
|
|
203
|
+
"pagerduty_integration_name": integration_name,
|
|
204
|
+
},
|
|
205
|
+
)
|
|
206
|
+
|
|
207
|
+
@staticmethod
|
|
208
|
+
def webhook(
|
|
209
|
+
url: str,
|
|
210
|
+
name: str = "Webhook",
|
|
211
|
+
secret: str | None = None,
|
|
212
|
+
) -> RecipientCreate:
|
|
213
|
+
"""Create a webhook recipient.
|
|
214
|
+
|
|
215
|
+
Args:
|
|
216
|
+
url: Webhook URL to POST to.
|
|
217
|
+
name: A name for this webhook.
|
|
218
|
+
secret: Optional webhook secret for signing.
|
|
219
|
+
|
|
220
|
+
Returns:
|
|
221
|
+
RecipientCreate object.
|
|
222
|
+
"""
|
|
223
|
+
details: dict[str, Any] = {
|
|
224
|
+
"webhook_url": url,
|
|
225
|
+
"webhook_name": name,
|
|
226
|
+
}
|
|
227
|
+
if secret:
|
|
228
|
+
details["webhook_secret"] = secret
|
|
229
|
+
return RecipientCreate(type=RecipientType.WEBHOOK, details=details)
|
|
230
|
+
|
|
231
|
+
@staticmethod
|
|
232
|
+
def msteams(workflow_url: str, name: str = "MS Teams") -> RecipientCreate:
|
|
233
|
+
"""Create an MS Teams workflow recipient.
|
|
234
|
+
|
|
235
|
+
Args:
|
|
236
|
+
workflow_url: MS Teams workflow webhook URL.
|
|
237
|
+
name: A name for this recipient.
|
|
238
|
+
|
|
239
|
+
Returns:
|
|
240
|
+
RecipientCreate object.
|
|
241
|
+
"""
|
|
242
|
+
return RecipientCreate(
|
|
243
|
+
type=RecipientType.MSTEAMS_WORKFLOW,
|
|
244
|
+
details={
|
|
245
|
+
"webhook_url": workflow_url,
|
|
246
|
+
"webhook_name": name,
|
|
247
|
+
},
|
|
248
|
+
)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""Pydantic models for Honeycomb Recipients."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from datetime import datetime
|
|
6
|
+
from enum import Enum
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, Field
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class RecipientType(str, Enum):
|
|
13
|
+
"""Recipient notification types."""
|
|
14
|
+
|
|
15
|
+
EMAIL = "email"
|
|
16
|
+
SLACK = "slack"
|
|
17
|
+
PAGERDUTY = "pagerduty"
|
|
18
|
+
WEBHOOK = "webhook"
|
|
19
|
+
MSTEAMS = "msteams"
|
|
20
|
+
MSTEAMS_WORKFLOW = "msteams_workflow"
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class RecipientCreate(BaseModel):
|
|
24
|
+
"""Model for creating a new recipient."""
|
|
25
|
+
|
|
26
|
+
type: RecipientType = Field(description="Type of recipient")
|
|
27
|
+
details: dict[str, Any] = Field(description="Recipient-specific configuration (varies by type)")
|
|
28
|
+
|
|
29
|
+
def model_dump_for_api(self) -> dict:
|
|
30
|
+
"""Serialize for API request."""
|
|
31
|
+
return {"type": self.type.value, "details": self.details}
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class Recipient(BaseModel):
|
|
35
|
+
"""A Honeycomb notification recipient (response model)."""
|
|
36
|
+
|
|
37
|
+
id: str = Field(description="Unique identifier")
|
|
38
|
+
type: RecipientType = Field(description="Type of recipient")
|
|
39
|
+
details: dict[str, Any] = Field(description="Recipient-specific configuration (varies by type)")
|
|
40
|
+
created_at: datetime | None = Field(default=None, description="Creation timestamp")
|
|
41
|
+
updated_at: datetime | None = Field(default=None, description="Last update timestamp")
|
|
42
|
+
|
|
43
|
+
model_config = {"extra": "allow"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"""Pydantic models for Honeycomb Service Map Dependencies."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from enum import Enum
|
|
6
|
+
from typing import Any
|
|
7
|
+
|
|
8
|
+
from pydantic import BaseModel, Field
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ServiceMapNodeType(str, Enum):
|
|
12
|
+
"""Type of node in the service map."""
|
|
13
|
+
|
|
14
|
+
SERVICE = "service"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class ServiceMapNode(BaseModel):
|
|
18
|
+
"""A node in the service map (typically a service).
|
|
19
|
+
|
|
20
|
+
Attributes:
|
|
21
|
+
name: Name of the service or node.
|
|
22
|
+
type: Type of the node. Currently only 'service' is supported.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
name: str = Field(..., description="Name of the service or node")
|
|
26
|
+
type: ServiceMapNodeType = Field(
|
|
27
|
+
default=ServiceMapNodeType.SERVICE,
|
|
28
|
+
description="Type of the node. Currently only 'service' is supported.",
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class ServiceMapDependency(BaseModel):
|
|
33
|
+
"""A dependency relationship between two services.
|
|
34
|
+
|
|
35
|
+
Attributes:
|
|
36
|
+
parent_node: The upstream service (caller).
|
|
37
|
+
child_node: The downstream service (callee).
|
|
38
|
+
call_count: Number of calls between the parent and child services.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
parent_node: ServiceMapNode = Field(..., description="The upstream service (caller)")
|
|
42
|
+
child_node: ServiceMapNode = Field(..., description="The downstream service (callee)")
|
|
43
|
+
call_count: int = Field(..., description="Number of calls between services")
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class ServiceMapDependencyRequestStatus(str, Enum):
|
|
47
|
+
"""Status of a Service Map Dependencies request."""
|
|
48
|
+
|
|
49
|
+
PENDING = "pending"
|
|
50
|
+
READY = "ready"
|
|
51
|
+
ERROR = "error"
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class ServiceMapDependencyRequestCreate(BaseModel):
|
|
55
|
+
"""Request to create a Service Map Dependencies query.
|
|
56
|
+
|
|
57
|
+
Time range can be specified in several ways:
|
|
58
|
+
- time_range only: Seconds before now
|
|
59
|
+
- start_time + time_range: Seconds after start_time
|
|
60
|
+
- end_time + time_range: Seconds before end_time
|
|
61
|
+
- start_time + end_time: Explicit time range
|
|
62
|
+
|
|
63
|
+
Attributes:
|
|
64
|
+
start_time: Absolute start time in seconds since UNIX epoch.
|
|
65
|
+
end_time: Absolute end time in seconds since UNIX epoch.
|
|
66
|
+
time_range: Time range in seconds (default: 7200 = 2 hours).
|
|
67
|
+
filters: Optional list of service nodes to filter by.
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
start_time: int | None = Field(
|
|
71
|
+
default=None,
|
|
72
|
+
description="Absolute start time in seconds since UNIX epoch",
|
|
73
|
+
)
|
|
74
|
+
end_time: int | None = Field(
|
|
75
|
+
default=None,
|
|
76
|
+
description="Absolute end time in seconds since UNIX epoch",
|
|
77
|
+
)
|
|
78
|
+
time_range: int = Field(
|
|
79
|
+
default=7200,
|
|
80
|
+
ge=1,
|
|
81
|
+
description="Time range in seconds (default: 7200 = 2 hours)",
|
|
82
|
+
)
|
|
83
|
+
filters: list[ServiceMapNode] | None = Field(
|
|
84
|
+
default=None,
|
|
85
|
+
description="Optional list of service nodes to filter dependencies by",
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
def model_dump_for_api(self) -> dict[str, Any]:
|
|
89
|
+
"""Serialize for API request, excluding None values."""
|
|
90
|
+
data: dict[str, Any] = {"time_range": self.time_range}
|
|
91
|
+
if self.start_time is not None:
|
|
92
|
+
data["start_time"] = self.start_time
|
|
93
|
+
if self.end_time is not None:
|
|
94
|
+
data["end_time"] = self.end_time
|
|
95
|
+
if self.filters:
|
|
96
|
+
data["filters"] = [f.model_dump() for f in self.filters]
|
|
97
|
+
return data
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
class ServiceMapDependencyRequest(BaseModel):
|
|
101
|
+
"""Response from creating a Service Map Dependencies request.
|
|
102
|
+
|
|
103
|
+
Attributes:
|
|
104
|
+
request_id: Unique identifier for the request.
|
|
105
|
+
status: Status of the request (pending, ready, error).
|
|
106
|
+
"""
|
|
107
|
+
|
|
108
|
+
request_id: str = Field(..., description="Unique identifier for the request")
|
|
109
|
+
status: ServiceMapDependencyRequestStatus = Field(..., description="Status of the request")
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class ServiceMapDependencyResult(BaseModel):
|
|
113
|
+
"""Result of a Service Map Dependencies query.
|
|
114
|
+
|
|
115
|
+
Attributes:
|
|
116
|
+
request_id: Unique identifier for the request.
|
|
117
|
+
status: Status of the request (pending, ready, error).
|
|
118
|
+
dependencies: List of service dependencies (None if pending/error).
|
|
119
|
+
"""
|
|
120
|
+
|
|
121
|
+
request_id: str = Field(..., description="Unique identifier for the request")
|
|
122
|
+
status: ServiceMapDependencyRequestStatus = Field(..., description="Status of the request")
|
|
123
|
+
dependencies: list[ServiceMapDependency] | None = Field(
|
|
124
|
+
default=None,
|
|
125
|
+
description="List of service dependencies (None if pending/error)",
|
|
126
|
+
)
|