# `MpxjEx.Resource`
[🔗](https://github.com/rocket4ce/mpxj_ex/blob/v0.1.0/lib/mpxj_ex/resource.ex#L1)

A resource (person, material or cost) in a schedule.

As with `MpxjEx.Task`, the common attributes are struct fields and every
attribute read from the file is in `:fields`.

`:availability_table` lists the periods the resource is available, as maps
with `:start`, `:end` and `:units`. `:cost_rate_tables` maps a table index
(0 to 4, MS Project's tables A to E) to its entries, each a map with
`:start_date`, `:end_date`, `:cost_per_use` and `:rates`, which maps the
rate index (0 standard, 1 overtime, more for Primavera) to an `MpxjEx.Rate`.

# `t`

```elixir
@type t() :: %MpxjEx.Resource{
  active: boolean(),
  availability_table: [map()],
  calendar_unique_id: integer() | nil,
  cost: float() | nil,
  cost_per_use: float() | nil,
  cost_rate_tables: %{optional(non_neg_integer()) =&gt; [map()]},
  email_address: String.t() | nil,
  fields: map(),
  group: String.t() | nil,
  guid: String.t() | nil,
  id: integer() | nil,
  initials: String.t() | nil,
  max_units: float() | nil,
  name: String.t() | nil,
  notes: String.t() | nil,
  overtime_rate: MpxjEx.Rate.t() | nil,
  standard_rate: MpxjEx.Rate.t() | nil,
  type: atom() | nil,
  unique_id: integer(),
  work: number() | nil
}
```

---

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