# UsersManager
Reach these methods through the `users` field on `client::Client`.
## list
`GET /users`
| `filter_term` | query | `String` | no |
| `user_type` | query | `GetUserType` | no |
| `external_app_user_id` | query | `String` | no |
| `fields` | query | `Vec<String>` | no |
| `offset` | query | `i64` | no |
| `limit` | query | `i64` | no |
| `usemarker` | query | `bool` | no |
| `marker` | query | `String` | no |
**Returns:** `Users`
**Example**
```rust
let mut pages = client.users.list(None);
while let Some(item) = pages.next().await {
// use item
}
```
Paginated — `list(...)` returns a paginator you drive with `.next().await`, threading the cursor for you. See the [pagination guide](../pagination.md).
## create
`POST /users`
| `fields` | query | `Vec<String>` | no |
**Request body** (`application/json`): `UserCreateRequest`
**Returns:** `UserFull`
**Example**
```rust
let result = client.users.create(schemas::UserCreateRequest { /* … */ }, None).await?;
```
## get_me
`GET /users/me`
| `fields` | query | `Vec<String>` | no |
**Returns:** `UserFull`
**Example**
```rust
let result = client.users.get_me(None).await?;
```
## get
`GET /users/{user_id}`
| `user_id` | path | `String` | yes |
| `fields` | query | `Vec<String>` | no |
**Returns:** `UserFull`
**Example**
```rust
let result = client.users.get("USER_ID".to_string(), None).await?;
```
## update
`PUT /users/{user_id}`
| `user_id` | path | `String` | yes |
| `fields` | query | `Vec<String>` | no |
**Request body** (`application/json`): `UserUpdateRequest`
**Returns:** `UserFull`
**Example**
```rust
let result = client.users.update("USER_ID".to_string(), schemas::UserUpdateRequest { /* … */ }, None).await?;
```
## delete
`DELETE /users/{user_id}`
| `user_id` | path | `String` | yes |
| `notify` | query | `bool` | no |
| `force` | query | `bool` | no |
**Returns:** no content
**Example**
```rust
client.users.delete("USER_ID".to_string(), None).await?;
```