owned this note
owned this note
Published
Linked with GitHub
; CDDL draft for draft-ietf-jmap-jscontact-latest
; H. Birkholz, FhG SIT @ 20-04-21
js-card-group = [ + { uid => uuid,
? name => text,
js-cards => [ + js-card ],
},
]
js-card = {
metadata-properties,
name-and-organisation,
contact-and-resources,
address-and-location,
additional-properties,
}
metadata-properties = (
uid => uuid,
? locale => text, ; added for "LocalizedString"
? pro-id => text,
? updated => text,
? kind => $kind-type-value,
? related-to => [ + related-to-map ],
)
name-organisation = (
? full-name => text
? name => name-components,
? organization-units => [ + text ],
? job-titles => [ + text ],
? roles => [ + text ],
)
contact-and-resources = (
? emails => [ + [ text, ; RFC 6068 or free-text
? $emails-type-values, ],
],
? phones => [ + [ text, ; URI or free-text
? $phones-type-values, ],
],
? online => [ + [ text, ; URI or usernames
? $online-type-values, ],
],
? preferred-contact-method => $preferred-contact-method-type-value,
? preferred-contact-languages => [ + [ rfc5646-tag,
[ * rfc6350-lang-property ],
? context-property,
? preference-propery,
],
],
)
address-and-location = (
? addresses => [ + address ]
)
additional-properties = (
? anniversaries => [ + { ? anniversary-type => $anniversary-type-value,
? anniversary-label => text,
anniversary-date => text,
? anniversary-place => address,
},
],
? personal-info => [ + { personal-info-type => $personal-info-type-value,
? personal-info-notes => text,
? personal-info-categories => text,
},
],
)
related-to-map = {
related-to-uri => any-uri,
+ [ * $related-type-value ],
$$related-to-extensions
}
name-components = {
? prefix => text,
? personal => text,
? surname => text,
? additional => text,
? suffix => text,
? nickname => text,
}
address = {
? context => $contex-type-value
? label => text,
? full-address => text,
? street => text,
? extension => text,
? locality => text,
? region => text,
? country => text,
? po-box => text,
? postcode => text,
? country-code => text,
? coodinates => text,
? time-zone => text,
? is-preferred => bool,
}
$kind-type-value /= individual
$kind-type-value /= organization
$kind-type-value /= location
$kind-type-value /= device
$kind-type-value /= application
$kind-type-value /= vendor-specific
$related-type-value /= contact
$related-type-value /= acquaintance
$related-type-value /= friend
$related-type-value /= met
$related-type-value /= co-worker
$related-type-value /= colleague
$related-type-value /= co-resident
$related-type-value /= neighbor
$related-type-value /= child
$related-type-value /= parent
$related-type-value /= sibling
$related-type-value /= spouse
$related-type-value /= kin
$related-type-value /= muse
$related-type-value /= crush
$related-type-value /= date
$related-type-value /= sweetheart
$related-type-value /= me
$related-type-value /= agent
$related-type-value /= emergency
$related-type-value /= vendor-specific
$emails-type-values /= email
$emails-type-values /= other
$phones-type-values /= voice
$phones-type-values /= fax
$phones-type-values /= pager
$phones-type-values /= other
$online-type-values /= uri
$online-type-values /= username
$online-type-values /= other
$preferred-contact-method-type-value /= emails
$preferred-contact-method-type-value /= phones
$preferred-contact-method-type-value /= online
$preferred-contact-method-type-value /= other
$contex-type-value /= private
$contex-type-value /= work
$contex-type-value /= billing
$contex-type-value /= postal
$contex-type-value /= other
$contex-type-value /= vendor-specific
$anniversary-type-value /= birth
$anniversary-type-value /= death
$anniversary-type-value /= other
$personal-info-type-value /= expertise
$personal-info-type-value /= hobby
$personal-info-type-value /= interest
$personal-info-type-value /= other
uuid = text
any-uri = text
rfc5646-tag = text
rfc6350-lang-property = text
context-property = text
preference-property = 1..100
vendor-specific = text
individual = "individual"
organization = "organization"
location = "location"
device = "device"
application = "application"
contact = "contact"
acquaintance = "acquaintance"
friend = "friend"
met = "met"
co-worker = "co-worker"
colleague = "colleague"
co-resident = "co-resident"
neighbor = "neighbor"
child = "child"
parent = "parent"
sibling = "sibling"
spouse = "spouse"
kin = "kin"
muse = "muse"
crush = "crush"
date = "date"
sweetheart = "sweetheart"
me = "me"
agent = "agent"
emergency = "emergency"
email = "email"
other = "other"
voice = "voice"
fax = "fax"
pager = "pager"
other = "other"
;uri = "uri"
username = "username"
other = "other"
emails = "emails"
phones = "phones"
online = "online"
other = "other"
private = "private"
work = "work"
billing = "billing"
postal = "postal"
other = "other"
birth = "birth"
death = "death"
other = "other"
expertise = "expertise"
hobby = "hobby"
interest = "interest"
other = "other"
related-to-uri = "relatedToUri"
prefix = "prefix"
personal = "personal"
surname = "surname"
additional = "additional"
suffix = "suffix"
nickname = "nickname"
js-cards = "cards"
uid = "uid"
pro-id = "prodId"
updated = "updated"
kind = "kind"
related-to = "relatedTo"
locale = "locale"
full-name = "fullName"
name = "name"
organization-units = "organization"
job-titles = "jobTitle"
roles = "role"
emails = "emails"
phones = "phones"
online = "online"
preferred-contact-method = "preferredContactMethod"
preferred-contact-languages = "preferredContactLanguages"
addresses = "addresses"
context = "context"
label = "label"
full-address = "fullAddress"
street = "street"
extension = "extension"
locality = "locality"
region = "region"
country = "country"
po-box = "postOfficeBox"
postcode = "postcode"
country-code = "countryCode"
coodinates = "coordinates"
time-zone = "timeZone"
is-preferred = "isPreferred"
anniversaries = "anniversaries"
anniversary-type = "type"
anniversary-label = "label"
anniversary-date = "date"
anniversary-place = "place"
personal-info = "personalInfo"
personal-info-type = "type"
personal-info-notes = "notes"
personal-info-categories = "categories"