use crate::update;
use serde::{Deserialize, Serialize};
use std::time::SystemTime;
use wmi::{COMLibrary, WMIConnection, WMIDateTime};
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct NTEventlogFiles {
pub nt_event_log_files: Vec<Win32_NTEventlogFile>,
pub last_updated: SystemTime,
}
update!(NTEventlogFiles, nt_event_log_files);
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct NTLogEvents {
pub nt_log_events: Vec<Win32_NTLogEvent>,
pub last_updated: SystemTime,
}
update!(NTLogEvents, nt_log_events);
#[derive(Default, Deserialize, Serialize, Debug, Clone)]
#[allow(non_snake_case)]
#[allow(non_camel_case_types)]
pub struct Win32_NTEventlogFile {
pub AccessMask: Option<u32>,
pub Archive: Option<bool>,
pub Caption: Option<String>,
pub Compressed: Option<bool>,
pub CompressionMethod: Option<String>,
pub CreationClassName: Option<String>,
pub CreationDate: Option<WMIDateTime>,
pub CSCreationClassName: Option<String>,
pub CSName: Option<String>,
pub Description: Option<String>,
pub Drive: Option<String>,
pub EightDotThreeFileName: Option<String>,
pub Encrypted: Option<bool>,
pub EncryptionMethod: Option<String>,
pub Extension: Option<String>,
pub FileName: Option<String>,
pub FileSize: Option<u64>,
pub FileType: Option<String>,
pub FSCreationClassName: Option<String>,
pub FSName: Option<String>,
pub Hidden: Option<bool>,
pub InstallDate: Option<WMIDateTime>,
pub InUseCount: Option<u64>,
pub LastAccessed: Option<WMIDateTime>,
pub LastModified: Option<WMIDateTime>,
pub LogfileName: Option<String>,
pub Manufacturer: Option<String>,
pub MaxFileSize: Option<u32>,
pub Name: Option<String>,
pub NumberOfRecords: Option<u32>,
pub OverwriteOutDated: Option<u32>,
pub OverWritePolicy: Option<String>,
pub Path: Option<String>,
pub Readable: Option<bool>,
pub Sources: Option<Vec<String>>,
pub Status: Option<String>,
pub System: Option<bool>,
pub Version: Option<String>,
pub Writeable: Option<bool>,
}
#[derive(Default, Deserialize, Serialize, Debug, Clone)]
#[allow(non_snake_case)]
#[allow(non_camel_case_types)]
pub struct Win32_NTLogEvent {
pub Category: Option<u16>,
pub CategoryString: Option<String>,
pub ComputerName: Option<String>,
pub Data: Option<Vec<u8>>,
pub EventCode: Option<u16>,
pub EventIdentifier: Option<u32>,
pub EventType: Option<u8>,
pub InsertionStrings: Option<Vec<String>>,
pub Logfile: Option<String>,
pub Message: Option<String>,
pub RecordNumber: Option<u32>,
pub SourceName: Option<String>,
pub TimeGenerated: Option<WMIDateTime>,
pub TimeWritten: Option<WMIDateTime>,
pub Type: Option<String>,
pub User: Option<String>,
}