Subject: [Bug 70] REBIND arguments should be like BIND

From: [email-masked]
Date: Mon, 6 Dec 2004 02:26:21 -0800

http://ietf.cse.ucsc.edu:8080/bugzilla/show_bug.cgi?id=70

------- Additional Comments From [email-masked]  2004-12-06 02:26 -------
Updated text from -latest version:

6.  REBIND Method

   The REBIND method removes a binding to a resource from a collection,
   and adds a binding to that resource into the collection identified by
   the Request-URI.  The request body specifies the binding to be added
   (segment) and the old binding to be removed (href).  It is
   effectively an atomic form of a MOVE request, and MUST be treated the
   same way as MOVE for the purpose of determining access permissions.

   If a REBIND request fails, the server state preceding the request
   MUST be restored.  This method is unsafe and idempotent (see
   [RFC2616], section 9.1).

   Marshalling:

      The request MAY include an Overwrite header.

      The request body MUST be a DAV:rebind XML element.

      <!ELEMENT rebind (segment, href)>

      If the request succeeds, the server MUST return 201 (Created) when
      a new binding was created and 200 (OK) when an existing binding
      was replaced.

      If a response body for a successful request is included, it MUST
      be a DAV:rebind-response XML element.  Note that this document
      does not define any elements for the REBIND response body, but the
      DAV:rebind-response element is defined to ensure interoperability
      between future extensions that do define elements for the REBIND
      response body.

      <!ELEMENT rebind-response ANY>

   Preconditions:

      (DAV:rebind-into-collection): The Request-URI MUST identify a
      collection.

      (DAV:rebind-source-exists): The DAV:href element MUST identify a
      resource.

      (DAV:cross-server-binding): If the resource identified by the
      DAV:href element in the request body is on another server from the
      collection identified by the Request-URI, the server MUST support
      cross-server bindings.

      (DAV:name-allowed): The name specified by the DAV:segment is
      available for use as a new binding name.

      (DAV:can-overwrite): If the collection already contains a binding
      with the specified path segment, and if an Overwrite header is
      included, the value of the Overwrite header MUST be "T".

      (DAV:cycle-allowed): If the DAV:href element identifies a
      collection, and if the Request-URI identifies a collection that is
      a member of that collection, the server MUST support cycles in the
      URI namespace.

      (DAV:locked-update-allowed): If the collection identified by the
      Request-URI is write-locked, then the appropriate token MUST be
      specified in the request.

      (DAV:protected-url-modification-allowed): If the collection
      identified by the Request-URI already contains a binding with the
      specified path segment, and if that binding is protected by a
      write-lock, then the appropriate token MUST be specified in the
      request.

      (DAV:locked-source-collection-update-allowed): If the collection
      identified by the parent collection prefix of the DAV:href  URI is
      write-locked, then the appropriate token MUST be specified in the
      request.

      (DAV:protected-source-url-deletion-allowed): If the DAV:href URI
      is protected by a write lock, then the appropriate token MUST be
      specified in the request.

   Postconditions:

      (DAV:new-binding): The collection MUST have a binding that maps
      the segment specified in the DAV:segment element in the request
      body, to the resource that was identified by the DAV:href element
      in the request body.

      (DAV:binding-deleted): The URL specified in the DAV:href element
      in the request body MUST NOT be mapped to a resource.

      (DAV:lock-deleted): If the URL specified in the DAV:href element
      in the request body was protected by a write-lock at the time of
      the request, that write-lock must have been deleted by the
      request.

------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.