#![allow(unused_imports, non_camel_case_types, non_snake_case, clippy::all)]
use serde::{Deserialize, Serialize};
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct PolicyDecision {
pub decision_version: PolicyDecision_DecisionVersion,
pub policy_engine: PolicyDecision_PolicyEngine,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub engine_version: Option<String>,
pub trust_domain: TrustDomain,
pub subject: ActorId,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub instance: Option<InstanceId>,
pub action: ActionName,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub target: Option<String>,
pub decision: PolicyDecision_Decision,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub rule_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reason: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub approval: Option<ApprovalRequirement>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub proof_required: Option<ProofLevel>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub constraints_applied: Option<Vec<Constraint>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub negative_capabilities_consulted: Option<Vec<NegativeCapability>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub enforcement_level: Option<EnforcementLevel>,
pub evaluated_at: Timestamp,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub policy_manifest_hash: Option<HashRef>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub context: Option<serde_json::Value>,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum PolicyDecision_Decision {
#[serde(rename = "allow")]
Allow,
#[serde(rename = "deny")]
Deny,
#[serde(rename = "escalate")]
Escalate,
#[serde(rename = "approval-required")]
ApprovalRequired,
#[serde(rename = "log-only")]
LogOnly,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum PolicyDecision_DecisionVersion {
#[serde(rename = "1")]
V1,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum PolicyDecision_PolicyEngine {
#[serde(rename = "cedar")]
Cedar,
#[serde(rename = "rego")]
Rego,
#[serde(rename = "custom")]
Custom,
#[serde(rename = "native")]
Native,
#[serde(rename = "none")]
None,
}