# `AccessGrid.CredentialProfile`
[🔗](https://github.com/Access-Grid/accessgrid-ex/blob/main/lib/access_grid/credential_profile.ex#L1)

Credential profile bound to a specific reader app (e.g. `"KEY-ID-main"`).
Returned by `AccessGrid.Console.list_credential_profiles/1` and
`AccessGrid.Console.create_credential_profile/2`.

`keys` and `files` are kept as raw lists of maps with string keys, matching
the SDK convention for embedded config blocks (see `Template.support_settings`).
Each `keys` entry: `{ex_id, label, keys_diversified, source_key_index}`. Each
`files` entry: `{ex_id, file_type, file_size, communication_settings,
read_rights, write_rights, read_write_rights, change_rights}`.

# `t`

```elixir
@type t() :: %AccessGrid.CredentialProfile{
  aid: String.t() | nil,
  apple_id: String.t() | nil,
  card_storage: String.t() | nil,
  created_at: String.t() | nil,
  files: [map()],
  id: String.t() | nil,
  keys: [map()],
  name: String.t() | nil
}
```

# `from_response`

```elixir
@spec from_response(map()) :: t()
```

Creates a CredentialProfile struct from an API response map.

---

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