# `Tank.Pod.Network`
[🔗](https://github.com/oshlabs/tank/blob/v0.2.0/lib/tank/pod/network.ex#L1)

A pod's network namespace: a set of interfaces plus pod-level DNS (one
`/etc/resolv.conf` per netns). Loopback is always raised by the runtime.

As a *whole*, a pod's `:network` may instead be the atom `:host` (share the
host's network namespace) or `:none` (an isolated netns, loopback only);
those shortcuts are handled by `Tank.Pod`, not here.

# `t`

```elixir
@type t() :: %Tank.Pod.Network{dns: [String.t()], nics: [Tank.Nic.t()]}
```

# `new`

```elixir
@spec new(map() | keyword()) :: {:ok, t()} | {:error, term()}
```

Build a validated pod network from a map or keyword list.

# `new!`

```elixir
@spec new!(map() | keyword()) :: t()
```

Like `new/1` but raises `ArgumentError` on invalid input.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
