// This file was automatically generated by protocompiler
// DO NOT EDIT!
// Compiled from OTEscrowRecord.proto

#import <Foundation/Foundation.h>
#import <ProtocolBuffer/PBCodable.h>

@class OTEscrowRecordMetadataClientMetadata;

#ifdef __cplusplus
#define OTESCROWRECORDMETADATA_FUNCTION extern "C"
#else
#define OTESCROWRECORDMETADATA_FUNCTION extern
#endif

@interface OTEscrowRecordMetadata : PBCodable <NSCopying>
{
    uint64_t _secureBackupTimestamp;
    uint64_t _secureBackupUsesMultipleIcscs;
    NSData *_backupKeybagDigest;
    NSString *_bottleId;
    NSString *_bottleValidity;
    OTEscrowRecordMetadataClientMetadata *_clientMetadata;
    NSData *_escrowedSpki;
    NSData *_peerInfo;
    NSString *_serial;
    struct {
        int secureBackupTimestamp:1;
        int secureBackupUsesMultipleIcscs:1;
    } _has;
}


@property (nonatomic, readonly) BOOL hasBackupKeybagDigest;
@property (nonatomic, retain) NSData *backupKeybagDigest;

@property (nonatomic, readonly) BOOL hasClientMetadata;
@property (nonatomic, retain) OTEscrowRecordMetadataClientMetadata *clientMetadata;

@property (nonatomic) BOOL hasSecureBackupUsesMultipleIcscs;
@property (nonatomic) uint64_t secureBackupUsesMultipleIcscs;

@property (nonatomic, readonly) BOOL hasBottleId;
@property (nonatomic, retain) NSString *bottleId;

@property (nonatomic) BOOL hasSecureBackupTimestamp;
@property (nonatomic) uint64_t secureBackupTimestamp;

@property (nonatomic, readonly) BOOL hasEscrowedSpki;
@property (nonatomic, retain) NSData *escrowedSpki;

@property (nonatomic, readonly) BOOL hasPeerInfo;
@property (nonatomic, retain) NSData *peerInfo;

@property (nonatomic, readonly) BOOL hasBottleValidity;
@property (nonatomic, retain) NSString *bottleValidity;

@property (nonatomic, readonly) BOOL hasSerial;
@property (nonatomic, retain) NSString *serial;

// Performs a shallow copy into other
- (void)copyTo:(OTEscrowRecordMetadata *)other;

// Performs a deep merge from other into self
// If set in other, singular values in self are replaced in self
// Singular composite values are recursively merged
// Repeated values from other are appended to repeated values in self
- (void)mergeFrom:(OTEscrowRecordMetadata *)other;

OTESCROWRECORDMETADATA_FUNCTION BOOL OTEscrowRecordMetadataReadFrom(__unsafe_unretained OTEscrowRecordMetadata *self, __unsafe_unretained PBDataReader *reader);

@end

