use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct SandboxSettings {
#[serde(skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub auto_allow_bash_if_sandboxed: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub excluded_commands: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub allow_unsandboxed_commands: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub network: Option<SandboxNetworkConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ignore_violations: Option<SandboxIgnoreViolations>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_weaker_nested_sandbox: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct SandboxNetworkConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub allow_unix_sockets: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub allow_all_unix_sockets: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub allow_local_binding: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub http_proxy_port: Option<u16>,
#[serde(skip_serializing_if = "Option::is_none")]
pub socks_proxy_port: Option<u16>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq)]
pub struct SandboxIgnoreViolations {
#[serde(skip_serializing_if = "Option::is_none")]
pub file: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub network: Option<Vec<String>>,
}