use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AccessLogEntry {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "time")]
pub time: String,
#[serde(rename = "domain")]
pub domain: String,
#[serde(rename = "capsule")]
pub capsule: String,
#[serde(rename = "operation")]
pub operation: Operation,
#[serde(rename = "session")]
pub session: String,
#[serde(rename = "location", skip_serializing_if = "Option::is_none")]
pub location: Option<String>,
#[serde(rename = "createInfo", skip_serializing_if = "Option::is_none")]
pub create_info: Option<Box<models::AccessLogEntryCreateInfo>>,
#[serde(rename = "openInfo", skip_serializing_if = "Option::is_none")]
pub open_info: Option<Box<models::AccessLogEntryOpenInfo>>,
#[serde(rename = "readInfo", skip_serializing_if = "Option::is_none")]
pub read_info: Option<Box<models::AccessLogEntryReadInfo>>,
#[serde(rename = "capsuleTags")]
pub capsule_tags: Vec<models::Tag>,
#[serde(rename = "capsuleSpanTags")]
pub capsule_span_tags: Box<models::TagSummary>,
#[serde(rename = "capsuleSize")]
pub capsule_size: i64,
#[serde(rename = "capsuleCreated")]
pub capsule_created: String,
#[serde(rename = "issuer")]
pub issuer: String,
#[serde(rename = "principal")]
pub principal: String,
}
impl AccessLogEntry {
pub fn new(id: String, time: String, domain: String, capsule: String, operation: Operation, session: String, capsule_tags: Vec<models::Tag>, capsule_span_tags: models::TagSummary, capsule_size: i64, capsule_created: String, issuer: String, principal: String) -> AccessLogEntry {
AccessLogEntry {
id,
time,
domain,
capsule,
operation,
session,
location: None,
create_info: None,
open_info: None,
read_info: None,
capsule_tags,
capsule_span_tags: Box::new(capsule_span_tags),
capsule_size,
capsule_created,
issuer,
principal,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Operation {
#[serde(rename = "open")]
Open,
#[serde(rename = "read")]
Read,
#[serde(rename = "create")]
Create,
}
impl Default for Operation {
fn default() -> Operation {
Self::Open
}
}