Upstream commit: af37a234981722493b74623a983581691d2b70b6 Enterprise-only files removed or emptied: 63 Enterprise-only snippets removed: 118 in 50 files Dangling module declarations removed: 5 Edits turning enterprise off: 25 Third-party code: 14 files, 0 not in THIRD-PARTY.md Renamed identifiers: 62 in 18 files Verification: clean The same Enterprise footprint as v0.16.23. The build check fails only on tests/src/directory/issuer.rs, unchanged since v0.16.23: it calls a helper from upstream's Enterprise-only OIDC test, and tests issuer-based directory routing, an Enterprise feature. main has never carried it.
6323 lines
190 KiB
Rust
6323 lines
190 KiB
Rust
/*
|
|
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <[email protected]>
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
|
|
*/
|
|
|
|
// This file is auto-generated. Do not edit directly.
|
|
|
|
use crate::schema::prelude::*;
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum Account {
|
|
User(UserAccount),
|
|
Group(GroupAccount),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct AccountPassword {
|
|
#[serde(rename = "secret")]
|
|
pub secret: Option<String>,
|
|
#[serde(rename = "currentSecret")]
|
|
pub current_secret: Option<String>,
|
|
#[serde(rename = "otpAuth")]
|
|
pub otp_auth: OtpAuth,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct AccountSettings {
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "locale")]
|
|
pub locale: Locale,
|
|
#[serde(rename = "timeZone")]
|
|
pub time_zone: Option<TimeZone>,
|
|
#[serde(rename = "encryptionAtRest")]
|
|
pub encryption_at_rest: EncryptionAtRest,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct AcmeProvider {
|
|
#[serde(rename = "challengeType")]
|
|
pub challenge_type: AcmeChallengeType,
|
|
#[serde(rename = "contact")]
|
|
pub contact: Map<String>,
|
|
#[serde(rename = "directory")]
|
|
pub directory: String,
|
|
#[serde(rename = "accountKey")]
|
|
pub account_key: String,
|
|
#[serde(rename = "accountUri")]
|
|
pub account_uri: String,
|
|
#[serde(rename = "renewBefore")]
|
|
pub renew_before: AcmeRenewBefore,
|
|
#[serde(rename = "maxRetries")]
|
|
pub max_retries: i64,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "preferredChain")]
|
|
pub preferred_chain: Option<String>,
|
|
#[serde(rename = "reuseKey")]
|
|
pub reuse_key: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum Action {
|
|
ReloadSettings,
|
|
ReloadTlsCertificates,
|
|
ReloadLookupStores,
|
|
ReloadBlockedIps,
|
|
UpdateApps,
|
|
TroubleshootDmarc(DmarcTroubleshoot),
|
|
ClassifySpam(SpamClassify),
|
|
InvalidateCaches,
|
|
InvalidateNegativeCaches,
|
|
PauseMtaQueue,
|
|
ResumeMtaQueue,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct AddressBook {
|
|
#[serde(rename = "defaultDisplayName")]
|
|
pub default_display_name: Option<String>,
|
|
#[serde(rename = "defaultHrefName")]
|
|
pub default_href_name: Option<String>,
|
|
#[serde(rename = "maxVCardSize")]
|
|
pub max_v_card_size: u64,
|
|
#[serde(rename = "maxAddressBooks")]
|
|
pub max_address_books: Option<u64>,
|
|
#[serde(rename = "maxContacts")]
|
|
pub max_contacts: Option<u64>,
|
|
#[serde(rename = "vCardVersion")]
|
|
pub v_card_version: VCardVersion,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct AiModel {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "allowInvalidCerts")]
|
|
pub allow_invalid_certs: bool,
|
|
#[serde(rename = "temperature")]
|
|
pub temperature: Float,
|
|
#[serde(rename = "model")]
|
|
pub model: String,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "modelType")]
|
|
pub model_type: AiModelType,
|
|
#[serde(rename = "url")]
|
|
pub url: String,
|
|
#[serde(rename = "httpAuth")]
|
|
pub http_auth: HttpAuth,
|
|
#[serde(rename = "httpHeaders")]
|
|
pub http_headers: VecMap<String, String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Alert {
|
|
#[serde(rename = "condition")]
|
|
pub condition: Expression,
|
|
#[serde(rename = "emailAlert")]
|
|
pub email_alert: AlertEmail,
|
|
#[serde(rename = "eventAlert")]
|
|
pub event_alert: AlertEvent,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum AlertEmail {
|
|
Disabled,
|
|
Enabled(AlertEmailProperties),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct AlertEmailProperties {
|
|
#[serde(rename = "body")]
|
|
pub body: String,
|
|
#[serde(rename = "fromAddress")]
|
|
pub from_address: String,
|
|
#[serde(rename = "fromName")]
|
|
pub from_name: Option<String>,
|
|
#[serde(rename = "subject")]
|
|
pub subject: String,
|
|
#[serde(rename = "to")]
|
|
pub to: Map<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum AlertEvent {
|
|
Disabled,
|
|
Enabled(AlertEventProperties),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct AlertEventProperties {
|
|
#[serde(rename = "eventMessage")]
|
|
pub event_message: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct AllowedIp {
|
|
#[serde(rename = "address")]
|
|
pub address: IpAddrOrMask,
|
|
#[serde(rename = "reason")]
|
|
pub reason: Option<String>,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: Option<UTCDateTime>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ApiKey {
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "secret")]
|
|
pub secret: String,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: Option<UTCDateTime>,
|
|
#[serde(rename = "permissions")]
|
|
pub permissions: CredentialPermissions,
|
|
#[serde(rename = "allowedIps")]
|
|
pub allowed_ips: Map<IpAddrOrMask>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct AppPassword {
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "secret")]
|
|
pub secret: String,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: Option<UTCDateTime>,
|
|
#[serde(rename = "permissions")]
|
|
pub permissions: CredentialPermissions,
|
|
#[serde(rename = "allowedIps")]
|
|
pub allowed_ips: Map<IpAddrOrMask>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Application {
|
|
#[serde(rename = "enabled")]
|
|
pub enabled: bool,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "resourceUrl")]
|
|
pub resource_url: String,
|
|
#[serde(rename = "urlPrefix")]
|
|
pub url_prefix: Map<String>,
|
|
#[serde(rename = "autoUpdateFrequency")]
|
|
pub auto_update_frequency: Duration,
|
|
#[serde(rename = "unpackDirectory")]
|
|
pub unpack_directory: Option<String>,
|
|
#[serde(rename = "oauthClientId")]
|
|
pub oauth_client_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ArchivedCalendarEvent {
|
|
#[serde(rename = "title")]
|
|
pub title: String,
|
|
#[serde(rename = "startTime")]
|
|
pub start_time: Option<UTCDateTime>,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "archivedAt")]
|
|
pub archived_at: UTCDateTime,
|
|
#[serde(rename = "archivedUntil")]
|
|
pub archived_until: UTCDateTime,
|
|
#[serde(rename = "blobId")]
|
|
pub blob_id: BlobId,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ArchivedContactCard {
|
|
#[serde(rename = "name")]
|
|
pub name: Option<String>,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "archivedAt")]
|
|
pub archived_at: UTCDateTime,
|
|
#[serde(rename = "archivedUntil")]
|
|
pub archived_until: UTCDateTime,
|
|
#[serde(rename = "blobId")]
|
|
pub blob_id: BlobId,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ArchivedEmail {
|
|
#[serde(rename = "from")]
|
|
pub from: String,
|
|
#[serde(rename = "subject")]
|
|
pub subject: String,
|
|
#[serde(rename = "receivedAt")]
|
|
pub received_at: UTCDateTime,
|
|
#[serde(rename = "size")]
|
|
pub size: u64,
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "archivedAt")]
|
|
pub archived_at: UTCDateTime,
|
|
#[serde(rename = "archivedUntil")]
|
|
pub archived_until: UTCDateTime,
|
|
#[serde(rename = "blobId")]
|
|
pub blob_id: BlobId,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ArchivedFileNode {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "archivedAt")]
|
|
pub archived_at: UTCDateTime,
|
|
#[serde(rename = "archivedUntil")]
|
|
pub archived_until: UTCDateTime,
|
|
#[serde(rename = "blobId")]
|
|
pub blob_id: BlobId,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum ArchivedItem {
|
|
Email(ArchivedEmail),
|
|
FileNode(ArchivedFileNode),
|
|
CalendarEvent(ArchivedCalendarEvent),
|
|
ContactCard(ArchivedContactCard),
|
|
SieveScript(ArchivedSieveScript),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ArchivedSieveScript {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "content")]
|
|
pub content: String,
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "archivedAt")]
|
|
pub archived_at: UTCDateTime,
|
|
#[serde(rename = "archivedUntil")]
|
|
pub archived_until: UTCDateTime,
|
|
#[serde(rename = "blobId")]
|
|
pub blob_id: BlobId,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ArfExternalReport {
|
|
#[serde(rename = "report")]
|
|
pub report: ArfFeedbackReport,
|
|
#[serde(rename = "from")]
|
|
pub from: String,
|
|
#[serde(rename = "subject")]
|
|
pub subject: String,
|
|
#[serde(rename = "to")]
|
|
pub to: Map<String>,
|
|
#[serde(rename = "receivedAt")]
|
|
pub received_at: UTCDateTime,
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: UTCDateTime,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ArfFeedbackReport {
|
|
#[serde(rename = "feedbackType")]
|
|
pub feedback_type: ArfFeedbackType,
|
|
#[serde(rename = "arrivalDate")]
|
|
pub arrival_date: Option<UTCDateTime>,
|
|
#[serde(rename = "authenticationResults")]
|
|
pub authentication_results: Map<String>,
|
|
#[serde(rename = "incidents")]
|
|
pub incidents: u64,
|
|
#[serde(rename = "originalEnvelopeId")]
|
|
pub original_envelope_id: Option<String>,
|
|
#[serde(rename = "originalMailFrom")]
|
|
pub original_mail_from: Option<String>,
|
|
#[serde(rename = "originalRcptTo")]
|
|
pub original_rcpt_to: Option<String>,
|
|
#[serde(rename = "reportedDomains")]
|
|
pub reported_domains: Map<String>,
|
|
#[serde(rename = "reportedUris")]
|
|
pub reported_uris: Map<String>,
|
|
#[serde(rename = "reportingMta")]
|
|
pub reporting_mta: Option<String>,
|
|
#[serde(rename = "sourceIp")]
|
|
pub source_ip: Option<IpAddr>,
|
|
#[serde(rename = "sourcePort")]
|
|
pub source_port: Option<u64>,
|
|
#[serde(rename = "userAgent")]
|
|
pub user_agent: Option<String>,
|
|
#[serde(rename = "version")]
|
|
pub version: u64,
|
|
#[serde(rename = "authFailure")]
|
|
pub auth_failure: ArfAuthFailureType,
|
|
#[serde(rename = "deliveryResult")]
|
|
pub delivery_result: ArfDeliveryResult,
|
|
#[serde(rename = "dkimAdspDns")]
|
|
pub dkim_adsp_dns: Option<String>,
|
|
#[serde(rename = "dkimCanonicalizedBody")]
|
|
pub dkim_canonicalized_body: Option<String>,
|
|
#[serde(rename = "dkimCanonicalizedHeader")]
|
|
pub dkim_canonicalized_header: Option<String>,
|
|
#[serde(rename = "dkimDomain")]
|
|
pub dkim_domain: Option<String>,
|
|
#[serde(rename = "dkimIdentity")]
|
|
pub dkim_identity: Option<String>,
|
|
#[serde(rename = "dkimSelector")]
|
|
pub dkim_selector: Option<String>,
|
|
#[serde(rename = "dkimSelectorDns")]
|
|
pub dkim_selector_dns: Option<String>,
|
|
#[serde(rename = "spfDns")]
|
|
pub spf_dns: Option<String>,
|
|
#[serde(rename = "identityAlignment")]
|
|
pub identity_alignment: ArfIdentityAlignment,
|
|
#[serde(rename = "message")]
|
|
pub message: Option<String>,
|
|
#[serde(rename = "headers")]
|
|
pub headers: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum Asn {
|
|
Disabled,
|
|
Resource(AsnResource),
|
|
Dns(AsnDns),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct AsnDns {
|
|
#[serde(rename = "indexAsn")]
|
|
pub index_asn: u64,
|
|
#[serde(rename = "indexAsnName")]
|
|
pub index_asn_name: Option<u64>,
|
|
#[serde(rename = "indexCountry")]
|
|
pub index_country: Option<u64>,
|
|
#[serde(rename = "separator")]
|
|
pub separator: String,
|
|
#[serde(rename = "zoneIpV4")]
|
|
pub zone_ip_v4: String,
|
|
#[serde(rename = "zoneIpV6")]
|
|
pub zone_ip_v6: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct AsnResource {
|
|
#[serde(rename = "expires")]
|
|
pub expires: Duration,
|
|
#[serde(rename = "maxSize")]
|
|
pub max_size: u64,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "asnUrls")]
|
|
pub asn_urls: Map<String>,
|
|
#[serde(rename = "geoUrls")]
|
|
pub geo_urls: Map<String>,
|
|
#[serde(rename = "httpAuth")]
|
|
pub http_auth: HttpAuth,
|
|
#[serde(rename = "httpHeaders")]
|
|
pub http_headers: VecMap<String, String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Authentication {
|
|
#[serde(rename = "directoryId")]
|
|
pub directory_id: Option<Id>,
|
|
#[serde(rename = "defaultUserRoleIds")]
|
|
pub default_user_role_ids: Map<Id>,
|
|
#[serde(rename = "defaultGroupRoleIds")]
|
|
pub default_group_role_ids: Map<Id>,
|
|
#[serde(rename = "defaultTenantRoleIds")]
|
|
pub default_tenant_role_ids: Map<Id>,
|
|
#[serde(rename = "defaultAdminRoleIds")]
|
|
pub default_admin_role_ids: Map<Id>,
|
|
#[serde(rename = "passwordHashAlgorithm")]
|
|
pub password_hash_algorithm: PasswordHashAlgorithm,
|
|
#[serde(rename = "passwordMinLength")]
|
|
pub password_min_length: u64,
|
|
#[serde(rename = "passwordMaxLength")]
|
|
pub password_max_length: u64,
|
|
#[serde(rename = "passwordMinStrength")]
|
|
pub password_min_strength: PasswordStrength,
|
|
#[serde(rename = "passwordDefaultExpiry")]
|
|
pub password_default_expiry: Option<Duration>,
|
|
#[serde(rename = "maxAppPasswords")]
|
|
pub max_app_passwords: Option<u64>,
|
|
#[serde(rename = "maxApiKeys")]
|
|
pub max_api_keys: Option<u64>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct AzureStore {
|
|
#[serde(rename = "storageAccount")]
|
|
pub storage_account: String,
|
|
#[serde(rename = "container")]
|
|
pub container: String,
|
|
#[serde(rename = "accessKey")]
|
|
pub access_key: SecretKeyOptional,
|
|
#[serde(rename = "sasToken")]
|
|
pub sas_token: SecretKeyOptional,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "maxRetries")]
|
|
pub max_retries: u64,
|
|
#[serde(rename = "keyPrefix")]
|
|
pub key_prefix: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum BlobStore {
|
|
Default,
|
|
Sharded(ShardedBlobStore),
|
|
S3(S3Store),
|
|
Azure(AzureStore),
|
|
FileSystem(FileSystemStore),
|
|
FoundationDb(FoundationDbStore),
|
|
PostgreSql(PostgreSqlStore),
|
|
MySql(MySqlStore),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum BlobStoreBase {
|
|
S3(S3Store),
|
|
Azure(AzureStore),
|
|
FileSystem(FileSystemStore),
|
|
FoundationDb(FoundationDbStore),
|
|
PostgreSql(PostgreSqlStore),
|
|
MySql(MySqlStore),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct BlockedIp {
|
|
#[serde(rename = "address")]
|
|
pub address: IpAddrOrMask,
|
|
#[serde(rename = "reason")]
|
|
pub reason: BlockReason,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: Option<UTCDateTime>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Bootstrap {
|
|
#[serde(rename = "serverHostname")]
|
|
pub server_hostname: String,
|
|
#[serde(rename = "defaultDomain")]
|
|
pub default_domain: String,
|
|
#[serde(rename = "requestTlsCertificate")]
|
|
pub request_tls_certificate: bool,
|
|
#[serde(rename = "generateDkimKeys")]
|
|
pub generate_dkim_keys: bool,
|
|
#[serde(rename = "dataStore")]
|
|
pub data_store: DataStore,
|
|
#[serde(rename = "blobStore")]
|
|
pub blob_store: BlobStore,
|
|
#[serde(rename = "searchStore")]
|
|
pub search_store: SearchStore,
|
|
#[serde(rename = "inMemoryStore")]
|
|
pub in_memory_store: InMemoryStore,
|
|
#[serde(rename = "directory")]
|
|
pub directory: DirectoryBootstrap,
|
|
#[serde(rename = "tracer")]
|
|
pub tracer: Tracer,
|
|
#[serde(rename = "dnsServer")]
|
|
pub dns_server: DnsServerBootstrap,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Cache {
|
|
#[serde(rename = "accessTokens")]
|
|
pub access_tokens: u64,
|
|
#[serde(rename = "contacts")]
|
|
pub contacts: u64,
|
|
#[serde(rename = "dnsIpv4")]
|
|
pub dns_ipv4: u64,
|
|
#[serde(rename = "dnsIpv6")]
|
|
pub dns_ipv6: u64,
|
|
#[serde(rename = "dnsMtaSts")]
|
|
pub dns_mta_sts: u64,
|
|
#[serde(rename = "dnsMx")]
|
|
pub dns_mx: u64,
|
|
#[serde(rename = "dnsPtr")]
|
|
pub dns_ptr: u64,
|
|
#[serde(rename = "dnsRbl")]
|
|
pub dns_rbl: u64,
|
|
#[serde(rename = "dnsTlsa")]
|
|
pub dns_tlsa: u64,
|
|
#[serde(rename = "dnsTxt")]
|
|
pub dns_txt: u64,
|
|
#[serde(rename = "events")]
|
|
pub events: u64,
|
|
#[serde(rename = "scheduling")]
|
|
pub scheduling: u64,
|
|
#[serde(rename = "files")]
|
|
pub files: u64,
|
|
#[serde(rename = "httpAuth")]
|
|
pub http_auth: u64,
|
|
#[serde(rename = "messages")]
|
|
pub messages: u64,
|
|
#[serde(rename = "domains")]
|
|
pub domains: u64,
|
|
#[serde(rename = "domainNames")]
|
|
pub domain_names: u64,
|
|
#[serde(rename = "domainNamesNegative")]
|
|
pub domain_names_negative: u64,
|
|
#[serde(rename = "emailAddresses")]
|
|
pub email_addresses: u64,
|
|
#[serde(rename = "emailAddressesNegative")]
|
|
pub email_addresses_negative: u64,
|
|
#[serde(rename = "accounts")]
|
|
pub accounts: u64,
|
|
#[serde(rename = "roles")]
|
|
pub roles: u64,
|
|
#[serde(rename = "tenants")]
|
|
pub tenants: u64,
|
|
#[serde(rename = "mailingLists")]
|
|
pub mailing_lists: u64,
|
|
#[serde(rename = "dkimSignatures")]
|
|
pub dkim_signatures: u64,
|
|
#[serde(rename = "negativeTtl")]
|
|
pub negative_ttl: Duration,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Calendar {
|
|
#[serde(rename = "defaultDisplayName")]
|
|
pub default_display_name: Option<String>,
|
|
#[serde(rename = "defaultHrefName")]
|
|
pub default_href_name: Option<String>,
|
|
#[serde(rename = "maxAttendees")]
|
|
pub max_attendees: u64,
|
|
#[serde(rename = "maxRecurrenceExpansions")]
|
|
pub max_recurrence_expansions: u64,
|
|
#[serde(rename = "maxICalendarSize")]
|
|
pub max_i_calendar_size: u64,
|
|
#[serde(rename = "maxCalendars")]
|
|
pub max_calendars: Option<u64>,
|
|
#[serde(rename = "maxEvents")]
|
|
pub max_events: Option<u64>,
|
|
#[serde(rename = "maxParticipantIdentities")]
|
|
pub max_participant_identities: Option<u64>,
|
|
#[serde(rename = "maxEventNotifications")]
|
|
pub max_event_notifications: Option<u64>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct CalendarAlarm {
|
|
#[serde(rename = "allowExternalRcpts")]
|
|
pub allow_external_rcpts: bool,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "fromEmail")]
|
|
pub from_email: Option<String>,
|
|
#[serde(rename = "fromName")]
|
|
pub from_name: String,
|
|
#[serde(rename = "minTriggerInterval")]
|
|
pub min_trigger_interval: Duration,
|
|
#[serde(rename = "template")]
|
|
pub template: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct CalendarScheduling {
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "httpRsvpEnable")]
|
|
pub http_rsvp_enable: bool,
|
|
#[serde(rename = "httpRsvpLinkExpiry")]
|
|
pub http_rsvp_link_expiry: Duration,
|
|
#[serde(rename = "httpRsvpUrl")]
|
|
pub http_rsvp_url: Option<String>,
|
|
#[serde(rename = "autoAddInvitations")]
|
|
pub auto_add_invitations: bool,
|
|
#[serde(rename = "itipMaxSize")]
|
|
pub itip_max_size: u64,
|
|
#[serde(rename = "maxRecipients")]
|
|
pub max_recipients: u64,
|
|
#[serde(rename = "emailTemplate")]
|
|
pub email_template: Option<String>,
|
|
#[serde(rename = "httpRsvpTemplate")]
|
|
pub http_rsvp_template: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Certificate {
|
|
#[serde(rename = "certificate")]
|
|
pub certificate: PublicText,
|
|
#[serde(rename = "privateKey")]
|
|
pub private_key: SecretText,
|
|
#[serde(rename = "subjectAlternativeNames")]
|
|
pub subject_alternative_names: Map<String>,
|
|
#[serde(rename = "notValidAfter")]
|
|
pub not_valid_after: UTCDateTime,
|
|
#[serde(rename = "notValidBefore")]
|
|
pub not_valid_before: UTCDateTime,
|
|
#[serde(rename = "issuer")]
|
|
pub issuer: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum CertificateManagement {
|
|
Manual,
|
|
Automatic(CertificateManagementProperties),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct CertificateManagementProperties {
|
|
#[serde(rename = "acmeProviderId")]
|
|
pub acme_provider_id: Id,
|
|
#[serde(rename = "subjectAlternativeNames")]
|
|
pub subject_alternative_names: Map<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum ClusterListenerGroup {
|
|
EnableAll,
|
|
DisableAll,
|
|
EnableSome(ClusterListenerGroupProperties),
|
|
DisableSome(ClusterListenerGroupProperties),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ClusterListenerGroupProperties {
|
|
#[serde(rename = "listenerIds")]
|
|
pub listener_ids: Map<Id>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ClusterNode {
|
|
#[serde(rename = "nodeId")]
|
|
pub node_id: u64,
|
|
#[serde(rename = "hostname")]
|
|
pub hostname: String,
|
|
#[serde(rename = "lastRenewal")]
|
|
pub last_renewal: UTCDateTime,
|
|
#[serde(rename = "status")]
|
|
pub status: ClusterNodeStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ClusterRole {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "tasks")]
|
|
pub tasks: ClusterTaskGroup,
|
|
#[serde(rename = "listeners")]
|
|
pub listeners: ClusterListenerGroup,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum ClusterTaskGroup {
|
|
EnableAll,
|
|
DisableAll,
|
|
EnableSome(ClusterTaskGroupProperties),
|
|
DisableSome(ClusterTaskGroupProperties),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ClusterTaskGroupProperties {
|
|
#[serde(rename = "taskTypes")]
|
|
pub task_types: Map<ClusterTaskType>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum Coordinator {
|
|
Disabled,
|
|
Default,
|
|
Kafka(KafkaCoordinator),
|
|
Nats(NatsCoordinator),
|
|
Zenoh(ZenohCoordinator),
|
|
Redis(RedisStore),
|
|
RedisCluster(RedisClusterStore),
|
|
RedisSentinel(RedisSentinelStore),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum Credential {
|
|
Password(PasswordCredential),
|
|
AppPassword(SecondaryCredential),
|
|
ApiKey(SecondaryCredential),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum CredentialPermissions {
|
|
Inherit,
|
|
Disable(CredentialPermissionsList),
|
|
Replace(CredentialPermissionsList),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct CredentialPermissionsList {
|
|
#[serde(rename = "permissions")]
|
|
pub permissions: Map<Permission>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum Cron {
|
|
Daily(CronDaily),
|
|
Weekly(CronWeekly),
|
|
Hourly(CronHourly),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct CronDaily {
|
|
#[serde(rename = "hour")]
|
|
pub hour: u64,
|
|
#[serde(rename = "minute")]
|
|
pub minute: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct CronHourly {
|
|
#[serde(rename = "minute")]
|
|
pub minute: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct CronWeekly {
|
|
#[serde(rename = "day")]
|
|
pub day: u64,
|
|
#[serde(rename = "hour")]
|
|
pub hour: u64,
|
|
#[serde(rename = "minute")]
|
|
pub minute: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct CustomRoles {
|
|
#[serde(rename = "roleIds")]
|
|
pub role_ids: Map<Id>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DataRetention {
|
|
#[serde(rename = "expungeTrashAfter")]
|
|
pub expunge_trash_after: Option<Duration>,
|
|
#[serde(rename = "expungeSubmissionsAfter")]
|
|
pub expunge_submissions_after: Option<Duration>,
|
|
#[serde(rename = "expungeShareNotifyAfter")]
|
|
pub expunge_share_notify_after: Option<Duration>,
|
|
#[serde(rename = "expungeSchedulingInboxAfter")]
|
|
pub expunge_scheduling_inbox_after: Option<Duration>,
|
|
#[serde(rename = "expungeSchedule")]
|
|
pub expunge_schedule: Cron,
|
|
#[serde(rename = "dataCleanupSchedule")]
|
|
pub data_cleanup_schedule: Cron,
|
|
#[serde(rename = "blobCleanupSchedule")]
|
|
pub blob_cleanup_schedule: Cron,
|
|
#[serde(rename = "maxChangesHistory")]
|
|
pub max_changes_history: Option<u64>,
|
|
#[serde(rename = "archiveDeletedItemsFor")]
|
|
pub archive_deleted_items_for: Option<Duration>,
|
|
#[serde(rename = "archiveDeletedAccountsFor")]
|
|
pub archive_deleted_accounts_for: Option<Duration>,
|
|
#[serde(rename = "holdMtaReportsFor")]
|
|
pub hold_mta_reports_for: Option<Duration>,
|
|
#[serde(rename = "holdTracesFor")]
|
|
pub hold_traces_for: Option<Duration>,
|
|
#[serde(rename = "holdMetricsFor")]
|
|
pub hold_metrics_for: Option<Duration>,
|
|
#[serde(rename = "metricsCollectionInterval")]
|
|
pub metrics_collection_interval: Cron,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum DataStore {
|
|
RocksDb(RocksDbStore),
|
|
Sqlite(SqliteStore),
|
|
FoundationDb(FoundationDbStore),
|
|
PostgreSql(PostgreSqlStore),
|
|
MySql(MySqlStore),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DeliveryError {
|
|
#[serde(rename = "errorType")]
|
|
pub error_type: DeliveryErrorType,
|
|
#[serde(rename = "errorMessage")]
|
|
pub error_message: Option<String>,
|
|
#[serde(rename = "errorCommand")]
|
|
pub error_command: Option<String>,
|
|
#[serde(rename = "responseHostname")]
|
|
pub response_hostname: Option<String>,
|
|
#[serde(rename = "responseCode")]
|
|
pub response_code: Option<u64>,
|
|
#[serde(rename = "responseEnhanced")]
|
|
pub response_enhanced: Option<String>,
|
|
#[serde(rename = "responseMessage")]
|
|
pub response_message: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum Directory {
|
|
Ldap(LdapDirectory),
|
|
Sql(SqlDirectory),
|
|
Oidc(OidcDirectory),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum DirectoryBootstrap {
|
|
Internal,
|
|
Ldap(LdapDirectory),
|
|
Sql(SqlDirectory),
|
|
Oidc(OidcDirectory),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Dkim1Signature {
|
|
#[serde(rename = "auid")]
|
|
pub auid: Option<String>,
|
|
#[serde(rename = "canonicalization")]
|
|
pub canonicalization: DkimCanonicalization,
|
|
#[serde(rename = "expire")]
|
|
pub expire: Option<Duration>,
|
|
#[serde(rename = "headers")]
|
|
pub headers: Map<String>,
|
|
#[serde(rename = "privateKey")]
|
|
pub private_key: SecretText,
|
|
#[serde(rename = "report")]
|
|
pub report: bool,
|
|
#[serde(rename = "thirdParty")]
|
|
pub third_party: Option<String>,
|
|
#[serde(rename = "thirdPartyHash")]
|
|
pub third_party_hash: Option<DkimHash>,
|
|
#[serde(rename = "domainId")]
|
|
pub domain_id: Id,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "selector")]
|
|
pub selector: String,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "nextTransitionAt")]
|
|
pub next_transition_at: Option<UTCDateTime>,
|
|
#[serde(rename = "stage")]
|
|
pub stage: DkimRotationStage,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Dkim2Signature {
|
|
#[serde(rename = "flags")]
|
|
pub flags: Map<Dkim2Flag>,
|
|
#[serde(rename = "privateKey")]
|
|
pub private_key: SecretText,
|
|
#[serde(rename = "domainId")]
|
|
pub domain_id: Id,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "selector")]
|
|
pub selector: String,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "nextTransitionAt")]
|
|
pub next_transition_at: Option<UTCDateTime>,
|
|
#[serde(rename = "stage")]
|
|
pub stage: DkimRotationStage,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum DkimManagement {
|
|
Automatic(DkimManagementProperties),
|
|
Manual,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DkimManagementProperties {
|
|
#[serde(rename = "algorithms")]
|
|
pub algorithms: Map<DkimSignatureType>,
|
|
#[serde(rename = "selectorTemplate")]
|
|
pub selector_template: String,
|
|
#[serde(rename = "rotateAfter")]
|
|
pub rotate_after: Duration,
|
|
#[serde(rename = "retireAfter")]
|
|
pub retire_after: Duration,
|
|
#[serde(rename = "deleteAfter")]
|
|
pub delete_after: Duration,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DkimReportSettings {
|
|
#[serde(rename = "fromAddress")]
|
|
pub from_address: Expression,
|
|
#[serde(rename = "fromName")]
|
|
pub from_name: Expression,
|
|
#[serde(rename = "sendFrequency")]
|
|
pub send_frequency: Expression,
|
|
#[serde(rename = "dkimSignDomain")]
|
|
pub dkim_sign_domain: Expression,
|
|
#[serde(rename = "subject")]
|
|
pub subject: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum DkimSignature {
|
|
Dkim1Ed25519Sha256(Dkim1Signature),
|
|
Dkim1RsaSha256(Dkim1Signature),
|
|
Dkim2Ed25519Sha256(Dkim2Signature),
|
|
Dkim2RsaSha256(Dkim2Signature),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DmarcDkimResult {
|
|
#[serde(rename = "domain")]
|
|
pub domain: String,
|
|
#[serde(rename = "selector")]
|
|
pub selector: String,
|
|
#[serde(rename = "result")]
|
|
pub result: DkimAuthResult,
|
|
#[serde(rename = "humanResult")]
|
|
pub human_result: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DmarcExtension {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "definition")]
|
|
pub definition: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DmarcExternalReport {
|
|
#[serde(rename = "report")]
|
|
pub report: DmarcReport,
|
|
#[serde(rename = "from")]
|
|
pub from: String,
|
|
#[serde(rename = "subject")]
|
|
pub subject: String,
|
|
#[serde(rename = "to")]
|
|
pub to: Map<String>,
|
|
#[serde(rename = "receivedAt")]
|
|
pub received_at: UTCDateTime,
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: UTCDateTime,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DmarcInternalReport {
|
|
#[serde(rename = "rua")]
|
|
pub rua: Map<String>,
|
|
#[serde(rename = "policyIdentifier")]
|
|
pub policy_identifier: u64,
|
|
#[serde(rename = "report")]
|
|
pub report: DmarcReport,
|
|
#[serde(rename = "domain")]
|
|
pub domain: String,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "deliverAt")]
|
|
pub deliver_at: UTCDateTime,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DmarcPolicyOverrideReason {
|
|
#[serde(rename = "overrideType")]
|
|
pub override_type: DmarcPolicyOverride,
|
|
#[serde(rename = "comment")]
|
|
pub comment: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DmarcReport {
|
|
#[serde(rename = "version")]
|
|
pub version: Float,
|
|
#[serde(rename = "orgName")]
|
|
pub org_name: String,
|
|
#[serde(rename = "email")]
|
|
pub email: String,
|
|
#[serde(rename = "extraContactInfo")]
|
|
pub extra_contact_info: Option<String>,
|
|
#[serde(rename = "reportId")]
|
|
pub report_id: String,
|
|
#[serde(rename = "dateRangeBegin")]
|
|
pub date_range_begin: UTCDateTime,
|
|
#[serde(rename = "dateRangeEnd")]
|
|
pub date_range_end: UTCDateTime,
|
|
#[serde(rename = "errors")]
|
|
pub errors: Map<String>,
|
|
#[serde(rename = "policyDomain")]
|
|
pub policy_domain: String,
|
|
#[serde(rename = "policyVersion")]
|
|
pub policy_version: Option<String>,
|
|
#[serde(rename = "policyAdkim")]
|
|
pub policy_adkim: DmarcAlignment,
|
|
#[serde(rename = "policyAspf")]
|
|
pub policy_aspf: DmarcAlignment,
|
|
#[serde(rename = "policyDisposition")]
|
|
pub policy_disposition: DmarcDisposition,
|
|
#[serde(rename = "policySubdomainDisposition")]
|
|
pub policy_subdomain_disposition: DmarcDisposition,
|
|
#[serde(rename = "policyTestingMode")]
|
|
pub policy_testing_mode: bool,
|
|
#[serde(rename = "policyFailureReportingOptions")]
|
|
pub policy_failure_reporting_options: Map<FailureReportingOption>,
|
|
#[serde(rename = "records")]
|
|
pub records: List<DmarcReportRecord>,
|
|
#[serde(rename = "extensions")]
|
|
pub extensions: List<DmarcExtension>,
|
|
#[serde(rename = "generator")]
|
|
pub generator: Option<String>,
|
|
#[serde(rename = "policyNp")]
|
|
pub policy_np: DmarcDisposition,
|
|
#[serde(rename = "policyDiscoveryMethod")]
|
|
pub policy_discovery_method: DmarcDiscovery,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DmarcReportRecord {
|
|
#[serde(rename = "sourceIp")]
|
|
pub source_ip: Option<IpAddr>,
|
|
#[serde(rename = "count")]
|
|
pub count: u64,
|
|
#[serde(rename = "evaluatedDisposition")]
|
|
pub evaluated_disposition: DmarcActionDisposition,
|
|
#[serde(rename = "evaluatedDkim")]
|
|
pub evaluated_dkim: DmarcResult,
|
|
#[serde(rename = "evaluatedSpf")]
|
|
pub evaluated_spf: DmarcResult,
|
|
#[serde(rename = "policyOverrideReasons")]
|
|
pub policy_override_reasons: List<DmarcPolicyOverrideReason>,
|
|
#[serde(rename = "envelopeTo")]
|
|
pub envelope_to: Option<String>,
|
|
#[serde(rename = "envelopeFrom")]
|
|
pub envelope_from: String,
|
|
#[serde(rename = "headerFrom")]
|
|
pub header_from: String,
|
|
#[serde(rename = "dkimResults")]
|
|
pub dkim_results: List<DmarcDkimResult>,
|
|
#[serde(rename = "spfResults")]
|
|
pub spf_results: List<DmarcSpfResult>,
|
|
#[serde(rename = "extensions")]
|
|
pub extensions: List<DmarcExtension>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DmarcReportSettings {
|
|
#[serde(rename = "aggregateContactInfo")]
|
|
pub aggregate_contact_info: Expression,
|
|
#[serde(rename = "aggregateFromAddress")]
|
|
pub aggregate_from_address: Expression,
|
|
#[serde(rename = "aggregateFromName")]
|
|
pub aggregate_from_name: Expression,
|
|
#[serde(rename = "aggregateMaxReportSize")]
|
|
pub aggregate_max_report_size: Expression,
|
|
#[serde(rename = "aggregateOrgName")]
|
|
pub aggregate_org_name: Expression,
|
|
#[serde(rename = "aggregateSendFrequency")]
|
|
pub aggregate_send_frequency: Expression,
|
|
#[serde(rename = "aggregateDkimSignDomain")]
|
|
pub aggregate_dkim_sign_domain: Expression,
|
|
#[serde(rename = "aggregateSubject")]
|
|
pub aggregate_subject: Expression,
|
|
#[serde(rename = "failureFromAddress")]
|
|
pub failure_from_address: Expression,
|
|
#[serde(rename = "failureFromName")]
|
|
pub failure_from_name: Expression,
|
|
#[serde(rename = "failureSendFrequency")]
|
|
pub failure_send_frequency: Expression,
|
|
#[serde(rename = "failureDkimSignDomain")]
|
|
pub failure_dkim_sign_domain: Expression,
|
|
#[serde(rename = "failureSubject")]
|
|
pub failure_subject: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DmarcSpfResult {
|
|
#[serde(rename = "domain")]
|
|
pub domain: String,
|
|
#[serde(rename = "scope")]
|
|
pub scope: SpfDomainScope,
|
|
#[serde(rename = "result")]
|
|
pub result: SpfAuthResult,
|
|
#[serde(rename = "humanResult")]
|
|
pub human_result: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DmarcTroubleshoot {
|
|
#[serde(rename = "remoteIp")]
|
|
pub remote_ip: IpAddr,
|
|
#[serde(rename = "ehloDomain")]
|
|
pub ehlo_domain: String,
|
|
#[serde(rename = "mailFrom")]
|
|
pub mail_from: String,
|
|
#[serde(rename = "to")]
|
|
pub to: Map<String>,
|
|
#[serde(rename = "message")]
|
|
pub message: Option<String>,
|
|
#[serde(rename = "spfEhloDomain")]
|
|
pub spf_ehlo_domain: String,
|
|
#[serde(rename = "spfEhloResult")]
|
|
pub spf_ehlo_result: DmarcTroubleshootAuthResult,
|
|
#[serde(rename = "spfMailFromDomain")]
|
|
pub spf_mail_from_domain: String,
|
|
#[serde(rename = "spfMailFromResult")]
|
|
pub spf_mail_from_result: DmarcTroubleshootAuthResult,
|
|
#[serde(rename = "ipRevResult")]
|
|
pub ip_rev_result: DmarcTroubleshootAuthResult,
|
|
#[serde(rename = "ipRevPtr")]
|
|
pub ip_rev_ptr: Map<String>,
|
|
#[serde(rename = "dkimResults")]
|
|
pub dkim_results: List<DmarcTroubleshootAuthResult>,
|
|
#[serde(rename = "dkimPass")]
|
|
pub dkim_pass: bool,
|
|
#[serde(rename = "dkim2Result")]
|
|
pub dkim2_result: DmarcTroubleshootAuthResult,
|
|
#[serde(rename = "dkim2Pass")]
|
|
pub dkim2_pass: bool,
|
|
#[serde(rename = "arcResult")]
|
|
pub arc_result: DmarcTroubleshootAuthResult,
|
|
#[serde(rename = "dmarcResult")]
|
|
pub dmarc_result: DmarcTroubleshootAuthResult,
|
|
#[serde(rename = "dmarcPass")]
|
|
pub dmarc_pass: bool,
|
|
#[serde(rename = "dmarcPolicy")]
|
|
pub dmarc_policy: DmarcDisposition,
|
|
#[serde(rename = "elapsed")]
|
|
pub elapsed: Duration,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum DmarcTroubleshootAuthResult {
|
|
Pass,
|
|
Fail(DmarcTroubleshootDetails),
|
|
SoftFail(DmarcTroubleshootDetails),
|
|
TempError(DmarcTroubleshootDetails),
|
|
PermError(DmarcTroubleshootDetails),
|
|
Neutral(DmarcTroubleshootDetails),
|
|
None,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DmarcTroubleshootDetails {
|
|
#[serde(rename = "details")]
|
|
pub details: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsCustomResolver {
|
|
#[serde(rename = "protocol")]
|
|
pub protocol: DnsResolverProtocol,
|
|
#[serde(rename = "address")]
|
|
pub address: IpAddr,
|
|
#[serde(rename = "port")]
|
|
pub port: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum DnsManagement {
|
|
Manual,
|
|
Automatic(DnsManagementProperties),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsManagementProperties {
|
|
#[serde(rename = "dnsServerId")]
|
|
pub dns_server_id: Id,
|
|
#[serde(rename = "origin")]
|
|
pub origin: Option<String>,
|
|
#[serde(rename = "publishRecords")]
|
|
pub publish_records: Map<DnsRecordType>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum DnsResolver {
|
|
System(DnsResolverCommon),
|
|
Custom(DnsResolverCustom),
|
|
Cloudflare(DnsResolverTls),
|
|
Quad9(DnsResolverTls),
|
|
Google(DnsResolverCommon),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsResolverCommon {
|
|
#[serde(rename = "attempts")]
|
|
pub attempts: u64,
|
|
#[serde(rename = "concurrency")]
|
|
pub concurrency: u64,
|
|
#[serde(rename = "enableEdns")]
|
|
pub enable_edns: bool,
|
|
#[serde(rename = "preserveIntermediates")]
|
|
pub preserve_intermediates: bool,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "tcpOnError")]
|
|
pub tcp_on_error: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsResolverCustom {
|
|
#[serde(rename = "servers")]
|
|
pub servers: List<DnsCustomResolver>,
|
|
#[serde(rename = "attempts")]
|
|
pub attempts: u64,
|
|
#[serde(rename = "concurrency")]
|
|
pub concurrency: u64,
|
|
#[serde(rename = "enableEdns")]
|
|
pub enable_edns: bool,
|
|
#[serde(rename = "preserveIntermediates")]
|
|
pub preserve_intermediates: bool,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "tcpOnError")]
|
|
pub tcp_on_error: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsResolverTls {
|
|
#[serde(rename = "useTls")]
|
|
pub use_tls: bool,
|
|
#[serde(rename = "attempts")]
|
|
pub attempts: u64,
|
|
#[serde(rename = "concurrency")]
|
|
pub concurrency: u64,
|
|
#[serde(rename = "enableEdns")]
|
|
pub enable_edns: bool,
|
|
#[serde(rename = "preserveIntermediates")]
|
|
pub preserve_intermediates: bool,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "tcpOnError")]
|
|
pub tcp_on_error: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum DnsServer {
|
|
Tsig(DnsServerTsig),
|
|
Deprecated1,
|
|
Cloudflare(DnsServerCloudflare),
|
|
DigitalOcean(DnsServerCloud),
|
|
DeSEC(DnsServerCloud),
|
|
Ovh(DnsServerOvh),
|
|
Bunny(DnsServerCloud),
|
|
Porkbun(DnsServerPorkbun),
|
|
Dnsimple(DnsServerDnsimple),
|
|
Spaceship(DnsServerSpaceship),
|
|
Route53(DnsServerRoute53),
|
|
GoogleCloudDns(DnsServerGoogleCloudDns),
|
|
Alidns(DnsServerAlidns),
|
|
ArvanCloud(DnsServerCloud),
|
|
Autodns(DnsServerAutodns),
|
|
AzureDns(DnsServerAzureDns),
|
|
BaiduCloud(DnsServerBaiduCloud),
|
|
BluecatV2(DnsServerBluecatV2),
|
|
ClouDns(DnsServerClouDns),
|
|
Constellix(DnsServerConstellix),
|
|
Cpanel(DnsServerCpanel),
|
|
Ddnss(DnsServerCloud),
|
|
DnsMadeEasy(DnsServerDnsMadeEasy),
|
|
Domeneshop(DnsServerDomeneshop),
|
|
Dreamhost(DnsServerCloud),
|
|
DuckDns(DnsServerCloud),
|
|
Dynu(DnsServerCloud),
|
|
EasyDns(DnsServerEasyDns),
|
|
EdgeDns(DnsServerEdgeDns),
|
|
Exoscale(DnsServerExoscale),
|
|
FreeMyIp(DnsServerCloud),
|
|
GandiV5(DnsServerCloud),
|
|
Gcore(DnsServerCloud),
|
|
Glesys(DnsServerGlesys),
|
|
Godaddy(DnsServerGodaddy),
|
|
Hetzner(DnsServerCloud),
|
|
HostingDe(DnsServerCloud),
|
|
Hostinger(DnsServerCloud),
|
|
HuaweiCloud(DnsServerHuaweiCloud),
|
|
Hurricane(DnsServerHurricane),
|
|
IbmCloud(DnsServerIbmCloud),
|
|
Infoblox(DnsServerInfoblox),
|
|
Infomaniak(DnsServerCloud),
|
|
Inwx(DnsServerInwx),
|
|
Ionos(DnsServerCloud),
|
|
Ipv64(DnsServerCloud),
|
|
Joker(DnsServerJoker),
|
|
Lightsail(DnsServerLightsail),
|
|
Linode(DnsServerCloud),
|
|
LuaDns(DnsServerLuaDns),
|
|
MythicBeasts(DnsServerMythicBeasts),
|
|
Namecheap(DnsServerNamecheap),
|
|
NameDotCom(DnsServerNameDotCom),
|
|
NameSilo(DnsServerCloud),
|
|
Netcup(DnsServerNetcup),
|
|
Netlify(DnsServerCloud),
|
|
Nifcloud(DnsServerNifcloud),
|
|
Ns1(DnsServerCloud),
|
|
OracleCloud(DnsServerOracleCloud),
|
|
Plesk(DnsServerPlesk),
|
|
Safedns(DnsServerCloud),
|
|
Scaleway(DnsServerCloud),
|
|
TencentCloud(DnsServerTencentCloud),
|
|
Transip(DnsServerTransip),
|
|
UltraDns(DnsServerUltraDns),
|
|
Vercel(DnsServerVercel),
|
|
Volcengine(DnsServerVolcengine),
|
|
Vultr(DnsServerCloud),
|
|
WebSupport(DnsServerWebSupport),
|
|
YandexCloud(DnsServerYandexCloud),
|
|
PowerDns(DnsServerPowerDns),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerAlidns {
|
|
#[serde(rename = "accessKey")]
|
|
pub access_key: String,
|
|
#[serde(rename = "secretKey")]
|
|
pub secret_key: SecretKey,
|
|
#[serde(rename = "region")]
|
|
pub region: Option<String>,
|
|
#[serde(rename = "securityToken")]
|
|
pub security_token: SecretKeyOptional,
|
|
#[serde(rename = "line")]
|
|
pub line: Option<String>,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerAutodns {
|
|
#[serde(rename = "username")]
|
|
pub username: String,
|
|
#[serde(rename = "password")]
|
|
pub password: SecretKey,
|
|
#[serde(rename = "context")]
|
|
pub context: Option<u64>,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerAzureDns {
|
|
#[serde(rename = "tenantId")]
|
|
pub tenant_id: String,
|
|
#[serde(rename = "clientId")]
|
|
pub client_id: String,
|
|
#[serde(rename = "clientSecret")]
|
|
pub client_secret: SecretKey,
|
|
#[serde(rename = "subscriptionId")]
|
|
pub subscription_id: String,
|
|
#[serde(rename = "resourceGroup")]
|
|
pub resource_group: String,
|
|
#[serde(rename = "environment")]
|
|
pub environment: AzureEnvironment,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerBaiduCloud {
|
|
#[serde(rename = "accessKey")]
|
|
pub access_key: String,
|
|
#[serde(rename = "secretKey")]
|
|
pub secret_key: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerBluecatV2 {
|
|
#[serde(rename = "baseUrl")]
|
|
pub base_url: String,
|
|
#[serde(rename = "username")]
|
|
pub username: String,
|
|
#[serde(rename = "password")]
|
|
pub password: SecretKey,
|
|
#[serde(rename = "configName")]
|
|
pub config_name: String,
|
|
#[serde(rename = "viewName")]
|
|
pub view_name: String,
|
|
#[serde(rename = "skipDeploy")]
|
|
pub skip_deploy: bool,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum DnsServerBootstrap {
|
|
Manual,
|
|
Tsig(DnsServerTsig),
|
|
Deprecated1,
|
|
Cloudflare(DnsServerCloudflare),
|
|
DigitalOcean(DnsServerCloud),
|
|
DeSEC(DnsServerCloud),
|
|
Ovh(DnsServerOvh),
|
|
Bunny(DnsServerCloud),
|
|
Porkbun(DnsServerPorkbun),
|
|
Dnsimple(DnsServerDnsimple),
|
|
Spaceship(DnsServerSpaceship),
|
|
Route53(DnsServerRoute53),
|
|
GoogleCloudDns(DnsServerGoogleCloudDns),
|
|
Alidns(DnsServerAlidns),
|
|
ArvanCloud(DnsServerCloud),
|
|
Autodns(DnsServerAutodns),
|
|
AzureDns(DnsServerAzureDns),
|
|
BaiduCloud(DnsServerBaiduCloud),
|
|
BluecatV2(DnsServerBluecatV2),
|
|
ClouDns(DnsServerClouDns),
|
|
Constellix(DnsServerConstellix),
|
|
Cpanel(DnsServerCpanel),
|
|
Ddnss(DnsServerCloud),
|
|
DnsMadeEasy(DnsServerDnsMadeEasy),
|
|
Domeneshop(DnsServerDomeneshop),
|
|
Dreamhost(DnsServerCloud),
|
|
DuckDns(DnsServerCloud),
|
|
Dynu(DnsServerCloud),
|
|
EasyDns(DnsServerEasyDns),
|
|
EdgeDns(DnsServerEdgeDns),
|
|
Exoscale(DnsServerExoscale),
|
|
FreeMyIp(DnsServerCloud),
|
|
GandiV5(DnsServerCloud),
|
|
Gcore(DnsServerCloud),
|
|
Glesys(DnsServerGlesys),
|
|
Godaddy(DnsServerGodaddy),
|
|
Hetzner(DnsServerCloud),
|
|
HostingDe(DnsServerCloud),
|
|
Hostinger(DnsServerCloud),
|
|
HuaweiCloud(DnsServerHuaweiCloud),
|
|
Hurricane(DnsServerHurricane),
|
|
IbmCloud(DnsServerIbmCloud),
|
|
Infoblox(DnsServerInfoblox),
|
|
Infomaniak(DnsServerCloud),
|
|
Inwx(DnsServerInwx),
|
|
Ionos(DnsServerCloud),
|
|
Ipv64(DnsServerCloud),
|
|
Joker(DnsServerJoker),
|
|
Lightsail(DnsServerLightsail),
|
|
Linode(DnsServerCloud),
|
|
LuaDns(DnsServerLuaDns),
|
|
MythicBeasts(DnsServerMythicBeasts),
|
|
Namecheap(DnsServerNamecheap),
|
|
NameDotCom(DnsServerNameDotCom),
|
|
NameSilo(DnsServerCloud),
|
|
Netcup(DnsServerNetcup),
|
|
Netlify(DnsServerCloud),
|
|
Nifcloud(DnsServerNifcloud),
|
|
Ns1(DnsServerCloud),
|
|
OracleCloud(DnsServerOracleCloud),
|
|
Plesk(DnsServerPlesk),
|
|
Safedns(DnsServerCloud),
|
|
Scaleway(DnsServerCloud),
|
|
TencentCloud(DnsServerTencentCloud),
|
|
Transip(DnsServerTransip),
|
|
UltraDns(DnsServerUltraDns),
|
|
Vercel(DnsServerVercel),
|
|
Volcengine(DnsServerVolcengine),
|
|
Vultr(DnsServerCloud),
|
|
WebSupport(DnsServerWebSupport),
|
|
YandexCloud(DnsServerYandexCloud),
|
|
PowerDns(DnsServerPowerDns),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerClouDns {
|
|
#[serde(rename = "authId")]
|
|
pub auth_id: Option<String>,
|
|
#[serde(rename = "subAuthId")]
|
|
pub sub_auth_id: Option<String>,
|
|
#[serde(rename = "password")]
|
|
pub password: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerCloud {
|
|
#[serde(rename = "secret")]
|
|
pub secret: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerCloudflare {
|
|
#[serde(rename = "secret")]
|
|
pub secret: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerConstellix {
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: String,
|
|
#[serde(rename = "secretKey")]
|
|
pub secret_key: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerCpanel {
|
|
#[serde(rename = "baseUrl")]
|
|
pub base_url: String,
|
|
#[serde(rename = "username")]
|
|
pub username: String,
|
|
#[serde(rename = "token")]
|
|
pub token: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerDnsMadeEasy {
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: String,
|
|
#[serde(rename = "secret")]
|
|
pub secret: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerDnsimple {
|
|
#[serde(rename = "authToken")]
|
|
pub auth_token: SecretKey,
|
|
#[serde(rename = "accountIdentifier")]
|
|
pub account_identifier: String,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerDomeneshop {
|
|
#[serde(rename = "authToken")]
|
|
pub auth_token: String,
|
|
#[serde(rename = "secret")]
|
|
pub secret: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerEasyDns {
|
|
#[serde(rename = "token")]
|
|
pub token: String,
|
|
#[serde(rename = "key")]
|
|
pub key: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerEdgeDns {
|
|
#[serde(rename = "host")]
|
|
pub host: String,
|
|
#[serde(rename = "clientToken")]
|
|
pub client_token: String,
|
|
#[serde(rename = "clientSecret")]
|
|
pub client_secret: SecretKey,
|
|
#[serde(rename = "accessToken")]
|
|
pub access_token: SecretKey,
|
|
#[serde(rename = "accountSwitchKey")]
|
|
pub account_switch_key: Option<String>,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerExoscale {
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: String,
|
|
#[serde(rename = "secret")]
|
|
pub secret: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerGlesys {
|
|
#[serde(rename = "apiUser")]
|
|
pub api_user: String,
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerGodaddy {
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: String,
|
|
#[serde(rename = "secret")]
|
|
pub secret: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerGoogleCloudDns {
|
|
#[serde(rename = "serviceAccountJson")]
|
|
pub service_account_json: SecretText,
|
|
#[serde(rename = "projectId")]
|
|
pub project_id: String,
|
|
#[serde(rename = "managedZone")]
|
|
pub managed_zone: Option<String>,
|
|
#[serde(rename = "privateZone")]
|
|
pub private_zone: bool,
|
|
#[serde(rename = "impersonateServiceAccount")]
|
|
pub impersonate_service_account: Option<String>,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerHuaweiCloud {
|
|
#[serde(rename = "accessKey")]
|
|
pub access_key: String,
|
|
#[serde(rename = "secretKey")]
|
|
pub secret_key: SecretKey,
|
|
#[serde(rename = "region")]
|
|
pub region: String,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerHurricane {
|
|
#[serde(rename = "credentials")]
|
|
pub credentials: List<HurricaneCredential>,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerIbmCloud {
|
|
#[serde(rename = "username")]
|
|
pub username: String,
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerInfoblox {
|
|
#[serde(rename = "host")]
|
|
pub host: String,
|
|
#[serde(rename = "port")]
|
|
pub port: Option<String>,
|
|
#[serde(rename = "username")]
|
|
pub username: String,
|
|
#[serde(rename = "password")]
|
|
pub password: SecretKey,
|
|
#[serde(rename = "wapiVersion")]
|
|
pub wapi_version: Option<String>,
|
|
#[serde(rename = "dnsView")]
|
|
pub dns_view: Option<String>,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerInwx {
|
|
#[serde(rename = "username")]
|
|
pub username: String,
|
|
#[serde(rename = "password")]
|
|
pub password: SecretKey,
|
|
#[serde(rename = "sharedSecret")]
|
|
pub shared_secret: SecretKeyOptional,
|
|
#[serde(rename = "sandbox")]
|
|
pub sandbox: bool,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerJoker {
|
|
#[serde(rename = "auth")]
|
|
pub auth: JokerAuth,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerLightsail {
|
|
#[serde(rename = "accessKeyId")]
|
|
pub access_key_id: String,
|
|
#[serde(rename = "secretAccessKey")]
|
|
pub secret_access_key: SecretKey,
|
|
#[serde(rename = "sessionToken")]
|
|
pub session_token: SecretKeyOptional,
|
|
#[serde(rename = "region")]
|
|
pub region: Option<String>,
|
|
#[serde(rename = "domain")]
|
|
pub domain: Option<String>,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerLuaDns {
|
|
#[serde(rename = "username")]
|
|
pub username: String,
|
|
#[serde(rename = "authToken")]
|
|
pub auth_token: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerMythicBeasts {
|
|
#[serde(rename = "username")]
|
|
pub username: String,
|
|
#[serde(rename = "password")]
|
|
pub password: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerNameDotCom {
|
|
#[serde(rename = "username")]
|
|
pub username: String,
|
|
#[serde(rename = "authToken")]
|
|
pub auth_token: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerNamecheap {
|
|
#[serde(rename = "apiUser")]
|
|
pub api_user: String,
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: SecretKey,
|
|
#[serde(rename = "clientIp")]
|
|
pub client_ip: String,
|
|
#[serde(rename = "username")]
|
|
pub username: Option<String>,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerNetcup {
|
|
#[serde(rename = "customerNumber")]
|
|
pub customer_number: String,
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: String,
|
|
#[serde(rename = "password")]
|
|
pub password: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerNifcloud {
|
|
#[serde(rename = "accessKey")]
|
|
pub access_key: String,
|
|
#[serde(rename = "secretKey")]
|
|
pub secret_key: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerOracleCloud {
|
|
#[serde(rename = "tenancyOcid")]
|
|
pub tenancy_ocid: String,
|
|
#[serde(rename = "userOcid")]
|
|
pub user_ocid: String,
|
|
#[serde(rename = "fingerprint")]
|
|
pub fingerprint: String,
|
|
#[serde(rename = "privateKeyPem")]
|
|
pub private_key_pem: SecretText,
|
|
#[serde(rename = "privateKeyPassword")]
|
|
pub private_key_password: SecretKeyOptional,
|
|
#[serde(rename = "region")]
|
|
pub region: String,
|
|
#[serde(rename = "compartmentOcid")]
|
|
pub compartment_ocid: String,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerOvh {
|
|
#[serde(rename = "applicationKey")]
|
|
pub application_key: String,
|
|
#[serde(rename = "applicationSecret")]
|
|
pub application_secret: SecretKey,
|
|
#[serde(rename = "consumerKey")]
|
|
pub consumer_key: SecretKey,
|
|
#[serde(rename = "ovhEndpoint")]
|
|
pub ovh_endpoint: OvhEndpoint,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerPlesk {
|
|
#[serde(rename = "baseUrl")]
|
|
pub base_url: String,
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerPorkbun {
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: String,
|
|
#[serde(rename = "secretApiKey")]
|
|
pub secret_api_key: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerPowerDns {
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: SecretKey,
|
|
#[serde(rename = "endpoint")]
|
|
pub endpoint: Option<String>,
|
|
#[serde(rename = "serverId")]
|
|
pub server_id: Option<String>,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerRoute53 {
|
|
#[serde(rename = "accessKeyId")]
|
|
pub access_key_id: String,
|
|
#[serde(rename = "secretAccessKey")]
|
|
pub secret_access_key: SecretKey,
|
|
#[serde(rename = "sessionToken")]
|
|
pub session_token: SecretKeyOptional,
|
|
#[serde(rename = "region")]
|
|
pub region: String,
|
|
#[serde(rename = "hostedZoneId")]
|
|
pub hosted_zone_id: Option<String>,
|
|
#[serde(rename = "privateZoneOnly")]
|
|
pub private_zone_only: bool,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerSpaceship {
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: String,
|
|
#[serde(rename = "secret")]
|
|
pub secret: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerTencentCloud {
|
|
#[serde(rename = "secretId")]
|
|
pub secret_id: String,
|
|
#[serde(rename = "secretKey")]
|
|
pub secret_key: SecretKey,
|
|
#[serde(rename = "region")]
|
|
pub region: Option<String>,
|
|
#[serde(rename = "sessionToken")]
|
|
pub session_token: SecretKeyOptional,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerTransip {
|
|
#[serde(rename = "username")]
|
|
pub username: String,
|
|
#[serde(rename = "privateKeyPem")]
|
|
pub private_key_pem: SecretText,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerTsig {
|
|
#[serde(rename = "host")]
|
|
pub host: IpAddr,
|
|
#[serde(rename = "port")]
|
|
pub port: u64,
|
|
#[serde(rename = "keyName")]
|
|
pub key_name: String,
|
|
#[serde(rename = "key")]
|
|
pub key: SecretKey,
|
|
#[serde(rename = "protocol")]
|
|
pub protocol: IpProtocol,
|
|
#[serde(rename = "tsigAlgorithm")]
|
|
pub tsig_algorithm: TsigAlgorithm,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerUltraDns {
|
|
#[serde(rename = "username")]
|
|
pub username: String,
|
|
#[serde(rename = "password")]
|
|
pub password: SecretKey,
|
|
#[serde(rename = "endpoint")]
|
|
pub endpoint: Option<String>,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerVercel {
|
|
#[serde(rename = "authToken")]
|
|
pub auth_token: SecretKey,
|
|
#[serde(rename = "teamId")]
|
|
pub team_id: Option<String>,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerVolcengine {
|
|
#[serde(rename = "accessKey")]
|
|
pub access_key: String,
|
|
#[serde(rename = "secretKey")]
|
|
pub secret_key: SecretKey,
|
|
#[serde(rename = "region")]
|
|
pub region: Option<String>,
|
|
#[serde(rename = "host")]
|
|
pub host: Option<String>,
|
|
#[serde(rename = "scheme")]
|
|
pub scheme: Option<String>,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerWebSupport {
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: String,
|
|
#[serde(rename = "secret")]
|
|
pub secret: SecretKey,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DnsServerYandexCloud {
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: SecretText,
|
|
#[serde(rename = "folderId")]
|
|
pub folder_id: String,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "ttl")]
|
|
pub ttl: Duration,
|
|
#[serde(rename = "pollingInterval")]
|
|
pub polling_interval: Duration,
|
|
#[serde(rename = "propagationTimeout")]
|
|
pub propagation_timeout: Duration,
|
|
#[serde(rename = "propagationDelay")]
|
|
pub propagation_delay: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Domain {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "aliases")]
|
|
pub aliases: Map<String>,
|
|
#[serde(rename = "isEnabled")]
|
|
pub is_enabled: bool,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "logo")]
|
|
pub logo: Option<String>,
|
|
#[serde(rename = "certificateManagement")]
|
|
pub certificate_management: CertificateManagement,
|
|
#[serde(rename = "dkimManagement")]
|
|
pub dkim_management: DkimManagement,
|
|
#[serde(rename = "dnsManagement")]
|
|
pub dns_management: DnsManagement,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "directoryId")]
|
|
pub directory_id: Option<Id>,
|
|
#[serde(rename = "catchAllAddress")]
|
|
pub catch_all_address: Option<String>,
|
|
#[serde(rename = "subAddressing")]
|
|
pub sub_addressing: SubAddressing,
|
|
#[serde(rename = "allowRelaying")]
|
|
pub allow_relaying: bool,
|
|
#[serde(rename = "reportAddressUri")]
|
|
pub report_address_uri: Option<String>,
|
|
#[serde(rename = "allowScimProvisioning")]
|
|
pub allow_scim_provisioning: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct DsnReportSettings {
|
|
#[serde(rename = "fromAddress")]
|
|
pub from_address: Expression,
|
|
#[serde(rename = "fromName")]
|
|
pub from_name: Expression,
|
|
#[serde(rename = "dkimSignDomain")]
|
|
pub dkim_sign_domain: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ElasticSearchStore {
|
|
#[serde(rename = "url")]
|
|
pub url: String,
|
|
#[serde(rename = "numReplicas")]
|
|
pub num_replicas: u64,
|
|
#[serde(rename = "numShards")]
|
|
pub num_shards: u64,
|
|
#[serde(rename = "includeSource")]
|
|
pub include_source: bool,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "allowInvalidCerts")]
|
|
pub allow_invalid_certs: bool,
|
|
#[serde(rename = "httpAuth")]
|
|
pub http_auth: HttpAuth,
|
|
#[serde(rename = "httpHeaders")]
|
|
pub http_headers: VecMap<String, String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Email {
|
|
#[serde(rename = "maxAttachmentSize")]
|
|
pub max_attachment_size: u64,
|
|
#[serde(rename = "maxMessageSize")]
|
|
pub max_message_size: u64,
|
|
#[serde(rename = "maxMailboxDepth")]
|
|
pub max_mailbox_depth: u64,
|
|
#[serde(rename = "maxMailboxNameLength")]
|
|
pub max_mailbox_name_length: u64,
|
|
#[serde(rename = "encryptOnAppend")]
|
|
pub encrypt_on_append: bool,
|
|
#[serde(rename = "encryptAtRest")]
|
|
pub encrypt_at_rest: bool,
|
|
#[serde(rename = "compressionAlgorithm")]
|
|
pub compression_algorithm: CompressionAlgo,
|
|
#[serde(rename = "defaultFolders")]
|
|
pub default_folders: VecMap<SpecialUse, EmailFolder>,
|
|
#[serde(rename = "maxMessages")]
|
|
pub max_messages: Option<u64>,
|
|
#[serde(rename = "maxSubmissions")]
|
|
pub max_submissions: Option<u64>,
|
|
#[serde(rename = "maxIdentities")]
|
|
pub max_identities: Option<u64>,
|
|
#[serde(rename = "maxMailboxes")]
|
|
pub max_mailboxes: Option<u64>,
|
|
#[serde(rename = "maxMaskedAddresses")]
|
|
pub max_masked_addresses: Option<u64>,
|
|
#[serde(rename = "maxPublicKeys")]
|
|
pub max_public_keys: Option<u64>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct EmailAlias {
|
|
#[serde(rename = "enabled")]
|
|
pub enabled: bool,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "domainId")]
|
|
pub domain_id: Id,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct EmailFolder {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "create")]
|
|
pub create: bool,
|
|
#[serde(rename = "subscribe")]
|
|
pub subscribe: bool,
|
|
#[serde(rename = "aliases")]
|
|
pub aliases: Map<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum EncryptionAtRest {
|
|
Disabled,
|
|
Aes128(EncryptionSettings),
|
|
Aes256(EncryptionSettings),
|
|
Aes256Gcm(EncryptionSettings),
|
|
ChaCha20Poly1305(EncryptionSettings),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct EncryptionSettings {
|
|
#[serde(rename = "publicKey")]
|
|
pub public_key: Id,
|
|
#[serde(rename = "encryptOnAppend")]
|
|
pub encrypt_on_append: bool,
|
|
#[serde(rename = "allowSpamTraining")]
|
|
pub allow_spam_training: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Enterprise {
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: SecretKeyOptional,
|
|
#[serde(rename = "licenseKey")]
|
|
pub license_key: SecretKeyOptional,
|
|
#[serde(rename = "logoUrl")]
|
|
pub logo_url: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct EventTracingLevel {
|
|
#[serde(rename = "event")]
|
|
pub event: trc::EventType,
|
|
#[serde(rename = "level")]
|
|
pub level: TracingLevelOpt,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Expression {
|
|
#[serde(rename = "match")]
|
|
pub match_: List<ExpressionMatch>,
|
|
#[serde(rename = "else")]
|
|
pub else_: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ExpressionMatch {
|
|
#[serde(rename = "if")]
|
|
pub if_: String,
|
|
#[serde(rename = "then")]
|
|
pub then: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct FileStorage {
|
|
#[serde(rename = "maxSize")]
|
|
pub max_size: u64,
|
|
#[serde(rename = "maxFiles")]
|
|
pub max_files: Option<u64>,
|
|
#[serde(rename = "maxFolders")]
|
|
pub max_folders: Option<u64>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct FileSystemStore {
|
|
#[serde(rename = "path")]
|
|
pub path: String,
|
|
#[serde(rename = "depth")]
|
|
pub depth: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct FoundationDbStore {
|
|
#[serde(rename = "clusterFile")]
|
|
pub cluster_file: Option<String>,
|
|
#[serde(rename = "datacenterId")]
|
|
pub datacenter_id: Option<String>,
|
|
#[serde(rename = "machineId")]
|
|
pub machine_id: Option<String>,
|
|
#[serde(rename = "transactionRetryDelay")]
|
|
pub transaction_retry_delay: Option<Duration>,
|
|
#[serde(rename = "transactionRetryLimit")]
|
|
pub transaction_retry_limit: Option<u64>,
|
|
#[serde(rename = "transactionTimeout")]
|
|
pub transaction_timeout: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct FtrlParameters {
|
|
#[serde(rename = "alpha")]
|
|
pub alpha: Float,
|
|
#[serde(rename = "beta")]
|
|
pub beta: Float,
|
|
#[serde(rename = "numFeatures")]
|
|
pub num_features: ModelSize,
|
|
#[serde(rename = "l1Ratio")]
|
|
pub l1_ratio: Float,
|
|
#[serde(rename = "l2Ratio")]
|
|
pub l2_ratio: Float,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct GroupAccount {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "domainId")]
|
|
pub domain_id: Id,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "roles")]
|
|
pub roles: Roles,
|
|
#[serde(rename = "quotas")]
|
|
pub quotas: VecMap<StorageQuota, u64>,
|
|
#[serde(rename = "permissions")]
|
|
pub permissions: Permissions,
|
|
#[serde(rename = "aliases")]
|
|
pub aliases: List<EmailAlias>,
|
|
#[serde(rename = "locale")]
|
|
pub locale: Locale,
|
|
#[serde(rename = "timeZone")]
|
|
pub time_zone: Option<TimeZone>,
|
|
#[serde(rename = "externalId")]
|
|
pub external_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Http {
|
|
#[serde(rename = "rateLimitAuthenticated")]
|
|
pub rate_limit_authenticated: Option<Rate>,
|
|
#[serde(rename = "rateLimitAnonymous")]
|
|
pub rate_limit_anonymous: Option<Rate>,
|
|
#[serde(rename = "allowedEndpoints")]
|
|
pub allowed_endpoints: Expression,
|
|
#[serde(rename = "enableHsts")]
|
|
pub enable_hsts: bool,
|
|
#[serde(rename = "usePermissiveCors")]
|
|
pub use_permissive_cors: bool,
|
|
#[serde(rename = "responseHeaders")]
|
|
pub response_headers: VecMap<String, String>,
|
|
#[serde(rename = "useXForwarded")]
|
|
pub use_x_forwarded: bool,
|
|
#[serde(rename = "redirectRoot")]
|
|
pub redirect_root: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum HttpAuth {
|
|
Unauthenticated,
|
|
Basic(HttpAuthBasic),
|
|
Bearer(HttpAuthBearer),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct HttpAuthBasic {
|
|
#[serde(rename = "username")]
|
|
pub username: String,
|
|
#[serde(rename = "secret")]
|
|
pub secret: SecretKey,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct HttpAuthBearer {
|
|
#[serde(rename = "bearerToken")]
|
|
pub bearer_token: SecretKey,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct HttpForm {
|
|
#[serde(rename = "deliverTo")]
|
|
pub deliver_to: Map<String>,
|
|
#[serde(rename = "defaultFromAddress")]
|
|
pub default_from_address: String,
|
|
#[serde(rename = "fieldEmail")]
|
|
pub field_email: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "fieldHoneyPot")]
|
|
pub field_honey_pot: Option<String>,
|
|
#[serde(rename = "maxSize")]
|
|
pub max_size: u64,
|
|
#[serde(rename = "defaultName")]
|
|
pub default_name: String,
|
|
#[serde(rename = "fieldName")]
|
|
pub field_name: Option<String>,
|
|
#[serde(rename = "rateLimit")]
|
|
pub rate_limit: Option<Rate>,
|
|
#[serde(rename = "defaultSubject")]
|
|
pub default_subject: String,
|
|
#[serde(rename = "fieldSubject")]
|
|
pub field_subject: Option<String>,
|
|
#[serde(rename = "validateDomain")]
|
|
pub validate_domain: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct HttpLookup {
|
|
#[serde(rename = "namespace")]
|
|
pub namespace: String,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "format")]
|
|
pub format: HttpLookupFormat,
|
|
#[serde(rename = "isGzipped")]
|
|
pub is_gzipped: bool,
|
|
#[serde(rename = "maxEntries")]
|
|
pub max_entries: u64,
|
|
#[serde(rename = "maxEntrySize")]
|
|
pub max_entry_size: u64,
|
|
#[serde(rename = "maxSize")]
|
|
pub max_size: u64,
|
|
#[serde(rename = "refresh")]
|
|
pub refresh: Duration,
|
|
#[serde(rename = "retry")]
|
|
pub retry: Duration,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "url")]
|
|
pub url: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct HttpLookupCsv {
|
|
#[serde(rename = "indexKey")]
|
|
pub index_key: u64,
|
|
#[serde(rename = "indexValue")]
|
|
pub index_value: Option<u64>,
|
|
#[serde(rename = "separator")]
|
|
pub separator: String,
|
|
#[serde(rename = "skipFirst")]
|
|
pub skip_first: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum HttpLookupFormat {
|
|
Csv(HttpLookupCsv),
|
|
List,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct HurricaneCredential {
|
|
#[serde(rename = "zone")]
|
|
pub zone: String,
|
|
#[serde(rename = "secret")]
|
|
pub secret: SecretKey,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Imap {
|
|
#[serde(rename = "allowPlainTextAuth")]
|
|
pub allow_plain_text_auth: bool,
|
|
#[serde(rename = "maxAuthFailures")]
|
|
pub max_auth_failures: u64,
|
|
#[serde(rename = "maxConcurrent")]
|
|
pub max_concurrent: Option<u64>,
|
|
#[serde(rename = "maxRequestRate")]
|
|
pub max_request_rate: Option<Rate>,
|
|
#[serde(rename = "maxRequestSize")]
|
|
pub max_request_size: u64,
|
|
#[serde(rename = "timeoutAnonymous")]
|
|
pub timeout_anonymous: Duration,
|
|
#[serde(rename = "timeoutAuthenticated")]
|
|
pub timeout_authenticated: Duration,
|
|
#[serde(rename = "timeoutIdle")]
|
|
pub timeout_idle: Duration,
|
|
#[serde(rename = "maxMessagesPerCommand")]
|
|
pub max_messages_per_command: u64,
|
|
#[serde(rename = "minUidBatchSize")]
|
|
pub min_uid_batch_size: u64,
|
|
#[serde(rename = "maxUidBatches")]
|
|
pub max_uid_batches: u64,
|
|
#[serde(rename = "maxMessagesPerSave")]
|
|
pub max_messages_per_save: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum InMemoryStore {
|
|
Default,
|
|
Sharded(ShardedInMemoryStore),
|
|
Redis(RedisStore),
|
|
RedisCluster(RedisClusterStore),
|
|
RedisSentinel(RedisSentinelStore),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum InMemoryStoreBase {
|
|
Redis(RedisStore),
|
|
RedisCluster(RedisClusterStore),
|
|
RedisSentinel(RedisSentinelStore),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Jmap {
|
|
#[serde(rename = "parseLimitEvent")]
|
|
pub parse_limit_event: u64,
|
|
#[serde(rename = "parseLimitContact")]
|
|
pub parse_limit_contact: u64,
|
|
#[serde(rename = "parseLimitEmail")]
|
|
pub parse_limit_email: u64,
|
|
#[serde(rename = "changesMaxResults")]
|
|
pub changes_max_results: u64,
|
|
#[serde(rename = "getMaxResults")]
|
|
pub get_max_results: u64,
|
|
#[serde(rename = "queryMaxResults")]
|
|
pub query_max_results: u64,
|
|
#[serde(rename = "maxMethodCalls")]
|
|
pub max_method_calls: u64,
|
|
#[serde(rename = "maxConcurrentRequests")]
|
|
pub max_concurrent_requests: Option<u64>,
|
|
#[serde(rename = "maxRequestSize")]
|
|
pub max_request_size: u64,
|
|
#[serde(rename = "setMaxObjects")]
|
|
pub set_max_objects: u64,
|
|
#[serde(rename = "snippetMaxResults")]
|
|
pub snippet_max_results: u64,
|
|
#[serde(rename = "maxConcurrentUploads")]
|
|
pub max_concurrent_uploads: Option<u64>,
|
|
#[serde(rename = "maxUploadSize")]
|
|
pub max_upload_size: u64,
|
|
#[serde(rename = "maxUploadCount")]
|
|
pub max_upload_count: u64,
|
|
#[serde(rename = "uploadQuota")]
|
|
pub upload_quota: u64,
|
|
#[serde(rename = "uploadTtl")]
|
|
pub upload_ttl: Duration,
|
|
#[serde(rename = "eventSourceThrottle")]
|
|
pub event_source_throttle: Duration,
|
|
#[serde(rename = "pushAttemptWait")]
|
|
pub push_attempt_wait: Duration,
|
|
#[serde(rename = "pushMaxAttempts")]
|
|
pub push_max_attempts: u64,
|
|
#[serde(rename = "pushRetryWait")]
|
|
pub push_retry_wait: Duration,
|
|
#[serde(rename = "pushThrottle")]
|
|
pub push_throttle: Duration,
|
|
#[serde(rename = "pushRequestTimeout")]
|
|
pub push_request_timeout: Duration,
|
|
#[serde(rename = "pushVerifyTimeout")]
|
|
pub push_verify_timeout: Duration,
|
|
#[serde(rename = "pushShardsTotal")]
|
|
pub push_shards_total: u64,
|
|
#[serde(rename = "websocketHeartbeat")]
|
|
pub websocket_heartbeat: Duration,
|
|
#[serde(rename = "websocketThrottle")]
|
|
pub websocket_throttle: Duration,
|
|
#[serde(rename = "websocketTimeout")]
|
|
pub websocket_timeout: Duration,
|
|
#[serde(rename = "maxSubscriptions")]
|
|
pub max_subscriptions: Option<u64>,
|
|
#[serde(rename = "webPushKey")]
|
|
pub web_push_key: SecretTextOptional,
|
|
#[serde(rename = "webPushContact")]
|
|
pub web_push_contact: Option<String>,
|
|
#[serde(rename = "maxPushSize")]
|
|
pub max_push_size: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum JokerAuth {
|
|
ApiKey(JokerAuthApiKey),
|
|
UsernamePassword(JokerAuthUsernamePassword),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct JokerAuthApiKey {
|
|
#[serde(rename = "apiKey")]
|
|
pub api_key: SecretKey,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct JokerAuthUsernamePassword {
|
|
#[serde(rename = "username")]
|
|
pub username: String,
|
|
#[serde(rename = "password")]
|
|
pub password: SecretKey,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct KafkaCoordinator {
|
|
#[serde(rename = "brokers")]
|
|
pub brokers: Map<String>,
|
|
#[serde(rename = "groupId")]
|
|
pub group_id: String,
|
|
#[serde(rename = "timeoutMessage")]
|
|
pub timeout_message: Duration,
|
|
#[serde(rename = "timeoutSession")]
|
|
pub timeout_session: Duration,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct LdapDirectory {
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "url")]
|
|
pub url: String,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "allowInvalidCerts")]
|
|
pub allow_invalid_certs: bool,
|
|
#[serde(rename = "useTls")]
|
|
pub use_tls: bool,
|
|
#[serde(rename = "baseDn")]
|
|
pub base_dn: String,
|
|
#[serde(rename = "bindDn")]
|
|
pub bind_dn: Option<String>,
|
|
#[serde(rename = "bindSecret")]
|
|
pub bind_secret: SecretKeyOptional,
|
|
#[serde(rename = "bindAuthentication")]
|
|
pub bind_authentication: bool,
|
|
#[serde(rename = "filterLogin")]
|
|
pub filter_login: String,
|
|
#[serde(rename = "filterMailbox")]
|
|
pub filter_mailbox: String,
|
|
#[serde(rename = "filterMemberOf")]
|
|
pub filter_member_of: Option<String>,
|
|
#[serde(rename = "attrClass")]
|
|
pub attr_class: Map<String>,
|
|
#[serde(rename = "attrDescription")]
|
|
pub attr_description: Map<String>,
|
|
#[serde(rename = "attrEmail")]
|
|
pub attr_email: Map<String>,
|
|
#[serde(rename = "attrEmailAlias")]
|
|
pub attr_email_alias: Map<String>,
|
|
#[serde(rename = "attrMemberOf")]
|
|
pub attr_member_of: Map<String>,
|
|
#[serde(rename = "attrSecret")]
|
|
pub attr_secret: Map<String>,
|
|
#[serde(rename = "attrSecretChanged")]
|
|
pub attr_secret_changed: Map<String>,
|
|
#[serde(rename = "groupClass")]
|
|
pub group_class: String,
|
|
#[serde(rename = "poolMaxConnections")]
|
|
pub pool_max_connections: u64,
|
|
#[serde(rename = "poolTimeoutCreate")]
|
|
pub pool_timeout_create: Duration,
|
|
#[serde(rename = "poolTimeoutRecycle")]
|
|
pub pool_timeout_recycle: Duration,
|
|
#[serde(rename = "poolTimeoutWait")]
|
|
pub pool_timeout_wait: Duration,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Log {
|
|
#[serde(rename = "timestamp")]
|
|
pub timestamp: UTCDateTime,
|
|
#[serde(rename = "level")]
|
|
pub level: TracingLevel,
|
|
#[serde(rename = "event")]
|
|
pub event: trc::EventType,
|
|
#[serde(rename = "details")]
|
|
pub details: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum LookupStore {
|
|
PostgreSql(PostgreSqlStore),
|
|
MySql(MySqlStore),
|
|
Sqlite(SqliteStore),
|
|
Sharded(ShardedInMemoryStore),
|
|
Redis(RedisStore),
|
|
RedisCluster(RedisClusterStore),
|
|
RedisSentinel(RedisSentinelStore),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MailExchanger {
|
|
#[serde(rename = "hostname")]
|
|
pub hostname: Option<String>,
|
|
#[serde(rename = "priority")]
|
|
pub priority: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MailingList {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "domainId")]
|
|
pub domain_id: Id,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "aliases")]
|
|
pub aliases: List<EmailAlias>,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "recipients")]
|
|
pub recipients: Map<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MaskedEmail {
|
|
#[serde(rename = "enabled")]
|
|
pub enabled: bool,
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "email")]
|
|
pub email: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "forDomain")]
|
|
pub for_domain: Option<String>,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "createdBy")]
|
|
pub created_by: Option<String>,
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: Option<UTCDateTime>,
|
|
#[serde(rename = "url")]
|
|
pub url: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MeilisearchStore {
|
|
#[serde(rename = "url")]
|
|
pub url: String,
|
|
#[serde(rename = "pollInterval")]
|
|
pub poll_interval: Duration,
|
|
#[serde(rename = "maxRetries")]
|
|
pub max_retries: u64,
|
|
#[serde(rename = "failOnTimeout")]
|
|
pub fail_on_timeout: bool,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "allowInvalidCerts")]
|
|
pub allow_invalid_certs: bool,
|
|
#[serde(rename = "httpAuth")]
|
|
pub http_auth: HttpAuth,
|
|
#[serde(rename = "httpHeaders")]
|
|
pub http_headers: VecMap<String, String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MemoryLookupKey {
|
|
#[serde(rename = "namespace")]
|
|
pub namespace: String,
|
|
#[serde(rename = "key")]
|
|
pub key: String,
|
|
#[serde(rename = "isGlobPattern")]
|
|
pub is_glob_pattern: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MemoryLookupKeyValue {
|
|
#[serde(rename = "namespace")]
|
|
pub namespace: String,
|
|
#[serde(rename = "key")]
|
|
pub key: String,
|
|
#[serde(rename = "value")]
|
|
pub value: String,
|
|
#[serde(rename = "isGlobPattern")]
|
|
pub is_glob_pattern: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum Metric {
|
|
Counter(MetricCount),
|
|
Gauge(MetricCount),
|
|
Histogram(MetricSum),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MetricCount {
|
|
#[serde(rename = "count")]
|
|
pub count: u64,
|
|
#[serde(rename = "metric")]
|
|
pub metric: trc::MetricType,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MetricSum {
|
|
#[serde(rename = "count")]
|
|
pub count: u64,
|
|
#[serde(rename = "sum")]
|
|
pub sum: u64,
|
|
#[serde(rename = "metric")]
|
|
pub metric: trc::MetricType,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Metrics {
|
|
#[serde(rename = "openTelemetry")]
|
|
pub open_telemetry: MetricsOtel,
|
|
#[serde(rename = "prometheus")]
|
|
pub prometheus: MetricsPrometheus,
|
|
#[serde(rename = "metrics")]
|
|
pub metrics: Map<trc::MetricType>,
|
|
#[serde(rename = "metricsPolicy")]
|
|
pub metrics_policy: EventPolicy,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum MetricsOtel {
|
|
Disabled,
|
|
Http(MetricsOtelHttp),
|
|
Grpc(MetricsOtelGrpc),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MetricsOtelGrpc {
|
|
#[serde(rename = "endpoint")]
|
|
pub endpoint: Option<String>,
|
|
#[serde(rename = "interval")]
|
|
pub interval: Duration,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MetricsOtelHttp {
|
|
#[serde(rename = "endpoint")]
|
|
pub endpoint: String,
|
|
#[serde(rename = "interval")]
|
|
pub interval: Duration,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "httpAuth")]
|
|
pub http_auth: HttpAuth,
|
|
#[serde(rename = "httpHeaders")]
|
|
pub http_headers: VecMap<String, String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum MetricsPrometheus {
|
|
Disabled,
|
|
Enabled(MetricsPrometheusProperties),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MetricsPrometheusProperties {
|
|
#[serde(rename = "authSecret")]
|
|
pub auth_secret: SecretKeyOptional,
|
|
#[serde(rename = "authUsername")]
|
|
pub auth_username: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum MetricsStore {
|
|
Disabled,
|
|
Default,
|
|
FoundationDb(FoundationDbStore),
|
|
PostgreSql(PostgreSqlStore),
|
|
MySql(MySqlStore),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaConnectionIpHost {
|
|
#[serde(rename = "ehloHostname")]
|
|
pub ehlo_hostname: Option<String>,
|
|
#[serde(rename = "sourceIp")]
|
|
pub source_ip: IpAddr,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaConnectionStrategy {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "ehloHostname")]
|
|
pub ehlo_hostname: Option<String>,
|
|
#[serde(rename = "sourceIps")]
|
|
pub source_ips: List<MtaConnectionIpHost>,
|
|
#[serde(rename = "connectTimeout")]
|
|
pub connect_timeout: Duration,
|
|
#[serde(rename = "dataTimeout")]
|
|
pub data_timeout: Duration,
|
|
#[serde(rename = "ehloTimeout")]
|
|
pub ehlo_timeout: Duration,
|
|
#[serde(rename = "greetingTimeout")]
|
|
pub greeting_timeout: Duration,
|
|
#[serde(rename = "mailFromTimeout")]
|
|
pub mail_from_timeout: Duration,
|
|
#[serde(rename = "rcptToTimeout")]
|
|
pub rcpt_to_timeout: Duration,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum MtaDeliveryExpiration {
|
|
Ttl(MtaDeliveryExpirationTtl),
|
|
Attempts(MtaDeliveryExpirationAttempts),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaDeliveryExpirationAttempts {
|
|
#[serde(rename = "maxAttempts")]
|
|
pub max_attempts: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaDeliveryExpirationTtl {
|
|
#[serde(rename = "expire")]
|
|
pub expire: Duration,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaDeliverySchedule {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "expiry")]
|
|
pub expiry: MtaDeliveryExpiration,
|
|
#[serde(rename = "notify")]
|
|
pub notify: MtaDeliveryScheduleIntervalsOrDefault,
|
|
#[serde(rename = "queueId")]
|
|
pub queue_id: Id,
|
|
#[serde(rename = "retry")]
|
|
pub retry: MtaDeliveryScheduleIntervalsOrDefault,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaDeliveryScheduleInterval {
|
|
#[serde(rename = "duration")]
|
|
pub duration: Duration,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaDeliveryScheduleIntervals {
|
|
#[serde(rename = "intervals")]
|
|
pub intervals: List<MtaDeliveryScheduleInterval>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum MtaDeliveryScheduleIntervalsOrDefault {
|
|
Default,
|
|
Custom(MtaDeliveryScheduleIntervals),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaExtensions {
|
|
#[serde(rename = "chunking")]
|
|
pub chunking: Expression,
|
|
#[serde(rename = "deliverBy")]
|
|
pub deliver_by: Expression,
|
|
#[serde(rename = "dsn")]
|
|
pub dsn: Expression,
|
|
#[serde(rename = "expn")]
|
|
pub expn: Expression,
|
|
#[serde(rename = "futureRelease")]
|
|
pub future_release: Expression,
|
|
#[serde(rename = "mtPriority")]
|
|
pub mt_priority: Expression,
|
|
#[serde(rename = "noSoliciting")]
|
|
pub no_soliciting: Expression,
|
|
#[serde(rename = "pipelining")]
|
|
pub pipelining: Expression,
|
|
#[serde(rename = "requireTls")]
|
|
pub require_tls: Expression,
|
|
#[serde(rename = "vrfy")]
|
|
pub vrfy: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaHook {
|
|
#[serde(rename = "allowInvalidCerts")]
|
|
pub allow_invalid_certs: bool,
|
|
#[serde(rename = "enable")]
|
|
pub enable: Expression,
|
|
#[serde(rename = "maxResponseSize")]
|
|
pub max_response_size: u64,
|
|
#[serde(rename = "tempFailOnError")]
|
|
pub temp_fail_on_error: bool,
|
|
#[serde(rename = "stages")]
|
|
pub stages: Map<MtaStage>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "url")]
|
|
pub url: String,
|
|
#[serde(rename = "httpAuth")]
|
|
pub http_auth: HttpAuth,
|
|
#[serde(rename = "httpHeaders")]
|
|
pub http_headers: VecMap<String, String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaInboundSession {
|
|
#[serde(rename = "maxDuration")]
|
|
pub max_duration: Expression,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Expression,
|
|
#[serde(rename = "transferLimit")]
|
|
pub transfer_limit: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaInboundThrottle {
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "key")]
|
|
pub key: Map<MtaInboundThrottleKey>,
|
|
#[serde(rename = "match")]
|
|
pub match_: Expression,
|
|
#[serde(rename = "rate")]
|
|
pub rate: Rate,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaMilter {
|
|
#[serde(rename = "allowInvalidCerts")]
|
|
pub allow_invalid_certs: bool,
|
|
#[serde(rename = "enable")]
|
|
pub enable: Expression,
|
|
#[serde(rename = "hostname")]
|
|
pub hostname: String,
|
|
#[serde(rename = "maxResponseSize")]
|
|
pub max_response_size: u64,
|
|
#[serde(rename = "tempFailOnError")]
|
|
pub temp_fail_on_error: bool,
|
|
#[serde(rename = "protocolVersion")]
|
|
pub protocol_version: MilterVersion,
|
|
#[serde(rename = "port")]
|
|
pub port: u64,
|
|
#[serde(rename = "stages")]
|
|
pub stages: Map<MtaStage>,
|
|
#[serde(rename = "timeoutCommand")]
|
|
pub timeout_command: Duration,
|
|
#[serde(rename = "timeoutConnect")]
|
|
pub timeout_connect: Duration,
|
|
#[serde(rename = "timeoutData")]
|
|
pub timeout_data: Duration,
|
|
#[serde(rename = "useTls")]
|
|
pub use_tls: bool,
|
|
#[serde(rename = "flagsAction")]
|
|
pub flags_action: Option<u64>,
|
|
#[serde(rename = "flagsProtocol")]
|
|
pub flags_protocol: Option<u64>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaOutboundStrategy {
|
|
#[serde(rename = "connection")]
|
|
pub connection: Expression,
|
|
#[serde(rename = "route")]
|
|
pub route: Expression,
|
|
#[serde(rename = "schedule")]
|
|
pub schedule: Expression,
|
|
#[serde(rename = "tls")]
|
|
pub tls: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaOutboundThrottle {
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "key")]
|
|
pub key: Map<MtaOutboundThrottleKey>,
|
|
#[serde(rename = "match")]
|
|
pub match_: Expression,
|
|
#[serde(rename = "rate")]
|
|
pub rate: Rate,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaQueueQuota {
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "key")]
|
|
pub key: Map<MtaQueueQuotaKey>,
|
|
#[serde(rename = "match")]
|
|
pub match_: Expression,
|
|
#[serde(rename = "messages")]
|
|
pub messages: Option<u64>,
|
|
#[serde(rename = "size")]
|
|
pub size: Option<u64>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum MtaRoute {
|
|
Mx(MtaRouteMx),
|
|
Relay(MtaRouteRelay),
|
|
Local(MtaRouteCommon),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaRouteCommon {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaRouteMx {
|
|
#[serde(rename = "ipLookupStrategy")]
|
|
pub ip_lookup_strategy: MtaIpStrategy,
|
|
#[serde(rename = "maxMultihomed")]
|
|
pub max_multihomed: u64,
|
|
#[serde(rename = "maxMxHosts")]
|
|
pub max_mx_hosts: u64,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaRouteRelay {
|
|
#[serde(rename = "address")]
|
|
pub address: String,
|
|
#[serde(rename = "authSecret")]
|
|
pub auth_secret: SecretKeyOptional,
|
|
#[serde(rename = "authUsername")]
|
|
pub auth_username: Option<String>,
|
|
#[serde(rename = "port")]
|
|
pub port: u64,
|
|
#[serde(rename = "protocol")]
|
|
pub protocol: MtaProtocol,
|
|
#[serde(rename = "allowInvalidCerts")]
|
|
pub allow_invalid_certs: bool,
|
|
#[serde(rename = "implicitTls")]
|
|
pub implicit_tls: bool,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaStageAuth {
|
|
#[serde(rename = "maxFailures")]
|
|
pub max_failures: Expression,
|
|
#[serde(rename = "waitOnFail")]
|
|
pub wait_on_fail: Expression,
|
|
#[serde(rename = "saslMechanisms")]
|
|
pub sasl_mechanisms: Expression,
|
|
#[serde(rename = "mustMatchSender")]
|
|
pub must_match_sender: Expression,
|
|
#[serde(rename = "require")]
|
|
pub require: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaStageConnect {
|
|
#[serde(rename = "smtpGreeting")]
|
|
pub smtp_greeting: Expression,
|
|
#[serde(rename = "hostname")]
|
|
pub hostname: Expression,
|
|
#[serde(rename = "script")]
|
|
pub script: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaStageData {
|
|
#[serde(rename = "addAuthResultsHeader")]
|
|
pub add_auth_results_header: Expression,
|
|
#[serde(rename = "addDateHeader")]
|
|
pub add_date_header: Expression,
|
|
#[serde(rename = "addDeliveredToHeader")]
|
|
pub add_delivered_to_header: bool,
|
|
#[serde(rename = "addMessageIdHeader")]
|
|
pub add_message_id_header: Expression,
|
|
#[serde(rename = "addReceivedHeader")]
|
|
pub add_received_header: Expression,
|
|
#[serde(rename = "addReceivedSpfHeader")]
|
|
pub add_received_spf_header: Expression,
|
|
#[serde(rename = "addReturnPathHeader")]
|
|
pub add_return_path_header: Expression,
|
|
#[serde(rename = "maxMessages")]
|
|
pub max_messages: Expression,
|
|
#[serde(rename = "maxReceivedHeaders")]
|
|
pub max_received_headers: Expression,
|
|
#[serde(rename = "maxMessageSize")]
|
|
pub max_message_size: Expression,
|
|
#[serde(rename = "script")]
|
|
pub script: Expression,
|
|
#[serde(rename = "enableSpamFilter")]
|
|
pub enable_spam_filter: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaStageEhlo {
|
|
#[serde(rename = "rejectNonFqdn")]
|
|
pub reject_non_fqdn: Expression,
|
|
#[serde(rename = "require")]
|
|
pub require: Expression,
|
|
#[serde(rename = "script")]
|
|
pub script: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaStageMail {
|
|
#[serde(rename = "isSenderAllowed")]
|
|
pub is_sender_allowed: Expression,
|
|
#[serde(rename = "rewrite")]
|
|
pub rewrite: Expression,
|
|
#[serde(rename = "script")]
|
|
pub script: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaStageRcpt {
|
|
#[serde(rename = "maxFailures")]
|
|
pub max_failures: Expression,
|
|
#[serde(rename = "waitOnFail")]
|
|
pub wait_on_fail: Expression,
|
|
#[serde(rename = "maxRecipients")]
|
|
pub max_recipients: Expression,
|
|
#[serde(rename = "allowRelaying")]
|
|
pub allow_relaying: Expression,
|
|
#[serde(rename = "rewrite")]
|
|
pub rewrite: Expression,
|
|
#[serde(rename = "script")]
|
|
pub script: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaSts {
|
|
#[serde(rename = "maxAge")]
|
|
pub max_age: Duration,
|
|
#[serde(rename = "mode")]
|
|
pub mode: PolicyEnforcement,
|
|
#[serde(rename = "mxHosts")]
|
|
pub mx_hosts: Map<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaTlsStrategy {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "allowInvalidCerts")]
|
|
pub allow_invalid_certs: bool,
|
|
#[serde(rename = "dane")]
|
|
pub dane: MtaRequiredOrOptional,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "mtaSts")]
|
|
pub mta_sts: MtaRequiredOrOptional,
|
|
#[serde(rename = "startTls")]
|
|
pub start_tls: MtaRequiredOrOptional,
|
|
#[serde(rename = "mtaStsTimeout")]
|
|
pub mta_sts_timeout: Duration,
|
|
#[serde(rename = "tlsTimeout")]
|
|
pub tls_timeout: Duration,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MtaVirtualQueue {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "threadsPerNode")]
|
|
pub threads_per_node: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MySqlSettings {
|
|
#[serde(rename = "host")]
|
|
pub host: String,
|
|
#[serde(rename = "port")]
|
|
pub port: u64,
|
|
#[serde(rename = "database")]
|
|
pub database: String,
|
|
#[serde(rename = "authUsername")]
|
|
pub auth_username: Option<String>,
|
|
#[serde(rename = "authSecret")]
|
|
pub auth_secret: SecretKeyOptional,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct MySqlStore {
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Option<Duration>,
|
|
#[serde(rename = "useTls")]
|
|
pub use_tls: bool,
|
|
#[serde(rename = "allowInvalidCerts")]
|
|
pub allow_invalid_certs: bool,
|
|
#[serde(rename = "maxAllowedPacket")]
|
|
pub max_allowed_packet: Option<u64>,
|
|
#[serde(rename = "poolMaxConnections")]
|
|
pub pool_max_connections: Option<u64>,
|
|
#[serde(rename = "poolMinConnections")]
|
|
pub pool_min_connections: Option<u64>,
|
|
#[serde(rename = "readReplicas")]
|
|
pub read_replicas: List<MySqlSettings>,
|
|
#[serde(rename = "host")]
|
|
pub host: String,
|
|
#[serde(rename = "port")]
|
|
pub port: u64,
|
|
#[serde(rename = "database")]
|
|
pub database: String,
|
|
#[serde(rename = "authUsername")]
|
|
pub auth_username: Option<String>,
|
|
#[serde(rename = "authSecret")]
|
|
pub auth_secret: SecretKeyOptional,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct NatsCoordinator {
|
|
#[serde(rename = "addresses")]
|
|
pub addresses: Map<String>,
|
|
#[serde(rename = "maxReconnects")]
|
|
pub max_reconnects: Option<u64>,
|
|
#[serde(rename = "timeoutConnection")]
|
|
pub timeout_connection: Duration,
|
|
#[serde(rename = "timeoutRequest")]
|
|
pub timeout_request: Duration,
|
|
#[serde(rename = "pingInterval")]
|
|
pub ping_interval: Duration,
|
|
#[serde(rename = "capacityClient")]
|
|
pub capacity_client: u64,
|
|
#[serde(rename = "capacityReadBuffer")]
|
|
pub capacity_read_buffer: u64,
|
|
#[serde(rename = "capacitySubscription")]
|
|
pub capacity_subscription: u64,
|
|
#[serde(rename = "noEcho")]
|
|
pub no_echo: bool,
|
|
#[serde(rename = "useTls")]
|
|
pub use_tls: bool,
|
|
#[serde(rename = "authSecret")]
|
|
pub auth_secret: SecretKeyOptional,
|
|
#[serde(rename = "authUsername")]
|
|
pub auth_username: Option<String>,
|
|
#[serde(rename = "credentials")]
|
|
pub credentials: SecretTextOptional,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct NetworkListener {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "bind")]
|
|
pub bind: Map<SocketAddr>,
|
|
#[serde(rename = "protocol")]
|
|
pub protocol: NetworkListenerProtocol,
|
|
#[serde(rename = "overrideProxyTrustedNetworks")]
|
|
pub override_proxy_trusted_networks: Map<IpAddrOrMask>,
|
|
#[serde(rename = "socketBacklog")]
|
|
pub socket_backlog: Option<u64>,
|
|
#[serde(rename = "socketNoDelay")]
|
|
pub socket_no_delay: bool,
|
|
#[serde(rename = "socketReceiveBufferSize")]
|
|
pub socket_receive_buffer_size: Option<u64>,
|
|
#[serde(rename = "socketReuseAddress")]
|
|
pub socket_reuse_address: bool,
|
|
#[serde(rename = "socketReusePort")]
|
|
pub socket_reuse_port: bool,
|
|
#[serde(rename = "socketSendBufferSize")]
|
|
pub socket_send_buffer_size: Option<u64>,
|
|
#[serde(rename = "socketTosV4")]
|
|
pub socket_tos_v4: Option<u64>,
|
|
#[serde(rename = "socketTtl")]
|
|
pub socket_ttl: Option<u64>,
|
|
#[serde(rename = "useTls")]
|
|
pub use_tls: bool,
|
|
#[serde(rename = "tlsDisableCipherSuites")]
|
|
pub tls_disable_cipher_suites: Map<TlsCipherSuite>,
|
|
#[serde(rename = "tlsDisableProtocols")]
|
|
pub tls_disable_protocols: Map<TlsVersion>,
|
|
#[serde(rename = "tlsIgnoreClientOrder")]
|
|
pub tls_ignore_client_order: bool,
|
|
#[serde(rename = "tlsImplicit")]
|
|
pub tls_implicit: bool,
|
|
#[serde(rename = "tlsTimeout")]
|
|
pub tls_timeout: Option<Duration>,
|
|
#[serde(rename = "maxConnections")]
|
|
pub max_connections: Option<u64>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct OAuthClient {
|
|
#[serde(rename = "clientId")]
|
|
pub client_id: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "contacts")]
|
|
pub contacts: Map<String>,
|
|
#[serde(rename = "secret")]
|
|
pub secret: Option<String>,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: Option<UTCDateTime>,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "redirectUris")]
|
|
pub redirect_uris: Map<String>,
|
|
#[serde(rename = "logo")]
|
|
pub logo: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct OidcDirectory {
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "issuerUrl")]
|
|
pub issuer_url: String,
|
|
#[serde(rename = "requireAudience")]
|
|
pub require_audience: Option<String>,
|
|
#[serde(rename = "requireScopes")]
|
|
pub require_scopes: Map<String>,
|
|
#[serde(rename = "claimUsername")]
|
|
pub claim_username: String,
|
|
#[serde(rename = "usernameDomain")]
|
|
pub username_domain: Option<String>,
|
|
#[serde(rename = "claimName")]
|
|
pub claim_name: Option<String>,
|
|
#[serde(rename = "claimGroups")]
|
|
pub claim_groups: Option<String>,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct OidcProvider {
|
|
#[serde(rename = "authCodeMaxAttempts")]
|
|
pub auth_code_max_attempts: u64,
|
|
#[serde(rename = "anonymousClientRegistration")]
|
|
pub anonymous_client_registration: bool,
|
|
#[serde(rename = "requireClientRegistration")]
|
|
pub require_client_registration: bool,
|
|
#[serde(rename = "authCodeExpiry")]
|
|
pub auth_code_expiry: Duration,
|
|
#[serde(rename = "refreshTokenExpiry")]
|
|
pub refresh_token_expiry: Duration,
|
|
#[serde(rename = "refreshTokenRenewal")]
|
|
pub refresh_token_renewal: Duration,
|
|
#[serde(rename = "accessTokenExpiry")]
|
|
pub access_token_expiry: Duration,
|
|
#[serde(rename = "userCodeExpiry")]
|
|
pub user_code_expiry: Duration,
|
|
#[serde(rename = "idTokenExpiry")]
|
|
pub id_token_expiry: Duration,
|
|
#[serde(rename = "encryptionKey")]
|
|
pub encryption_key: SecretKey,
|
|
#[serde(rename = "signatureAlgorithm")]
|
|
pub signature_algorithm: JwtSignatureAlgorithm,
|
|
#[serde(rename = "signatureKey")]
|
|
pub signature_key: SecretText,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct OtpAuth {
|
|
#[serde(rename = "otpCode")]
|
|
pub otp_code: Option<String>,
|
|
#[serde(rename = "otpUrl")]
|
|
pub otp_url: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct PasswordCredential {
|
|
#[serde(rename = "credentialId")]
|
|
pub credential_id: Id,
|
|
#[serde(rename = "secret")]
|
|
pub secret: String,
|
|
#[serde(rename = "otpAuth")]
|
|
pub otp_auth: Option<String>,
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: Option<UTCDateTime>,
|
|
#[serde(rename = "allowedIps")]
|
|
pub allowed_ips: Map<IpAddrOrMask>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum Permissions {
|
|
Inherit,
|
|
Merge(PermissionsList),
|
|
Replace(PermissionsList),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct PermissionsList {
|
|
#[serde(rename = "enabledPermissions")]
|
|
pub enabled_permissions: Map<Permission>,
|
|
#[serde(rename = "disabledPermissions")]
|
|
pub disabled_permissions: Map<Permission>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct PostgreSqlSettings {
|
|
#[serde(rename = "host")]
|
|
pub host: String,
|
|
#[serde(rename = "port")]
|
|
pub port: u64,
|
|
#[serde(rename = "database")]
|
|
pub database: String,
|
|
#[serde(rename = "authUsername")]
|
|
pub auth_username: Option<String>,
|
|
#[serde(rename = "authSecret")]
|
|
pub auth_secret: SecretKeyOptional,
|
|
#[serde(rename = "options")]
|
|
pub options: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct PostgreSqlStore {
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Option<Duration>,
|
|
#[serde(rename = "useTls")]
|
|
pub use_tls: bool,
|
|
#[serde(rename = "allowInvalidCerts")]
|
|
pub allow_invalid_certs: bool,
|
|
#[serde(rename = "poolMaxConnections")]
|
|
pub pool_max_connections: Option<u64>,
|
|
#[serde(rename = "poolRecyclingMethod")]
|
|
pub pool_recycling_method: PostgreSqlRecyclingMethod,
|
|
#[serde(rename = "readReplicas")]
|
|
pub read_replicas: List<PostgreSqlSettings>,
|
|
#[serde(rename = "host")]
|
|
pub host: String,
|
|
#[serde(rename = "port")]
|
|
pub port: u64,
|
|
#[serde(rename = "database")]
|
|
pub database: String,
|
|
#[serde(rename = "authUsername")]
|
|
pub auth_username: Option<String>,
|
|
#[serde(rename = "authSecret")]
|
|
pub auth_secret: SecretKeyOptional,
|
|
#[serde(rename = "options")]
|
|
pub options: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct PublicKey {
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "key")]
|
|
pub key: String,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: Option<UTCDateTime>,
|
|
#[serde(rename = "emailAddresses")]
|
|
pub email_addresses: Map<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum PublicStringOptional {
|
|
None,
|
|
Value(PublicStringValue),
|
|
EnvironmentVariable(SecretKeyEnvironmentVariable),
|
|
File(SecretKeyFile),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct PublicStringValue {
|
|
#[serde(rename = "value")]
|
|
pub value: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum PublicText {
|
|
Text(PublicTextValue),
|
|
EnvironmentVariable(SecretKeyEnvironmentVariable),
|
|
File(SecretKeyFile),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct PublicTextValue {
|
|
#[serde(rename = "value")]
|
|
pub value: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum QueueExpiry {
|
|
Ttl(QueueExpiryTtl),
|
|
Attempts(QueueExpiryAttempts),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct QueueExpiryAttempts {
|
|
#[serde(rename = "expiresAttempts")]
|
|
pub expires_attempts: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct QueueExpiryTtl {
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: UTCDateTime,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct QueuedMessage {
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "nextRetry")]
|
|
pub next_retry: Option<UTCDateTime>,
|
|
#[serde(rename = "nextNotify")]
|
|
pub next_notify: Option<UTCDateTime>,
|
|
#[serde(rename = "blobId")]
|
|
pub blob_id: BlobId,
|
|
#[serde(rename = "returnPath")]
|
|
pub return_path: String,
|
|
#[serde(rename = "recipients")]
|
|
pub recipients: VecMap<String, QueuedRecipient>,
|
|
#[serde(rename = "receivedFromIp")]
|
|
pub received_from_ip: IpAddr,
|
|
#[serde(rename = "receivedViaPort")]
|
|
pub received_via_port: u64,
|
|
#[serde(rename = "flags")]
|
|
pub flags: Map<MessageFlag>,
|
|
#[serde(rename = "envId")]
|
|
pub env_id: Option<String>,
|
|
#[serde(rename = "priority")]
|
|
pub priority: i64,
|
|
#[serde(rename = "size")]
|
|
pub size: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct QueuedRecipient {
|
|
#[serde(rename = "retryCount")]
|
|
pub retry_count: u64,
|
|
#[serde(rename = "retryDue")]
|
|
pub retry_due: UTCDateTime,
|
|
#[serde(rename = "notifyCount")]
|
|
pub notify_count: u64,
|
|
#[serde(rename = "notifyDue")]
|
|
pub notify_due: UTCDateTime,
|
|
#[serde(rename = "expires")]
|
|
pub expires: QueueExpiry,
|
|
#[serde(rename = "queueName")]
|
|
pub queue_name: String,
|
|
#[serde(rename = "status")]
|
|
pub status: RecipientStatus,
|
|
#[serde(rename = "flags")]
|
|
pub flags: Map<RecipientFlag>,
|
|
#[serde(rename = "orcpt")]
|
|
pub orcpt: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Rate {
|
|
#[serde(rename = "count")]
|
|
pub count: u64,
|
|
#[serde(rename = "period")]
|
|
pub period: Duration,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum RecipientStatus {
|
|
Scheduled,
|
|
Completed(ServerResponse),
|
|
TemporaryFailure(DeliveryError),
|
|
PermanentFailure(DeliveryError),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct RedisClusterStore {
|
|
#[serde(rename = "urls")]
|
|
pub urls: Map<String>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "authUsername")]
|
|
pub auth_username: Option<String>,
|
|
#[serde(rename = "authSecret")]
|
|
pub auth_secret: SecretKeyOptional,
|
|
#[serde(rename = "maxRetryWait")]
|
|
pub max_retry_wait: Option<Duration>,
|
|
#[serde(rename = "minRetryWait")]
|
|
pub min_retry_wait: Option<Duration>,
|
|
#[serde(rename = "maxRetries")]
|
|
pub max_retries: Option<u64>,
|
|
#[serde(rename = "readFromReplicas")]
|
|
pub read_from_replicas: bool,
|
|
#[serde(rename = "protocolVersion")]
|
|
pub protocol_version: RedisProtocol,
|
|
#[serde(rename = "poolMaxConnections")]
|
|
pub pool_max_connections: u64,
|
|
#[serde(rename = "poolTimeoutCreate")]
|
|
pub pool_timeout_create: Option<Duration>,
|
|
#[serde(rename = "poolTimeoutWait")]
|
|
pub pool_timeout_wait: Option<Duration>,
|
|
#[serde(rename = "poolTimeoutRecycle")]
|
|
pub pool_timeout_recycle: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct RedisSentinelStore {
|
|
#[serde(rename = "urls")]
|
|
pub urls: Map<String>,
|
|
#[serde(rename = "serviceName")]
|
|
pub service_name: String,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "authUsername")]
|
|
pub auth_username: Option<String>,
|
|
#[serde(rename = "authSecret")]
|
|
pub auth_secret: SecretKeyOptional,
|
|
#[serde(rename = "sentinelUsername")]
|
|
pub sentinel_username: Option<String>,
|
|
#[serde(rename = "sentinelSecret")]
|
|
pub sentinel_secret: SecretKeyOptional,
|
|
#[serde(rename = "protocolVersion")]
|
|
pub protocol_version: RedisProtocol,
|
|
#[serde(rename = "poolMaxConnections")]
|
|
pub pool_max_connections: u64,
|
|
#[serde(rename = "poolTimeoutCreate")]
|
|
pub pool_timeout_create: Option<Duration>,
|
|
#[serde(rename = "poolTimeoutWait")]
|
|
pub pool_timeout_wait: Option<Duration>,
|
|
#[serde(rename = "poolTimeoutRecycle")]
|
|
pub pool_timeout_recycle: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct RedisStore {
|
|
#[serde(rename = "url")]
|
|
pub url: String,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "poolMaxConnections")]
|
|
pub pool_max_connections: u64,
|
|
#[serde(rename = "poolTimeoutCreate")]
|
|
pub pool_timeout_create: Option<Duration>,
|
|
#[serde(rename = "poolTimeoutWait")]
|
|
pub pool_timeout_wait: Option<Duration>,
|
|
#[serde(rename = "poolTimeoutRecycle")]
|
|
pub pool_timeout_recycle: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ReportSettings {
|
|
#[serde(rename = "inboundReportAddresses")]
|
|
pub inbound_report_addresses: Map<String>,
|
|
#[serde(rename = "inboundReportForwarding")]
|
|
pub inbound_report_forwarding: bool,
|
|
#[serde(rename = "outboundReportDomain")]
|
|
pub outbound_report_domain: Option<String>,
|
|
#[serde(rename = "outboundReportSubmitter")]
|
|
pub outbound_report_submitter: Expression,
|
|
#[serde(rename = "inboundReportMaxSize")]
|
|
pub inbound_report_max_size: i64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct RocksDbStore {
|
|
#[serde(rename = "path")]
|
|
pub path: String,
|
|
#[serde(rename = "blobSize")]
|
|
pub blob_size: u64,
|
|
#[serde(rename = "bufferSize")]
|
|
pub buffer_size: u64,
|
|
#[serde(rename = "poolWorkers")]
|
|
pub pool_workers: Option<u64>,
|
|
#[serde(rename = "cacheSize")]
|
|
pub cache_size: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Role {
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "roleIds")]
|
|
pub role_ids: Map<Id>,
|
|
#[serde(rename = "enabledPermissions")]
|
|
pub enabled_permissions: Map<Permission>,
|
|
#[serde(rename = "disabledPermissions")]
|
|
pub disabled_permissions: Map<Permission>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum Roles {
|
|
Default,
|
|
Custom(CustomRoles),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct S3Store {
|
|
#[serde(rename = "region")]
|
|
pub region: S3StoreRegion,
|
|
#[serde(rename = "bucket")]
|
|
pub bucket: String,
|
|
#[serde(rename = "accessKey")]
|
|
pub access_key: PublicStringOptional,
|
|
#[serde(rename = "secretKey")]
|
|
pub secret_key: SecretKeyOptional,
|
|
#[serde(rename = "securityToken")]
|
|
pub security_token: SecretKeyOptional,
|
|
#[serde(rename = "sessionToken")]
|
|
pub session_token: SecretKeyOptional,
|
|
#[serde(rename = "profile")]
|
|
pub profile: Option<String>,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "maxRetries")]
|
|
pub max_retries: u64,
|
|
#[serde(rename = "keyPrefix")]
|
|
pub key_prefix: Option<String>,
|
|
#[serde(rename = "allowInvalidCerts")]
|
|
pub allow_invalid_certs: bool,
|
|
#[serde(rename = "verifyAfterWrite")]
|
|
pub verify_after_write: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct S3StoreCustomRegion {
|
|
#[serde(rename = "customEndpoint")]
|
|
pub custom_endpoint: String,
|
|
#[serde(rename = "customRegion")]
|
|
pub custom_region: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum S3StoreRegion {
|
|
UsEast1,
|
|
UsEast2,
|
|
UsWest1,
|
|
UsWest2,
|
|
CaCentral1,
|
|
AfSouth1,
|
|
ApEast1,
|
|
ApSouth1,
|
|
ApNortheast1,
|
|
ApNortheast2,
|
|
ApNortheast3,
|
|
ApSoutheast1,
|
|
ApSoutheast2,
|
|
CnNorth1,
|
|
CnNorthwest1,
|
|
EuNorth1,
|
|
EuCentral1,
|
|
EuCentral2,
|
|
EuWest1,
|
|
EuWest2,
|
|
EuWest3,
|
|
IlCentral1,
|
|
MeSouth1,
|
|
SaEast1,
|
|
DoNyc3,
|
|
DoAms3,
|
|
DoSgp1,
|
|
DoFra1,
|
|
Yandex,
|
|
WaUsEast1,
|
|
WaUsEast2,
|
|
WaUsCentral1,
|
|
WaUsWest1,
|
|
WaCaCentral1,
|
|
WaEuCentral1,
|
|
WaEuCentral2,
|
|
WaEuWest1,
|
|
WaEuWest2,
|
|
WaApNortheast1,
|
|
WaApNortheast2,
|
|
WaApSoutheast1,
|
|
WaApSoutheast2,
|
|
Custom(S3StoreCustomRegion),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Search {
|
|
#[serde(rename = "indexBatchSize")]
|
|
pub index_batch_size: u64,
|
|
#[serde(rename = "defaultLanguage")]
|
|
pub default_language: Locale,
|
|
#[serde(rename = "supportedLanguages")]
|
|
pub supported_languages: Map<Locale>,
|
|
#[serde(rename = "indexCalendar")]
|
|
pub index_calendar: bool,
|
|
#[serde(rename = "indexCalendarFields")]
|
|
pub index_calendar_fields: Map<SearchCalendarField>,
|
|
#[serde(rename = "indexContacts")]
|
|
pub index_contacts: bool,
|
|
#[serde(rename = "indexContactFields")]
|
|
pub index_contact_fields: Map<SearchContactField>,
|
|
#[serde(rename = "indexEmail")]
|
|
pub index_email: bool,
|
|
#[serde(rename = "indexEmailFields")]
|
|
pub index_email_fields: Map<SearchEmailField>,
|
|
#[serde(rename = "indexTelemetry")]
|
|
pub index_telemetry: bool,
|
|
#[serde(rename = "indexTracingFields")]
|
|
pub index_tracing_fields: Map<SearchTracingField>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum SearchStore {
|
|
Default,
|
|
ElasticSearch(ElasticSearchStore),
|
|
Meilisearch(MeilisearchStore),
|
|
FoundationDb(FoundationDbStore),
|
|
PostgreSql(PostgreSqlStore),
|
|
MySql(MySqlStore),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SecondaryCredential {
|
|
#[serde(rename = "credentialId")]
|
|
pub credential_id: Id,
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "secret")]
|
|
pub secret: String,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: Option<UTCDateTime>,
|
|
#[serde(rename = "permissions")]
|
|
pub permissions: CredentialPermissions,
|
|
#[serde(rename = "allowedIps")]
|
|
pub allowed_ips: Map<IpAddrOrMask>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum SecretKey {
|
|
Value(SecretKeyValue),
|
|
EnvironmentVariable(SecretKeyEnvironmentVariable),
|
|
File(SecretKeyFile),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SecretKeyEnvironmentVariable {
|
|
#[serde(rename = "variableName")]
|
|
pub variable_name: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SecretKeyFile {
|
|
#[serde(rename = "filePath")]
|
|
pub file_path: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum SecretKeyOptional {
|
|
None,
|
|
Value(SecretKeyValue),
|
|
EnvironmentVariable(SecretKeyEnvironmentVariable),
|
|
File(SecretKeyFile),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SecretKeyValue {
|
|
#[serde(rename = "secret")]
|
|
pub secret: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum SecretText {
|
|
Text(SecretTextValue),
|
|
EnvironmentVariable(SecretKeyEnvironmentVariable),
|
|
File(SecretKeyFile),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum SecretTextOptional {
|
|
None,
|
|
Text(SecretTextValue),
|
|
EnvironmentVariable(SecretKeyEnvironmentVariable),
|
|
File(SecretKeyFile),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SecretTextValue {
|
|
#[serde(rename = "secret")]
|
|
pub secret: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Security {
|
|
#[serde(rename = "abuseBanRate")]
|
|
pub abuse_ban_rate: Option<Rate>,
|
|
#[serde(rename = "abuseBanPeriod")]
|
|
pub abuse_ban_period: Option<Duration>,
|
|
#[serde(rename = "authBanRate")]
|
|
pub auth_ban_rate: Option<Rate>,
|
|
#[serde(rename = "authBanPeriod")]
|
|
pub auth_ban_period: Option<Duration>,
|
|
#[serde(rename = "loiterBanRate")]
|
|
pub loiter_ban_rate: Option<Rate>,
|
|
#[serde(rename = "loiterBanPeriod")]
|
|
pub loiter_ban_period: Option<Duration>,
|
|
#[serde(rename = "scanBanPaths")]
|
|
pub scan_ban_paths: Map<String>,
|
|
#[serde(rename = "scanBanRate")]
|
|
pub scan_ban_rate: Option<Rate>,
|
|
#[serde(rename = "scanBanPeriod")]
|
|
pub scan_ban_period: Option<Duration>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SenderAuth {
|
|
#[serde(rename = "dkimSignDomain")]
|
|
pub dkim_sign_domain: Expression,
|
|
#[serde(rename = "dkimStrict")]
|
|
pub dkim_strict: bool,
|
|
#[serde(rename = "dkimVerify")]
|
|
pub dkim_verify: Expression,
|
|
#[serde(rename = "spfEhloVerify")]
|
|
pub spf_ehlo_verify: Expression,
|
|
#[serde(rename = "spfFromVerify")]
|
|
pub spf_from_verify: Expression,
|
|
#[serde(rename = "arcVerify")]
|
|
pub arc_verify: Expression,
|
|
#[serde(rename = "dmarcVerify")]
|
|
pub dmarc_verify: Expression,
|
|
#[serde(rename = "reverseIpVerify")]
|
|
pub reverse_ip_verify: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ServerResponse {
|
|
#[serde(rename = "responseHostname")]
|
|
pub response_hostname: Option<String>,
|
|
#[serde(rename = "responseCode")]
|
|
pub response_code: Option<u64>,
|
|
#[serde(rename = "responseEnhanced")]
|
|
pub response_enhanced: Option<String>,
|
|
#[serde(rename = "responseMessage")]
|
|
pub response_message: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Service {
|
|
#[serde(rename = "hostname")]
|
|
pub hostname: Option<String>,
|
|
#[serde(rename = "cleartext")]
|
|
pub cleartext: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ShardedBlobStore {
|
|
#[serde(rename = "stores")]
|
|
pub stores: List<BlobStoreBase>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ShardedInMemoryStore {
|
|
#[serde(rename = "stores")]
|
|
pub stores: List<InMemoryStoreBase>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Sharing {
|
|
#[serde(rename = "allowDirectoryQueries")]
|
|
pub allow_directory_queries: bool,
|
|
#[serde(rename = "maxShares")]
|
|
pub max_shares: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SieveSystemInterpreter {
|
|
#[serde(rename = "defaultFromAddress")]
|
|
pub default_from_address: Expression,
|
|
#[serde(rename = "defaultFromName")]
|
|
pub default_from_name: Expression,
|
|
#[serde(rename = "messageIdHostname")]
|
|
pub message_id_hostname: Option<String>,
|
|
#[serde(rename = "duplicateExpiry")]
|
|
pub duplicate_expiry: Duration,
|
|
#[serde(rename = "noCapabilityCheck")]
|
|
pub no_capability_check: bool,
|
|
#[serde(rename = "defaultReturnPath")]
|
|
pub default_return_path: Expression,
|
|
#[serde(rename = "dkimSignDomain")]
|
|
pub dkim_sign_domain: Expression,
|
|
#[serde(rename = "maxCpuCycles")]
|
|
pub max_cpu_cycles: u64,
|
|
#[serde(rename = "maxNestedIncludes")]
|
|
pub max_nested_includes: u64,
|
|
#[serde(rename = "maxOutMessages")]
|
|
pub max_out_messages: u64,
|
|
#[serde(rename = "maxReceivedHeaders")]
|
|
pub max_received_headers: u64,
|
|
#[serde(rename = "maxRedirects")]
|
|
pub max_redirects: u64,
|
|
#[serde(rename = "maxVarSize")]
|
|
pub max_var_size: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SieveSystemScript {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "isActive")]
|
|
pub is_active: bool,
|
|
#[serde(rename = "contents")]
|
|
pub contents: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SieveUserInterpreter {
|
|
#[serde(rename = "defaultExpiryDuplicate")]
|
|
pub default_expiry_duplicate: Duration,
|
|
#[serde(rename = "defaultExpiryVacation")]
|
|
pub default_expiry_vacation: Duration,
|
|
#[serde(rename = "disableCapabilities")]
|
|
pub disable_capabilities: Map<SieveCapability>,
|
|
#[serde(rename = "allowedNotifyUris")]
|
|
pub allowed_notify_uris: Map<String>,
|
|
#[serde(rename = "protectedHeaders")]
|
|
pub protected_headers: Map<String>,
|
|
#[serde(rename = "defaultSubject")]
|
|
pub default_subject: String,
|
|
#[serde(rename = "defaultSubjectPrefix")]
|
|
pub default_subject_prefix: String,
|
|
#[serde(rename = "maxCpuCycles")]
|
|
pub max_cpu_cycles: u64,
|
|
#[serde(rename = "maxHeaderSize")]
|
|
pub max_header_size: u64,
|
|
#[serde(rename = "maxIncludes")]
|
|
pub max_includes: u64,
|
|
#[serde(rename = "maxLocalVars")]
|
|
pub max_local_vars: u64,
|
|
#[serde(rename = "maxMatchVars")]
|
|
pub max_match_vars: u64,
|
|
#[serde(rename = "maxScriptNameLength")]
|
|
pub max_script_name_length: u64,
|
|
#[serde(rename = "maxNestedBlocks")]
|
|
pub max_nested_blocks: u64,
|
|
#[serde(rename = "maxNestedForEvery")]
|
|
pub max_nested_for_every: u64,
|
|
#[serde(rename = "maxNestedIncludes")]
|
|
pub max_nested_includes: u64,
|
|
#[serde(rename = "maxNestedTests")]
|
|
pub max_nested_tests: u64,
|
|
#[serde(rename = "maxOutMessages")]
|
|
pub max_out_messages: u64,
|
|
#[serde(rename = "maxReceivedHeaders")]
|
|
pub max_received_headers: u64,
|
|
#[serde(rename = "maxRedirects")]
|
|
pub max_redirects: u64,
|
|
#[serde(rename = "maxScriptSize")]
|
|
pub max_script_size: u64,
|
|
#[serde(rename = "maxStringLength")]
|
|
pub max_string_length: u64,
|
|
#[serde(rename = "maxVarNameLength")]
|
|
pub max_var_name_length: u64,
|
|
#[serde(rename = "maxVarSize")]
|
|
pub max_var_size: u64,
|
|
#[serde(rename = "maxScripts")]
|
|
pub max_scripts: Option<u64>,
|
|
#[serde(rename = "dkimSignDomain")]
|
|
pub dkim_sign_domain: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SieveUserScript {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "isActive")]
|
|
pub is_active: bool,
|
|
#[serde(rename = "contents")]
|
|
pub contents: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamClassifier {
|
|
#[serde(rename = "model")]
|
|
pub model: SpamClassifierModel,
|
|
#[serde(rename = "learnHamFromCard")]
|
|
pub learn_ham_from_card: bool,
|
|
#[serde(rename = "learnSpamFromRblHits")]
|
|
pub learn_spam_from_rbl_hits: u64,
|
|
#[serde(rename = "learnSpamFromTraps")]
|
|
pub learn_spam_from_traps: bool,
|
|
#[serde(rename = "holdSamplesFor")]
|
|
pub hold_samples_for: Duration,
|
|
#[serde(rename = "minHamSamples")]
|
|
pub min_ham_samples: u64,
|
|
#[serde(rename = "minSpamSamples")]
|
|
pub min_spam_samples: u64,
|
|
#[serde(rename = "reservoirCapacity")]
|
|
pub reservoir_capacity: u64,
|
|
#[serde(rename = "trainFrequency")]
|
|
pub train_frequency: Option<Duration>,
|
|
#[serde(rename = "learnHamFromReply")]
|
|
pub learn_ham_from_reply: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamClassifierFtrlCcfh {
|
|
#[serde(rename = "indicatorParameters")]
|
|
pub indicator_parameters: FtrlParameters,
|
|
#[serde(rename = "parameters")]
|
|
pub parameters: FtrlParameters,
|
|
#[serde(rename = "featureL2Normalize")]
|
|
pub feature_l2_normalize: bool,
|
|
#[serde(rename = "featureLogScale")]
|
|
pub feature_log_scale: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamClassifierFtrlFh {
|
|
#[serde(rename = "parameters")]
|
|
pub parameters: FtrlParameters,
|
|
#[serde(rename = "featureL2Normalize")]
|
|
pub feature_l2_normalize: bool,
|
|
#[serde(rename = "featureLogScale")]
|
|
pub feature_log_scale: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum SpamClassifierModel {
|
|
FtrlFh(SpamClassifierFtrlFh),
|
|
FtrlCcfh(SpamClassifierFtrlCcfh),
|
|
Disabled,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamClassify {
|
|
#[serde(rename = "message")]
|
|
pub message: String,
|
|
#[serde(rename = "remoteIp")]
|
|
pub remote_ip: IpAddr,
|
|
#[serde(rename = "ehloDomain")]
|
|
pub ehlo_domain: String,
|
|
#[serde(rename = "authenticatedAs")]
|
|
pub authenticated_as: Option<String>,
|
|
#[serde(rename = "isTls")]
|
|
pub is_tls: bool,
|
|
#[serde(rename = "envFrom")]
|
|
pub env_from: String,
|
|
#[serde(rename = "envFromParameters")]
|
|
pub env_from_parameters: Option<SpamClassifyParameters>,
|
|
#[serde(rename = "envRcptTo")]
|
|
pub env_rcpt_to: Map<String>,
|
|
#[serde(rename = "score")]
|
|
pub score: Float,
|
|
#[serde(rename = "tags")]
|
|
pub tags: VecMap<String, SpamClassifyTag>,
|
|
#[serde(rename = "result")]
|
|
pub result: SpamClassifyResult,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamClassifyTag {
|
|
#[serde(rename = "score")]
|
|
pub score: Float,
|
|
#[serde(rename = "disposition")]
|
|
pub disposition: SpamClassifyTagDisposition,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum SpamDnsblServer {
|
|
Any(SpamDnsblServerAny),
|
|
Url(SpamDnsblServerUrl),
|
|
Domain(SpamDnsblServerDomain),
|
|
Email(SpamDnsblServerEmail),
|
|
Ip(SpamDnsblServerIp),
|
|
Header(SpamDnsblServerHeader),
|
|
Body(SpamDnsblServerBody),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamDnsblServerAny {
|
|
#[serde(rename = "tag")]
|
|
pub tag: Expression,
|
|
#[serde(rename = "zone")]
|
|
pub zone: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamDnsblServerBody {
|
|
#[serde(rename = "tag")]
|
|
pub tag: Expression,
|
|
#[serde(rename = "zone")]
|
|
pub zone: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamDnsblServerDomain {
|
|
#[serde(rename = "tag")]
|
|
pub tag: Expression,
|
|
#[serde(rename = "zone")]
|
|
pub zone: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamDnsblServerEmail {
|
|
#[serde(rename = "tag")]
|
|
pub tag: Expression,
|
|
#[serde(rename = "zone")]
|
|
pub zone: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamDnsblServerHeader {
|
|
#[serde(rename = "tag")]
|
|
pub tag: Expression,
|
|
#[serde(rename = "zone")]
|
|
pub zone: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamDnsblServerIp {
|
|
#[serde(rename = "tag")]
|
|
pub tag: Expression,
|
|
#[serde(rename = "zone")]
|
|
pub zone: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamDnsblServerUrl {
|
|
#[serde(rename = "tag")]
|
|
pub tag: Expression,
|
|
#[serde(rename = "zone")]
|
|
pub zone: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamDnsblSettings {
|
|
#[serde(rename = "domainLimit")]
|
|
pub domain_limit: u64,
|
|
#[serde(rename = "emailLimit")]
|
|
pub email_limit: u64,
|
|
#[serde(rename = "ipLimit")]
|
|
pub ip_limit: u64,
|
|
#[serde(rename = "urlLimit")]
|
|
pub url_limit: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamFileExtension {
|
|
#[serde(rename = "extension")]
|
|
pub extension: String,
|
|
#[serde(rename = "isArchive")]
|
|
pub is_archive: bool,
|
|
#[serde(rename = "isBad")]
|
|
pub is_bad: bool,
|
|
#[serde(rename = "isNz")]
|
|
pub is_nz: bool,
|
|
#[serde(rename = "contentTypes")]
|
|
pub content_types: Map<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum SpamLlm {
|
|
Disable,
|
|
Enable(SpamLlmProperties),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamLlmProperties {
|
|
#[serde(rename = "categories")]
|
|
pub categories: Map<String>,
|
|
#[serde(rename = "confidence")]
|
|
pub confidence: Map<String>,
|
|
#[serde(rename = "responsePosCategory")]
|
|
pub response_pos_category: u64,
|
|
#[serde(rename = "responsePosConfidence")]
|
|
pub response_pos_confidence: Option<u64>,
|
|
#[serde(rename = "responsePosExplanation")]
|
|
pub response_pos_explanation: Option<u64>,
|
|
#[serde(rename = "modelId")]
|
|
pub model_id: Id,
|
|
#[serde(rename = "prompt")]
|
|
pub prompt: String,
|
|
#[serde(rename = "separator")]
|
|
pub separator: String,
|
|
#[serde(rename = "temperature")]
|
|
pub temperature: Float,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamPyzor {
|
|
#[serde(rename = "blockCount")]
|
|
pub block_count: u64,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "host")]
|
|
pub host: String,
|
|
#[serde(rename = "port")]
|
|
pub port: u64,
|
|
#[serde(rename = "ratio")]
|
|
pub ratio: Float,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "allowCount")]
|
|
pub allow_count: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum SpamRule {
|
|
Any(SpamRuleAny),
|
|
Url(SpamRuleUrl),
|
|
Domain(SpamRuleDomain),
|
|
Email(SpamRuleEmail),
|
|
Ip(SpamRuleIp),
|
|
Header(SpamRuleHeader),
|
|
Body(SpamRuleBody),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamRuleAny {
|
|
#[serde(rename = "condition")]
|
|
pub condition: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "priority")]
|
|
pub priority: i64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamRuleBody {
|
|
#[serde(rename = "condition")]
|
|
pub condition: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "priority")]
|
|
pub priority: i64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamRuleDomain {
|
|
#[serde(rename = "condition")]
|
|
pub condition: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "priority")]
|
|
pub priority: i64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamRuleEmail {
|
|
#[serde(rename = "condition")]
|
|
pub condition: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "priority")]
|
|
pub priority: i64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamRuleHeader {
|
|
#[serde(rename = "condition")]
|
|
pub condition: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "priority")]
|
|
pub priority: i64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamRuleIp {
|
|
#[serde(rename = "condition")]
|
|
pub condition: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "priority")]
|
|
pub priority: i64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamRuleUrl {
|
|
#[serde(rename = "condition")]
|
|
pub condition: Expression,
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "priority")]
|
|
pub priority: i64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamSettings {
|
|
#[serde(rename = "trustContacts")]
|
|
pub trust_contacts: bool,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "greylistFor")]
|
|
pub greylist_for: Option<Duration>,
|
|
#[serde(rename = "scoreDiscard")]
|
|
pub score_discard: Float,
|
|
#[serde(rename = "scoreReject")]
|
|
pub score_reject: Float,
|
|
#[serde(rename = "scoreSpam")]
|
|
pub score_spam: Float,
|
|
#[serde(rename = "trustReplies")]
|
|
pub trust_replies: bool,
|
|
#[serde(rename = "spamFilterRulesUrl")]
|
|
pub spam_filter_rules_url: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum SpamTag {
|
|
Score(SpamTagScore),
|
|
Discard(SpamTagAction),
|
|
Reject(SpamTagAction),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamTagAction {
|
|
#[serde(rename = "tag")]
|
|
pub tag: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamTagScore {
|
|
#[serde(rename = "tag")]
|
|
pub tag: String,
|
|
#[serde(rename = "score")]
|
|
pub score: Float,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpamTrainingSample {
|
|
#[serde(rename = "from")]
|
|
pub from: String,
|
|
#[serde(rename = "subject")]
|
|
pub subject: String,
|
|
#[serde(rename = "blobId")]
|
|
pub blob_id: BlobId,
|
|
#[serde(rename = "isSpam")]
|
|
pub is_spam: bool,
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Option<Id>,
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: UTCDateTime,
|
|
#[serde(rename = "deleteAfterUse")]
|
|
pub delete_after_use: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SpfReportSettings {
|
|
#[serde(rename = "fromAddress")]
|
|
pub from_address: Expression,
|
|
#[serde(rename = "fromName")]
|
|
pub from_name: Expression,
|
|
#[serde(rename = "sendFrequency")]
|
|
pub send_frequency: Expression,
|
|
#[serde(rename = "dkimSignDomain")]
|
|
pub dkim_sign_domain: Expression,
|
|
#[serde(rename = "subject")]
|
|
pub subject: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum SqlAuthStore {
|
|
Default,
|
|
PostgreSql(PostgreSqlStore),
|
|
MySql(MySqlStore),
|
|
Sqlite(SqliteStore),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SqlDirectory {
|
|
#[serde(rename = "description")]
|
|
pub description: String,
|
|
#[serde(rename = "store")]
|
|
pub store: SqlAuthStore,
|
|
#[serde(rename = "columnEmail")]
|
|
pub column_email: String,
|
|
#[serde(rename = "columnSecret")]
|
|
pub column_secret: String,
|
|
#[serde(rename = "columnClass")]
|
|
pub column_class: Option<String>,
|
|
#[serde(rename = "columnDescription")]
|
|
pub column_description: Option<String>,
|
|
#[serde(rename = "queryLogin")]
|
|
pub query_login: String,
|
|
#[serde(rename = "queryRecipient")]
|
|
pub query_recipient: String,
|
|
#[serde(rename = "queryMemberOf")]
|
|
pub query_member_of: Option<String>,
|
|
#[serde(rename = "queryEmailAliases")]
|
|
pub query_email_aliases: Option<String>,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SqliteStore {
|
|
#[serde(rename = "path")]
|
|
pub path: String,
|
|
#[serde(rename = "poolWorkers")]
|
|
pub pool_workers: Option<u64>,
|
|
#[serde(rename = "poolMaxConnections")]
|
|
pub pool_max_connections: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct StoreLookup {
|
|
#[serde(rename = "namespace")]
|
|
pub namespace: String,
|
|
#[serde(rename = "store")]
|
|
pub store: LookupStore,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum SubAddressing {
|
|
Enabled,
|
|
Custom(SubAddressingCustom),
|
|
Disabled,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SubAddressingCustom {
|
|
#[serde(rename = "customRule")]
|
|
pub custom_rule: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct SystemSettings {
|
|
#[serde(rename = "defaultHostname")]
|
|
pub default_hostname: String,
|
|
#[serde(rename = "defaultDomainId")]
|
|
pub default_domain_id: Id,
|
|
#[serde(rename = "defaultCertificateId")]
|
|
pub default_certificate_id: Option<Id>,
|
|
#[serde(rename = "threadPoolSize")]
|
|
pub thread_pool_size: Option<u64>,
|
|
#[serde(rename = "maxConnections")]
|
|
pub max_connections: u64,
|
|
#[serde(rename = "proxyTrustedNetworks")]
|
|
pub proxy_trusted_networks: Map<IpAddrOrMask>,
|
|
#[serde(rename = "mailExchangers")]
|
|
pub mail_exchangers: List<MailExchanger>,
|
|
#[serde(rename = "services")]
|
|
pub services: VecMap<ServiceProtocol, Service>,
|
|
#[serde(rename = "providerInfo")]
|
|
pub provider_info: VecMap<ProviderInfo, String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum Task {
|
|
IndexDocument(TaskIndexDocument),
|
|
UnindexDocument(TaskIndexDocument),
|
|
IndexTrace(TaskIndexTrace),
|
|
CalendarAlarmEmail(TaskCalendarAlarmEmail),
|
|
CalendarAlarmNotification(TaskCalendarAlarmNotification),
|
|
CalendarItipMessage(TaskCalendarItipMessage),
|
|
MergeThreads(TaskMergeThreads),
|
|
DmarcReport(TaskDmarcReport),
|
|
TlsReport(TaskTlsReport),
|
|
RestoreArchivedItem(TaskRestoreArchivedItem),
|
|
DestroyAccount(TaskDestroyAccount),
|
|
AccountMaintenance(TaskAccountMaintenance),
|
|
TenantMaintenance(TaskTenantMaintenance),
|
|
StoreMaintenance(TaskStoreMaintenance),
|
|
SpamFilterMaintenance(TaskSpamFilterMaintenance),
|
|
AcmeRenewal(TaskDomainManagement),
|
|
DkimManagement(TaskDomainManagement),
|
|
DnsManagement(TaskDnsManagement),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskAccountMaintenance {
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "maintenanceType")]
|
|
pub maintenance_type: TaskAccountMaintenanceType,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskCalendarAlarmEmail {
|
|
#[serde(rename = "alarmId")]
|
|
pub alarm_id: u64,
|
|
#[serde(rename = "eventId")]
|
|
pub event_id: u64,
|
|
#[serde(rename = "eventStart")]
|
|
pub event_start: UTCDateTime,
|
|
#[serde(rename = "eventEnd")]
|
|
pub event_end: UTCDateTime,
|
|
#[serde(rename = "eventStartTz")]
|
|
pub event_start_tz: u64,
|
|
#[serde(rename = "eventEndTz")]
|
|
pub event_end_tz: u64,
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "documentId")]
|
|
pub document_id: Id,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskCalendarAlarmNotification {
|
|
#[serde(rename = "alarmId")]
|
|
pub alarm_id: u64,
|
|
#[serde(rename = "eventId")]
|
|
pub event_id: u64,
|
|
#[serde(rename = "recurrenceId")]
|
|
pub recurrence_id: Option<i64>,
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "documentId")]
|
|
pub document_id: Id,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskCalendarItipContents {
|
|
#[serde(rename = "from")]
|
|
pub from: String,
|
|
#[serde(rename = "to")]
|
|
pub to: Map<String>,
|
|
#[serde(rename = "isFromOrganizer")]
|
|
pub is_from_organizer: bool,
|
|
#[serde(rename = "iCalendarData")]
|
|
pub i_calendar_data: String,
|
|
#[serde(rename = "summary")]
|
|
pub summary: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskCalendarItipMessage {
|
|
#[serde(rename = "messages")]
|
|
pub messages: List<TaskCalendarItipContents>,
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "documentId")]
|
|
pub document_id: Id,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskDestroyAccount {
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "accountName")]
|
|
pub account_name: String,
|
|
#[serde(rename = "accountDomainId")]
|
|
pub account_domain_id: Id,
|
|
#[serde(rename = "accountType")]
|
|
pub account_type: AccountType,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskDmarcReport {
|
|
#[serde(rename = "reportId")]
|
|
pub report_id: Id,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskDnsManagement {
|
|
#[serde(rename = "updateRecords")]
|
|
pub update_records: Map<DnsRecordType>,
|
|
#[serde(rename = "onSuccessRenewCertificate")]
|
|
pub on_success_renew_certificate: bool,
|
|
#[serde(rename = "domainId")]
|
|
pub domain_id: Id,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskDomainManagement {
|
|
#[serde(rename = "domainId")]
|
|
pub domain_id: Id,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskIndexDocument {
|
|
#[serde(rename = "documentType")]
|
|
pub document_type: IndexDocumentType,
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "documentId")]
|
|
pub document_id: Id,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskIndexTrace {
|
|
#[serde(rename = "traceId")]
|
|
pub trace_id: Id,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskManager {
|
|
#[serde(rename = "maxAttempts")]
|
|
pub max_attempts: u64,
|
|
#[serde(rename = "strategy")]
|
|
pub strategy: TaskRetryStrategy,
|
|
#[serde(rename = "totalDeadline")]
|
|
pub total_deadline: Duration,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskMergeThreads {
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "threadName")]
|
|
pub thread_name: String,
|
|
#[serde(rename = "messageIds")]
|
|
pub message_ids: Map<String>,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskRestoreArchivedItem {
|
|
#[serde(rename = "blobId")]
|
|
pub blob_id: BlobId,
|
|
#[serde(rename = "archivedItemType")]
|
|
pub archived_item_type: ArchivedItemType,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "archivedUntil")]
|
|
pub archived_until: UTCDateTime,
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: Id,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum TaskRetryStrategy {
|
|
ExponentialBackoff(TaskRetryStrategyBackoff),
|
|
FixedDelay(TaskRetryStrategyFixed),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskRetryStrategyBackoff {
|
|
#[serde(rename = "factor")]
|
|
pub factor: Float,
|
|
#[serde(rename = "initialDelay")]
|
|
pub initial_delay: Duration,
|
|
#[serde(rename = "maxDelay")]
|
|
pub max_delay: Duration,
|
|
#[serde(rename = "jitter")]
|
|
pub jitter: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskRetryStrategyFixed {
|
|
#[serde(rename = "delay")]
|
|
pub delay: Duration,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskSpamFilterMaintenance {
|
|
#[serde(rename = "maintenanceType")]
|
|
pub maintenance_type: TaskSpamFilterMaintenanceType,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum TaskStatus {
|
|
Pending(TaskStatusPending),
|
|
Retry(TaskStatusRetry),
|
|
Failed(TaskStatusFailed),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskStatusFailed {
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "failedAt")]
|
|
pub failed_at: UTCDateTime,
|
|
#[serde(rename = "failedAttemptNumber")]
|
|
pub failed_attempt_number: u64,
|
|
#[serde(rename = "failureReason")]
|
|
pub failure_reason: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskStatusPending {
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "due")]
|
|
pub due: UTCDateTime,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskStatusRetry {
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "due")]
|
|
pub due: UTCDateTime,
|
|
#[serde(rename = "attemptNumber")]
|
|
pub attempt_number: u64,
|
|
#[serde(rename = "failureReason")]
|
|
pub failure_reason: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskStoreMaintenance {
|
|
#[serde(rename = "maintenanceType")]
|
|
pub maintenance_type: TaskStoreMaintenanceType,
|
|
#[serde(rename = "shardIndex")]
|
|
pub shard_index: Option<u64>,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskTenantMaintenance {
|
|
#[serde(rename = "tenantId")]
|
|
pub tenant_id: Id,
|
|
#[serde(rename = "maintenanceType")]
|
|
pub maintenance_type: TaskTenantMaintenanceType,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TaskTlsReport {
|
|
#[serde(rename = "reportId")]
|
|
pub report_id: Id,
|
|
#[serde(rename = "status")]
|
|
pub status: TaskStatus,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Tenant {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "logo")]
|
|
pub logo: Option<String>,
|
|
#[serde(rename = "roles")]
|
|
pub roles: Roles,
|
|
#[serde(rename = "permissions")]
|
|
pub permissions: Permissions,
|
|
#[serde(rename = "quotas")]
|
|
pub quotas: VecMap<TenantStorageQuota, u64>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TlsExternalReport {
|
|
#[serde(rename = "report")]
|
|
pub report: TlsReport,
|
|
#[serde(rename = "from")]
|
|
pub from: String,
|
|
#[serde(rename = "subject")]
|
|
pub subject: String,
|
|
#[serde(rename = "to")]
|
|
pub to: Map<String>,
|
|
#[serde(rename = "receivedAt")]
|
|
pub received_at: UTCDateTime,
|
|
#[serde(rename = "expiresAt")]
|
|
pub expires_at: UTCDateTime,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TlsFailureDetails {
|
|
#[serde(rename = "resultType")]
|
|
pub result_type: TlsResultType,
|
|
#[serde(rename = "sendingMtaIp")]
|
|
pub sending_mta_ip: Option<IpAddr>,
|
|
#[serde(rename = "receivingMxHostname")]
|
|
pub receiving_mx_hostname: Option<String>,
|
|
#[serde(rename = "receivingMxHelo")]
|
|
pub receiving_mx_helo: Option<String>,
|
|
#[serde(rename = "receivingIp")]
|
|
pub receiving_ip: Option<IpAddr>,
|
|
#[serde(rename = "failedSessionCount")]
|
|
pub failed_session_count: u64,
|
|
#[serde(rename = "additionalInformation")]
|
|
pub additional_information: Option<String>,
|
|
#[serde(rename = "failureReasonCode")]
|
|
pub failure_reason_code: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TlsInternalReport {
|
|
#[serde(rename = "policyIdentifiers")]
|
|
pub policy_identifiers: Map<u64>,
|
|
#[serde(rename = "mailRua")]
|
|
pub mail_rua: Map<String>,
|
|
#[serde(rename = "httpRua")]
|
|
pub http_rua: Map<String>,
|
|
#[serde(rename = "report")]
|
|
pub report: TlsReport,
|
|
#[serde(rename = "domain")]
|
|
pub domain: String,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "deliverAt")]
|
|
pub deliver_at: UTCDateTime,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TlsReport {
|
|
#[serde(rename = "organizationName")]
|
|
pub organization_name: Option<String>,
|
|
#[serde(rename = "contactInfo")]
|
|
pub contact_info: Option<String>,
|
|
#[serde(rename = "reportId")]
|
|
pub report_id: String,
|
|
#[serde(rename = "dateRangeStart")]
|
|
pub date_range_start: UTCDateTime,
|
|
#[serde(rename = "dateRangeEnd")]
|
|
pub date_range_end: UTCDateTime,
|
|
#[serde(rename = "policies")]
|
|
pub policies: List<TlsReportPolicy>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TlsReportPolicy {
|
|
#[serde(rename = "policyType")]
|
|
pub policy_type: TlsPolicyType,
|
|
#[serde(rename = "policyStrings")]
|
|
pub policy_strings: Map<String>,
|
|
#[serde(rename = "policyDomain")]
|
|
pub policy_domain: String,
|
|
#[serde(rename = "mxHosts")]
|
|
pub mx_hosts: Map<String>,
|
|
#[serde(rename = "totalSuccessfulSessions")]
|
|
pub total_successful_sessions: u64,
|
|
#[serde(rename = "totalFailedSessions")]
|
|
pub total_failed_sessions: u64,
|
|
#[serde(rename = "failureDetails")]
|
|
pub failure_details: List<TlsFailureDetails>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TlsReportSettings {
|
|
#[serde(rename = "contactInfo")]
|
|
pub contact_info: Expression,
|
|
#[serde(rename = "fromAddress")]
|
|
pub from_address: Expression,
|
|
#[serde(rename = "fromName")]
|
|
pub from_name: Expression,
|
|
#[serde(rename = "maxReportSize")]
|
|
pub max_report_size: Expression,
|
|
#[serde(rename = "orgName")]
|
|
pub org_name: Expression,
|
|
#[serde(rename = "sendFrequency")]
|
|
pub send_frequency: Expression,
|
|
#[serde(rename = "dkimSignDomain")]
|
|
pub dkim_sign_domain: Expression,
|
|
#[serde(rename = "subject")]
|
|
pub subject: Expression,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct Trace {
|
|
#[serde(rename = "events")]
|
|
pub events: List<TraceEvent>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TraceEvent {
|
|
#[serde(rename = "event")]
|
|
pub event: trc::EventType,
|
|
#[serde(rename = "timestamp")]
|
|
pub timestamp: UTCDateTime,
|
|
#[serde(rename = "keyValues")]
|
|
pub key_values: List<TraceKeyValue>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TraceKeyValue {
|
|
#[serde(rename = "key")]
|
|
pub key: trc::Key,
|
|
#[serde(rename = "value")]
|
|
pub value: TraceValue,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum TraceValue {
|
|
String(TraceValueString),
|
|
UnsignedInt(TraceValueUnsignedInt),
|
|
Integer(TraceValueInteger),
|
|
Boolean(TraceValueBoolean),
|
|
Float(TraceValueFloat),
|
|
UTCDateTime(TraceValueUTCDateTime),
|
|
Duration(TraceValueDuration),
|
|
IpAddr(TraceValueIpAddr),
|
|
List(TraceValueList),
|
|
Event(TraceValueEvent),
|
|
Null,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TraceValueBoolean {
|
|
#[serde(rename = "value")]
|
|
pub value: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TraceValueDuration {
|
|
#[serde(rename = "value")]
|
|
pub value: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TraceValueEvent {
|
|
#[serde(rename = "event")]
|
|
pub event: trc::EventType,
|
|
#[serde(rename = "value")]
|
|
pub value: List<TraceKeyValue>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TraceValueFloat {
|
|
#[serde(rename = "value")]
|
|
pub value: Float,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TraceValueInteger {
|
|
#[serde(rename = "value")]
|
|
pub value: i64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TraceValueIpAddr {
|
|
#[serde(rename = "value")]
|
|
pub value: IpAddr,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TraceValueList {
|
|
#[serde(rename = "value")]
|
|
pub value: List<TraceValue>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TraceValueString {
|
|
#[serde(rename = "value")]
|
|
pub value: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TraceValueUTCDateTime {
|
|
#[serde(rename = "value")]
|
|
pub value: UTCDateTime,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TraceValueUnsignedInt {
|
|
#[serde(rename = "value")]
|
|
pub value: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum Tracer {
|
|
Log(TracerLog),
|
|
Stdout(TracerStdout),
|
|
Journal(TracerCommon),
|
|
OtelHttp(TracerOtelHttp),
|
|
OtelGrpc(TracerOtelGrpc),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TracerCommon {
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "level")]
|
|
pub level: TracingLevel,
|
|
#[serde(rename = "lossy")]
|
|
pub lossy: bool,
|
|
#[serde(rename = "events")]
|
|
pub events: Map<trc::EventType>,
|
|
#[serde(rename = "eventsPolicy")]
|
|
pub events_policy: EventPolicy,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TracerLog {
|
|
#[serde(rename = "path")]
|
|
pub path: String,
|
|
#[serde(rename = "prefix")]
|
|
pub prefix: String,
|
|
#[serde(rename = "rotate")]
|
|
pub rotate: LogRotateFrequency,
|
|
#[serde(rename = "ansi")]
|
|
pub ansi: bool,
|
|
#[serde(rename = "multiline")]
|
|
pub multiline: bool,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "level")]
|
|
pub level: TracingLevel,
|
|
#[serde(rename = "lossy")]
|
|
pub lossy: bool,
|
|
#[serde(rename = "events")]
|
|
pub events: Map<trc::EventType>,
|
|
#[serde(rename = "eventsPolicy")]
|
|
pub events_policy: EventPolicy,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TracerOtelGrpc {
|
|
#[serde(rename = "endpoint")]
|
|
pub endpoint: Option<String>,
|
|
#[serde(rename = "enableLogExporter")]
|
|
pub enable_log_exporter: bool,
|
|
#[serde(rename = "enableSpanExporter")]
|
|
pub enable_span_exporter: bool,
|
|
#[serde(rename = "throttle")]
|
|
pub throttle: Duration,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "httpAuth")]
|
|
pub http_auth: HttpAuth,
|
|
#[serde(rename = "httpHeaders")]
|
|
pub http_headers: VecMap<String, String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "level")]
|
|
pub level: TracingLevel,
|
|
#[serde(rename = "lossy")]
|
|
pub lossy: bool,
|
|
#[serde(rename = "events")]
|
|
pub events: Map<trc::EventType>,
|
|
#[serde(rename = "eventsPolicy")]
|
|
pub events_policy: EventPolicy,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TracerOtelHttp {
|
|
#[serde(rename = "endpoint")]
|
|
pub endpoint: String,
|
|
#[serde(rename = "enableLogExporter")]
|
|
pub enable_log_exporter: bool,
|
|
#[serde(rename = "enableSpanExporter")]
|
|
pub enable_span_exporter: bool,
|
|
#[serde(rename = "throttle")]
|
|
pub throttle: Duration,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "httpAuth")]
|
|
pub http_auth: HttpAuth,
|
|
#[serde(rename = "httpHeaders")]
|
|
pub http_headers: VecMap<String, String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "level")]
|
|
pub level: TracingLevel,
|
|
#[serde(rename = "lossy")]
|
|
pub lossy: bool,
|
|
#[serde(rename = "events")]
|
|
pub events: Map<trc::EventType>,
|
|
#[serde(rename = "eventsPolicy")]
|
|
pub events_policy: EventPolicy,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct TracerStdout {
|
|
#[serde(rename = "buffered")]
|
|
pub buffered: bool,
|
|
#[serde(rename = "ansi")]
|
|
pub ansi: bool,
|
|
#[serde(rename = "multiline")]
|
|
pub multiline: bool,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "level")]
|
|
pub level: TracingLevel,
|
|
#[serde(rename = "lossy")]
|
|
pub lossy: bool,
|
|
#[serde(rename = "events")]
|
|
pub events: Map<trc::EventType>,
|
|
#[serde(rename = "eventsPolicy")]
|
|
pub events_policy: EventPolicy,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum TracingStore {
|
|
Disabled,
|
|
Default,
|
|
FoundationDb(FoundationDbStore),
|
|
PostgreSql(PostgreSqlStore),
|
|
MySql(MySqlStore),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct UserAccount {
|
|
#[serde(rename = "name")]
|
|
pub name: String,
|
|
#[serde(rename = "domainId")]
|
|
pub domain_id: Id,
|
|
#[serde(rename = "credentials")]
|
|
pub credentials: List<Credential>,
|
|
#[serde(rename = "createdAt")]
|
|
pub created_at: UTCDateTime,
|
|
#[serde(rename = "memberGroupIds")]
|
|
pub member_group_ids: Map<Id>,
|
|
#[serde(rename = "memberTenantId")]
|
|
pub member_tenant_id: Option<Id>,
|
|
#[serde(rename = "roles")]
|
|
pub roles: UserRoles,
|
|
#[serde(rename = "permissions")]
|
|
pub permissions: Permissions,
|
|
#[serde(rename = "quotas")]
|
|
pub quotas: VecMap<StorageQuota, u64>,
|
|
#[serde(rename = "aliases")]
|
|
pub aliases: List<EmailAlias>,
|
|
#[serde(rename = "externalId")]
|
|
pub external_id: Option<String>,
|
|
#[serde(rename = "description")]
|
|
pub description: Option<String>,
|
|
#[serde(rename = "locale")]
|
|
pub locale: Locale,
|
|
#[serde(rename = "timeZone")]
|
|
pub time_zone: Option<TimeZone>,
|
|
#[serde(rename = "encryptionAtRest")]
|
|
pub encryption_at_rest: EncryptionAtRest,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(tag = "@type")]
|
|
pub enum UserRoles {
|
|
User,
|
|
Admin,
|
|
Custom(CustomRoles),
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct WebDav {
|
|
#[serde(rename = "enableAssistedDiscovery")]
|
|
pub enable_assisted_discovery: bool,
|
|
#[serde(rename = "maxLockTimeout")]
|
|
pub max_lock_timeout: Duration,
|
|
#[serde(rename = "maxLocks")]
|
|
pub max_locks: u64,
|
|
#[serde(rename = "deadPropertyMaxSize")]
|
|
pub dead_property_max_size: Option<u64>,
|
|
#[serde(rename = "livePropertyMaxSize")]
|
|
pub live_property_max_size: u64,
|
|
#[serde(rename = "requestMaxSize")]
|
|
pub request_max_size: u64,
|
|
#[serde(rename = "maxResults")]
|
|
pub max_results: u64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct WebHook {
|
|
#[serde(rename = "allowInvalidCerts")]
|
|
pub allow_invalid_certs: bool,
|
|
#[serde(rename = "signatureKey")]
|
|
pub signature_key: SecretKeyOptional,
|
|
#[serde(rename = "throttle")]
|
|
pub throttle: Duration,
|
|
#[serde(rename = "timeout")]
|
|
pub timeout: Duration,
|
|
#[serde(rename = "discardAfter")]
|
|
pub discard_after: Duration,
|
|
#[serde(rename = "url")]
|
|
pub url: String,
|
|
#[serde(rename = "httpAuth")]
|
|
pub http_auth: HttpAuth,
|
|
#[serde(rename = "httpHeaders")]
|
|
pub http_headers: VecMap<String, String>,
|
|
#[serde(rename = "enable")]
|
|
pub enable: bool,
|
|
#[serde(rename = "level")]
|
|
pub level: TracingLevel,
|
|
#[serde(rename = "lossy")]
|
|
pub lossy: bool,
|
|
#[serde(rename = "events")]
|
|
pub events: Map<trc::EventType>,
|
|
#[serde(rename = "eventsPolicy")]
|
|
pub events_policy: EventPolicy,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(default)]
|
|
pub struct ZenohCoordinator {
|
|
#[serde(rename = "config")]
|
|
pub config: String,
|
|
}
|