export type Cluster = { id: string; slug: string; name: string; status: string; region?: string | null; metadata?: Record; created_at: string; updated_at?: string; }; export type AuthUser = { ID?: string; id?: string; Email?: string; email?: string; }; export type AuthSession = { ID?: string; id?: string; }; export type AuthTokens = { access_token: string; access_token_expires_at: string; refresh_token: string; refresh_token_expires_at: string; }; export type AuthResult = { user: AuthUser; auth_session: AuthSession; tokens: AuthTokens; }; export type InstallationStatus = { bootstrapped: boolean; authority_state: string; install_id?: string; bootstrapped_owner_email?: string; bootstrapped_at?: string; authority_mode: string; strict_authority: boolean; root_fingerprint?: string; insecure_bootstrap_allowed: boolean; }; export type BootstrapOwnerResult = { installation: InstallationStatus; user: AuthUser; platform_role: string; }; export type ClusterAuthorityState = { cluster_id: string; authority_state: string; mutation_mode: string; term: number; notes?: string | null; updated_by_user_id?: string | null; updated_at: string; }; export type ClusterNode = { id: string; owner_organization_id?: string | null; node_key: string; name: string; ownership_type: string; registration_status: string; health_status: string; version_state: string; partition_state: string; reported_version?: string | null; last_seen_at?: string | null; membership_status: string; membership_metadata?: Record; node_group_id?: string | null; node_group_name?: string | null; created_at?: string; updated_at?: string; }; export type ClusterNodeGroup = { id: string; cluster_id: string; parent_group_id?: string | null; name: string; description?: string | null; sort_order: number; metadata?: Record; created_by_user_id?: string | null; created_at: string; updated_at?: string; }; export type JoinRequest = { id: string; cluster_id: string; node_name: string; node_fingerprint: string; public_key?: string; reported_capabilities: Record; reported_facts: Record; requested_roles: unknown[]; status: string; reviewed_at?: string | null; approved_node_id?: string | null; rejection_reason?: string | null; created_at: string; updated_at?: string; approval_payload?: Record; approval_signature?: ClusterSignature; }; export type ClusterSignature = { schema_version: string; algorithm: string; key_fingerprint: string; signature: string; signed_at: string; }; export type ClusterAuthorityDescriptor = { schema_version: string; cluster_id: string; authority_state: string; key_algorithm: string; public_key: string; public_key_fingerprint: string; created_at: string; updated_at: string; }; export type CreatedJoinToken = { id: string; cluster_id: string; scope: Record; expires_at: string; max_uses: number; used_count: number; status: string; created_at: string; revoked_at?: string | null; authority_payload?: Record; authority_signature?: ClusterSignature; token: string; }; export type NodeJoinToken = Omit; export type RoleAssignment = { id: string; cluster_id: string; node_id: string; organization_id?: string | null; role: string; status: string; policy?: Record; assigned_at: string; revoked_at?: string | null; }; export type AuditEvent = { id: string; cluster_id?: string | null; actor_user_id?: string | null; event_type: string; target_type: string; target_id?: string | null; payload: Record; correlation_hints?: AuditCorrelationHints; created_at: string; }; export type AuditCorrelationHints = { scope?: string; current_diagnostic_status?: string; breadcrumb_status?: string; breadcrumb_age_seconds?: number; breadcrumb_current_window_seconds?: number; breadcrumb_history_window_seconds?: number; feedback_breakdown?: FabricServiceChannelRouteRebuildFeedbackHealthBreakdown; rebuild_incident?: FabricServiceChannelRouteRebuildIncident; recommended_action?: string; }; export type AuditSummary = { total_count: number; counts_by_event_type?: Record; counts_by_target_type?: Record; counts_by_current_diagnostic_status?: Record; counts_by_feedback_source?: Record; counts_by_feedback_violation_status?: Record; counts_by_breadcrumb_status?: Record; correlated_count?: number; not_visible_count?: number; latest_at?: string; }; export type FabricServiceChannelRebuildInvestigationBreadcrumbs = { cluster_id: string; events: AuditEvent[]; summary: AuditSummary; current_window_seconds?: number; history_window_seconds?: number; current_count?: number; stale_count?: number; expired_count?: number; }; export type FabricServiceChannelBreadcrumbWindowPolicy = { schema_version: string; fingerprint?: string; current_window_seconds: number; history_window_seconds: number; source: string; updated_by_user_id?: string | null; updated_at?: string; control_plane_only: boolean; production_forwarding: boolean; }; export type WorkloadStatus = { id: string; cluster_id: string; node_id: string; service_type: string; reported_state: string; runtime_mode: string; version?: string | null; status_payload?: Record; observed_at: string; }; export type NodeWorkloadDesiredState = { cluster_id: string; node_id: string; service_type: string; desired_state: string; version?: string | null; runtime_mode: string; artifact_ref?: string | null; config?: Record; environment?: Record; updated_by_user_id?: string | null; updated_at: string; }; export type NodeHeartbeat = { id: string; cluster_id: string; node_id: string; health_status: string; reported_version?: string | null; capabilities?: Record; service_states?: Record; metadata?: Record; observed_at: string; }; export type FabricTestingFlag = { id: string; scope_type: string; scope_id?: string | null; cluster_id?: string | null; enabled: boolean; telemetry_enabled: boolean; synthetic_links_enabled: boolean; history_retention_hours: number; metadata?: Record; updated_by_user_id?: string | null; updated_at: string; }; export type NodeTelemetryObservation = { id: string; cluster_id: string; node_id: string; cpu_percent?: number | null; memory_used_bytes?: number | null; memory_total_bytes?: number | null; disk_used_bytes?: number | null; disk_total_bytes?: number | null; network_rx_bytes?: number | null; network_tx_bytes?: number | null; process_count?: number | null; payload?: Record; observed_at: string; }; export type ReleaseArtifact = { id: string; release_id: string; cluster_id: string; product: string; version: string; os: string; arch: string; install_type: string; kind: string; url: string; sha256: string; size_bytes: number; signature?: string | null; metadata?: Record; created_at: string; }; export type ReleaseVersion = { id: string; cluster_id: string; product: string; version: string; channel: string; status: string; compatibility?: Record; changelog?: string | null; created_by_user_id?: string | null; created_at: string; artifacts?: ReleaseArtifact[]; authority_payload?: Record; authority_signature?: ClusterSignature; }; export type NodeUpdatePlan = { schema_version: string; cluster_id: string; node_id: string; product: string; current_version?: string; action: string; reason: string; target_version?: string; channel?: string; strategy?: string; rollback_allowed: boolean; health_window_seconds?: number; artifact?: ReleaseArtifact; authority_payload?: Record; authority_signature?: ClusterSignature; production_forwarding: boolean; }; export type NodeUpdatePolicy = { id: string; cluster_id: string; node_id: string; product: string; channel: string; target_version?: string | null; strategy: string; enabled: boolean; rollback_allowed: boolean; health_window_seconds: number; updated_by_user_id?: string | null; updated_at: string; }; export type NodeUpdateStatus = { id: string; cluster_id: string; node_id: string; product: string; current_version?: string; target_version?: string; phase: string; status: string; attempt_id?: string; error_message?: string | null; rollback_version?: string | null; payload?: Record; observed_at: string; }; export type MeshLink = { id: string; cluster_id: string; source_node_id: string; target_node_id: string; link_status: string; latency_ms?: number | null; quality_score?: number | null; metadata?: Record; observed_at: string; }; export type MeshRouteIntent = { id: string; cluster_id: string; source_selector: Record; destination_selector: Record; service_class: string; priority: number; status: string; lifecycle_status?: string; is_expired?: boolean; policy_expires_at?: string | null; policy: Record; created_by_user_id?: string | null; created_at: string; updated_at: string; }; export type PeerEndpointCandidate = { endpoint_id: string; node_id: string; transport: string; address: string; address_family?: string | null; reachability: string; nat_type?: string | null; connectivity_mode: string; region?: string | null; priority: number; policy_tags?: string[]; last_verified_at?: string | null; metadata?: Record; }; export type PeerDirectoryEntry = { node_id: string; route_ids?: string[]; endpoint_count: number; candidate_count: number; connectivity_modes?: string[]; recovery_seed: boolean; }; export type PeerRecoverySeed = { node_id: string; endpoint: string; transport: string; connectivity_mode?: string | null; region?: string | null; priority: number; last_verified_at?: string | null; metadata?: Record; }; export type PeerRendezvousLease = { lease_id: string; peer_node_id: string; relay_node_id: string; relay_endpoint: string; transport: string; connectivity_mode?: string | null; route_ids?: string[]; allowed_channels?: string[]; priority: number; control_plane_only: boolean; issued_at: string; expires_at: string; reason?: string | null; metadata?: Record; }; export type RendezvousRelayPolicyDecision = { route_id?: string; peer_node_id: string; withdrawn_lease_id?: string; stale_relay_node_id?: string; selected_relay_id?: string; selected_endpoint?: string; score?: number; reason: string; score_reasons?: string[]; reporter_node_id?: string; }; export type RendezvousRelayPolicyReport = { schema_version: string; scoring_mode: string; feedback_max_age_seconds: number; stale_relay_count: number; withdrawn_lease_count: number; replacement_lease_count: number; decisions?: RendezvousRelayPolicyDecision[]; }; export type RoutePathDecision = { decision_id: string; route_id: string; replacement_route_id?: string; rebuild_request_id?: string; rebuild_status?: string; rebuild_reason?: string; rebuild_attempt?: number; feedback_observation_id?: string; feedback_source?: string; feedback_observed_at?: string; feedback_expires_at?: string; feedback_channel_id?: string; feedback_resource_id?: string; feedback_violation_status?: string; feedback_violation_reason?: string; cluster_id: string; local_node_id: string; source_node_id: string; destination_node_id: string; original_hops: string[]; effective_hops: string[]; previous_hop_id?: string; next_hop_id?: string; local_role: string; selected_relay_id?: string; selected_relay_endpoint?: string; stale_relay_node_id?: string; rendezvous_lease_id?: string; rendezvous_lease_reason?: string; decision_source: string; generation: string; path_score?: number; score_reasons?: string[]; control_plane_only: boolean; production_forwarding: boolean; expires_at: string; }; export type RoutePathDecisionReport = { schema_version: string; decision_mode: string; generation: string; recovery_policy?: FabricServiceChannelRecoveryPolicy; decision_count: number; replacement_decision_count: number; degraded_decision_count?: number; rebuild_request_count?: number; rebuild_applied_count?: number; recovery_hysteresis_count?: number; recovery_promoted_count?: number; recovery_demoted_count?: number; control_plane_only: boolean; production_forwarding: boolean; decisions?: RoutePathDecision[]; }; export type SyntheticMeshRoute = { route_id: string; cluster_id: string; source_node_id: string; destination_node_id: string; hops: string[]; allowed_channels: string[]; expires_at: string; max_ttl: number; max_hops: number; route_version?: string; policy_version?: string; peer_directory_version?: string; }; export type FabricServiceChannelRouteFeedbackObservation = { id?: string; cluster_id: string; reporter_node_id: string; route_id: string; service_class: string; feedback_status: string; score_adjustment: number; reasons?: string[]; last_error?: string; consecutive_failures?: number; stall_count?: number; last_send_duration_ms?: number; payload?: Record; observed_at: string; expires_at: string; retry_cooldown_until?: string; recovery_state?: string; recovery_hysteresis_active?: boolean; recovery_hysteresis_penalty?: number; recovery_promoted?: boolean; recovery_demoted?: boolean; recovery_reason?: string; observed_policy_fingerprint?: string; effective_policy_fingerprint?: string; observed_route_generation?: string; effective_route_generation?: string; provenance_missing?: boolean; stale_policy?: boolean; stale_generation?: boolean; stale_reason?: string; }; export type FabricServiceChannelRouteRebuildAttempt = { id: string; cluster_id: string; reporter_node_id: string; service_class: string; route_id: string; replacement_route_id?: string; rebuild_request_id: string; rebuild_status: string; rebuild_reason?: string; rebuild_attempt?: number; decision_source: string; outcome: string; generation?: string; policy_fingerprint?: string; observed_policy_fingerprint?: string; observed_route_generation?: string; effective_route_generation?: string; feedback_status?: string; feedback_observation_id?: string; feedback_source?: string; feedback_observed_at?: string; feedback_expires_at?: string; feedback_channel_id?: string; feedback_resource_id?: string; feedback_violation_status?: string; feedback_violation_reason?: string; feedback_score_adjustment?: number; feedback_effective_score_adjustment?: number; feedback_reasons?: string[]; last_error?: string; consecutive_failures?: number; stall_count?: number; last_send_duration_ms?: number; quality_window_sample_count?: number; quality_window_failure_count?: number; quality_window_drop_count?: number; quality_window_slow_count?: number; old_hops?: string[]; replacement_hops?: string[]; node_transition_status?: string; node_transition_generation?: string; node_transition_observed_at?: string; node_transition_matched?: boolean; node_route_generation_status?: string; node_route_generation_applied_at?: string; node_route_generation_withdrawn_at?: string; node_route_generation_matched?: boolean; post_rebuild_selected_route_id?: string; post_rebuild_send_packets?: number; post_rebuild_send_failures?: number; post_rebuild_send_flow_packets?: number; post_rebuild_send_flow_dropped?: number; guard_status?: string; guard_severity?: string; guard_reason?: string; guard_age_seconds?: number; guard_transition_deadline_seconds?: number; guard_traffic_deadline_seconds?: number; alert_silenced?: boolean; alert_silence_id?: string; alert_silence_reason?: string; alert_silenced_until?: string; alert_resurfaced?: boolean; alert_resurfaced_from_silence_id?: string; alert_resurfaced_previous_generation?: string; alert_resurfaced_previous_until?: string; timeline?: FabricServiceChannelRouteRebuildTimelineEvent[]; payload?: Record; created_at: string; updated_at: string; }; export type FabricServiceChannelRouteRebuildTimelineEvent = { stage: string; status: string; at?: string; route_id?: string; generation?: string; payload?: Record; }; export type FabricServiceChannelRouteRebuildHealthSummary = { cluster_id: string; observed_at: string; window_limit: number; total_attempts: number; good_count: number; warn_count: number; bad_count: number; unknown_count: number; active_bad_count: number; active_warn_count: number; silenced_count: number; resurfaced_count: number; applied_count: number; pending_count: number; access_route_decision_count?: number; access_replacement_count?: number; access_applied_count?: number; access_recovery_count?: number; access_no_safe_count?: number; counts_by_guard_status?: Record; counts_by_guard_severity?: Record; feedback_breakdowns?: FabricServiceChannelRouteRebuildFeedbackHealthBreakdown[]; affected_reporter_node_ids?: string[]; affected_route_ids?: string[]; most_recent_bad_attempts?: FabricServiceChannelRouteRebuildAttempt[]; resurfaced_attempts?: FabricServiceChannelRouteRebuildAttempt[]; recommended_operator_action?: string; }; export type FabricServiceChannelRouteRebuildFeedbackHealthBreakdown = { feedback_source?: string; feedback_channel_id?: string; feedback_violation_status?: string; total_count: number; good_count?: number; warn_count?: number; bad_count?: number; unknown_count?: number; active_warn_count?: number; active_bad_count?: number; silenced_count?: number; latest_observed_at?: string; affected_reporter_node_ids?: string[]; affected_route_ids?: string[]; }; export type FabricServiceChannelReadiness = { cluster_id: string; observed_at: string; status: string; reason: string; active_alert_count: number; active_bad_count: number; active_warn_count: number; resurfaced_count: number; silenced_count: number; missing_transition_count: number; missing_route_generation_count: number; missing_post_rebuild_traffic_count: number; unexpected_route_count: number; post_rebuild_degraded_count: number; blocking_reasons?: string[]; degraded_reasons?: string[]; recommended_operator_action?: string; }; export type FabricServiceChannelSchemaStatus = { cluster_id: string; observed_at: string; status: string; reason: string; required_migration: string; required_check_count: number; passed_check_count: number; missing_check_count: number; required_checks: FabricServiceChannelSchemaCheck[]; missing_checks?: FabricServiceChannelSchemaCheck[]; recommended_operator_action?: string; }; export type FabricServiceChannelSchemaCheck = { check_id: string; relation_name: string; column_name?: string; status: string; required_by: string; }; export type FabricServiceChannelRebuildSnapshotWarmup = { cluster_id: string; observed_at: string; window_limit: number; stale_after_seconds: number; scanned_count: number; warmed_count: number; already_fresh_count: number; missing_snapshot_count: number; stale_snapshot_count: number; deferred_stale_count: number; error_count: number; status: string; reason: string; recommended_operator_action?: string; }; export type FabricServiceChannelRebuildSnapshotMaintenanceHealth = { cluster_id: string; observed_at: string; status: string; reason: string; window_limit: number; min_age_seconds: number; heartbeat_threshold: number; recent_attempt_count: number; valid_snapshot_count: number; missing_snapshot_count: number; overdue_missing_snapshot_count: number; auto_warmup_event_count: number; auto_warmup_warmed_count: number; auto_warmup_already_fresh_count: number; auto_warmup_error_count: number; latest_auto_warmup_at?: string; nodes?: FabricServiceChannelRebuildSnapshotNodeHealth[]; overdue_missing_snapshot_attempts?: FabricServiceChannelRouteRebuildAttempt[]; recommended_operator_action?: string; }; export type FabricServiceChannelRebuildSnapshotNodeHealth = { node_id: string; recent_attempt_count: number; valid_snapshot_count: number; missing_snapshot_count: number; overdue_missing_snapshot_count: number; heartbeat_after_attempt_count: number; last_heartbeat_at?: string; auto_warmup_event_count: number; auto_warmup_warmed_count: number; auto_warmup_error_count: number; latest_auto_warmup_at?: string; }; export type FabricServiceChannelLeaseSummary = { cluster_id: string; channel_id: string; resource_id?: string; service_class: string; status: string; selected_entry_node_id?: string; selected_exit_node_id?: string; allowed_channels?: string[]; primary_route_id?: string; primary_route_status?: string; data_plane?: FabricServiceChannelDataPlaneContract; force_backend_fallback: boolean; expired: boolean; issued_at: string; expires_at: string; created_at: string; updated_at: string; }; export type FabricServiceChannelLeaseMaintenance = { schema_version: string; cluster_id: string; status: string; reason: string; observed_at: string; active_count: number; expired_count: number; scanned_count: number; deleted_expired_count?: number; window_limit: number; recommended_operator_action?: string; leases?: FabricServiceChannelLeaseSummary[]; }; export type FabricServiceChannelDataPlaneContract = { schema_version: string; mode: string; control_plane_transport: string; working_data_transport: string; steady_state_transport: string; backend_relay_policy: string; production_forwarding_required: boolean; service_neutral: boolean; protocol_agnostic: boolean; logical_flow_mode: string; required_flow_isolation_classes?: string[]; route_selection_strategy: string; entry_failover_mode: string; exit_failover_mode: string; route_rebuild_mode: string; failure_detection_source: string; degraded_fallback_visibility: string; stable_contract_for_service_class?: string; }; export type FabricServiceChannelAccessTelemetryNode = { node_id: string; node_name?: string; observed_at: string; total_accepted: number; signed_accepted: number; introspection_accepted: number; legacy_unsigned_accepted: number; backend_fallback_count: number; backend_fallback_blocked_count?: number; fabric_route_send_failure_count?: number; data_plane_contract_count?: number; last_data_plane_mode?: string; last_working_data_transport?: string; last_steady_state_transport?: string; last_backend_relay_policy?: string; last_logical_flow_mode?: string; last_data_plane_violation_status?: string; last_data_plane_violation_reason?: string; traffic_class_counts?: Record; flow_channel_count?: number; flow_dropped?: number; flow_high_watermark?: number; flow_max_in_flight?: number; flow_health_status?: string; flow_health_reason?: string; recommended_parallel_windows?: Record; adaptive_backpressure_active?: boolean; adaptive_backpressure_reason?: string; adaptive_policy_fingerprint?: string; last_accepted_at?: string; }; export type FabricServiceChannelAccessTelemetryChannel = { channel_id: string; resource_id?: string; service_class: string; status: string; selected_entry_node_id?: string; selected_exit_node_id?: string; primary_route_id?: string; primary_route_status?: string; force_backend_fallback: boolean; entry_node_total_accepted: number; entry_node_introspection_accepted: number; entry_node_backend_fallback_count: number; entry_node_backend_fallback_blocked_count?: number; entry_node_fabric_route_send_failure_count?: number; entry_node_data_plane_contract_count?: number; entry_node_last_data_plane_mode?: string; entry_node_last_working_data_transport?: string; entry_node_last_steady_state_transport?: string; entry_node_last_backend_relay_policy?: string; entry_node_last_logical_flow_mode?: string; entry_node_last_data_plane_violation_status?: string; entry_node_last_data_plane_violation_reason?: string; entry_node_traffic_class_counts?: Record; entry_node_flow_channel_count?: number; entry_node_flow_dropped?: number; entry_node_flow_high_watermark?: number; entry_node_flow_max_in_flight?: number; entry_node_flow_health_status?: string; entry_node_flow_health_reason?: string; entry_node_recommended_parallel_windows?: Record; entry_node_adaptive_backpressure_active?: boolean; entry_node_adaptive_backpressure_reason?: string; entry_node_adaptive_policy_fingerprint?: string; route_feedback_status?: string; route_feedback_observed_at?: string; route_feedback_score_adjustment?: number; route_feedback_effective_score_adjustment?: number; route_feedback_reasons?: string[]; route_quality_window_sample_count?: number; route_quality_window_failure_count?: number; route_quality_window_drop_count?: number; route_quality_window_slow_count?: number; last_send_duration_ms?: number; remediation_action?: string; remediation_reason?: string; remediation_route_id?: string; remediation_route_status?: string; remediation_guard_status?: string; remediation_guard_reason?: string; remediation_execution_status?: string; remediation_execution_reason?: string; remediation_execution_generation?: string; remediation_execution_observed_at?: string; route_decision_source?: string; route_decision_route_id?: string; route_decision_replacement_route_id?: string; route_decision_rebuild_status?: string; route_decision_rebuild_reason?: string; route_decision_generation?: string; route_decision_score_reasons?: string[]; pool_policy_fingerprint?: string; data_plane?: FabricServiceChannelDataPlaneContract; remediation_command?: { schema_version: string; command_id: string; action: string; cluster_id: string; channel_id: string; resource_id?: string; service_class: string; entry_node_id?: string; exit_node_id?: string; primary_route_id?: string; replacement_route_id?: string; replacement_route_status?: string; pool_policy_fingerprint?: string; guard_status?: string; guard_reason?: string; execution_status?: string; execution_reason?: string; execution_generation?: string; execution_observed_at?: string; reason?: string; operator_action?: string; issued_at: string; expires_at: string; }; recommended_operator_action?: string; expires_at: string; }; export type FabricServiceChannelAccessTelemetry = { schema_version: string; cluster_id: string; status: string; reason: string; observed_at: string; node_count: number; reporting_node_count: number; total_accepted: number; signed_accepted: number; introspection_accepted: number; legacy_unsigned_accepted: number; backend_fallback_count: number; backend_fallback_blocked_count?: number; fabric_route_send_failure_count?: number; data_plane_contract_count?: number; last_data_plane_mode?: string; last_working_data_transport?: string; last_steady_state_transport?: string; last_backend_relay_policy?: string; last_logical_flow_mode?: string; last_data_plane_violation_status?: string; last_data_plane_violation_reason?: string; active_channel_count: number; degraded_fallback_channel_count: number; correlated_route_count: number; degraded_route_count: number; route_decision_channel_count?: number; replacement_decision_count?: number; applied_rebuild_decision_count?: number; recovery_decision_count?: number; no_safe_recovery_decision_count?: number; traffic_class_counts?: Record; flow_channel_count?: number; flow_dropped?: number; flow_high_watermark?: number; flow_max_in_flight?: number; flow_health_status?: string; flow_health_reason?: string; recommended_parallel_windows?: Record; adaptive_backpressure_active?: boolean; adaptive_backpressure_reason?: string; adaptive_policy_fingerprint?: string; latest_accepted_at?: string; nodes?: FabricServiceChannelAccessTelemetryNode[]; active_channels?: FabricServiceChannelAccessTelemetryChannel[]; recommended_operator_action?: string; }; export type FabricServiceChannelRouteRebuildIncident = { fingerprint: string; cluster_id: string; reporter_node_id: string; route_id: string; service_class: string; generation?: string; incident_source?: string; channel_id?: string; guard_status: string; guard_severity: string; guard_reason?: string; attempt_count: number; first_seen_at: string; last_seen_at: string; latest_replacement_route_id?: string; latest_rebuild_status?: string; latest_outcome?: string; alert_silenced?: boolean; alert_resurfaced?: boolean; alert_resurfaced_from_silence_id?: string; alert_resurfaced_cause?: string; alert_resurfaced_previous_route_id?: string; alert_resurfaced_previous_channel_id?: string; alert_resurfaced_previous_generation?: string; alert_resurfaced_previous_until?: string; recommended_operator_action?: string; }; export type FabricServiceChannelRouteRebuildAlertSilence = { id: string; cluster_id: string; incident_source?: string; channel_id?: string; reporter_node_id: string; route_id: string; display_route_id?: string; guard_status: string; generation?: string; reason?: string; created_by_user_id?: string | null; created_at: string; expires_at: string; payload?: Record; }; export type ExpireFabricServiceChannelRouteFeedbackResult = { cluster_id: string; reporter_node_id?: string; route_id: string; service_class?: string; expired_count: number; expired_at: string; cooldown_until: string; }; export type FabricServiceChannelRouteFeedbackReport = { schema_version: string; generated_at: string; feedback_max_age_seconds: number; recovery_policy?: FabricServiceChannelRecoveryPolicy; observation_count: number; fenced_route_count: number; degraded_route_count: number; healthy_route_count: number; recovered_route_count?: number; recovery_hysteresis_count?: number; recovery_promoted_count?: number; recovery_demoted_count?: number; missing_provenance_count?: number; stale_policy_count?: number; stale_generation_count?: number; observations?: FabricServiceChannelRouteFeedbackObservation[]; }; export type FabricServiceChannelRecoveryPolicy = { schema_version: string; fingerprint?: string; hysteresis_penalty: number; promotion_min_samples: number; demotion_failure_threshold: number; demotion_drop_threshold: number; demotion_slow_threshold: number; demotion_rebuild_enabled: boolean; demotion_fenced_enabled: boolean; source: string; updated_by_user_id?: string | null; updated_at?: string; control_plane_only: boolean; production_forwarding: boolean; }; export type FabricServiceChannelAdaptivePolicy = { schema_version: string; fingerprint?: string; max_parallel_window: number; bulk_pressure_channel_threshold: number; queue_pressure_high_watermark: number; queue_pressure_max_in_flight: number; class_windows: Record; source: string; updated_by_user_id?: string | null; updated_at?: string; control_plane_only: boolean; production_forwarding: boolean; }; export type FabricServiceChannelPoolPolicy = { schema_version: string; fingerprint?: string; entry_pool_node_ids?: string[]; exit_pool_node_ids?: string[]; preferred_entry_node_id?: string; preferred_exit_node_id?: string; selection_strategy: string; route_rebuild: string; entry_failover: string; exit_failover: string; backend_fallback_allowed: boolean; sticky_session: boolean; source: string; updated_by_user_id?: string | null; updated_at?: string; control_plane_only: boolean; production_forwarding: boolean; }; export type NodeSyntheticMeshConfig = { enabled: boolean; schema_version: string; cluster_id: string; local_node_id: string; authority_required: boolean; cluster_authority?: ClusterAuthorityDescriptor; authority_payload?: Record; authority_signature?: ClusterSignature; config_version?: string; peer_directory_version?: string; policy_version?: string; peer_endpoints: Record; peer_endpoint_candidates?: Record; peer_directory?: PeerDirectoryEntry[]; recovery_seeds?: PeerRecoverySeed[]; rendezvous_leases?: PeerRendezvousLease[]; rendezvous_relay_policy?: RendezvousRelayPolicyReport; route_path_decisions?: RoutePathDecisionReport; service_channel_route_feedback?: FabricServiceChannelRouteFeedbackReport; service_channel_adaptive_policy?: FabricServiceChannelAdaptivePolicy; service_channel_remediation_commands?: FabricServiceChannelAccessTelemetryChannel["remediation_command"][]; mesh_listener?: { schema_version: string; source: string; desired_state: string; listen_addr: string; listen_port_mode: string; auto_port_start?: number; auto_port_end?: number; advertise_endpoint?: string; advertise_transport?: string; connectivity_mode?: string; nat_type?: string; region?: string; config_version?: string; updated_by_user_id?: string; updated_at?: string; control_plane_only: boolean; production_forwarding: boolean; }; routes: SyntheticMeshRoute[]; production_forwarding: boolean; }; export type FabricEntryPoint = { id: string; cluster_id: string; name: string; status: string; endpoint_type: string; public_endpoint?: string | null; policy?: Record; metadata?: Record; created_by_user_id?: string | null; created_at: string; updated_at?: string; }; export type FabricEntryPointNode = { entry_point_id: string; cluster_id: string; node_id: string; status: string; priority: number; metadata?: Record; added_by_user_id?: string | null; added_at: string; }; export type FabricEgressPool = { id: string; cluster_id: string; name: string; status: string; description?: string | null; route_scope?: Record; policy?: Record; metadata?: Record; created_by_user_id?: string | null; created_at: string; updated_at?: string; }; export type FabricEgressPoolNode = { egress_pool_id: string; cluster_id: string; node_id: string; status: string; priority: number; metadata?: Record; added_by_user_id?: string | null; added_at: string; }; export type QoSPolicy = { id: string; cluster_id: string; service_class: string; priority: number; reliability_mode: string; drop_policy: string; bandwidth_policy?: Record; metadata?: Record; }; export type ClusterAdminSummary = { cluster_id: string; slug: string; name: string; status: string; region?: string | null; authority_state: string; mutation_mode: string; cluster_key_algorithm?: string | null; cluster_key_fingerprint?: string | null; node_count: number; healthy_node_count: number; pending_join_count: number; active_role_assignment_count: number; last_node_seen_at?: string | null; }; export type OrganizationAdminSummary = { organization_id: string; resource_count: number; active_session_count: number; service_endpoints: Array<{ protocol: string; count: number }>; connector_status: Record; topology_exposure: string; }; export type Organization = { id: string; slug: string; name: string; status: string; metadata?: Record; created_at: string; updated_at: string; }; export type OrganizationMembership = { id: string; organization_id: string; user_id: string; role_id: string; status: string; invited_by_user_id?: string | null; created_at: string; updated_at: string; }; export type UserAccount = { id: string; email: string; mfa_enabled: boolean; platform_role: string; created_at: string; updated_at: string; }; export type Resource = { id: string; organization_id: string; name: string; address: string; protocol: string; secret_ref?: string | null; has_secret?: boolean; certificate_verification_mode: string; render_quality_profile?: string; clipboard_mode: string; file_transfer_mode: string; metadata?: Record; created_at: string; updated_at: string; }; export type VPNConnection = { id: string; cluster_id: string; organization_id: string; name: string; target_endpoint: Record; protocol_family: string; credential_ref?: string | null; mode: string; desired_state: string; allowed_node_policy: Record; routing_usage: unknown[]; route_policy: Record; qos_policy: Record; placement_policy: Record; status: string; metadata: Record; created_by_user_id?: string | null; updated_by_user_id?: string | null; created_at: string; updated_at: string; }; export type VPNConnectionLease = { id: string; vpn_connection_id: string; cluster_id: string; owner_node_id: string; lease_generation: number; fencing_token: string; status: string; acquired_at: string; renewed_at: string; expires_at: string; released_at?: string | null; fenced_at?: string | null; metadata: Record; }; export type VPNPacketDirectionStats = { pushed: number; popped: number; dropped: number; queue_depth: number; last_push_size: number; last_pop_size: number; last_push_at?: string; last_pop_at?: string; }; export type VPNPacketStats = { client_to_gateway?: VPNPacketDirectionStats; gateway_to_client?: VPNPacketDirectionStats; }; export type VPNClientDiagnosticStatus = { cluster_id: string; device_id: string; payload: Record; observed_at: string; }; export type VPNClientDiagnosticCommand = { id: string; cluster_id: string; device_id: string; payload: Record; created_at: string; };