clientapi-pve 2026.5.24

Generated from apidoc.js. NOT an official Proxmox specification. See https://pve.proxmox.com/pve-docs/api-viewer/ for the upstream documentation.
Documentation
/*
 * Proxmox Virtual Environment API
 *
 * Generated from apidoc.js. NOT an official Proxmox specification. See https://pve.proxmox.com/pve-docs/api-viewer/ for the upstream documentation.
 *
 * The version of the OpenAPI document: 9.x
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PveRealmOpenidConfig {

    /// OpenID Issuer Url
    #[serde(rename = "issuer-url")]
    pub issuer_url: String,

    /// OpenID Client ID
    #[serde(rename = "client-id")]
    pub client_id: String,

    /// OpenID Client Key
    #[serde(rename = "client-key", skip_serializing_if = "Option::is_none")]
    pub client_key: Option<String>,

    /// Automatically create users if they do not exist.
    #[serde(rename = "autocreate", skip_serializing_if = "Option::is_none")]
    pub autocreate: Option<models::PveBoolean>,

    /// OpenID claim used to generate the unique username.
    #[serde(rename = "username-claim", skip_serializing_if = "Option::is_none")]
    pub username_claim: Option<String>,

    /// OpenID claim used to retrieve groups with.
    #[serde(rename = "groups-claim", skip_serializing_if = "Option::is_none")]
    pub groups_claim: Option<String>,

    /// Automatically create groups if they do not exist.
    #[serde(rename = "groups-autocreate", skip_serializing_if = "Option::is_none")]
    pub groups_autocreate: Option<models::PveBoolean>,

    /// All groups will be overwritten for the user on login.
    #[serde(rename = "groups-overwrite", skip_serializing_if = "Option::is_none")]
    pub groups_overwrite: Option<models::PveBoolean>,

    /// Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.
    #[serde(rename = "prompt", skip_serializing_if = "Option::is_none")]
    pub prompt: Option<String>,

    /// Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.
    #[serde(rename = "scopes", skip_serializing_if = "Option::is_none")]
    pub scopes: Option<String>,

    /// Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.
    #[serde(rename = "acr-values", skip_serializing_if = "Option::is_none")]
    pub acr_values: Option<String>,

    /// Use this as default realm
    #[serde(rename = "default", skip_serializing_if = "Option::is_none")]
    pub default: Option<models::PveBoolean>,

    /// Description.
    #[serde(rename = "comment", skip_serializing_if = "Option::is_none")]
    pub comment: Option<String>,

    /// Enables querying the userinfo endpoint for claims values.
    #[serde(rename = "query-userinfo", skip_serializing_if = "Option::is_none")]
    pub query_userinfo: Option<models::PveBoolean>,

    #[serde(rename = "type")]
    pub r#type: Type,


}

impl PveRealmOpenidConfig {
    pub fn new(issuer_url: String, client_id: String, r#type: Type) -> PveRealmOpenidConfig {
        PveRealmOpenidConfig {
            
            issuer_url,
            
            client_id,
            
            client_key: None,
            
            autocreate: None,
            
            username_claim: None,
            
            groups_claim: None,
            
            groups_autocreate: None,
            
            groups_overwrite: None,
            
            prompt: None,
            
            scopes: None,
            
            acr_values: None,
            
            default: None,
            
            comment: None,
            
            query_userinfo: None,
            
            r#type,
            
        }
    }
}

/// 
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
    #[serde(rename = "openid")]
    Openid,
}

impl Default for Type {
    fn default() -> Type {
        Self::Openid
    }
}