/*
* 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 IamPeriodOrganization {
#[serde(rename = "accountItems", skip_serializing_if = "Option::is_none")]
pub account_items: Option<Vec<models::IamPeriodAccountItem>>,
#[serde(rename = "accountMenu", skip_serializing_if = "Option::is_none")]
pub account_menu: Option<String>,
/// How the organization appears across Hanzo — the square mark beside its name — as an image or as one emoji, never both. It is the pair a person carries (User.Avatar) under the same names, resolved the same way, so a screen draws a subject without asking which kind of subject it has. Both halves live on the row: a mark that appears everywhere cannot be kept on one device. Written through schema.MarkOf; Logo and LogoDark above are a different thing, the wordmark a login screen draws.
#[serde(rename = "avatar", skip_serializing_if = "Option::is_none")]
pub avatar: Option<String>,
#[serde(rename = "balanceCredit", skip_serializing_if = "Option::is_none")]
pub balance_credit: Option<f64>,
#[serde(rename = "balanceCurrency", skip_serializing_if = "Option::is_none")]
pub balance_currency: Option<String>,
#[serde(rename = "countryCodes", skip_serializing_if = "Option::is_none")]
pub country_codes: Option<Vec<String>>,
#[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 = "dcrPolicy", skip_serializing_if = "Option::is_none")]
pub dcr_policy: Option<String>,
#[serde(rename = "defaultApplication", skip_serializing_if = "Option::is_none")]
pub default_application: Option<String>,
#[serde(rename = "defaultAvatar", skip_serializing_if = "Option::is_none")]
pub default_avatar: Option<String>,
#[serde(rename = "defaultPassword", skip_serializing_if = "Option::is_none")]
pub default_password: Option<String>,
#[serde(rename = "deleted", skip_serializing_if = "Option::is_none")]
pub deleted: 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 = "emoji", skip_serializing_if = "Option::is_none")]
pub emoji: Option<String>,
#[serde(rename = "enableSoftDeletion", skip_serializing_if = "Option::is_none")]
pub enable_soft_deletion: Option<bool>,
#[serde(rename = "enableTour", skip_serializing_if = "Option::is_none")]
pub enable_tour: Option<bool>,
#[serde(rename = "failedSigninFrozenTime", skip_serializing_if = "Option::is_none")]
pub failed_signin_frozen_time: Option<i32>,
/// Per-organization signin throttle. Zero means \"inherit the application default\"; a non-zero value overrides it. Safe bounds are clamped by the resource service before persistence.
#[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>,
/// Founder is the stable storage id of the identity that provisioned this org (self-service onboarding). It is the resume token that makes provisioning converge on a backend where each write autocommits independently (no transaction rollback): after a partial failure that created the org but did not move the founder in, a retry recognises the org as the founder's own and completes it, instead of refusing it as \"already taken\". It also fences the org to ONE tenant — a different identity can never complete or join it.
#[serde(rename = "founder", skip_serializing_if = "Option::is_none")]
pub founder: Option<String>,
#[serde(rename = "hasPrivilegeConsent", skip_serializing_if = "Option::is_none")]
pub has_privilege_consent: Option<bool>,
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "initScore", skip_serializing_if = "Option::is_none")]
pub init_score: Option<i32>,
#[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 = "isPersonal", skip_serializing_if = "Option::is_none")]
pub is_personal: Option<bool>,
#[serde(rename = "isProfilePublic", skip_serializing_if = "Option::is_none")]
pub is_profile_public: Option<bool>,
#[serde(rename = "kerberosKdcHost", skip_serializing_if = "Option::is_none")]
pub kerberos_kdc_host: Option<String>,
#[serde(rename = "kerberosKeytab", skip_serializing_if = "Option::is_none")]
pub kerberos_keytab: Option<String>,
#[serde(rename = "kerberosRealm", skip_serializing_if = "Option::is_none")]
pub kerberos_realm: Option<String>,
#[serde(rename = "kerberosServiceName", skip_serializing_if = "Option::is_none")]
pub kerberos_service_name: Option<String>,
#[serde(rename = "languages", skip_serializing_if = "Option::is_none")]
pub languages: Option<Vec<String>>,
#[serde(rename = "ldapAttributes", skip_serializing_if = "Option::is_none")]
pub ldap_attributes: Option<Vec<String>>,
#[serde(rename = "logo", skip_serializing_if = "Option::is_none")]
pub logo: Option<String>,
#[serde(rename = "logoDark", skip_serializing_if = "Option::is_none")]
pub logo_dark: Option<String>,
#[serde(rename = "masterPassword", skip_serializing_if = "Option::is_none")]
pub master_password: Option<String>,
#[serde(rename = "masterVerificationCode", skip_serializing_if = "Option::is_none")]
pub master_verification_code: Option<String>,
#[serde(rename = "mfaItems", skip_serializing_if = "Option::is_none")]
pub mfa_items: Option<Vec<models::IamPeriodMfaItem>>,
#[serde(rename = "mfaRememberInHours", skip_serializing_if = "Option::is_none")]
pub mfa_remember_in_hours: Option<i32>,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "navItems", skip_serializing_if = "Option::is_none")]
pub nav_items: Option<Vec<String>>,
/// Balance fields are read-only mirrors; authoritative balances live in Commerce (billing.hanzo.ai). Carried for field-complete v1 parity.
#[serde(rename = "orgBalance", skip_serializing_if = "Option::is_none")]
pub org_balance: Option<f64>,
#[serde(rename = "owner", skip_serializing_if = "Option::is_none")]
pub owner: Option<String>,
#[serde(rename = "passwordExpireDays", skip_serializing_if = "Option::is_none")]
pub password_expire_days: Option<i32>,
#[serde(rename = "passwordObfuscatorKey", skip_serializing_if = "Option::is_none")]
pub password_obfuscator_key: Option<String>,
#[serde(rename = "passwordObfuscatorType", skip_serializing_if = "Option::is_none")]
pub password_obfuscator_type: Option<String>,
#[serde(rename = "passwordOptions", skip_serializing_if = "Option::is_none")]
pub password_options: Option<Vec<String>>,
#[serde(rename = "passwordSalt", skip_serializing_if = "Option::is_none")]
pub password_salt: Option<String>,
#[serde(rename = "passwordType", skip_serializing_if = "Option::is_none")]
pub password_type: Option<String>,
#[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(rename = "themeData", skip_serializing_if = "Option::is_none")]
pub theme_data: Option<Box<models::IamPeriodThemeData>>,
#[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
#[serde(rename = "useEmailAsUsername", skip_serializing_if = "Option::is_none")]
pub use_email_as_username: Option<bool>,
#[serde(rename = "usePermanentAvatar", skip_serializing_if = "Option::is_none")]
pub use_permanent_avatar: Option<bool>,
#[serde(rename = "userBalance", skip_serializing_if = "Option::is_none")]
pub user_balance: Option<f64>,
#[serde(rename = "userNavItems", skip_serializing_if = "Option::is_none")]
pub user_nav_items: Option<Vec<String>>,
#[serde(rename = "userTypes", skip_serializing_if = "Option::is_none")]
pub user_types: Option<Vec<String>>,
#[serde(rename = "websiteUrl", skip_serializing_if = "Option::is_none")]
pub website_url: Option<String>,
#[serde(rename = "widgetItems", skip_serializing_if = "Option::is_none")]
pub widget_items: Option<Vec<String>>,
}
impl IamPeriodOrganization {
pub fn new() -> IamPeriodOrganization {
IamPeriodOrganization {
account_items: None,
account_menu: None,
avatar: None,
balance_credit: None,
balance_currency: None,
country_codes: None,
created_at: None,
created_time: None,
dcr_policy: None,
default_application: None,
default_avatar: None,
default_password: None,
deleted: None,
disable_signin: None,
display_name: None,
emoji: None,
enable_soft_deletion: None,
enable_tour: None,
failed_signin_frozen_time: None,
failed_signin_limit: None,
favicon: None,
founder: None,
has_privilege_consent: None,
id: None,
init_score: None,
ip_restriction: None,
ip_whitelist: None,
is_personal: None,
is_profile_public: None,
kerberos_kdc_host: None,
kerberos_keytab: None,
kerberos_realm: None,
kerberos_service_name: None,
languages: None,
ldap_attributes: None,
logo: None,
logo_dark: None,
master_password: None,
master_verification_code: None,
mfa_items: None,
mfa_remember_in_hours: None,
name: None,
nav_items: None,
org_balance: None,
owner: None,
password_expire_days: None,
password_obfuscator_key: None,
password_obfuscator_type: None,
password_options: None,
password_salt: None,
password_type: None,
tags: None,
theme_data: None,
updated_at: None,
use_email_as_username: None,
use_permanent_avatar: None,
user_balance: None,
user_nav_items: None,
user_types: None,
website_url: None,
widget_items: None,
}
}
}