# `Apple.Types.DeviceCheck`
[🔗](https://github.com/cozy-elixir/apple/blob/v0.6.0/lib/apple/types/device_check.ex#L1)

Provides DeviceCheck API related types.

# `bit_state`

```elixir
@type bit_state() :: 0 | 1
```

Bit state for DeviceCheck (0 or 1 for each of two bits).

# `device_token`

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

The device token received from the device, base64-encoded.

# `issuer_id`

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

The issuer ID (Team ID), which is a 10-character string, like `"6MPDV0UYYX"`

To obtain the team ID, sign into Apple Developer and complete the following
steps:

  1. Navigate to "Membership details".

# `key_id`

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

The private key ID for DeviceCheck, like `"2Y9R5HMY68"`.

To obtain the private key ID, sign into Apple Developer and complete the
following steps:

  1. Navigate to "Certificates, IDs & Profiles".
  2. Navigate to "Keys".
  3. Generate a new key with DeviceCheck enabled.
  4. Download the private key.

# `private_key`

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

The private key associated with the `key_id`.

It's in PEM format, like:

```text
-----BEGIN PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
...
-----END PRIVATE KEY-----
```

# `timestamp`

```elixir
@type timestamp() :: integer()
```

The timestamp for the request in milliseconds since 1970.

# `transaction_id`

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

The transaction ID (UUID) for tracking requests.

---

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