# `ExSaml.Assertion`
[🔗](https://github.com/docJerem/ex_saml/blob/main/lib/ex_saml/assertion.ex#L1)

SAML assertion returned from IDP upon successful user authentication.

The assertion attributes returned by the IdP are available in `attributes` field
as a map. Any computed attributes are available in `computed` field as map.

The attributes can be accessed directly from `attributes` or `computed` maps.
The `ExSaml.get_attribute/2` function can be used as well. This function will
first look at the `computed` attributes. If the request attribute is not present there,
it will check in `attributes` next.

# `attr_name_t`

```elixir
@type attr_name_t() :: String.t()
```

# `attr_value_t`

```elixir
@type attr_value_t() :: String.t() | [String.t()]
```

# `t`

```elixir
@type t() :: %ExSaml.Assertion{
  attributes: %{required(attr_name_t()) =&gt; attr_value_t()},
  authn: map(),
  computed: %{required(attr_name_t()) =&gt; attr_value_t()},
  conditions: map(),
  idp_id: String.t(),
  issue_instant: String.t(),
  issuer: String.t(),
  recipient: String.t(),
  subject: ExSaml.Subject.t(),
  version: String.t()
}
```

# `get_from_code`

---

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