use serde::{Deserialize, Serialize}; /*
                                      * Google Identity Toolkit API
                                      *
                                      * Help the third party sites to implement federated login.
                                      *
                                      * The version of the OpenAPI document: v3
                                      *
                                      * Generated by: https://openapi-generator.tech
                                      */

use crate::google_rest_apis::identitytoolkit_v3::models;

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct UserInfoProviderUserInfoInner {
    /// The user's display name at the IDP.
    #[serde(rename = "displayName", skip_serializing_if = "Option::is_none")]
    pub display_name: Option<String>,
    /// User's email at IDP.
    #[serde(rename = "email", skip_serializing_if = "Option::is_none")]
    pub email: Option<String>,
    /// User's identifier at IDP.
    #[serde(rename = "federatedId", skip_serializing_if = "Option::is_none")]
    pub federated_id: Option<String>,
    /// User's phone number.
    #[serde(rename = "phoneNumber", skip_serializing_if = "Option::is_none")]
    pub phone_number: Option<String>,
    /// The user's photo url at the IDP.
    #[serde(rename = "photoUrl", skip_serializing_if = "Option::is_none")]
    pub photo_url: Option<String>,
    /// The IdP ID. For white listed IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.
    #[serde(rename = "providerId", skip_serializing_if = "Option::is_none")]
    pub provider_id: Option<String>,
    /// User's raw identifier directly returned from IDP.
    #[serde(rename = "rawId", skip_serializing_if = "Option::is_none")]
    pub raw_id: Option<String>,
    /// User's screen name at Twitter or login name at Github.
    #[serde(rename = "screenName", skip_serializing_if = "Option::is_none")]
    pub screen_name: Option<String>,
}

impl UserInfoProviderUserInfoInner {
    pub fn new() -> UserInfoProviderUserInfoInner {
        UserInfoProviderUserInfoInner {
            display_name: None,
            email: None,
            federated_id: None,
            phone_number: None,
            photo_url: None,
            provider_id: None,
            raw_id: None,
            screen_name: None,
        }
    }
}
