auth0-integration 0.6.1

Auth0 client library for M2M token retrieval and JWT validation (RS256)
Documentation
use serde::{Deserialize, Serialize};
use serde_json::Value;

/// Fields accepted by Auth0 PATCH /api/v2/users/{id}.
/// All fields are optional — only non-None fields are serialized.
#[derive(Serialize, Deserialize, Default)]
pub struct UpdateUserRequest {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub email: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub email_verified: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub verify_email: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub phone_number: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub phone_verified: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub given_name: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub family_name: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub nickname: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub picture: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub username: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub password: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub verify_password: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub blocked: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub connection: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub user_metadata: Option<Value>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub app_metadata: Option<Value>,
}

impl UpdateUserRequest {
    /// Creates a new empty `UpdateUserRequest` with all fields set to `None`.
    ///
    /// After construction, set the fields you want to update directly on the struct.
    /// Only fields set to `Some(...)` are sent to Auth0 — the rest are omitted.
    ///
    /// # Fields
    ///
    /// | Field            | Type                | Description                                                  |
    /// |------------------|---------------------|--------------------------------------------------------------|
    /// | `email`          | `Option<String>`    | New email address for the user                               |
    /// | `email_verified` | `Option<bool>`      | Whether the email has been verified                          |
    /// | `verify_email`   | `Option<bool>`      | If `true`, sends a verification email after update           |
    /// | `phone_number`   | `Option<String>`    | Phone number in E.164 format (e.g. `+15551234567`)           |
    /// | `phone_verified` | `Option<bool>`      | Whether the phone number has been verified                   |
    /// | `name`           | `Option<String>`    | Full display name                                            |
    /// | `given_name`     | `Option<String>`    | First name                                                   |
    /// | `family_name`    | `Option<String>`    | Last name                                                    |
    /// | `nickname`       | `Option<String>`    | Preferred short name                                         |
    /// | `picture`        | `Option<String>`    | URL of the user's profile picture                            |
    /// | `username`       | `Option<String>`    | Username (only for connections that support it)              |
    /// | `password`       | `Option<String>`    | New password (only for database connections)                 |
    /// | `verify_password`| `Option<bool>`      | If `true`, sends a password-change confirmation email        |
    /// | `blocked`        | `Option<bool>`      | If `true`, the user is blocked from logging in               |
    /// | `connection`     | `Option<String>`    | Connection name the update applies to                        |
    /// | `user_metadata`  | `Option<Value>`     | Arbitrary JSON object editable by the user                   |
    /// | `app_metadata`   | `Option<Value>`     | Arbitrary JSON object editable only by the application       |
    ///
    /// # Example
    ///
    /// ```rust
    /// use auth0_integration::models::UpdateUserRequest;
    ///
    /// let req = UpdateUserRequest::new();
    /// // req.name = Some("Jane Doe".to_string());
    /// // req.blocked = Some(false);
    /// ```
    pub fn new() -> Self {
        Self::default()
    }
}