# `GeoGenius.Manifest.Artifact`
[🔗](https://github.com/agoodway/geo_genius/blob/main/lib/geo_genius/manifest.ex#L33)

One file (or archive) a source is built from.

An artifact is either downloadable (it carries a `url`) or operator-supplied
(an operator has placed it in the cache by hand) -- never both and never
neither, so a manifest cannot describe an artifact the pipeline has no way
to obtain.

# `t`

```elixir
@type t() :: %GeoGenius.Manifest.Artifact{
  bytes: pos_integer(),
  format: String.t(),
  logical_name: String.t(),
  members: [String.t()],
  metadata: map(),
  operator_supplied: boolean(),
  required: boolean(),
  sha256: String.t(),
  url: String.t() | nil
}
```

---

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