Update
Examples in this documentation depend on features activated in the For details, refer to 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"
}