/*
* 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,
}
}
}