hanzo-client 8.5.156

Generated client for the Hanzo API — every service, one crate.
Documentation
/*
 * Hanzo Cloud API
 *
 * The Hanzo Cloud API as a customer calls it: every operation under /v1/ except the operator's admin product, relay routes, legacy spellings and capabilities still reached by flag. Tagged by product: the first path segment after /v1/.
 *
 * The version of the OpenAPI document: v1
 * 
 * Generated by: https://openapi-generator.tech
 */

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

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct IamPeriodApplication {
    #[serde(rename = "affiliationUrl", skip_serializing_if = "Option::is_none")]
    pub affiliation_url: Option<String>,
    #[serde(rename = "category", skip_serializing_if = "Option::is_none")]
    pub category: Option<String>,
    #[serde(rename = "cert", skip_serializing_if = "Option::is_none")]
    pub cert: Option<String>,
    #[serde(rename = "certObj", skip_serializing_if = "Option::is_none")]
    pub cert_obj: Option<Box<models::IamPeriodCert>>,
    #[serde(rename = "certPublicKey", skip_serializing_if = "Option::is_none")]
    pub cert_public_key: Option<String>,
    #[serde(rename = "clientCert", skip_serializing_if = "Option::is_none")]
    pub client_cert: Option<String>,
    /// ClientId is the OAuth2/OIDC client identifier and the GLOBAL key every confidential-client resolver authenticates against (store.GetApplicationByClientId, the mint gates, Basic auth). It MUST be globally unique across ALL owners — a collision would let one app shadow another at that key. This store persists each entity as a JSON document in a shared table, so there is no per-field column to carry a DB UNIQUE index; uniqueness is enforced at the write in applications.Create/Update (ensureClientIdUnique), exactly as the (owner,name) natural key is, and store.GetApplicationByClientId resolves admin-preferring as defense-in-depth.
    #[serde(rename = "clientId", skip_serializing_if = "Option::is_none")]
    pub client_id: Option<String>,
    #[serde(rename = "clientSecret", skip_serializing_if = "Option::is_none")]
    pub client_secret: Option<String>,
    #[serde(rename = "codeResendTimeout", skip_serializing_if = "Option::is_none")]
    pub code_resend_timeout: Option<i32>,
    #[serde(rename = "cookieExpireInHours", skip_serializing_if = "Option::is_none")]
    pub cookie_expire_in_hours: Option<i32>,
    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
    pub created_at: Option<String>,
    #[serde(rename = "createdTime", skip_serializing_if = "Option::is_none")]
    pub created_time: Option<String>,
    #[serde(rename = "customScopes", skip_serializing_if = "Option::is_none")]
    pub custom_scopes: Option<Vec<models::IamPeriodScopeDescription>>,
    #[serde(rename = "defaultGroup", skip_serializing_if = "Option::is_none")]
    pub default_group: Option<String>,
    #[serde(rename = "deleted", skip_serializing_if = "Option::is_none")]
    pub deleted: Option<bool>,
    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(rename = "disableSamlAttributes", skip_serializing_if = "Option::is_none")]
    pub disable_saml_attributes: Option<bool>,
    #[serde(rename = "disableSignin", skip_serializing_if = "Option::is_none")]
    pub disable_signin: Option<bool>,
    #[serde(rename = "displayName", skip_serializing_if = "Option::is_none")]
    pub display_name: Option<String>,
    #[serde(rename = "domain", skip_serializing_if = "Option::is_none")]
    pub domain: Option<String>,
    #[serde(rename = "enableAutoSignin", skip_serializing_if = "Option::is_none")]
    pub enable_auto_signin: Option<bool>,
    #[serde(rename = "enableCodeSignin", skip_serializing_if = "Option::is_none")]
    pub enable_code_signin: Option<bool>,
    #[serde(rename = "enableExclusiveSignin", skip_serializing_if = "Option::is_none")]
    pub enable_exclusive_signin: Option<bool>,
    #[serde(rename = "enableLinkWithEmail", skip_serializing_if = "Option::is_none")]
    pub enable_link_with_email: Option<bool>,
    #[serde(rename = "enablePassword", skip_serializing_if = "Option::is_none")]
    pub enable_password: Option<bool>,
    #[serde(rename = "enableSamlAssertionSignature", skip_serializing_if = "Option::is_none")]
    pub enable_saml_assertion_signature: Option<bool>,
    #[serde(rename = "enableSamlC14n10", skip_serializing_if = "Option::is_none")]
    pub enable_saml_c14n10: Option<bool>,
    #[serde(rename = "enableSamlCompress", skip_serializing_if = "Option::is_none")]
    pub enable_saml_compress: Option<bool>,
    #[serde(rename = "enableSamlPostBinding", skip_serializing_if = "Option::is_none")]
    pub enable_saml_post_binding: Option<bool>,
    #[serde(rename = "enableSignUp", skip_serializing_if = "Option::is_none")]
    pub enable_sign_up: Option<bool>,
    #[serde(rename = "enableSigninSession", skip_serializing_if = "Option::is_none")]
    pub enable_signin_session: Option<bool>,
    #[serde(rename = "enableWebAuthn", skip_serializing_if = "Option::is_none")]
    pub enable_web_authn: Option<bool>,
    #[serde(rename = "environment", skip_serializing_if = "Option::is_none")]
    pub environment: Option<String>,
    #[serde(rename = "expireInHours", skip_serializing_if = "Option::is_none")]
    pub expire_in_hours: Option<f64>,
    #[serde(rename = "failedSigninFrozenTime", skip_serializing_if = "Option::is_none")]
    pub failed_signin_frozen_time: Option<i32>,
    #[serde(rename = "failedSigninLimit", skip_serializing_if = "Option::is_none")]
    pub failed_signin_limit: Option<i32>,
    #[serde(rename = "favicon", skip_serializing_if = "Option::is_none")]
    pub favicon: Option<String>,
    #[serde(rename = "footerHtml", skip_serializing_if = "Option::is_none")]
    pub footer_html: Option<String>,
    #[serde(rename = "forcedRedirectOrigin", skip_serializing_if = "Option::is_none")]
    pub forced_redirect_origin: Option<String>,
    #[serde(rename = "forgetUrl", skip_serializing_if = "Option::is_none")]
    pub forget_url: Option<String>,
    #[serde(rename = "formBackgroundUrl", skip_serializing_if = "Option::is_none")]
    pub form_background_url: Option<String>,
    #[serde(rename = "formBackgroundUrlMobile", skip_serializing_if = "Option::is_none")]
    pub form_background_url_mobile: Option<String>,
    #[serde(rename = "formCss", skip_serializing_if = "Option::is_none")]
    pub form_css: Option<String>,
    #[serde(rename = "formCssMobile", skip_serializing_if = "Option::is_none")]
    pub form_css_mobile: Option<String>,
    #[serde(rename = "formOffset", skip_serializing_if = "Option::is_none")]
    pub form_offset: Option<i32>,
    #[serde(rename = "formSideHtml", skip_serializing_if = "Option::is_none")]
    pub form_side_html: Option<String>,
    #[serde(rename = "grantTypes", skip_serializing_if = "Option::is_none")]
    pub grant_types: Option<Vec<String>>,
    #[serde(rename = "headerHtml", skip_serializing_if = "Option::is_none")]
    pub header_html: Option<String>,
    #[serde(rename = "homepageUrl", skip_serializing_if = "Option::is_none")]
    pub homepage_url: Option<String>,
    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    #[serde(rename = "ipRestriction", skip_serializing_if = "Option::is_none")]
    pub ip_restriction: Option<String>,
    #[serde(rename = "ipWhitelist", skip_serializing_if = "Option::is_none")]
    pub ip_whitelist: Option<String>,
    #[serde(rename = "isShared", skip_serializing_if = "Option::is_none")]
    pub is_shared: Option<bool>,
    #[serde(rename = "logo", skip_serializing_if = "Option::is_none")]
    pub logo: Option<String>,
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(rename = "order", skip_serializing_if = "Option::is_none")]
    pub order: Option<i32>,
    #[serde(rename = "orgChoiceMode", skip_serializing_if = "Option::is_none")]
    pub org_choice_mode: Option<String>,
    #[serde(rename = "organization", skip_serializing_if = "Option::is_none")]
    pub organization: Option<String>,
    #[serde(rename = "organizationObj", skip_serializing_if = "Option::is_none")]
    pub organization_obj: Option<Box<models::IamPeriodOrganization>>,
    #[serde(rename = "otherDomains", skip_serializing_if = "Option::is_none")]
    pub other_domains: Option<Vec<String>>,
    #[serde(rename = "owner", skip_serializing_if = "Option::is_none")]
    pub owner: Option<String>,
    #[serde(rename = "project", skip_serializing_if = "Option::is_none")]
    pub project: Option<String>,
    #[serde(rename = "providers", skip_serializing_if = "Option::is_none")]
    pub providers: Option<Vec<models::IamPeriodProviderItem>>,
    #[serde(rename = "redirectUris", skip_serializing_if = "Option::is_none")]
    pub redirect_uris: Option<Vec<String>>,
    #[serde(rename = "refreshExpireInHours", skip_serializing_if = "Option::is_none")]
    pub refresh_expire_in_hours: Option<f64>,
    #[serde(rename = "samlAttributes", skip_serializing_if = "Option::is_none")]
    pub saml_attributes: Option<Vec<models::IamPeriodSamlItem>>,
    #[serde(rename = "samlHashAlgorithm", skip_serializing_if = "Option::is_none")]
    pub saml_hash_algorithm: Option<String>,
    #[serde(rename = "samlReplyUrl", skip_serializing_if = "Option::is_none")]
    pub saml_reply_url: Option<String>,
    #[serde(rename = "scopes", skip_serializing_if = "Option::is_none")]
    pub scopes: Option<Vec<models::IamPeriodScopeItem>>,
    #[serde(rename = "signinHtml", skip_serializing_if = "Option::is_none")]
    pub signin_html: Option<String>,
    #[serde(rename = "signinItems", skip_serializing_if = "Option::is_none")]
    pub signin_items: Option<Vec<models::IamPeriodSigninItem>>,
    #[serde(rename = "signinMethods", skip_serializing_if = "Option::is_none")]
    pub signin_methods: Option<Vec<models::IamPeriodSigninMethod>>,
    #[serde(rename = "signinUrl", skip_serializing_if = "Option::is_none")]
    pub signin_url: Option<String>,
    #[serde(rename = "signupHtml", skip_serializing_if = "Option::is_none")]
    pub signup_html: Option<String>,
    #[serde(rename = "signupItems", skip_serializing_if = "Option::is_none")]
    pub signup_items: Option<Vec<models::IamPeriodSignupItem>>,
    #[serde(rename = "signupUrl", skip_serializing_if = "Option::is_none")]
    pub signup_url: Option<String>,
    #[serde(rename = "sslCert", skip_serializing_if = "Option::is_none")]
    pub ssl_cert: Option<String>,
    #[serde(rename = "sslMode", skip_serializing_if = "Option::is_none")]
    pub ssl_mode: Option<String>,
    #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
    pub tags: Option<Vec<String>>,
    #[serde(rename = "termsOfUse", skip_serializing_if = "Option::is_none")]
    pub terms_of_use: Option<String>,
    #[serde(rename = "themeData", skip_serializing_if = "Option::is_none")]
    pub theme_data: Option<Box<models::IamPeriodThemeData>>,
    #[serde(rename = "title", skip_serializing_if = "Option::is_none")]
    pub title: Option<String>,
    #[serde(rename = "tokenAttributes", skip_serializing_if = "Option::is_none")]
    pub token_attributes: Option<Vec<models::IamPeriodJwtItem>>,
    #[serde(rename = "tokenFields", skip_serializing_if = "Option::is_none")]
    pub token_fields: Option<Vec<String>>,
    #[serde(rename = "tokenFormat", skip_serializing_if = "Option::is_none")]
    pub token_format: Option<String>,
    #[serde(rename = "tokenSigningMethod", skip_serializing_if = "Option::is_none")]
    pub token_signing_method: Option<String>,
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub r#type: Option<String>,
    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
    pub updated_at: Option<String>,
    #[serde(rename = "upstreamHost", skip_serializing_if = "Option::is_none")]
    pub upstream_host: Option<String>,
    #[serde(rename = "useEmailAsSamlNameId", skip_serializing_if = "Option::is_none")]
    pub use_email_as_saml_name_id: Option<bool>,
}

impl IamPeriodApplication {
    pub fn new() -> IamPeriodApplication {
        IamPeriodApplication {
            affiliation_url: None,
            category: None,
            cert: None,
            cert_obj: None,
            cert_public_key: None,
            client_cert: None,
            client_id: None,
            client_secret: None,
            code_resend_timeout: None,
            cookie_expire_in_hours: None,
            created_at: None,
            created_time: None,
            custom_scopes: None,
            default_group: None,
            deleted: None,
            description: None,
            disable_saml_attributes: None,
            disable_signin: None,
            display_name: None,
            domain: None,
            enable_auto_signin: None,
            enable_code_signin: None,
            enable_exclusive_signin: None,
            enable_link_with_email: None,
            enable_password: None,
            enable_saml_assertion_signature: None,
            enable_saml_c14n10: None,
            enable_saml_compress: None,
            enable_saml_post_binding: None,
            enable_sign_up: None,
            enable_signin_session: None,
            enable_web_authn: None,
            environment: None,
            expire_in_hours: None,
            failed_signin_frozen_time: None,
            failed_signin_limit: None,
            favicon: None,
            footer_html: None,
            forced_redirect_origin: None,
            forget_url: None,
            form_background_url: None,
            form_background_url_mobile: None,
            form_css: None,
            form_css_mobile: None,
            form_offset: None,
            form_side_html: None,
            grant_types: None,
            header_html: None,
            homepage_url: None,
            id: None,
            ip_restriction: None,
            ip_whitelist: None,
            is_shared: None,
            logo: None,
            name: None,
            order: None,
            org_choice_mode: None,
            organization: None,
            organization_obj: None,
            other_domains: None,
            owner: None,
            project: None,
            providers: None,
            redirect_uris: None,
            refresh_expire_in_hours: None,
            saml_attributes: None,
            saml_hash_algorithm: None,
            saml_reply_url: None,
            scopes: None,
            signin_html: None,
            signin_items: None,
            signin_methods: None,
            signin_url: None,
            signup_html: None,
            signup_items: None,
            signup_url: None,
            ssl_cert: None,
            ssl_mode: None,
            tags: None,
            terms_of_use: None,
            theme_data: None,
            title: None,
            token_attributes: None,
            token_fields: None,
            token_format: None,
            token_signing_method: None,
            r#type: None,
            updated_at: None,
            upstream_host: None,
            use_email_as_saml_name_id: None,
        }
    }
}