syntax = "proto2"; option objc_class_naming = "extended"; option objc_class_visibility = "hidden"; package OT; message AccountMetadataClassC { // The state of accounts on the system is complicated. Here's how we handle them: // If there is no account, we will be in NO_ACCOUNT and have no altDSID // If there is an SA account, we will bt in NO_ACCOUNT and have an altDSID // If there is an HSA2 account, we will be in ACCOUNT_AVAILABLE and have an altDSID // Once you're in an HSA2 account, CDP might be enabled or disabled. If it's not enabled, // then Octagon shouldn't be active. enum AccountState { UNKNOWN = 0; NO_ACCOUNT = 1; ACCOUNT_AVAILABLE = 2; ACCOUNT_AVAILABLE_UNUSED = 3; } enum TrustState { UNKNOWN = 0; UNTRUSTED = 1; TRUSTED = 2; } enum AttemptedAJoinState { UNKNOWN = 0; NOTATTEMPTED = 1; ATTEMPTED = 2; } enum CDPState { UNKNOWN = 0; DISABLED = 1; ENABLED = 2; } optional string peerID = 1; optional AccountState icloudAccountState = 2; optional int64 epoch = 3; optional string altDSID = 4; optional TrustState trustState = 5; // Holds the time, in milliseconds since 1970, that the last health checkup query to Cuttlefish was successfully performed optional uint64 lastHealthCheckup = 6; optional AttemptedAJoinState attemptedJoin = 7; optional CDPState cdpState = 8; // Used during development //reserved 9; //reserved 10; // This holds the current syncing policy for the local peer, including the view list. optional bytes syncingPolicy = 11; // This might contain a voucher for use in joining Octagon. optional bytes voucher = 12; optional bytes voucherSignature = 13; }