#[cfg(feature = "blob-storage-billing")]
use candid::{CandidType, Nat};
#[cfg(feature = "blob-storage-billing")]
use serde::{Deserialize, Serialize};
#[cfg(feature = "blob-storage-billing")]
#[derive(CandidType, Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum BlobStoragePaymentModelStatus {
NotConfigured,
ProjectAsPaymentAccount,
}
#[cfg(feature = "blob-storage-billing")]
#[derive(CandidType, Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum BlobStorageGatewayPrincipalSyncAction {
NotRequested,
SkippedConfigMissing,
SkippedReadOnlyStatus,
}
#[cfg(feature = "blob-storage-billing")]
#[derive(CandidType, Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum BlobStorageFundingStatus {
NotConfigured,
NotNeeded,
FundingRequired {
requested_cycles: Nat,
},
BalanceUnavailable,
BalanceMalformed,
ReserveWouldBeViolated {
requested_cycles: Nat,
transferable_cycles: Nat,
},
}
#[cfg(feature = "blob-storage-billing")]
#[derive(CandidType, Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum BlobStorageReadinessBlocker {
NotConfigured,
GatewayPrincipalsMissing,
CashierBalanceUnavailable,
CashierBalanceMalformed,
InsufficientCashierBalance,
ReserveWouldBeViolated,
}
#[cfg(feature = "blob-storage-billing")]
#[derive(CandidType, Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub enum BlobStorageBillingWarning {
GatewayPrincipalSetEmpty,
CashierBalanceUnavailable,
CashierBalanceMalformed,
SyncRequestedButStatusIsReadOnly,
}