contents   [plain text]


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="14886.2" systemVersion="19A541" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
    <entity name="Bottle" representedClassName="BottleMO" syncable="YES" codeGenerationType="class">
        <attribute name="bottleID" optional="YES" attributeType="String"/>
        <attribute name="contents" optional="YES" attributeType="Binary"/>
        <attribute name="escrowedSigningSPKI" optional="YES" attributeType="Binary"/>
        <attribute name="peerID" optional="YES" attributeType="String"/>
        <attribute name="signatureUsingEscrowKey" optional="YES" attributeType="Binary"/>
        <attribute name="signatureUsingPeerKey" optional="YES" attributeType="Binary"/>
        <relationship name="container" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Container" inverseName="bottles" inverseEntity="Container"/>
    </entity>
    <entity name="Container" representedClassName="ContainerMO" syncable="YES" codeGenerationType="class">
        <attribute name="accountDSID" optional="YES" attributeType="String"/>
        <attribute name="allowedMachineIDs" optional="YES" attributeType="Transformable" valueTransformerName="SetValueTransformer" customClassName="NSSet"/>
        <attribute name="changeToken" optional="YES" attributeType="String"/>
        <attribute name="egoPeerID" optional="YES" attributeType="String"/>
        <attribute name="egoPeerPermanentInfo" optional="YES" attributeType="Binary"/>
        <attribute name="egoPeerPermanentInfoSig" optional="YES" attributeType="Binary"/>
        <attribute name="egoPeerStableInfo" optional="YES" attributeType="Binary"/>
        <attribute name="egoPeerStableInfoSig" optional="YES" attributeType="Binary"/>
        <attribute name="moreChanges" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <attribute name="name" optional="YES" attributeType="String"/>
        <relationship name="bottles" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Bottle" inverseName="container" inverseEntity="Bottle"/>
        <relationship name="machines" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Machine" inverseName="container" inverseEntity="Machine"/>
        <relationship name="peers" optional="YES" toMany="YES" deletionRule="Cascade" destinationEntity="Peer" inverseName="container" inverseEntity="Peer"/>
        <relationship name="policies" optional="YES" toMany="YES" deletionRule="Cascade" destinationEntity="Policy" inverseName="container" inverseEntity="Policy"/>
    </entity>
    <entity name="Machine" representedClassName="MachineMO" syncable="YES" codeGenerationType="class">
        <attribute name="allowed" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <attribute name="machineID" optional="YES" attributeType="String"/>
        <attribute name="modified" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="seenOnFullList" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <attribute name="status" optional="YES" attributeType="Integer 64" usesScalarValueType="YES"/>
        <relationship name="container" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Container" inverseName="machines" inverseEntity="Container"/>
    </entity>
    <entity name="Peer" representedClassName="PeerMO" syncable="YES" codeGenerationType="class">
        <attribute name="dynamicInfo" optional="YES" attributeType="Binary"/>
        <attribute name="dynamicInfoSig" optional="YES" attributeType="Binary"/>
        <attribute name="isEgoPeer" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <attribute name="peerID" optional="YES" attributeType="String"/>
        <attribute name="permanentInfo" optional="YES" attributeType="Binary"/>
        <attribute name="permanentInfoSig" optional="YES" attributeType="Binary"/>
        <attribute name="stableInfo" optional="YES" attributeType="Binary"/>
        <attribute name="stableInfoSig" optional="YES" attributeType="Binary"/>
        <relationship name="container" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Container" inverseName="peers" inverseEntity="Container"/>
        <relationship name="recoveryVoucher" optional="YES" maxCount="1" deletionRule="Cascade" destinationEntity="RecoveryVoucher" inverseName="beneficiary" inverseEntity="RecoveryVoucher"/>
        <relationship name="vouchers" optional="YES" toMany="YES" deletionRule="Cascade" destinationEntity="Voucher" inverseName="beneficiary" inverseEntity="Voucher"/>
    </entity>
    <entity name="Policy" representedClassName="PolicyMO" syncable="YES" codeGenerationType="class">
        <attribute name="policyData" optional="YES" attributeType="Binary"/>
        <attribute name="policyHash" optional="YES" attributeType="String"/>
        <attribute name="version" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="YES"/>
        <relationship name="container" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Container" inverseName="policies" inverseEntity="Container"/>
    </entity>
    <entity name="RecoveryVoucher" representedClassName="RecoveryVoucherMO" syncable="YES" codeGenerationType="class">
        <attribute name="recoverySigningPubKey" optional="YES" attributeType="Binary"/>
        <attribute name="recoveryVoucherInfo" optional="YES" attributeType="Binary"/>
        <attribute name="signature" optional="YES" attributeType="Binary"/>
        <relationship name="beneficiary" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Peer" inverseName="recoveryVoucher" inverseEntity="Peer"/>
    </entity>
    <entity name="Voucher" representedClassName="VoucherMO" syncable="YES" codeGenerationType="class">
        <attribute name="voucherInfo" optional="YES" attributeType="Binary"/>
        <attribute name="voucherInfoSig" optional="YES" attributeType="Binary"/>
        <relationship name="beneficiary" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Peer" inverseName="vouchers" inverseEntity="Peer"/>
    </entity>
    <elements>
        <element name="Bottle" positionX="-549" positionY="-234" width="128" height="150"/>
        <element name="Container" positionX="-758" positionY="-261" width="128" height="253"/>
        <element name="Machine" positionX="-549" positionY="-234" width="128" height="133"/>
        <element name="Peer" positionX="-414" positionY="-387" width="128" height="210"/>
        <element name="Policy" positionX="-414" positionY="54" width="128" height="105"/>
        <element name="RecoveryVoucher" positionX="-65" positionY="-297" width="128" height="105"/>
        <element name="Voucher" positionX="-65" positionY="-171" width="128" height="90"/>
    </elements>
</model>