use steam_protos::{EAuthSessionGuardType, EAuthTokenPlatformType, ESessionPersistence};
#[derive(Debug, Clone, Default)]
pub struct LoginSessionOptions {
pub user_agent: Option<String>,
pub machine_id: Option<Vec<u8>>,
pub machine_friendly_name: Option<String>,
}
#[derive(Debug, Clone)]
pub struct CredentialsDetails {
pub account_name: String,
pub password: String,
pub persistence: Option<ESessionPersistence>,
pub steam_guard_machine_token: Option<String>,
pub steam_guard_code: Option<String>,
}
#[derive(Debug, Clone)]
pub struct StartSessionResponse {
pub action_required: bool,
pub valid_actions: Option<Vec<ValidAction>>,
pub qr_challenge_url: Option<String>,
}
#[derive(Debug, Clone)]
pub struct ValidAction {
pub guard_type: EAuthSessionGuardType,
pub detail: Option<String>,
}
#[derive(Debug, Clone)]
pub struct PollResult {
pub account_name: String,
pub refresh_token: String,
pub access_token: Option<String>,
pub new_guard_data: Option<String>,
}
#[derive(Debug, Clone)]
pub struct ApproveAuthSessionRequest {
pub qr_challenge_url: String,
pub approve: bool,
pub persistence: Option<ESessionPersistence>,
}
#[derive(Debug, Clone)]
pub struct StartAuthSessionResponse {
pub client_id: u64,
pub request_id: Vec<u8>,
pub poll_interval: f32,
pub allowed_confirmations: Vec<AllowedConfirmation>,
pub steam_id: Option<u64>,
pub weak_token: Option<String>,
pub challenge_url: Option<String>,
pub version: Option<i32>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct AllowedConfirmation {
pub confirmation_type: EAuthSessionGuardType,
pub message: Option<String>,
}
#[derive(Debug, Clone)]
pub(crate) struct PlatformData {
pub website_id: String,
pub headers: std::collections::HashMap<String, String>,
pub device_details: DeviceDetails,
}
#[derive(Debug, Clone)]
#[allow(dead_code)]
pub(crate) struct DeviceDetails {
pub device_friendly_name: String,
pub platform_type: EAuthTokenPlatformType,
pub os_type: Option<i32>,
pub gaming_device_type: Option<u32>,
pub machine_id: Option<Vec<u8>>,
}