class CollectionMembershipRecord(eim.Record): # A membership record for a collection that is not "out of the box" # i.e. created by the user URI = "http://osafoundation.org/eim/pim/collectionmembership/0" collectionID = eim.key(text256) # "well-known" name or UUID string itemUUID = eim.key(aliasableUUID) index = eim.key(eim.IntType)
class CollectionRecord(eim.Record): URI = "http://osafoundation.org/eim/pim/collection/0" uuid = eim.key(ItemRecord.uuid) mine = eim.field(eim.IntType) # We represent color as 4 values instead of 1 integer since eim.IntType is signed # and so far it doesn't seem worth adding a new type for color colorRed = eim.key(eim.IntType) colorGreen = eim.key(eim.IntType) colorBlue = eim.key(eim.IntType) colorAlpha = eim.key(eim.IntType) checked = eim.field(eim.IntType, default=0)
class ModifiedByRecord(eim.Record): URI = "http://osafoundation.org/eim/modifiedBy/0" uuid = eim.key(ItemRecord.uuid) # ContentItem.lastModifiedBy userid = eim.key(text256, _(u"User ID")) # ContentItem.lastModified (time) timestamp = eim.key(eim.DecimalType(digits=12, decimal_places=2), _(u"Last modified")) # ContentItem.lastModification (action) action = eim.key(eim.IntType, _(u"Action"))
class EventRecord(eim.Record): URI = "http://osafoundation.org/eim/event/0" uuid = eim.key(NoteRecord.uuid) # EventStamp.[allDay, anyTime, duration, startTime] dtstart = eim.field(text20, _(u"Start time")) duration = eim.field(text20, _(u"Duration")) # EventStamp.location location = eim.field(text256, _(u"Location")) # EventStamp.[recurrenceID, rruleset, etc.] rrule = eim.field(rrule_field) exrule = eim.field(rrule_field, filters=[occurrenceDeletion]) rdate = eim.field(rdate_field) exdate = eim.field(rdate_field, filters=[occurrenceDeletion]) # EventStamp.transparency status = eim.field(text256, _(u"Event status"), filters=[eventStatusFilter]) # timestamp of the most recent occurrence, for calculating triage status lastPastOccurrence = eim.field(text20, default=u"", filters=[triageFilter])
class PasswordRecord(eim.Record): URI = "http://osafoundation.org/eim/password/0" uuid = eim.key(ItemRecord.uuid) ciphertext = eim.field(bytes1024) iv = eim.field(bytes32) salt = eim.field(bytes32)
class ItemRecord(eim.Record): URI = "http://osafoundation.org/eim/item/0" uuid = eim.key(aliasableUUID) # ContentItem.displayName title = eim.field(text1024, _(u"Title")) # ContentItem.[triageStatus, triageStatusChanged, doAutoTriageOnDateChange] triage = eim.field(text256, _(u"Triage status"), filters=[triageFilter]) # ContentItem.createdOn createdOn = eim.field(eim.DecimalType(digits=20, decimal_places=0), _(u"Created on"), filters=[createdOnFilter]) # ContentItem.modifiedFlags hasBeenSent = eim.field(eim.IntType, _(u"Has been sent"), filters=[hasBeenSentFilter]) # ContentItem.needsReply needsReply = eim.field(eim.IntType, _(u"Needs reply"), filters=[needsReplyFilter], default=0) # ContentItem.read read = eim.field(eim.IntType, _(u"Has been read"), filters=[readFilter], default=0)
class ShareCosmoAccountRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/cosmoaccount/0" uuid = eim.key(ItemRecord.uuid) pimpath = eim.field(text1024) # pim/collection morsecodepath = eim.field(text1024) # mc/collection davpath = eim.field(text1024) # dav/collection
class SharePeerStateRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/peerstate/0" uuid = eim.key(ItemRecord.uuid) peer = eim.field(schema.UUID) item = eim.field(schema.UUID) peerrepo = eim.field(text1024) peerversion = eim.field(eim.IntType)
class ShareRecordSetConduitRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/rsconduit/0" uuid = eim.key(ItemRecord.uuid) translator = eim.field(text1024) serializer = eim.field(text1024) filters = eim.field(text1024) syncToken = eim.field(text256)
class ShareAccountRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/account/0" uuid = eim.key(ItemRecord.uuid) host = eim.field(text256) port = eim.field(eim.IntType) ssl = eim.field(eim.IntType) path = eim.field(text1024) username = eim.field(text256) password = eim.field(schema.UUID)
class IMAPFolderRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/imapfolder/0" uuid = eim.key(ItemRecord.uuid) name = eim.field(text256) type = eim.field(eim.TextType(size=50)) lastUID = eim.field(eim.IntType) delete = eim.field(eim.IntType) downloaded = eim.field(eim.IntType) downloadMax = eim.field(eim.IntType)
class IMAPAccountRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/imapaccount/0" uuid = eim.key(ItemRecord.uuid) password = eim.field(schema.UUID) replyToAddress = eim.field(text256) port = eim.field(eim.IntType) # 1 = isDefault isDefault = eim.field(eim.IntType)
class SMTPAccountRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/smtpccount/0" uuid = eim.key(ItemRecord.uuid) password = eim.field(schema.UUID) fromAddress = eim.field(text256) useAuth = eim.field(eim.IntType) port = eim.field(eim.IntType) # 1 = isDefault isDefault = eim.field(eim.IntType)
class ShareStateRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/sharestate/0" uuid = eim.key(ItemRecord.uuid) share = eim.field(schema.UUID) alias = eim.field(text1024) conflict_item = eim.field(schema.UUID) conflict_share = eim.field(schema.UUID) agreed = eim.field(eim.BlobType) # obsolete pending = eim.field(eim.BlobType) # obsolete stateRecords = eim.field(eim.BlobType, default='') pendingRemoval = eim.field(eim.IntType, default=0)
class ShareRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/share/0" uuid = eim.key(ItemRecord.uuid) contents = eim.field(schema.UUID) conduit = eim.field(schema.UUID) subscribed = eim.field(eim.IntType) error = eim.field(eim.ClobType) errorDetails = eim.field(eim.ClobType) mode = eim.field(text20) lastSuccess = eim.field(eim.DecimalType(digits=20, decimal_places=0)) lastAttempt = eim.field(eim.DecimalType(digits=20, decimal_places=0))
class MailMessageRecord(eim.Record): URI = "http://osafoundation.org/eim/mail/0" uuid = eim.key(NoteRecord.uuid) messageId = eim.field(text256, _(u"Message ID"), filters=[messageIdFilter]) headers = eim.field(eim.ClobType, _(u"Message headers"), filters=[headersFilter]) # Will contain the RFC 822 from address fromAddress = eim.field(text256, _(u"From")) toAddress = eim.field(text1024, _(u"To")) ccAddress = eim.field(text1024, _(u"CC")) bccAddress = eim.field(text1024, _(u"BCC"), filters=[bccFilter]) # Can contain text or email addresses ie. from The Management Team originators = eim.field(text1024, _(u"Originators")) # date sent is populated by MailStamp.dateSentString dateSent = eim.field(text256, _(u"Date sent"), filters=[dateSentFilter]) inReplyTo = eim.field(text256, _(u"In-Reply-to"), filters=[inReplyToFilter]) #The list of message-id's a mail message references # can be quite long and can easily exceed 1024 characters references = eim.field(eim.ClobType, _(u"References"), filters=[referencesFilter]) # Values required for Dump and Reload mimeContent = eim.field(eim.ClobType, _(u"MIME content"), filters=[mimeContentFilter]) rfc2822Message = eim.field(eim.ClobType, _(u"RFC2822 message"), filters=[rfc2822MessageFilter]) previousSender = eim.field(text256, _(u"Previous sender"), filters=[previousSenderFilter]) replyToAddress = eim.field(text256, _(u"Reply-to address"), filters=[replyToAddressFilter]) # Contains bit wise flags indicating state. # A state integer was chosen over individual # boolean fields as a means of decoupling # Chandler mail specific flag requirements from # EIM. messageState = eim.field(eim.IntType, _(u"Message state"), filters=[messageStateFilter])
class ShareProxyRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/proxy/0" uuid = eim.key(ItemRecord.uuid) host = eim.field(text256) port = eim.field(eim.IntType) protocol = eim.field(text256) useAuth = eim.field(eim.IntType) username = eim.field(text256) password = eim.field(schema.UUID) active = eim.field(eim.IntType) bypass = eim.field(text256, default=u'')
class ShareHTTPConduitRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/httpconduit/0" uuid = eim.key(ItemRecord.uuid) ticket = eim.field(text1024) ticket_rw = eim.field(text1024) ticket_ro = eim.field(text1024) account = eim.field(schema.UUID) # if provided, the following are ignored host = eim.field(text256) port = eim.field(eim.IntType) ssl = eim.field(eim.IntType) username = eim.field(text256) password = eim.field(schema.UUID)
class MailAccountRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/mailaccount/0" uuid = eim.key(ItemRecord.uuid) retries = eim.field(eim.IntType) username = eim.field(text256) host = eim.field(text256) # 0 = None, 1 = TLS, 2 = SSL connectionType = eim.field(eim.IntType) frequency = eim.field(eim.IntType) timeout = eim.field(eim.IntType) # 0 = Inactive 1 = Active active = eim.field(eim.IntType)
class POPAccountRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/popaccount/0" uuid = eim.key(ItemRecord.uuid) password = eim.field(schema.UUID) replyToAddress = eim.field(text256) type = eim.field(eim.TextType(size=50)) delete = eim.field(eim.IntType) downloaded = eim.field(eim.IntType) downloadMax = eim.field(eim.IntType) seenUIDS = eim.field(eim.ClobType) port = eim.field(eim.IntType) # 1 = isDefault isDefault = eim.field(eim.IntType)
class DisplayAlarmRecord(eim.Record): URI = "http://osafoundation.org/eim/displayAlarm/0" uuid = eim.key(EventRecord.uuid) description = eim.field(text1024, _(u"Alarm description"), filters=[remindersFilter]) trigger = eim.field(text1024, _(u"Alarm trigger"), filters=[remindersFilter]) duration = eim.field(text1024, _(u"Alarm duration"), filters=[remindersFilter]) repeat = eim.field(eim.IntType, _(u"Alarm repeat"), filters=[remindersFilter])
class NoteRecord(eim.Record): URI = "http://osafoundation.org/eim/note/0" uuid = eim.key(ItemRecord.uuid) # ContentItem.body body = eim.field(eim.ClobType, _(u"Body")) # Note.icalUid icalUid = eim.field(text256, _(u"Icalendar UID"), filters=[icalUidFilter]) # Note.icalendarProperties - legacy, never used icalProperties = eim.field(text1024, filters=[nonStandardICalendarFilter]) # Note.icalendarParameters - legacy, never used icalParameters = eim.field(text1024, filters=[nonStandardICalendarFilter]) # Note.icalendarExtra icalExtra = eim.field(eim.TextType(size=4096), default=u"", filters=[nonStandardICalendarFilter])
class ShareHubAccountRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/hubaccount/0" uuid = eim.key(ItemRecord.uuid)
class ShareWebDAVAccountRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/webdavaccount/0" uuid = eim.key(ItemRecord.uuid)
class ShareConduitRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/conduit/0" uuid = eim.key(ItemRecord.uuid) path = eim.field(text1024) name = eim.field(text1024)
class ShareSharedInRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/sharedin/0" item = eim.key(schema.UUID) share = eim.key(schema.UUID)
class ShareResourceStateRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/resourcesharestate/0" uuid = eim.key(ItemRecord.uuid) path = eim.field(text1024) etag = eim.field(text1024)
class ShareMonolithicRecordSetConduitRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/monorsconduit/0" uuid = eim.key(ItemRecord.uuid) etag = eim.field(text1024)
class ShareCosmoConduitRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/cosmoconduit/0" uuid = eim.key(ItemRecord.uuid) morsecodepath = eim.field(text1024) # only if account is None
class ShareWebDAVMonolithicRecordSetConduitRecord(eim.Record): URI = "http://osafoundation.org/eim/sharing/webdavmonorsconduit/0" uuid = eim.key(ItemRecord.uuid)