Updating an existing resource
Updating an existing resource (PUT request) is possible in two ways: Either you perform a full update and provide the full data structure of the given object in the request body, or you apply a partial update which only contains the parameters to be updated. Unless explicitly specified, nevisAdmin uses partial updates. This means for a full update that parameters that are not present in the request body will be removed on the existing resource.
For example, to update the classPath parameter on a nevisAuth instance, the requests will look as follows:
Partial update
nevisAuth instance update request body for partial update
Request method:PUT
Request path:
https://<hostname>:8037/nevisadmin/rest/infrastructure/zone/<zoneId>/server/<ser
verId>/instance/<instanceId>?partialUpdate=true
Request params: `<none>`
Query params: partialUpdate=true
Form params: `<none>`
Path params: `<none>`
Headers: Content-Type=application/xml
Cookies: JSESSIONID=dac071f1d8908e991ae73d4df7d9
Body:
<nevisAuth xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="nevisAuth"
id="id-84f44415-8e79-444a-8c5e-3cd76b93a126" name="clone-source-auth-instance">
<classPath>/var/opt/nevisauth/test/plugin/:/opt/nevisauth/plugin/</classPath>
</nevisAuth>
Full update (output cut for brevity)
nevisAuth instance update request body for full update
Request method: PUT
Request path:
https://<hostname>:8037/nevisadmin/rest/infrastructure/zone/<zoneId>/server/<ser
verId>/instance/<instanceId>?partialUpdate=false
Request params: `<none>`
Query params: partialUpdate=false
Form params: `<none>`
Path params: `<none>`
Headers: Content-Type=application/xml
Cookies: JSESSIONID=dafe5451ccfb40a5cc7fe2a35236
Body:
<nevisAuth xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="nevisAuth"
id="id-84f44415-8e79-444a-8c5e-3cd76b93a126" name="clone-source-auth-instance">
<description>auth-instance-description</description>
<cacheType>local</cacheType>
<sessionIndexing>indexing</sessionIndexing>
<defaultSignerKeystoreLabelId>nevis:authsigner</defaultSignerKeystoreLabelId>
<dynCertSignerKeystoreLabelId>nevis:dyncertsign</dynCertSignerKeystoreLabelId>
<classPath>/var/opt/nevisauth/test/plugin/:/opt/nevisauth/plugin/</classPath>
...
<authKeyStore>
<name>optional-keystore-1</name>
<authKeyObject>
<id>clone.source.server.hostname</id>
<labelName>clone.source.server.hostname</labelName>
<labelId>node:clone.source.server.hostname</labelId>
<truststorePassPhrase>false</truststorePassPhrase>
<revocation>revocation</revocation>
<keyPurposeSet>key-purpose-set</keyPurposeSet>
</authKeyObject>
<authKeyObject>
<id>clone.source.server.hostname1</id>
<labelName>clone.source.server.hostname1</labelName>
<labelId>node:clone.source.server.hostname1</labelId>
<truststorePassPhrase>true</truststorePassPhrase>
<revocation>revocation</revocation>
<keyPurposeSet>key-purpose-set</keyPurposeSet>
</authKeyObject>
</authKeyStore>
<sessionCacheAttributes>
<property>
<name>custom-session-cache-attribute-name</name>
<value>custom-session-cache-attribute-value</value>
</property>
</sessionCacheAttributes>
</nevisAuth>