From 9ca99edd0dfc44f1c1a0e25b0d20e7883ba0eefd Mon Sep 17 00:00:00 2001
From: Mark Craig <mark.craig@forgerock.com>
Date: Fri, 12 Apr 2013 10:22:10 +0000
Subject: [PATCH] CR-1542 Fix for OPENDJ-864: Document REST update support

---
 opendj-sdk/opendj3/src/main/docbkx/admin-guide/chap-rest-operations.xml |  123 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 122 insertions(+), 1 deletions(-)

diff --git a/opendj-sdk/opendj3/src/main/docbkx/admin-guide/chap-rest-operations.xml b/opendj-sdk/opendj3/src/main/docbkx/admin-guide/chap-rest-operations.xml
index bf177c7..e092a24 100644
--- a/opendj-sdk/opendj3/src/main/docbkx/admin-guide/chap-rest-operations.xml
+++ b/opendj-sdk/opendj3/src/main/docbkx/admin-guide/chap-rest-operations.xml
@@ -238,7 +238,128 @@
  <section xml:id="update-rest">
   <title>Updating Resources</title>
 
-  <para>TODO, https://bugster.forgerock.org/jira/browse/OPENDJ-693</para>
+  <para>To update a resource, perform an HTTP PUT with the changes to the
+  resource. For read-only fields, either include unmodified versions, or omit
+  them from your updated version.</para>
+
+  <para>The following example adds a manager for Sam Carter.</para>
+
+  <screen>$ curl
+ --request PUT
+ --user kvaughan:bribery
+ --header "Content-Type: application/json"
+ --data '{
+   "contactInformation": {
+     "telephoneNumber": "+1 408 555 4798",
+     "emailAddress": "scarter@example.com"
+   },
+   "name": {
+     "familyName": "Carter",
+     "givenName": "Sam"
+   },
+   "userName": "scarter@example.com",
+   "displayName": "Sam Carter",
+   "groups": [
+     {
+       "_id": "Accounting Managers"
+     }
+   ],
+   "manager": [
+     {
+       "_id": "trigden",
+       "displayName": "Torrey Rigden"
+     }
+   ]
+ }'
+ http://opendj.example.com:8080/users/scarter?_prettyPrint=true
+{
+  "_rev" : "00000000a1923db2",
+  "schemas" : [ "urn:scim:schemas:core:1.0" ],
+  "contactInformation" : {
+    "telephoneNumber" : "+1 408 555 4798",
+    "emailAddress" : "scarter@example.com"
+  },
+  "_id" : "scarter",
+  "name" : {
+    "familyName" : "Carter",
+    "givenName" : "Sam"
+  },
+  "userName" : "scarter@example.com",
+  "displayName" : "Sam Carter",
+  "manager" : [ {
+    "_id" : "trigden",
+    "displayName" : "Torrey Rigden"
+  } ],
+  "meta" : {
+    "lastModified" : "2013-04-12T07:42:34Z"
+  },
+  "groups" : [ {
+    "_id" : "Accounting Managers"
+  } ]
+}</screen>
+
+  <para>To update a resource only if the resource matches a particular version,
+  use an <literal>If-Match: <replaceable>revision</replaceable></literal>
+  header.</para>
+
+  <screen> $ curl
+ --user kvaughan:bribery
+ http://opendj.example.com:8080/users/scarter?_fields=_rev
+<emphasis>{"_rev":"00000000b017c5b8"}</emphasis>
+$ curl
+ --request PUT
+ --user kvaughan:bribery
+ <emphasis>--header "If-Match: 00000000b017c5b8"</emphasis>
+ --header "Content-Type: application/json"
+ --data '{
+   "contactInformation": {
+     "telephoneNumber": "+1 408 555 1212",
+     "emailAddress": "scarter@example.com"
+   },
+   "name": {
+     "familyName": "Carter",
+     "givenName": "Sam"
+   },
+   "userName": "scarter@example.com",
+   "displayName": "Sam Carter",
+   "groups": [
+     {
+       "_id": "Accounting Managers"
+     }
+   ],
+   "manager": [
+     {
+       "_id": "trigden",
+       "displayName": "Torrey Rigden"
+     }
+   ]
+ }'
+ http://opendj.example.com:8080/users/scarter?_prettyPrint=true
+{
+  "_rev" : "00000000a1ee3da3",
+  "schemas" : [ "urn:scim:schemas:core:1.0" ],
+  "contactInformation" : {
+    "telephoneNumber" : "+1 408 555 1212",
+    "emailAddress" : "scarter@example.com"
+  },
+  "_id" : "scarter",
+  "name" : {
+    "familyName" : "Carter",
+    "givenName" : "Sam"
+  },
+  "userName" : "scarter@example.com",
+  "displayName" : "Sam Carter",
+  "meta" : {
+    "lastModified" : "2013-04-12T07:47:45Z"
+  },
+  "groups" : [ {
+    "_id" : "Accounting Managers"
+  } ],
+  "manager" : [ {
+    "_id" : "trigden",
+    "displayName" : "Torrey Rigden"
+  } ]
+}</screen>
  </section>
 
  <section xml:id="delete-rest">

--
Gitblit v1.10.0