draft-ietf-jmap-jscontact-08.txt   draft-ietf-jmap-jscontact-09.txt 
JMAP R. Stepanek JMAP R. Stepanek
Internet-Draft FastMail Internet-Draft FastMail
Intended status: Standards Track M. Loffredo Intended status: Standards Track M. Loffredo
Expires: 23 April 2022 IIT-CNR Expires: 4 June 2022 IIT-CNR
20 October 2021 1 December 2021
JSContact: A JSON representation of contact data JSContact: A JSON representation of contact data
draft-ietf-jmap-jscontact-08 draft-ietf-jmap-jscontact-09
Abstract Abstract
This specification defines a data model and JSON representation of This specification defines a data model and JSON representation of
contact card information that can be used for data storage and contact card information that can be used for data storage and
exchange in address book or directory applications. It aims to be an exchange in address book or directory applications. It aims to be an
alternative to the vCard data format and to be unambiguous, alternative to the vCard data format and to be unambiguous,
extendable and simple to process. In contrast to the JSON-based extendable and simple to process. In contrast to the JSON-based
jCard format, it is not a direct mapping from the vCard data model jCard format, it is not a direct mapping from the vCard data model
and expands semantics where appropriate. and expands semantics where appropriate.
skipping to change at page 1, line 37 skipping to change at page 1, line 37
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 23 April 2022. This Internet-Draft will expire on 4 June 2022.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components and restrictions with respect to this document. Code Components
extracted from this document must include Simplified BSD License text extracted from this document must include Revised BSD License text as
as described in Section 4.e of the Trust Legal Provisions and are described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License. provided without warranty as described in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Relation to the xCard and jCard formats . . . . . . . . . 4 1.1. Relation to the xCard and jCard formats . . . . . . . . . 4
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Vendor-specific Property Extensions and Values . . . . . 4 1.3. Vendor-specific Property Extensions and Values . . . . . 4
1.4. Type Signatures . . . . . . . . . . . . . . . . . . . . . 4 1.4. Type Signatures . . . . . . . . . . . . . . . . . . . . . 5
1.5. Data types . . . . . . . . . . . . . . . . . . . . . . . 5 1.5. Data types . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.1. Context . . . . . . . . . . . . . . . . . . . . . . . 5 1.5.1. Context . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.2. Id . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.5.2. Id . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5.3. PatchObject . . . . . . . . . . . . . . . . . . . . . 6 1.5.3. PatchObject . . . . . . . . . . . . . . . . . . . . . 6
1.5.4. Preference . . . . . . . . . . . . . . . . . . . . . 7 1.5.4. Preference . . . . . . . . . . . . . . . . . . . . . 7
1.5.5. UTCDateTime . . . . . . . . . . . . . . . . . . . . . 7 1.5.5. UnsignedInt . . . . . . . . . . . . . . . . . . . . . 7
1.5.6. UTCDateTime . . . . . . . . . . . . . . . . . . . . . 8
2. Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2. Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1. Metadata properties . . . . . . . . . . . . . . . . . . . 8 2.1. Metadata properties . . . . . . . . . . . . . . . . . . . 8
2.1.1. @type . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.1. @type . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.2. uid . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.2. uid . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.3. prodId . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.3. prodId . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.4. created . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.4. created . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.5. updated . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.5. updated . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.6. kind . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.6. kind . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.7. relatedTo . . . . . . . . . . . . . . . . . . . . . . 9 2.1.7. relatedTo . . . . . . . . . . . . . . . . . . . . . . 9
2.1.8. language . . . . . . . . . . . . . . . . . . . . . . 9 2.1.8. language . . . . . . . . . . . . . . . . . . . . . . 10
2.2. Name and Organization properties . . . . . . . . . . . . 10 2.2. Name and Organization properties . . . . . . . . . . . . 10
2.2.1. name . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.1. name . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2. fullName . . . . . . . . . . . . . . . . . . . . . . 10 2.2.2. fullName . . . . . . . . . . . . . . . . . . . . . . 11
2.2.3. nickNames . . . . . . . . . . . . . . . . . . . . . . 11 2.2.3. nickNames . . . . . . . . . . . . . . . . . . . . . . 11
2.2.4. organizations . . . . . . . . . . . . . . . . . . . . 11 2.2.4. organizations . . . . . . . . . . . . . . . . . . . . 12
2.2.5. titles . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.5. titles . . . . . . . . . . . . . . . . . . . . . . . 12
2.3. Contact and Resource properties . . . . . . . . . . . . . 11 2.3. Contact and Resource properties . . . . . . . . . . . . . 12
2.3.1. emails . . . . . . . . . . . . . . . . . . . . . . . 11 2.3.1. emails . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.2. phones . . . . . . . . . . . . . . . . . . . . . . . 12 2.3.2. phones . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.3. online . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.3. online . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.4. photos . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.4. photos . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.5. preferredContactMethod . . . . . . . . . . . . . . . 15 2.3.5. preferredContactMethod . . . . . . . . . . . . . . . 15
2.3.6. preferredContactLanguages . . . . . . . . . . . . . . 15 2.3.6. preferredContactLanguages . . . . . . . . . . . . . . 15
2.4. Address and Location properties . . . . . . . . . . . . . 15 2.4. Address and Location properties . . . . . . . . . . . . . 16
2.4.1. addresses . . . . . . . . . . . . . . . . . . . . . . 15 2.4.1. addresses . . . . . . . . . . . . . . . . . . . . . . 16
2.5. Multilingual properties . . . . . . . . . . . . . . . . . 17
2.5.1. localizations . . . . . . . . . . . . . . . . . . . . 17 2.5. Multilingual properties . . . . . . . . . . . . . . . . . 18
2.5.1. localizations . . . . . . . . . . . . . . . . . . . . 18
2.6. Additional properties . . . . . . . . . . . . . . . . . . 18 2.6. Additional properties . . . . . . . . . . . . . . . . . . 18
2.6.1. anniversaries . . . . . . . . . . . . . . . . . . . . 18 2.6.1. anniversaries . . . . . . . . . . . . . . . . . . . . 19
2.6.2. personalInfo . . . . . . . . . . . . . . . . . . . . 19 2.6.2. personalInfo . . . . . . . . . . . . . . . . . . . . 19
2.6.3. notes . . . . . . . . . . . . . . . . . . . . . . . . 19 2.6.3. notes . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6.4. categories . . . . . . . . . . . . . . . . . . . . . 19 2.6.4. categories . . . . . . . . . . . . . . . . . . . . . 20
2.6.5. timeZones . . . . . . . . . . . . . . . . . . . . . . 20 2.6.5. timeZones . . . . . . . . . . . . . . . . . . . . . . 20
3. CardGroup . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3. CardGroup . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1. Group properties . . . . . . . . . . . . . . . . . . . . 20 3.1. Group properties . . . . . . . . . . . . . . . . . . . . 20
3.1.1. @type . . . . . . . . . . . . . . . . . . . . . . . . 20 3.1.1. @type . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.2. uid . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.1.2. uid . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.3. members . . . . . . . . . . . . . . . . . . . . . . . 20 3.1.3. members . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.4. name . . . . . . . . . . . . . . . . . . . . . . . . 20 3.1.4. name . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.5. card . . . . . . . . . . . . . . . . . . . . . . . . 20 3.1.5. card . . . . . . . . . . . . . . . . . . . . . . . . 21
4. Implementation Status . . . . . . . . . . . . . . . . . . . . 21 4. Implementation Status . . . . . . . . . . . . . . . . . . . . 21
4.1. IIT-CNR/Registro.it . . . . . . . . . . . . . . . . . . . 21 4.1. IIT-CNR/Registro.it . . . . . . . . . . . . . . . . . . . 21
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22
6. Security Considerations . . . . . . . . . . . . . . . . . . . 22 6. Security Considerations . . . . . . . . . . . . . . . . . . . 22
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 22
7.1. Normative References . . . . . . . . . . . . . . . . . . 22 7.1. Normative References . . . . . . . . . . . . . . . . . . 22
7.2. Informative References . . . . . . . . . . . . . . . . . 23 7.2. Informative References . . . . . . . . . . . . . . . . . 23
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25
1. Introduction 1. Introduction
This document defines a data model for contact card data normally This document defines a data model for contact card data normally
used in address book or directory applications and services. It aims used in address book or directory applications and services. It aims
to be an alternative to the vCard data format [RFC6350] and to to be an alternative to the vCard data format [RFC6350] and to
provide a JSON-based standard representation of contact card data. provide a JSON-based standard representation of contact card data.
The key design considerations for this data model are as follows: The key design considerations for this data model are as follows:
skipping to change at page 5, line 42 skipping to change at page 5, line 47
enumerates common contexts. enumerates common contexts.
Common context values are: Common context values are:
* private: The contact information may be used to contact the card * private: The contact information may be used to contact the card
holder in a private context. holder in a private context.
* work: The contact information may be used to contact the card * work: The contact information may be used to contact the card
holder in a professional context. holder in a professional context.
* other: The contact information may be used to contact the card
holder in some other context. A label property MAY be defined to
identify its purpose.
Additional allowed values may be defined in the properties or data Additional allowed values may be defined in the properties or data
types that make use of the Context data type, registered in a future types that make use of the Context data type, registered in a future
RFC, or a vendor-specific value. RFC, or a vendor-specific value.
1.5.2. Id 1.5.2. Id
Where Id is given as a data type, it means a String of at least 1 and Where Id is given as a data type, it means a String of at least 1 and
a maximum of 255 octets in size, and it MUST only contain characters a maximum of 255 octets in size, and it MUST only contain characters
from the URL and Filename Safe base64url alphabet, as defined in from the URL and Filename Safe base64url alphabet, as defined in
Section 5 of [RFC4648], excluding the pad character (=). This means Section 5 of [RFC4648], excluding the pad character (=). This means
skipping to change at page 7, line 44 skipping to change at page 7, line 44
Lower values correspond to a higher level of preference, with 1 being Lower values correspond to a higher level of preference, with 1 being
most preferred. If no preference is set, then the contact most preferred. If no preference is set, then the contact
information MUST be interpreted as being least preferred. information MUST be interpreted as being least preferred.
Note that the preference only is defined in relation to contact Note that the preference only is defined in relation to contact
information of the same type. For example, the preference orders information of the same type. For example, the preference orders
within emails and phone numbers are indendepent of each other. Also within emails and phone numbers are indendepent of each other. Also
note that the _preferredContactMethod_ property allows to define a note that the _preferredContactMethod_ property allows to define a
preferred contact method across method types. preferred contact method across method types.
1.5.5. UTCDateTime 1.5.5. UnsignedInt
Where UnsignedInt is given as a data type, it means an integer in the
range 0 <= value <= 2^53-1, represented as a JSON Number.
1.5.6. UTCDateTime
This is a string in [RFC3339] date-time format, with the further This is a string in [RFC3339] date-time format, with the further
restrictions that any letters MUST be in uppercase, and the time restrictions that any letters MUST be in uppercase, and the time
offset MUST be the character Z. Fractional second values MUST NOT be offset MUST be the character Z. Fractional second values MUST NOT be
included unless non-zero and MUST NOT have trailing zeros, to ensure included unless non-zero and MUST NOT have trailing zeros, to ensure
there is only a single representation for each date-time. there is only a single representation for each date-time.
For example, 2010-10-10T10:10:10.003Z is conformant, but For example, 2010-10-10T10:10:10.003Z is conformant, but
2010-10-10T10:10:10.000Z is invalid and is correctly encoded as 2010-10-10T10:10:10.000Z is invalid and is correctly encoded as
2010-10-10T10:10:10Z. 2010-10-10T10:10:10Z.
skipping to change at page 10, line 9 skipping to change at page 10, line 18
This defines the locale in which free-text property values can be This defines the locale in which free-text property values can be
assumed to be written in. The value MUST be a language tag as assumed to be written in. The value MUST be a language tag as
defined in [RFC5646]. Note that such values MAY be localized in the defined in [RFC5646]. Note that such values MAY be localized in the
localizations Section 2.5.1 property. localizations Section 2.5.1 property.
2.2. Name and Organization properties 2.2. Name and Organization properties
2.2.1. name 2.2.1. name
Type: NameComponent[] (optional). Type: Name (optional).
The name components of the name of the entity represented by this The name of the entity represented by this Card.
Card. Name components SHOULD be ordered such that their values
joined by whitespace produce a valid full name of this entity. Doing
so, implementations MAY ignore any separator components.
A NameComponent has the following properties: A Name object has the following properties
* @type: Name (mandatory). Specifies the type of this object. This
MUST be Name.
* components: NameComponent[] (mandatory). The components making up
the name. The component list MUST have at least one entry. Name
components SHOULD be ordered such that their values joined by
whitespace produce a valid full name of this entity. Doing so,
implementations MAY ignore any components of type separator.
* locale: String (optional). The locale of the name. The value
MUST be a language tag as defined [RFC5646].
A NameComponent object has the following properties:
* @type: String (mandatory). Specifies the type of this object. * @type: String (mandatory). Specifies the type of this object.
This MUST be NameComponent. This MUST be NameComponent.
* value: String (mandatory). The value of this name component. * value: String (mandatory). The value of this name component.
* type: String (mandatory). The type of this name component. The * type: String (mandatory). The type of this name component. The
value MUST be either one of the following values, registered in a value MUST be either one of the following values, registered in a
future RFC, or a vendor-specific value: future RFC, or a vendor-specific value:
- prefix. The value is a honorific title(s), e.g. "Mr", "Ms", - prefix. The value is a honorific title(s), e.g. "Mr", "Ms",
"Dr". "Dr".
- personal. The value is a personal name(s), also known as - given. The value is a given name, also known as "first name",
"first name", "given name". "personal name".
- surname. The value is a surname, also known as "last name", - surname. The value is a surname, also known as "last name",
"family name". "family name".
- additional. The value is an additional name, also known as - middle. The value is a middle name, also known as "additional
"middle name". name".
- suffix. The value is a honorific suffix, e.g. "B.A.", "Esq.". - suffix. The value is a honorific suffix, e.g. "B.A.", "Esq.".
- separator. A separator for two name components. The value - separator. A formatting separator for two name components.
property of the component includes the verbatim separator, for The value property of the component includes the verbatim
example a newline character. separator, for example a newline character.
* nth: UnsignedInt (optional, default: 1). Defines the rank of this
name component to other name components of the same type. If set,
the property value MUST be higher than or equal to 1.
For example, two name components of type surname may have their
nth property value set to 1 and 2, respectively. In this case,
the first name component defines the surname, and the second name
component the secondary surname.
Note that this property value does not indicate the order in which
to print name components of the same type. Some cultures print
the secondary surname before the first surname, others the first
before the second. Implementations SHOULD inspect the locale
property of the Name object to determine the appropriate
formatting. They MAY print name components in order of appearance
in the components property of the Name object.
2.2.2. fullName 2.2.2. fullName
Type: String (optional). Type: String (optional).
The full name (e.g. the personal name and surname of an individual, The full name (e.g. the personal name and surname of an individual,
the name of an organization) of the entity represented by this card. the name of an organization) of the entity represented by this card.
The purpose of this property is to define a name, even if the The purpose of this property is to define a name, even if the
individual name components are not known. In addition, it is meant individual name components are not known. In addition, it is meant
to provide alternative versions of the name for internationalisation. to provide alternative versions of the name for internationalisation.
skipping to change at page 12, line 21 skipping to change at page 13, line 12
* email: String (mandatory). The email address. This MUST be an * email: String (mandatory). The email address. This MUST be an
_addr-spec_ value as defined in Section 3.4.1 of [RFC5322]. _addr-spec_ value as defined in Section 3.4.1 of [RFC5322].
* contexts: Context[Boolean] (optional) The contexts in which to use * contexts: Context[Boolean] (optional) The contexts in which to use
this email address. The value for each key in the object MUST be this email address. The value for each key in the object MUST be
true. true.
* pref: Preference (optional) The preference of this email address * pref: Preference (optional) The preference of this email address
in relation to other email addresses. in relation to other email addresses.
* label: String (optional). A label describing the value in more
detail.
2.3.2. phones 2.3.2. phones
Type: Id[Phone] (optional). Type: Id[Phone] (optional).
The phone numbers to contact the entity represented by this card. A The phone numbers to contact the entity represented by this card. A
Phone object has the following properties: Phone object has the following properties:
* @type: String (mandatory). Specifies the type of this object. * @type: String (mandatory). Specifies the type of this object.
This MUST be Phone. This MUST be Phone.
skipping to change at page 13, line 10 skipping to change at page 13, line 51
- text The number supports text messages (SMS). - text The number supports text messages (SMS).
- cell The number is for a cell phone. - cell The number is for a cell phone.
- textphone The number is for a device for people with hearing or - textphone The number is for a device for people with hearing or
speech difficulties. speech difficulties.
- video The number supports video conferencing. - video The number supports video conferencing.
- other The number is for some other purpose. The label property
MAY be included to display next to the number to help the user
identify its purpose.
* contexts: Context[Boolean] (optional) The contexts in which to use * contexts: Context[Boolean] (optional) The contexts in which to use
this number. The value for each key in the object MUST be true. this number. The value for each key in the object MUST be true.
* label: String (optional). A label describing the value in more
detail, especially if the type property has value other (but MAY
be included with any type).
* pref: Preference (optional) The preference of this number in * pref: Preference (optional) The preference of this number in
relation to other numbers. relation to other numbers.
* label: String (optional). A label describing the value in more
detail.
2.3.3. online 2.3.3. online
Type: Id[Resource] (optional). Type: Id[Resource] (optional).
The online resources and services that are associated with the entity The online resources and services that are associated with the entity
represented by this card. A Resource object has the following represented by this card. A Resource object has the following
properties: properties:
* @type: String (mandatory). Specifies the type of this object. * @type: String (mandatory). Specifies the type of this object.
This MUST be Resource. This MUST be Resource.
* resource: String (mandatory). The resource value, where the * resource: String (mandatory). The resource value, where the
allowed value form is defined by the the _type_ property. In any allowed value form is defined by the the _type_ property. In any
case the value MUST NOT be empty. case the value MUST NOT be empty.
* type: String (optional, default: other). The type of the resource * type: String (optional). The type of the resource value. Allowed
value. Allowed values are: values are:
- uri The resource value is a URI, e.g. a website link. This - uri The resource value is a URI, e.g. a website link. This
MUST be a valid _URI_ as defined in Section 3 of [RFC3986] and MUST be a valid _URI_ as defined in Section 3 of [RFC3986] and
updates. updates.
- username The resource value is a username associated with the - username The resource value is a username associated with the
entity represented by this card (e.g. for social media, or an entity represented by this card (e.g. for social media, or an
IM client). The _label_ property SHOULD be included to IM client). The _label_ property SHOULD be included to
identify what service this is for. For compatibility between identify what service this is for. For compatibility between
clients, this label SHOULD be the canonical service name, clients, this label SHOULD be the canonical service name,
including capitalisation. e.g. Twitter, Facebook, Skype, including capitalisation. e.g. Twitter, Facebook, Skype,
GitHub, XMPP. The resource value may be any non-empty free GitHub, XMPP. The resource value may be any non-empty free
text. text.
- other The resource value is something else not covered by the
above categories. A label property MAY be included to display
next to the number to help the user identify its purpose. The
resource value may be any non-empty free text.
* mediaType: String (optional). Used for URI resource values. * mediaType: String (optional). Used for URI resource values.
Provides the media type [RFC2046] of the resource identified by Provides the media type [RFC2046] of the resource identified by
the URI. the URI.
* contexts: Context[Boolean] (optional) The contexts in which to use * contexts: Context[Boolean] (optional) The contexts in which to use
this resource. The value for each key in the object MUST be true. this resource. The value for each key in the object MUST be true.
* label: String (optional). A label describing the value in more
detail, especially if the type property has value other (but MAY
be included with any type).
* pref: Preference (optional) The preference of this resource in * pref: Preference (optional) The preference of this resource in
relation to other resources. relation to other resources.
* label: String (optional). A label describing the value in more
detail.
2.3.4. photos 2.3.4. photos
Type: Id[File] (optional). Type: Id[File] (optional).
A map of photo ids to File objects that contain photographs or images A map of photo ids to File objects that contain photographs or images
associated with this card. A typical use case is to include an associated with this card. A typical use case is to include an
avatar for display along the contact name. avatar for display along the contact name.
A File object has the following properties: A File object has the following properties:
skipping to change at page 15, line 12 skipping to change at page 15, line 34
* mediaType: String (optional). The content-type of the file, if * mediaType: String (optional). The content-type of the file, if
known. known.
* size: UnsignedInt (optional). The size, in octets, of the file * size: UnsignedInt (optional). The size, in octets, of the file
when fully decoded (i.e., the number of octets in the file the when fully decoded (i.e., the number of octets in the file the
user would download), if known. user would download), if known.
* pref: Preference (optional) The preference of this photo in * pref: Preference (optional) The preference of this photo in
relation to other photos. relation to other photos.
* label: String (optional). A label describing the value in more
detail.
2.3.5. preferredContactMethod 2.3.5. preferredContactMethod
Type : String (optional) Type : String (optional)
Defines the preferred method to contact the holder of this card. The Defines the preferred method to contact the holder of this card. The
value MUST be the property names: emails, phones, online. value MUST be the property names: emails, phones, online.
2.3.6. preferredContactLanguages 2.3.6. preferredContactLanguages
Type : String[ContactLanguage[]] (optional) Type : String[ContactLanguage[]] (optional)
skipping to change at page 17, line 5 skipping to change at page 17, line 26
* contexts: Context[Boolean] (optional). The contexts of the * contexts: Context[Boolean] (optional). The contexts of the
address information. In addition to the common contexts, allowed address information. In addition to the common contexts, allowed
values are: values are:
- billing An address to be used for billing. - billing An address to be used for billing.
- postal An address to be used for delivering physical items. - postal An address to be used for delivering physical items.
The value for each key in the object MUST be true. The value for each key in the object MUST be true.
* label: String (optional). A label describing the value in more
detail.
* pref: Preference (optional) The preference of this address in * pref: Preference (optional) The preference of this address in
relation to other addresses. relation to other addresses.
* label: String (optional). A label describing the value in more
detail.
A StreetComponent object has the following properties: A StreetComponent object has the following properties:
* @type: String (mandatory). Specifies the type of this object. * @type: String (mandatory). Specifies the type of this object.
This MUST be StreetComponent. This MUST be StreetComponent.
* type: String (mandatory). The type of this street component. The * type: String (mandatory). The type of this street component. The
value MUST be either one of the following values, registered in a value MUST be either one of the following values, registered in a
future RFC, or a vendor-specific value: future RFC, or a vendor-specific value:
- name. The street name. - name. The street name.
skipping to change at page 18, line 7 skipping to change at page 18, line 28
* value: String (mandatory). The value of this street component. * value: String (mandatory). The value of this street component.
2.5. Multilingual properties 2.5. Multilingual properties
2.5.1. localizations 2.5.1. localizations
Type: String[PatchObject] (optional). Type: String[PatchObject] (optional).
A map of language tags [RFC5646] to patches, which localize a A map of language tags [RFC5646] to patches, which localize a
property value into the locale of the respective language tag. The property value into the locale of the respective language tag. The
following example shows an Address object where the value Tokyo is paths in the PatchObject keys are relative to the Card object that
localized for the jp locale includes the localizations property. A patch MUST NOT target the
localizations property.
The following example shows a Card object, where one of its addresses
Tokyo is localized for the jp locale.
"@type": "Card",
...
"addresses": { "addresses": {
"addr1": { "addr1": {
"@type": "Address", "@type": "Address",
"locality": "Tokyo", "locality": "Tokyo",
} }
}, },
"localizations": { "localizations": {
"jp": { "jp": {
"addresses/addr1/locality":"東京" "addresses/addr1/locality":"東京"
} }
} }
Figure 1 Figure 1
A patch MUST NOT target the localizations property.
2.6. Additional properties 2.6. Additional properties
2.6.1. anniversaries 2.6.1. anniversaries
Type : Id[Anniversary] (optional). Type : Id[Anniversary] (optional).
These are memorable dates and events for the entity represented by These are memorable dates and events for the entity represented by
this card. An Anniversary object has the following properties: this card. An Anniversary object has the following properties:
* @type: String (mandatory). Specifies the type of this object. * @type: String (mandatory). Specifies the type of this object.
This MUST be Anniversary. This MUST be Anniversary.
skipping to change at page 18, line 38 skipping to change at page 19, line 14
2.6.1. anniversaries 2.6.1. anniversaries
Type : Id[Anniversary] (optional). Type : Id[Anniversary] (optional).
These are memorable dates and events for the entity represented by These are memorable dates and events for the entity represented by
this card. An Anniversary object has the following properties: this card. An Anniversary object has the following properties:
* @type: String (mandatory). Specifies the type of this object. * @type: String (mandatory). Specifies the type of this object.
This MUST be Anniversary. This MUST be Anniversary.
* type: String (mandatory). Specifies the type of the anniversary. * type: String (optional). Specifies the type of the anniversary.
This RFC predefines the following types, but implementations MAY This RFC predefines the following types, but implementations MAY
use additional values: use additional values:
- birth: a birth day anniversary - birth: a birth day anniversary
- death: a death day anniversary - death: a death day anniversary
- other: an anniversary not covered by any of the known types.
* label: String (optional). A label describing the value in more
detail, especially if the type property has value other (but MAY
be included with any type).
* date: String (mandatory). The date of this anniversary, in the * date: String (mandatory). The date of this anniversary, in the
form "YYYY-MM-DD" (any part may be all 0s for unknown) or a form "YYYY-MM-DD" (any part may be all 0s for unknown) or a
[RFC3339] timestamp. [RFC3339] timestamp.
* place: Address (optional). An address associated with this * place: Address (optional). An address associated with this
anniversary, e.g. the place of birth or death. anniversary, e.g. the place of birth or death.
* label: String (optional). A label describing the value in more
detail.
2.6.2. personalInfo 2.6.2. personalInfo
Type: Id[PersonalInformation] (optional). Type: Id[PersonalInformation] (optional).
Defines personal information about the entity represented by this Defines personal information about the entity represented by this
card. A PersonalInformation object has the following properties: card. A PersonalInformation object has the following properties:
* @type: String (mandatory). Specifies the type of this object. * @type: String (mandatory). Specifies the type of this object.
This MUST be PersonalInformation. This MUST be PersonalInformation.
* type: String (mandatory). Specifies the type for this personal * type: String (mandatory). Specifies the type for this personal
information. Allowed values are: information. Allowed values are:
- expertise: a field of expertise or credential - expertise: a field of expertise or credential
- hobby: a hobby - hobby: a hobby
- interest: an interest - interest: an interest
- other: an information not covered by the above categories
* value: String (mandatory). The actual information. This * value: String (mandatory). The actual information. This
generally is free-text, but future specifications MAY restrict generally is free-text, but future specifications MAY restrict
allowed values depending on the type of this PersonalInformation. allowed values depending on the type of this PersonalInformation.
* level: String (optional) Indicates the level of expertise, or * level: String (optional) Indicates the level of expertise, or
engagement in hobby or interest. Allowed values are: high, medium engagement in hobby or interest. Allowed values are: high, medium
and low. and low.
* label: String (optional). A label describing the value in more
detail.
2.6.3. notes 2.6.3. notes
Type: String (optional). Type: String (optional).
Arbitrary notes about the entity represented by this card. Arbitrary notes about the entity represented by this card.
2.6.4. categories 2.6.4. categories
Type: String[Boolean] (optional). The set of free-text or URI Type: String[Boolean] (optional). The set of free-text or URI
categories that relate to the card. The set is represented as an categories that relate to the card. The set is represented as an
skipping to change at page 21, line 28 skipping to change at page 22, line 4
of available implementations or their features. Readers are advised of available implementations or their features. Readers are advised
to note that other implementations may exist. According to to note that other implementations may exist. According to
[RFC7942], "this will allow reviewers and working groups to assign [RFC7942], "this will allow reviewers and working groups to assign
due consideration to documents that have the benefit of running code, due consideration to documents that have the benefit of running code,
which may serve as evidence of valuable experimentation and feedback which may serve as evidence of valuable experimentation and feedback
that have made the implemented protocols more mature. It is up to that have made the implemented protocols more mature. It is up to
the individual working groups to use this information as they see the individual working groups to use this information as they see
fit". fit".
4.1. IIT-CNR/Registro.it 4.1. IIT-CNR/Registro.it
* Responsible Organization: Institute of Informatics and Telematics * Responsible Organization: Institute of Informatics and Telematics
of National Research Council (IIT-CNR)/Registro.it of National Research Council (IIT-CNR)/Registro.it
* Location: https://rdap.pubtest.nic.it/ * Location: https://rdap.pubtest.nic.it/
(https://rdap.pubtest.nic.it/) (https://rdap.pubtest.nic.it/)
* Description: This implementation includes support for RDAP queries * Description: This implementation includes support for RDAP queries
using data from the public test environment of .it ccTLD. The using data from the public test environment of .it ccTLD. The
RDAP server does not implement any security policy because data RDAP server returns responses including Card in place of jCard
returned by this server are only for experimental testing when queries contain the parameter jscard=1.
purposes. The RDAP server returns responses including Card in
place of jCard when queries contain the parameter jscard=1.
* Level of Maturity: This is a "proof of concept" research * Level of Maturity: This is an "alpha" test implementation.
implementation.
* Coverage: This implementation includes all of the features * Coverage: This implementation includes all of the features
described in this specification. described in this specification.
* Contact Information: Mario Loffredo, mario.loffredo@iit.cnr.it * Contact Information: Mario Loffredo, mario.loffredo@iit.cnr.it
5. IANA Considerations 5. IANA Considerations
TBD TBD
 End of changes. 46 change blocks. 
92 lines changed or deleted 115 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/