use microsandbox::{Sandbox, NetworkPolicy};
// No network access
let sb1 = Sandbox::builder("isolated")
.image("python:3.12")
.disable_network()
.create()
.await?;
// Public internet only (default)
let sb2 = Sandbox::builder("web-agent")
.image("python:3.12")
.network(|n| n.policy(NetworkPolicy::public_only()))
.create()
.await?;
// Unrestricted access
let sb3 = Sandbox::builder("dev")
.image("python:3.12")
.network(|n| n.policy(NetworkPolicy::allow_all()))
.create()
.await?;
// Allow only specific hosts
let sb4 = Sandbox::builder("scoped-agent")
.image("python:3.12")
.network(|n| n.policy(NetworkPolicy::allowlist(["api.openai.com", "pypi.org"])))
.create()
.await?;
// Block specific destinations
let sb5 = Sandbox::builder("safe-agent")
.image("python:3.12")
.network(|n| n.policy(NetworkPolicy::denylist([
DestinationGroup::CloudMetadata,
DestinationGroup::PrivateNetworks,
])))
.create()
.await?;