use std::path::PathBuf;
use crate::configuration::BundleConfiguration;
use super::identity::IdentityIntrospectRights;
use super::{DeliveryPayloadMode, delivery::QuiescenceOptions};
#[derive(Clone, Debug)]
pub(super) struct SendRequestContext {
pub(super) request_id: Option<String>,
pub(super) requester_session: String,
pub(super) message: String,
pub(super) targets: Vec<String>,
pub(super) broadcast: bool,
pub(super) quiet_window_ms: Option<u64>,
}
#[derive(Clone, Debug)]
pub(super) struct ChoiceDecisionRequestContext {
pub(super) choice_request_id: String,
pub(super) outcome: String,
pub(super) option_id: Option<String>,
}
#[derive(Clone, Debug)]
pub(super) struct RequestPrincipal {
pub(super) session_id: String,
pub(super) authenticated_identity: Option<String>,
pub(super) introspect_rights: Option<IdentityIntrospectRights>,
}
#[derive(Clone, Debug)]
pub(super) struct AsyncDeliveryTask {
pub(super) bundle: BundleConfiguration,
pub(super) sender_namespace: String,
pub(super) sender: crate::configuration::BundleMember,
pub(super) authenticated_identity: Option<String>,
pub(super) all_target_sessions: Vec<String>,
pub(super) target_session: String,
pub(super) message: String,
pub(super) message_id: String,
pub(super) quiescence: QuiescenceOptions,
pub(super) runtime_directory: PathBuf,
pub(super) payload_mode: DeliveryPayloadMode,
pub(super) append_enter: bool,
pub(super) choice_decider_sessions: Vec<String>,
}