Subject: CAP Restriction Table - initial proposal

From: [email-masked] (Steve Mansour)
Date: Wed, 02 Aug 2000 09:03:51 -0700

Folks,

Here's a first whack at a CAP restriction table. We did the example for
the CREATE command.  It's generated two day's worth of discussion here
at the ietf meeting.  Have a look at it and send your comments.  Once we
get it pretty much as we want it for CREATE, we'll clone it and add it
for the rest of the commands.

-Steve
--------------------------------------------

CAP Restriction Tables

This is the proposed format for CAP restriction tables. Their purpose is
to
define the composition of commands sent to a CAP server and the
composition
of the command replies.

While the tables list every property, it is not meant to define the
meaning
of the property. It is meant to define presence or absence of a
property.

There will be a RESPONSE-STATUS for each VCALENDAR and/or component
created,
modified, deleted, or requested. The number of response status values
returned
MUST be equal to the number of TARGETS times the number of objects in
the
command. The responses MUST be ordered first by TARGET then by the order
of
the objects as supplied in the command.

Client Restriction Table for the Create command

Component/Property        Presence Comment
-------------------       --------
--------------------------------------
VCALENDAR                  1+

  CMDID                    0 or 1  If CMDID is not supplied, then there
must
                                   not be pending replies to previous
command.

  VERSION                  1       MUST be 2.0

  VCOMMAND
    METHOD                 1       MUST be CREATE.
    TARGET                 1+

    VCALENDAR              0+
      CALMASTER            1
      NAME                 0 or 1  The user friendly name, localizable.
      OWNER                1+
      RELCALID             1       This is only present when creating a
new calendar.
                                   This is the name of the calid to
create.
      TZID                 0 or 1

    VCAR                   0+
      CARID                0 or 1  A reference name
      DENY                 0+      permissions denied. Note, there must
be at least
                                   one GRANT or DENY within the VCAR.
      GRANT                0+      permissions granted. Note, there must
be at least
                                   one GRANT or DENY within the VCAR.

    VQUERY                 0+
      EXPAND               0 or 1  Expand recurrences or not
      MAXRESULTS           0 or 1  Limit the solution set to no more
than this many
                                   enries.
      MAXSIZE              0 or 1  Maximum number of octets to transfer
      QUERYNAME            1       Name by which this query is
referenced
      QUERY                1       The query

    VEVENT                 0+
      ATTENDEE             0+
      SEQUENCE             0 or 1  MUST be present if value is greater
than 0,
                                   MAY be present if 0
      SUMMARY              1       Can be null
      UID                  1

      ATTACH               0+
      CATEGORIES           0 or 1  This property may contain a list of
values
      CLASS                0 or 1
      COMMENT              0 or 1
      CONTACT              0+
      CREATED              0 or 1
      DESCRIPTION          0 or 1  Can be null
      DTEND                0 or 1  if present DURATION MUST NOT be
present
      DTSTAMP              1
      DTSTART              1
      DURATION             0 or 1  if present DTEND MUST NOT be present
      EXDATE               0+
      EXRULE               0+
      GEO                  0 or 1
      LAST-MODIFIED        0 or 1
      LOCATION             0 or 1
      METHOD               1       MUST be one of CREATE, PUBLISH,
REQUEST, CANCEL,
                                   REFRESH, COUNTER, DECLINECOUNTER. If
the value is
                                   that of an iTIP method, the property
values must
                                   be consistent with those specified in
iTIP. The
                                   values shown below reflect
restrictions when the
                                   method is CREATE.
      ORGANIZER            1
      PRIORITY             0 or 1
      RDATE                0+
      RECURRENCE-ID        0 or 1  only if referring to an instance of a

                                   recurring calendar component.
Otherwise it
                                   MUST NOT be present.
      RELATED-TO           0+
      REQUEST-STATUSSSSS   0+
      RESOURCES            0 or 1  This property MAY contain a list of
values
      RRULE                0+
      STATUS               0 or 1  MAY be one of
TENTATIVE/CONFIRMED/CANCELLED
      TRANSP               0 or 1
      URL                  0 or 1
      X-PROPERTY           0+
      [IANA-PROP]          0+      any IANA registered property

    VTODO                  0+
      ATTENDEE             0+
      SEQUENCE             0 or 1  MUST be present if value is greater
than
                                   0, MAY be present if 0
      SUMMARY              1       Can be null.
      UID                  1

      ATTACH               0+
      CATEGORIES           0 or 1  This property may contain a list of
values
      CLASS                0 or 1
      COMMENT              0 or 1
      CONTACT              0+
      CREATED              0 or 1
      DESCRIPTION          0 or 1  Can be null
      DTSTAMP              1
      DTSTART              1
      DUE                  0 or 1  If present DURATION MUST NOT be
present
      DURATION             0 or 1  If present DUE MUST NOT be present
      EXDATE               0+
      EXRULE               0+
      GEO                  0 or 1
      LAST-MODIFIED        0 or 1
      LOCATION             0 or 1
      METHOD               1       MUST be one of CREATE, PUBLISH,
REQUEST, CANCEL,
                                   REFRESH, COUNTER, DECLINECOUNTER. If
the value is
                                   that of an iTIP method, the property
values must
                                   be consistent with those specified in
iTIP. The
                                   values shown below reflect
restrictions when the
                                   method is CREATE.
      ORGANIZER            1
      PRIORITY             1
      PERCENT-COMPLEEEEETE 0 or 1
      RDATE                0+
      RECURRENCE-ID        0 or 1  MUST only if referring to an instance
of a
                                   recurring calendar component.
Otherwise
                                   it MUST NOT be present.

      RELATED-TO           0+
      REQUEST-STATUSSSSS   0
      RESOURCES            0 or 1  This property may contain a list of
values
      RRULE                0+
      STATUS               0 or 1  MAY be one of COMPLETED/NEEDS
ACTION/IN-
                                   PROCESS/CANCELLED
      URL                  0 or 1

      X-PROPERTY           0+
      [IANA-PROP]          0+      any IANA registered property

    VJOURNAL               0+
      METHOD               1       MUST be one of CREATE, PUBLISH,
REQUEST, CANCEL,
                                   REFRESH, If the value is that of an
iTIP method,
                                   the property values must be
consistent with those
                                   specified in iTIP. The values shown
below reflect
                                   restrictions when the method is
CREATE.
      ATTENDEE             0
      DESCRIPTION          1       Can be null.
      DTSTAMP              1
      DTSTART              1
      ORGANIZER            1
      UID                  1

      ATTACH               0+
      CATEGORIES           0 or 1  This property MAY contain a list of
values
      CLASS                0 or 1
      COMMENT              0 or 1
      CONTACT              0+
      CREATED              0 or 1
      EXDATE               0+
      EXRULE               0+
      LAST-MODIFIED        0 or 1
      RDATE                0+
      RECURRENCE-ID        0 or 1  MUST only if referring to an instance
of a
                                   recurring calendar component.
Otherwise
                                   it MUST NOT be present.
      RELATED-TO           0+
      RRULE                0+
      SEQUENCE             0 or 1  MUST echo the original SEQUENCE
number.
                                   MUST be present if non-zero. MAY be
                                   present if zero.
      STATUS               0 or 1  MAY be one of DRAFT/FINAL/CANCELLED
      SUMMARY              0 or 1  Can be null
      URL                  0 or 1
      X-PROPERTY           0+

    VALARM                 0+
      ACTION               1
      ALARMID              0 or 1  MUST be 1 if multiple VALARMs are
present in same
                                   component.
      ATTACH               0+
      DESCRIPTION          0 or 1
      DURATION             0 or 1  if present REPEAT MUST be present
      REPEAT               0 or 1  if present DURATION MUST be present
      SUMMARY              0 or 1
      TRIGGER              1
      X-PROPERTY           0+

    VFREEBUSY              0

    VTIMEZONE              0+      MUST be present if any date/time
refers
                                   to timezone
       DAYLIGHT            0+      MUST be one or more of either
STANDARD or
                                   DAYLIGHT
          COMMENT          0 or 1
          DTSTART          1       MUST be local time format
          RDATE            0+      if present RRULE MUST NOT be present
          RRULE            0+      if present RDATE MUST NOT be present
          TZNAME           0 or 1
          TZOFFSET         1
          TZOFFSETFROM     1
          TZOFFSETTO       1
          X-PROPERTY       0+
       LAST-MODIFIED       0 or 1
       STANDARD            0+      MUST be one or more of either
STANDARD or
                                   DAYLIGHT
          COMMENT          0 or 1
          DTSTART          1       MUST be local time format
          RDATE            0+      if present RRULE MUST NOT be present
          RRULE            0+      if present RDATE MUST NOT be present
          TZNAME           0 or 1
          TZOFFSETFROM     1
          TZOFFSETTO       1
          X-PROPERTY       0+
       TZID                1
       TZURL               0 or 1
       X-PROPERTY          0+

Server Restriction Table for the CREATE command

Component/Property  Presence Comment
------------------- -------- --------------------------------------

VCALENDAR            1+
TARGET               1

VERSION              1       MUST be 2.0

CMDID                0 or 1  MUST be returned if the request contained
                             a CMDID

VALARM               0

    RESPONSE-STATUS  0       if not creating a calendar
                     1+      if creating a calendar

  VCAR               0+
    RESPONSE-STATUS  1+
    *                0       No other VCAR properties are present

  VCOMMAND           0

  VEVENT             0+
    RESPONSE-STATUS  1+
    *                0       No other VEVENT properties are present

  VFREEBUSY          0+
    RESPONSE-STATUS  1+
    *                0       No other VFREEBUSY properties are present

  VJOURNAL           0+
    RESPONSE-STATUS  1+
    *                0       No other VJOURNAL properties are present

  VQUERY             0+
    RESPONSE-STATUS  1+
    *                0       No other VQUERY properties are present

  VTODO              0+
    RESPONSE-STATUS  1+
    *                0       No other VTODO properties are present

Issues:
   freebusy - a cap server should dynamically calculate freebusy
information
              we recommend that you cannot create, modify, or delete
              freebusy composers