# `Grizzly.ZWave.Commands.UserReport`
[🔗](https://github.com/smartrent/grizzly/blob/v9.1.4/lib/grizzly/zwave/commands/user_report.ex#L1)

UserReport is used to report the status of a user ID at the sending node.

## Parameters

* `:report_type` - the type of report (required)
* `:next_user_id` - the ID of the next user (required)
* `:modifier_type` - the type of modifier (optional)
* `:modifier_node_id` - the ID of the modifier node (optional)
* `:user_id` - the ID of the user (required)
* `:user_type` - the type of user (required)
* `:user_active?` - whether the user is active (required)
* `:credential_rule` - the credential rule (required)
* `:expiring_timeout_minutes` - the expiring timeout in minutes (optional)
* `:username_encoding` - the encoding of the username (optional)
* `:username` - the username (optional)

# `param`

```elixir
@type param() ::
  {:report_type, report_type()}
  | {:next_user_id, 0..65535}
  | {:modifier_type,
     Grizzly.ZWave.CommandClasses.UserCredential.modifier_type()}
  | {:modifier_node_id, 0..65535}
  | {:user_id, 0..65535}
  | {:user_type, Grizzly.ZWave.CommandClasses.UserCredential.user_type()}
  | {:user_active?, boolean()}
  | {:credential_rule,
     Grizzly.ZWave.CommandClasses.UserCredential.credential_rule()}
  | {:expiring_timeout_minutes, 0..65535}
  | {:username_encoding, Grizzly.ZWave.Encoding.string_encoding()}
  | {:username, binary()}
```

# `report_type`

```elixir
@type report_type() ::
  :added
  | :modified
  | :deleted
  | :unchanged
  | :response_to_get
  | :rejected_location_occupied
  | :rejected_location_empty
  | :zero_expiring_minutes_invalid
```

---

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