Update
Note
Examples in this documentation depend on features activated in the ds-evaluation
setup profile.
For details, see "Learn About the Evaluation Setup Profile".
To update a resource, replace it with an HTTP PUT that includes the case-sensitive identifier (_id
) as the final element of the path, and a JSON payload that contains all writable fields of the resource that you want to retain. Use an If-Match
header to ensure the resource already exists. For read-only fields, either include unmodified versions, or omit them from your updated version.
To update a resource regardless of the revision, use an If-Match: *
header:
$curl \ --request PUT \ --cacert ca-cert.pem \ --user kvaughan:bribery \ --header "Content-Type: application/json" \ --header "If-Match: *" \ --data '{ "contactInformation": { "telephoneNumber": "+1 408 555 4798", "emailAddress": "scarter@example.com" }, "name": { "familyName": "Carter", "givenName": "Sam" }, "userName": "scarter@example.com", "displayName": ["Sam Carter", "Samantha Carter"], "groups": [ { "_id": "Accounting Managers" } ], "manager": { "_id": "trigden" }, "uidNumber": 1002, "gidNumber": 1000, "homeDirectory": "/home/scarter" }' \ --silent \ https://localhost:8443/api/users/scarter?_prettyPrint=true
{ "_id" : "scarter", "_rev" : "<revision>", "_schema" : "frapi:opendj:rest2ldap:posixUser:1.0", "_meta" : { "lastModified" : "<datestamp>" }, "userName" : "scarter@example.com", "displayName" : [ "Sam Carter", "Samantha Carter" ], "name" : { "givenName" : "Sam", "familyName" : "Carter" }, "description" : "Description on ou=People", "manager" : { "_id" : "trigden", "_rev" : "<revision>" }, "groups" : [ { "_id" : "Accounting Managers", "_rev" : "<revision>" } ], "contactInformation" : { "telephoneNumber" : "+1 408 555 4798", "emailAddress" : "scarter@example.com" }, "uidNumber" : 1002, "gidNumber" : 1000, "homeDirectory" : "/home/scarter" }
To update a resource only if the resource matches a particular version, use an If-Match: revision
header as shown in the following example:
$export REVISION=$(cut -d \" -f 8 <(curl --silent \ --cacert ca-cert.pem \ --user kvaughan:bribery \ https://localhost:8443/api/users/scarter?_fields=_rev))
$curl \ --request PUT \ --cacert ca-cert.pem \ --user kvaughan:bribery \ --header "If-Match: $REVISION" \ --header "Content-Type: application/json" \ --data '{ "_id" : "scarter", "_schema" : "frapi:opendj:rest2ldap:posixUser:1.0", "contactInformation": { "telephoneNumber": "+1 408 555 4798", "emailAddress": "scarter@example.com" }, "name": { "familyName": "Carter", "givenName": "Sam" }, "userName": "scarter@example.com", "displayName": ["Sam Carter", "Samantha Carter"], "uidNumber": 1002, "gidNumber": 1000, "homeDirectory": "/home/scarter" }' \ --silent \ https://localhost:8443/api/users/scarter?_prettyPrint=true
{ "_id" : "scarter", "_rev" : "<new-revision>", "_schema" : "frapi:opendj:rest2ldap:posixUser:1.0", "_meta" : { "lastModified" : "<datestamp>" }, "userName" : "scarter@example.com", "displayName" : [ "Sam Carter", "Samantha Carter" ], "name" : { "givenName" : "Sam", "familyName" : "Carter" }, "description" : "Description on ou=People", "groups" : [ { "_id" : "Accounting Managers", "_rev" : "<revision>" } ], "contactInformation" : { "telephoneNumber" : "+1 408 555 4798", "emailAddress" : "scarter@example.com" }, "uidNumber" : 1002, "gidNumber" : 1000, "homeDirectory" : "/home/scarter" }