---
sourceDocument: Xanadu API Reference
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# CdmEditorApi

# CdmEditorApi {#ariaid-title1}

* Release version: Xanadu
* 
* Updated August 1, 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 31 minutes to read

The CdmEditorApi provides endpoints that enable you to create nodes,
update nodes, include existing nodes under other nodes, delete nodes, and retrieve nodes and node
includes.  
You must have one of the following roles to access this API:

* Scripted REST CDM View ACL (sn_cdm.cdm.viewer)
* Scripted REST CDM Editor ACL (sn_cdm.cdm_editor)

To view fields that have been encrypted, you must have the CDM Secret role.

In addition, the Configuration Data Management (CDM) plugin must
be activated for this API to be available in an instance.  
Note:  
The CdmEditorApi API cannot be used to modify any files. Only file deletion is allowed currently.

## CdmEditorApi - DELETE /sn_cdm/editor/nodes {#ariaid-title2}

Deletes a specified node.
The caller of this endpoint must have the CDM Editor role.

### URL format

Versioned URL:
/api/sn_cdm/{api_version}/editor/nodes

Default URL:
/api/sn_cdm/editor/nodes

### Supported request parameters

{#editor-DELETE-nodes__entry__2}{#editor-DELETE-nodes__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
[Table 1. Path parameters]

{#editor-DELETE-nodes__entry__6}{#editor-DELETE-nodes__changesetNumber-changeset-entry}{#editor-DELETE-nodes__fullNamePath-node-editor-entry}

| Name | Description |
|-|-|
| changesetNumber | Required. Unique identifier of the associated changeset, such as "Chset-10". Located in the CDM Changeset \[sn_cdm_changeset\] table. Data type: String |
| fullNamePath | Required. Path name of the node to delete. You can pass the name path in any of the following formats. For example, to delete the following node `testApp/deployables/Development1/cdi1`: * Backslash format: testApp/deployables/Development1/cdi1 Note: If your node name contains a backslash ("/"), you can't use this format. * Backend name path with replacement characters: testApp�deployables�Development1�cdi1 * Array: \['testApp','deployables','Development1','cdi1'\] {#editor-DELETE-nodes__ul_xrv_rc1_cyb} Data type: String |
[Table 2. Query parameters]

{#editor-DELETE-nodes__entry__12}

| Name | Description |
|-|-|
| None |   |
[Table 3. Request body parameters]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#editor-DELETE-nodes__entry__16}{#editor-DELETE-nodes__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 4. Request headers]

{#editor-DELETE-nodes__entry__20}

| Header | Description |
|-|-|
| None |   |
[Table 5. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#editor-DELETE-nodes__entry__24}{#editor-DELETE-nodes__entry-200-status-code}{#editor-DELETE-nodes__entry-400-status-code}{#editor-DELETE-nodes__entry-500-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 6. Status codes]

### Response body parameters

{#editor-DELETE-nodes__entry__32}

| Name | Description |
|-|-|
| None |   |
[ ]

### cURL request

The following code example shows how to delete the node "cdi88".

    curl "http://instance.servicenow.com/api/sn_cdm/editor/nodes?changesetNumber=Chset783&fullNamePath=%2FtestApp%2Fdeployables%2FDevelopment-1%2Fcdi88" \
    --request DELETE \
    --header "Accept:application/json" \
    --user 'username':'password'

Return result:

    None - just the associated HTTP status code

## CdmEditorApi - GET /sn_cdm/editor/includes {#ariaid-title3}

Returns the list of nodes that were include within a specified node path.
The caller of this endpoint must have the CDM Viewer role.

### URL format

Versioned URL:
/api/sn_cdm/{api_version}/editor/includes

Default URL:
/api/sn_cdm/editor/includes

### Supported request parameters

{#editor-GET-includes__entry__2}{#editor-GET-includes__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
[Table 7. Path parameters]

{#editor-GET-includes__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 8. Query parameters]

{#editor-GET-includes__entry__10}{#editor-GET-includes__cdm_apps-returnFields-entry}

| Name | Description |
|-|-|
| changesetNumber | Unique identifier of the associated changeset, such as "Chset-10". Located in the CDM Changeset \[sn_cdm_changeset\] table. Data type: String |
| returnFields | List of fields to return as part of the response. Pass the record column names such as sys_id, sys_updated_by, or state. Data type: Array Default: All fields as determined by the endpoint |
| sourceFullNamePath | Required. Path name of the source node for which to return the included nodes. You can pass the name path in any of the following formats. For example, to return the includes for the `collectionA` node in the testApp/collections directory: * Backslash format: testApp/collections/collectionA Note: If your node name contains a backslash ("/"), you can't use this format. * Backend name path with replacement characters: testApp�collections�collectionA * Array: \['testApp','collections','collectionA'\] Data type: String |
[Table 9. Request body parameters]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#editor-GET-includes__entry__18}{#editor-GET-includes__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 10. Request headers]

{#editor-GET-includes__entry__22}

| Header | Description |
|-|-|
| None |   |
[Table 11. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#editor-GET-includes__entry__26}{#editor-GET-includes__entry-200-status-code}{#editor-GET-includes__entry-400-status-code}{#editor-GET-includes__entry-500-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 12. Status codes]

### Response body parameters

{#editor-GET-includes__id_jpm_rxl_c5b__entry__2}{#editor-GET-includes__conflict-node-editor-entry}{#editor-GET-includes__conflict_type-node-editor-entry}{#editor-GET-includes__description-node-editor-entry}{#editor-GET-includes__effective_from-node-editor-entry}{#editor-GET-includes__effective_to-node-editor-entry}{#editor-GET-includes__level-node-editor-entry}{#editor-GET-includes__linked_to-node-editor-entry}{#editor-GET-includes__main_id-node-editor-entry}{#editor-GET-includes__main_id_encoded-node-editor-entry}{#editor-GET-includes__node_classifier-node-editor-entry}{#editor-GET-includes__previous_version-node-editor-entry}{#editor-GET-includes__restricted_to-node-editor-entry}{#editor-GET-includes__system_folder-node-editor-entry}

| Name | Description |
|-|-|
| changeset_id | Unique identifier of the associated changeset, such as "Chset-10". Located in the CDM Changeset \[sn_cdm_changeset\] table. Data type: String |
| conflict | Flag that indicates whether there was a conflict when processing the node. Possible values: * true: Conflict detected. * false: No conflict was detected. Data type: Boolean |
| conflict_type | If the conflict parameter is true, the type of conflict detected. Null if no conflict is detected. Possible values: * corrupted_node * deleted_node * duplicated_node * incomplete_deleted_parent * incomplete_deleted_ref * incomplete_renamed_ref * invalid_include * orphaned_descendant * related_conflict * unlinked_include * unrenamed_include * updated_node Data type: String |
| description | Short description of the purpose of the node. Data type: String |
| effective_from | Timestamp (converted to a long integer) when the node was committed as part of the changeset. If the node hasn't been committed, this value is "null". Data type: Integer |
| effective_to | Timestamp (converted to a long integer) of the node when it was either deleted or superseded by another node, otherwise "null". Data type: Integer |
| error | If an error occurred during processing, the details about the error. Data type: Object "error": { "detail": "String", "message": "String" } |
| error.detail | Additional information about the error. Data type: String |
| error.message | Error message that was generated while trying to process the request. Data type: String |
| level | Level of the node, starting from the root node, which is always 0. For example, the node /AppA/components/compA has two levels. Data type: String |
| linked_to | The main_id parameter of the referenced node to which this node is linked. If this node isn't linked to a reference node, the value is "null". Data type: String |
| main_id | Primary identifier for the node. You can use this value in the CdmQuery() script include to retrieve a JSON tree. For example: `CdmQuery().mainId('123')/query().getTree();` Data type: String |
| main_id_encoded | RADIX 57 string representation of the node's main_id parameter. Data type: String |
| name | Name of the node that was included under the target path. Data type: String |
| node_classifier | Classifier hierarchy of the node. Use this information to locate a node within the folder hierarchy. For example, a deployable would have a hierarchy of /application/deployables/env:Development While a collection would have a hierarchy of /applications/collections Data type: String |
| node_path | Full path name of the node that was included in the target path, such as /Production/deployables/Development1/cdi1. Data type: String |
| position | Node position. For example: If you upload the following array: arrayNode1: [ "literal1", {"cdi1": 1}, "literal3" ] The position values are set as follows: * arrayNode1.literal1 = 1000 * arrayNode1.2000 = 2000 * arrayNode1.literal3 = 3000 {#editor-GET-includes__ul_ybk_wg2_25b}If a complex object is uploaded under an array, in this case `{"cdi1": 1}`, the endpoint creates a new virtual node with the name equal to its position. In the example above, this is 2000. For includes, the position is always empty. Data type: String |
| previous_version | Details of the previous version of the node record. Note: If a new node was created, the endpoint returns `"previous_version" = null` for this parameter. Data type: Object "previous_version": { "link": "String", "value": "String" } |
| restricted_to | Details of the group that has access the associated the node. Data type: Object "restricted_to": { "link": "String", "value": "String" } |
| secure_value | If this value was flagged to be secured, the encrypted field (returned masked). A user must have the sn_cdm.cdm_secrets role to decrypt this information. You can direct the endpoint not to return these fields by setting the returnFields query parameter field. Data type: String |
| status | Node status. Possible values: * DELETED * NEW * SUPERSEDED * UPDATED * VALID Data type: String |
| sys_id | Sys_id of the node. Located in the CDM Node \[sn_cdm_node\] table. Data type: String |
| system_folder | Flag that indicates whether the associated node is a system folder. Possible values: * true: Node is a system folder. * false: Node isn't a system folder. Data type: Boolean |
| type | Node type. Possible values: * sn_cdm_node_cdi * sn_cdm_node_collection * sn_cdm_node_component * sn_cdm_node_folder * sn_cdm_node_variable Data type: String |
| value | Node value. Data type: String |
[ ]

{#editor-GET-includes__id_jpm_rxl_c5b}  

### cURL request

This code example shows how retrieve the includes in the source path
/testApp/collections/collA.

    curl "http://instance.servicenow.com/api/sn_cdm/editor/includes?changesetNumber=Chset5&sourceFullNamePath=%2FtestApp%2Fcollections%2FcollA" \
    --request GET \
    --header "Accept:application/json" \
    --user 'username':'password'

Return result:

    { 
      "result": [ 
        { 
          "sys_id": "a1c517a953b70110a1d3ddeeff7b129b", 
          "type": "sn_cdm_node_deployable", 
          "main_id": "6", 
          "main_id_encoded": ",", 
          "node_path": "!$!+!,", 
          "level": 2, 
          "status": "valid", 
          "node_classifier": "/application/deployables/env:Development", 
          "position": null, 
          "restricted_to": null, 
          "changeset_id": "e9c517a953b70110a1d3ddeeff7b1299", 
          "previous_version": null, 
          "effective_from": "1654002206866", 
          "effective_to": null, 
          "name": "Development_1", 
          "description": null, 
          "value": null, 
          "secure_value": null, 
          "system_folder": "0", 
          "linked_to": null, 
          "conflict": "0", 
          "conflict_type": null 
        } 
      ] 
    }

## CdmEditorApi - GET /sn_cdm/editor/nodes {#ariaid-title4}

Returns the details of a specified node or a list of child Configuration Data Management (CDM) nodes for a specified parent node.
The caller of this endpoint must have the CDM Viewer role.

### URL format

Versioned URL:
/api/sn_cdm/{api_version}/editor/nodes

Default URL:
/api/sn_cdm/editor/nodes

### Supported request parameters

{#editor-GET-nodes__entry__2}{#editor-GET-nodes__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
[Table 13. Path parameters]

{#editor-GET-nodes__entry__6}{#editor-GET-nodes__cdm_apps-returnFields-entry}{#editor-GET-nodes__type-node-editor-entry}

| Name | Description |
|-|-|
| changesetNumber | Unique identifier of the associated changeset, such as "Chset-10". Located in the CDM Changeset \[sn_cdm_changeset\] table. Data type: String |
| decryptPassword | Flag that indicates whether the value should be encrypted for the leaf nodes. Valid values: * true: Encrypted * false: Not encrypted Data type: Boolean Default: false |
| name | Node name. If you pass this parameter, only the results for the specified node are returned. Data type: String Default: All nodes within the parent node |
| parentFullNamePath | Required. Path name of the parent node for which to return the child nodes or to which the node specified in the name parameter resides. You can pass the name path in any of the following formats. For example, to return the nodes for the `collectionA` node in the testApp/collections directory: * Backslash format: testApp/collections/collectionA Note: If your node name contains a backslash ("/"), you can't use this format. * Backend name path with replacement characters: testApp�collections�collectionA * Array: \['testApp','collections','collectionA'\] Data type: String |
| returnFields | List of fields to return as part of the response. Pass the record column names such as sys_id, sys_updated_by, or state. Data type: Array Default: All fields as determined by the endpoint |
| type | Node type. Possible values: * sn_cdm_node_cdi OR cdi * sn_cdm_node_collection OR collection * sn_cdm_node_component OR component * sn_cdm_node_folder OR folder * sn_cdm_node_variable OR variable Data type: String Default: All |
[Table 14. Query parameters]

{#editor-GET-nodes__entry__20}

| Name | Description |
|-|-|
| None |   |
[Table 15. Request body parameters]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#editor-GET-nodes__entry__24}{#editor-GET-nodes__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 16. Request headers]

{#editor-GET-nodes__entry__28}

| Header | Description |
|-|-|
| None |   |
[Table 17. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#editor-GET-nodes__entry__32}{#editor-GET-nodes__entry-200-status-code}{#editor-GET-nodes__entry-400-status-code}{#editor-GET-nodes__entry-500-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 18. Status codes]

### Response body parameters

{#editor-GET-nodes__id_nwg_5jl_c5b__entry__2}{#editor-GET-nodes__changeset-node-editor-entry}{#editor-GET-nodes__changeset_link-node-editor-entry}{#editor-GET-nodes__changeset_value-node-editor-entry}{#editor-GET-nodes__conflict-node-editor-entry}{#editor-GET-nodes__conflict_type-node-editor-entry}{#editor-GET-nodes__description-node-editor-entry}{#editor-GET-nodes__effective_from-node-editor-entry}{#editor-GET-nodes__effective_to-node-editor-entry}{#editor-GET-nodes__level-node-editor-entry}{#editor-GET-nodes__linked_to-node-editor-entry}{#editor-GET-nodes__main_id-node-editor-entry}{#editor-GET-nodes__main_id_encoded-node-editor-entry}{#editor-GET-nodes__name-node-editor-entry}{#editor-GET-nodes__node_classifier-node-editor-entry}{#editor-GET-nodes__name_path-node-editor-entry}{#editor-GET-nodes__position-node-editor-entry}{#editor-GET-nodes__previous_version-node-editor-entry}{#editor-GET-nodes__previous_version_link-node-editor-entry}{#editor-GET-nodes__previous_version_value-node-editor-entry}{#editor-GET-nodes__restricted_to-node-editor-entry}{#editor-GET-nodes__restricted_to_link-node-editor-entry}{#editor-GET-nodes__restricted_to_value-node-editor-entry}{#editor-GET-nodes__secure_value-node-editor-entry}{#editor-GET-nodes__status-node-editor-entry}{#editor-GET-nodes__system_folder-node-editor-entry}{#editor-GET-nodes__sys_class_name-node-editor-entry}{#editor-GET-nodes__sys_created_by-node-editor-entry}{#editor-GET-nodes__sys_created_on-node-editor-entry}{#editor-GET-nodes__sys_id-node-editor-entry}{#editor-GET-nodes__sys_updated_by-node-editor-entry}{#editor-GET-nodes__sys_updated_on-node-editor-entry}{#editor-GET-nodes__d3098e3560}{#editor-GET-nodes__value-node-editor-entry}

| Name | Description |
|-|-|
| changeset_id | Details of the changeset record associated with the node. Data type: Object "changeset_id": { "link": "String", "value": "String" } |
| changeset_id.link | Call syntax for querying this changeset record using the Table REST API. Data type: String |
| changeset_id.value | Unique identifier of the changeset record. Located in the CDM Changeset \[sn_cdm_changeset\] table. Data type: String |
| conflict | Flag that indicates whether there was a conflict when processing the node. Possible values: * true: Conflict detected. * false: No conflict was detected. Data type: Boolean |
| conflict_type | If the conflict parameter is true, the type of conflict detected. Null if no conflict is detected. Possible values: * corrupted_node * deleted_node * duplicated_node * incomplete_deleted_parent * incomplete_deleted_ref * incomplete_renamed_ref * invalid_include * orphaned_descendant * related_conflict * unlinked_include * unrenamed_include * updated_node Data type: String |
| description | Short description of the purpose of the node. Data type: String |
| effective_from | Timestamp (converted to a long integer) when the node was committed as part of the changeset. If the node hasn't been committed, this value is "null". Data type: Integer |
| effective_to | Timestamp (converted to a long integer) of the node when it was either deleted or superseded by another node, otherwise "null". Data type: Integer |
| error | If an error occurred during processing, the details about the error. Data type: Object "error": { "detail": "String", "message": "String" } |
| error.detail | Additional information about the error. Data type: String |
| error.message | Error message that was generated while trying to process the request. Data type: String |
| level | Level of the node, starting from the root node, which is always 0. For example, the node /AppA/components/compA has two levels. Data type: String |
| linked_to | The main_id parameter of the referenced node to which this node is linked. If this node isn't linked to a reference node, the value is "null". Data type: String |
| main_id | Primary identifier for the node. You can use this value in the CdmQuery() script include to retrieve a JSON tree. For example: `CdmQuery().mainId('123')/query().getTree();` Data type: String |
| main_id_encoded | RADIX 57 string representation of the node's main_id parameter. Data type: String |
| name | Name of the node. Data type: String |
| node_classifier | Classifier hierarchy of the node. Use this information to locate a node within the folder hierarchy. For example, a deployable would have a hierarchy of /application/deployables/env:Development While a collection would have a hierarchy of /applications/collections Data type: String |
| node_path | Full node path name. Data type: String |
| position | Node position. For example: If you upload the following array: arrayNode1: [ "literal1", {"cdi1": 1}, "literal3" ] The position values are set as follows: * arrayNode1.literal1 = 1000 * arrayNode1.2000 = 2000 * arrayNode1.literal3 = 3000 {#editor-GET-nodes__ul_ybk_wg2_25b}If a complex object is uploaded under an array, in this case `{"cdi1": 1}`, the endpoint creates a new virtual node with the name equal to its position. In the example above, this is 2000. For includes, the position is always empty. Data type: String |
| previous_version | Details of the previous version of the node record. Note: If a new node was created, the endpoint returns `"previous_version" = null` for this parameter. Data type: Object "previous_version": { "link": "String", "value": "String" } |
| previous_version.link | Call syntax for querying this node record using the Table REST API. Data type: String |
| previous_version.value | Sys_id of the node record. Located in the CDM Node \[sn_cdm_node\] table. Data type: String |
| reason_for_conflict | Detailed explanation of the conflict. Data type: String |
| restricted_to | Details of the group that has access the associated the node. Data type: Object "restricted_to": { "link": "String", "value": "String" } |
| restricted_to.link | Call syntax for querying this group record using the Table REST API. Data type: String |
| restricted_to.value | Sys_id of the group record. Located in the CDM Group \[sys_user_group\] table. Data type: String |
| secure_value | If this value was flagged to be secured, the encrypted field (returned masked). A user must have the sn_cdm.cdm_secrets role to decrypt this information. You can direct the endpoint not to return these fields by setting the returnFields query parameter field. Data type: String |
| status | Node status. Possible values: * DELETED * NEW * SUPERSEDED * UPDATED * VALID Data type: String |
| system_folder | Flag that indicates whether the associated node is a system folder. Possible values: * true: Node is a system folder. * false: Node isn't a system folder. Data type: Boolean |
| sys_class_name | Table in which the node resides. Data type: String |
| sys_created_by | Name of the user that created the node. Data type: String |
| sys_created_on | Date and time when the node was created. Data type: String Format: yyyy-mm-dd hh:mm:ss |
| sys_id | Sys_id of the node. Located in the CDM Node \[sn_cdm_node\] table. Data type: String |
| sys_updated_by | Name of the user that updated the node. Data type: String |
| sys_updated_on | Date and time when the node was last updated. Data type: String Format: yyyy-mm-dd hh:mm:ss |
| type | Node type. Possible values: * sn_cdm_node_cdi * sn_cdm_node_collection * sn_cdm_node_component * sn_cdm_node_folder * sn_cdm_node_variable Data type: String Default: All |
| value | Node value. Data type: String |
[ ]

{#editor-GET-nodes__id_nwg_5jl_c5b}  

### cURL request

This code example shows how to retrieve the child nodes of type sn_cdm_node_cdi under the
/testApp/Fdeployables/Development_1 parent node.

    curl "http://instance.servicenow.com/api/sn_cdm/editor/nodes?decryptPassword=true&name=cdi45&changesetNumber=Chset3&parentFullNamePath=%2FtestApp%2Fdeployables%2FDevelopment_1&type=sn_cdm_node_cdi" \
    --request GET \
    --header "Accept:application/json" \
    --user 'username':'password'

Return result:

    { 
      "result": [ 
        { 
          "changeset_id": { 
            "value": "d403648653b70110a1d3ddeeff7b12c5", 
            "link": "http://instance.servicenow.com/api/now/table/sn_cdm_changeset/d403648653b70110a1d3ddeeff7b12c5" 
          }, 
          "node_path": "!$!+!,![:", 
          "description": null, 
          "sys_updated_on": "2022-06-30 09:24:07", 
          "type": "sn_cdm_node_cdi", 
          "sys_class_name": "sn_cdm_node", 
          "sys_id": "c93c7c1753981110a1d3ddeeff7b12c7", 
          "sys_updated_by": "admin", 
          "previous_version": null, 
          "sys_created_on": "2022-06-30 08:53:13", 
          "value": "cdcdc", 
          "effective_from": null, 
          "linked_to": null, 
          "sys_created_by": "admin", 
          "restricted_to": null, 
          "level": "3", 
          "conflict_type": null, 
          "main_id": "2869", 
          "effective_to": null, 
          "secure_value": null, 
          "node_classifier": "/application/deployables/env:Development", 
          "main_id_encoded": "[:", 
          "name": "cdi45", 
          "position": null, 
          "reason_for_conflict": null, 
          "system_folder": false, 
          "status": "new", 
          "conflict": false 
        } 
      ] 
    }

## CdmEditorApi - POST /sn_cdm/editor/includes {#ariaid-title5}

Includes an existing node into another node, such as a component node into a collection
node or a collection node into a deployable node. After including a node, the new node has its
own unique sys_id and main_Id.
The caller of this endpoint must have the CDM Editor role.

### URL format

Versioned URL:
/api/sn_cdm/{api_version}/editor/includes

Default URL:
/api/sn_cdm/editor/includes

### Supported request parameters

{#editor-POST-includes__entry__2}{#editor-POST-includes__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
[Table 19. Path parameters]

{#editor-POST-includes__entry__6}{#editor-POST-includes__cdm_apps-returnFields-entry}

| Name | Description |
|-|-|
| changesetNumber | Required. Unique number of the open changeset to include in the target node. Located in the CDM Changeset \[sn_cdm_changeset\] table. Data type: String |
| returnFields | List of fields to return as part of the response. Pass the record column names such as sys_id, sys_updated_by, or state. Data type: Array Default: All fields as determined by the endpoint |
| sourceFullNamePath | Required. Path name of the node to include in the target node. You can pass the name path in any of the following formats. For example, to include the following node `Staging/deployables/Development1/cdi1`: * Backslash format: Staging/deployables/Development1/cdi1 Note: If your node name contains a backslash ("/"), you can't use this format. * Backend name path with replacement characters: Staging�deployables�Development1�cdi1 * Array: \['Staging','deployables','Development1','cdi1'\] Data type: String |
| targetFullNamePath | Required. Path name of the node under which the source node is to be included. You can pass the name path in any of the following formats. For example, to include the following node `Production/deployables/Development1`: * Backslash format: Production/deployables/Development1/cdi1 Note: If your node name contains a backslash ("/"), you can't use this format. * Backend name path with replacement characters: Production�deployables�Development1�cdi1 * Array: \['Production','deployables','Development1','cdi1'\] {#editor-POST-includes__ul_wk2_k21_cyb} Data type: String |
[Table 20. Query parameters]

{#editor-POST-includes__entry__16}

| Name | Description |
|-|-|
| None |   |
[Table 21. Request body parameters]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#editor-POST-includes__entry__20}{#editor-POST-includes__accept-JSON-only-entry-RESTAPI}{#editor-POST-includes__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 22. Request headers]

{#editor-POST-includes__entry__26}

| Header | Description |
|-|-|
| None |   |
[Table 23. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#editor-POST-includes__entry__30}{#editor-POST-includes__entry-200-status-code}{#editor-POST-includes__entry-400-status-code}{#editor-POST-includes__entry-500-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 24. Status codes]

### Response body parameters

{#editor-POST-includes__id_cvv_pxl_c5b__entry__2}{#editor-POST-includes__conflict-node-editor-entry}{#editor-POST-includes__conflict_type-node-editor-entry}{#editor-POST-includes__description-node-editor-entry}{#editor-POST-includes__effective_from-node-editor-entry}{#editor-POST-includes__effective_to-node-editor-entry}{#editor-POST-includes__level-node-editor-entry}{#editor-POST-includes__linked_to-node-editor-entry}{#editor-POST-includes__main_id-node-editor-entry}{#editor-POST-includes__main_id_encoded-node-editor-entry}{#editor-POST-includes__node_classifier-node-editor-entry}{#editor-POST-includes__previous_version-node-editor-entry}{#editor-POST-includes__restricted_to-node-editor-entry}{#editor-POST-includes__system_folder-node-editor-entry}

| Name | Description |
|-|-|
| changeset_id | Unique identifier of the associated changeset, such as "Chset-10". Located in the CDM Changeset \[sn_cdm_changeset\] table. Data type: String |
| conflict | Flag that indicates whether there was a conflict when processing the node. Possible values: * true: Conflict detected. * false: No conflict was detected. Data type: Boolean |
| conflict_type | If the conflict parameter is true, the type of conflict detected. Null if no conflict is detected. Possible values: * corrupted_node * deleted_node * duplicated_node * incomplete_deleted_parent * incomplete_deleted_ref * incomplete_renamed_ref * invalid_include * orphaned_descendant * related_conflict * unlinked_include * unrenamed_include * updated_node Data type: String |
| description | Short description of the purpose of the node. Data type: String |
| effective_from | Timestamp (converted to a long integer) when the node was committed as part of the changeset. If the node hasn't been committed, this value is "null". Data type: Integer |
| effective_to | Timestamp (converted to a long integer) of the node when it was either deleted or superseded by another node, otherwise "null". Data type: Integer |
| error | If an error occurred during processing, the details about the error. Data type: Object "error": { "detail": "String", "message": "String" } |
| error.detail | Additional information about the error. Data type: String |
| error.message | Error message that was generated while trying to process the request. Data type: String |
| level | Level of the node, starting from the root node, which is always 0. For example, the node /AppA/components/compA has two levels. Data type: String |
| linked_to | The main_id parameter of the referenced node to which this node is linked. If this node isn't linked to a reference node, the value is "null". Data type: String |
| main_id | Primary identifier for the node. You can use this value in the CdmQuery() script include to retrieve a JSON tree. For example: `CdmQuery().mainId('123')/query().getTree();` Data type: String |
| main_id_encoded | RADIX 57 string representation of the node's main_id parameter. Data type: String |
| name | Name of the node that was included under the target path. Data type: String |
| node_classifier | Classifier hierarchy of the node. Use this information to locate a node within the folder hierarchy. For example, a deployable would have a hierarchy of /application/deployables/env:Development While a collection would have a hierarchy of /applications/collections Data type: String |
| node_path | Full path name of the node that was included in the target path, such as /Production/deployables/Development1/cdi1. Data type: String |
| position | Node position. For example: If you upload the following array: arrayNode1: [ "literal1", {"cdi1": 1}, "literal3" ] The position values are set as follows: * arrayNode1.literal1 = 1000 * arrayNode1.2000 = 2000 * arrayNode1.literal3 = 3000 {#editor-POST-includes__ul_ybk_wg2_25b}If a complex object is uploaded under an array, in this case `{"cdi1": 1}`, the endpoint creates a new virtual node with the name equal to its position. In the example above, this is 2000. For includes, the position is always empty. Data type: String |
| previous_version | Details of the previous version of the node record. Note: If a new node was created, the endpoint returns `"previous_version" = null` for this parameter. Data type: Object "previous_version": { "link": "String", "value": "String" } |
| restricted_to | Details of the group that has access the associated the node. Data type: Object "restricted_to": { "link": "String", "value": "String" } |
| secure_value | If this value was flagged to be secured, the encrypted field (returned masked). A user must have the sn_cdm.cdm_secrets role to decrypt this information. You can direct the endpoint not to return these fields by setting the returnFields query parameter field. Data type: String |
| status | Node status. Possible values: * DELETED * NEW * SUPERSEDED * UPDATED * VALID Data type: String |
| sys_id | Sys_id of the node. Located in the CDM Node \[sn_cdm_node\] table. Data type: String |
| system_folder | Flag that indicates whether the associated node is a system folder. Possible values: * true: Node is a system folder. * false: Node isn't a system folder. Data type: Boolean |
| type | Node type. Possible values: * sn_cdm_node_cdi * sn_cdm_node_collection * sn_cdm_node_component * sn_cdm_node_folder * sn_cdm_node_variable Data type: String |
| value | Node value. Data type: String |
[ ]

{#editor-POST-includes__id_cvv_pxl_c5b}  

### cURL request

The following code example shows how to include the node
/testApp/collections/collA under
/testApp/deployables/Development_1.

    curl "http://instance.servicenow.com/api/sn_cdm/editor/includes?changesetNumber=Chset5&targetFullNamePath=%2FtestApp%2Fdeployables%2FDevelopment_1&sourceFullNamePath=%2FtestApp%2Fcollecti
    ons%2FcollA" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'

Return result:

    { 
      "result": { 
        "changeset_id": { 
          "value": "d403648653b70110a1d3ddeeff7b12c5", 
          "link": "http://192.168.0.233:8080/api/now/table/sn_cdm_changeset/d403648653b70110a1d3ddeeff7b12c5" 
        }, 
        "node_path": "!$!+!,![?", 
        "description": null, 
        "sys_updated_on": "2022-06-30 09:19:47", 
        "type": "sn_cdm_node_linked", 
        "sys_class_name": "sn_cdm_node", 
        "sys_id": "1642015b53981110a1d3ddeeff7b1232", 
        "sys_updated_by": "admin", 
        "previous_version": null, 
        "sys_created_on": "2022-06-30 09:19:47", 
        "value": null, 
        "effective_from": null, 
        "linked_to": "2870", 
        "sys_created_by": "admin", 
        "restricted_to": null, 
        "level": "3", 
        "conflict_type": null, 
        "main_id": "2872", 
        "effective_to": null, 
        "secure_value": null, 
        "node_classifier": "/application/deployables/env:Development", 
        "main_id_encoded": "[?", 
        "name": "collA", 
        "position": null, 
        "reason_for_conflict": null, 
        "system_folder": false, 
        "status": "new", 
        "conflict": false 
      } 
    }

## CdmEditorApi - POST /sn_cdm/editor/nodes {#ariaid-title6}

Creates a specific type of node, such as component, collection, folder, configuration
data item (CDI), or variable.
You can also specify whether to automatically generate any parent nodes that are not
currently defined.

The caller of this endpoint must have either the CDM Editor or CDM Secret role.

### URL format

Versioned URL:
/api/sn_cdm/{api_version}/editor/nodes

Default URL:
/api/sn_cdm/editor/nodes

### Supported request parameters

{#editor-POST-nodes__entry__2}{#editor-POST-nodes__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
[Table 25. Path parameters]

{#editor-POST-nodes__entry__6}{#editor-POST-nodes__changesetNumber-changeset-entry}{#editor-POST-nodes__fullNamePath-node-editor-entry}{#editor-POST-nodes__cdm_apps-returnFields-entry}{#editor-POST-nodes__secure-node-editor-entry}

| Name | Description |
|-|-|
| autoCreateParents | Flag that indicates whether to automatically create the non-existent parents in the name path as components. Exceptions to this are the app, deployable, and collection. If you do not set this flag and the parents do not already exist, the endpoint fails. Valid values: * true: Automatically create the non-existent parents. * false: Don't automatically create the non-existent parents. Data type: Boolean Default: false |
| changesetNumber | Required. Unique identifier of the associated changeset, such as "Chset-10". Located in the CDM Changeset \[sn_cdm_changeset\] table. Data type: String |
| fullNamePath | Required. Path name of the node. You can pass the name path in any of the following formats. For example, to define the name path for the node `testApp/deployables/Development1/cdi1`: * Backslash format: testApp/deployables/Development1/cdi1 Note: If your node name contains a backslash ("/"), you can't use this format. * Backend name path with replacement characters: testApp�deployables�Development1�cdi1 * Array: \['testApp','deployables','Development1','cdi1'\] {#editor-POST-nodes__cdm_apps-namePath-ul} Data type: String |
| returnFields | List of fields to return as part of the response. Pass the record column names such as sys_id, sys_updated_by, or state. Data type: Array Default: All fields as determined by the endpoint |
| secure | Flag that indicates whether the value should be encrypted for the leaf nodes. Valid values: * true: Encrypted * false: Not encrypted Data type: Boolean Default: false |
| type | Required. Type of new node. Valid values: * sn_cdm_node_collection OR collection * sn_cdm_node_component OR component * sn_cdm_node_folder OR folder * sn_cdm_node_cdi OR cdi * sn_cdm_node_variable or variable Data type: String |
| value | Value of the new node. Data type: String Default: Equivalent of "null" |
[Table 26. Query parameters]

{#editor-POST-nodes__entry__22}

| Name | Description |
|-|-|
| None |   |
[Table 27. Request body parameters]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#editor-POST-nodes__entry__26}{#editor-POST-nodes__accept-JSON-only-entry-RESTAPI}{#editor-POST-nodes__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 28. Request headers]

{#editor-POST-nodes__entry__32}

| Header | Description |
|-|-|
| None |   |
[Table 29. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#editor-POST-nodes__entry__36}{#editor-POST-nodes__entry-200-status-code}{#editor-POST-nodes__entry-400-status-code}{#editor-POST-nodes__entry-500-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 30. Status codes]

### Response body parameters

{#editor-POST-nodes__id_nwg_5jl_c5b__entry__2}{#editor-POST-nodes__changeset-node-editor-entry}{#editor-POST-nodes__changeset_link-node-editor-entry}{#editor-POST-nodes__changeset_value-node-editor-entry}{#editor-POST-nodes__conflict-node-editor-entry}{#editor-POST-nodes__conflict_type-node-editor-entry}{#editor-POST-nodes__description-node-editor-entry}{#editor-POST-nodes__effective_from-node-editor-entry}{#editor-POST-nodes__effective_to-node-editor-entry}{#editor-POST-nodes__level-node-editor-entry}{#editor-POST-nodes__linked_to-node-editor-entry}{#editor-POST-nodes__main_id-node-editor-entry}{#editor-POST-nodes__main_id_encoded-node-editor-entry}{#editor-POST-nodes__name-node-editor-entry}{#editor-POST-nodes__node_classifier-node-editor-entry}{#editor-POST-nodes__name_path-node-editor-entry}{#editor-POST-nodes__position-node-editor-entry}{#editor-POST-nodes__previous_version-node-editor-entry}{#editor-POST-nodes__previous_version_link-node-editor-entry}{#editor-POST-nodes__previous_version_value-node-editor-entry}{#editor-POST-nodes__restricted_to-node-editor-entry}{#editor-POST-nodes__restricted_to_link-node-editor-entry}{#editor-POST-nodes__restricted_to_value-node-editor-entry}{#editor-POST-nodes__secure_value-node-editor-entry}{#editor-POST-nodes__status-node-editor-entry}{#editor-POST-nodes__system_folder-node-editor-entry}{#editor-POST-nodes__sys_class_name-node-editor-entry}{#editor-POST-nodes__sys_created_by-node-editor-entry}{#editor-POST-nodes__sys_created_on-node-editor-entry}{#editor-POST-nodes__sys_id-node-editor-entry}{#editor-POST-nodes__sys_updated_by-node-editor-entry}{#editor-POST-nodes__sys_updated_on-node-editor-entry}{#editor-POST-nodes__type-node-editor-entry}{#editor-POST-nodes__value-node-editor-entry}

| Name | Description |
|-|-|
| changeset_id | Details of the changeset record associated with the node. Data type: Object "changeset_id": { "link": "String", "value": "String" } |
| changeset_id.link | Call syntax for querying this changeset record using the Table REST API. Data type: String |
| changeset_id.value | Unique identifier of the changeset record. Located in the CDM Changeset \[sn_cdm_changeset\] table. Data type: String |
| conflict | Flag that indicates whether there was a conflict when processing the node. Possible values: * true: Conflict detected. * false: No conflict was detected. Data type: Boolean |
| conflict_type | If the conflict parameter is true, the type of conflict detected. Null if no conflict is detected. Possible values: * corrupted_node * deleted_node * duplicated_node * incomplete_deleted_parent * incomplete_deleted_ref * incomplete_renamed_ref * invalid_include * orphaned_descendant * related_conflict * unlinked_include * unrenamed_include * updated_node Data type: String |
| description | Short description of the purpose of the node. Data type: String |
| effective_from | Timestamp (converted to a long integer) when the node was committed as part of the changeset. If the node hasn't been committed, this value is "null". Data type: Integer |
| effective_to | Timestamp (converted to a long integer) of the node when it was either deleted or superseded by another node, otherwise "null". Data type: Integer |
| error | If an error occurred during processing, the details about the error. Data type: Object "error": { "detail": "String", "message": "String" } |
| error.detail | Additional information about the error. Data type: String |
| error.message | Error message that was generated while trying to process the request. Data type: String |
| level | Level of the node, starting from the root node, which is always 0. For example, the node /AppA/components/compA has two levels. Data type: String |
| linked_to | The main_id parameter of the referenced node to which this node is linked. If this node isn't linked to a reference node, the value is "null". Data type: String |
| main_id | Primary identifier for the node. You can use this value in the CdmQuery() script include to retrieve a JSON tree. For example: `CdmQuery().mainId('123')/query().getTree();` Data type: String |
| main_id_encoded | RADIX 57 string representation of the node's main_id parameter. Data type: String |
| name | Name of the node. Data type: String |
| node_classifier | Classifier hierarchy of the node. Use this information to locate a node within the folder hierarchy. For example, a deployable would have a hierarchy of /application/deployables/env:Development While a collection would have a hierarchy of /applications/collections Data type: String |
| node_path | Full node path name. Data type: String |
| position | Node position. For example: If you upload the following array: arrayNode1: [ "literal1", {"cdi1": 1}, "literal3" ] The position values are set as follows: * arrayNode1.literal1 = 1000 * arrayNode1.2000 = 2000 * arrayNode1.literal3 = 3000 {#editor-POST-nodes__ul_ybk_wg2_25b}If a complex object is uploaded under an array, in this case `{"cdi1": 1}`, the endpoint creates a new virtual node with the name equal to its position. In the example above, this is 2000. For includes, the position is always empty. Data type: String |
| previous_version | Details of the previous version of the node record. Note: If a new node was created, the endpoint returns `"previous_version" = null` for this parameter. Data type: Object "previous_version": { "link": "String", "value": "String" } |
| previous_version.link | Call syntax for querying this node record using the Table REST API. Data type: String |
| previous_version.value | Sys_id of the node record. Located in the CDM Node \[sn_cdm_node\] table. Data type: String |
| reason_for_conflict | Detailed explanation of the conflict. Data type: String |
| restricted_to | Details of the group that has access the associated the node. Data type: Object "restricted_to": { "link": "String", "value": "String" } |
| restricted_to.link | Call syntax for querying this group record using the Table REST API. Data type: String |
| restricted_to.value | Sys_id of the group record. Located in the CDM Group \[sys_user_group\] table. Data type: String |
| secure_value | If this value was flagged to be secured, the encrypted field (returned masked). A user must have the sn_cdm.cdm_secrets role to decrypt this information. You can direct the endpoint not to return these fields by setting the returnFields query parameter field. Data type: String |
| status | Node status. Possible values: * DELETED * NEW * SUPERSEDED * UPDATED * VALID Data type: String |
| system_folder | Flag that indicates whether the associated node is a system folder. Possible values: * true: Node is a system folder. * false: Node isn't a system folder. Data type: Boolean |
| sys_class_name | Table in which the node resides. Data type: String |
| sys_created_by | Name of the user that created the node. Data type: String |
| sys_created_on | Date and time when the node was created. Data type: String Format: yyyy-mm-dd hh:mm:ss |
| sys_id | Sys_id of the node. Located in the CDM Node \[sn_cdm_node\] table. Data type: String |
| sys_updated_by | Name of the user that updated the node. Data type: String |
| sys_updated_on | Date and time when the node was last updated. Data type: String Format: yyyy-mm-dd hh:mm:ss |
| type | Node type. Possible values: * sn_cdm_node_cdi * sn_cdm_node_collection * sn_cdm_node_component * sn_cdm_node_folder * sn_cdm_node_variable Data type: String Default: All |
| value | Node value. Data type: String |
[ ]

{#editor-POST-nodes__id_nwg_5jl_c5b}  

### cURL request

The following code example shows how to create a node using this endpoint.

    curl "http://instance.servicenow.com/api/sn_cdm/editor/nodes?fullNamePath=%2FtestApp%2Fdeployables%2FDevelopment1%2Fcdi1&secure=true&value=someVal&type=cdi&changesetNumber=Chset-760" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'

Return result:

    { 
      "result": { 
        "changeset_id": { 
          "value": "d403648653b70110a1d3ddeeff7b12c5", 
          "link": "http://instance.servicenow.com/api/now/table/sn_cdm_changeset/d403648653b70110a1d3ddeeff7b12c5" 
        }, 
        "node_path": "!$!+!,![:", 
        "description": null, 
        "sys_updated_on": "2022-06-30 08:53:13", 
        "type": "sn_cdm_node_cdi", 
        "sys_class_name": "sn_cdm_node", 
        "sys_id": "c93c7c1753981110a1d3ddeeff7b12c7", 
        "sys_updated_by": "admin", 
        "previous_version": null, 
        "sys_created_on": "2022-06-30 08:53:13", 
        "value": null, 
        "effective_from": null, 
        "linked_to": null, 
        "sys_created_by": "admin", 
        "restricted_to": null, 
        "level": "3", 
        "conflict_type": null, 
        "main_id": "2869", 
        "effective_to": null, 
        "secure_value": "﷞﷟﷒113a0c6e53001110a1d3ddeeff7b121d﷬﷔1﷬﷭bAUA1wj-fxofbSrMyF-BAg==6qiho5f_9DhnuHT2Km5SLf0Ck4XNX_w=﷮﷯", 
        "node_classifier": "/application/deployables/env:Development", 
        "main_id_encoded": "[:", 
        "name": "cdi45", 
        "position": null, 
        "reason_for_conflict": null, 
        "system_folder": false, 
        "status": "new", 
        "conflict": false 
      } 
    }

## CdmEditorApi - PUT /sn_cdm/editor/nodes {#ariaid-title7}

Updates the name and/or value of a specified node.
The caller of this endpoint must have either the CDM Editor or CDM Secret role.

### URL format

Versioned URL:
/api/sn_cdm/{api_version}/editor/nodes

Default URL:
/api/sn_cdm/editor/nodes

### Supported request parameters

{#editor-PUT-nodes__entry__2}{#editor-PUT-nodes__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
[Table 31. Path parameters]

{#editor-PUT-nodes__entry__6}{#editor-PUT-nodes__changesetNumber-changeset-entry}{#editor-PUT-nodes__fullNamePath-node-editor-entry}{#editor-PUT-nodes__secure-node-editor-entry}{#editor-PUT-nodes__cdm_apps-returnFields-entry}

| Name | Description |
|-|-|
| changesetNumber | Required. Unique identifier of the associated changeset, such as "Chset-10". Located in the CDM Changeset \[sn_cdm_changeset\] table. Data type: String |
| fullNamePath | Required. Path name of the node. You can pass the name path in any of the following formats. For example, to define the name path for the node `testApp/deployables/Development1/cdi1`: * Backslash format: testApp/deployables/Development1/cdi1 Note: If your node name contains a backslash ("/"), you can't use this format. * Backend name path with replacement characters: testApp�deployables�Development1�cdi1 * Array: \['testApp','deployables','Development1','cdi1'\] {#editor-PUT-nodes__cdm_apps-namePath-ul} Data type: String |
| newName | New name for the associated node. Data type: String |
| newValue | New value for the associated node. Data type: String |
| secure | Flag that indicates whether the value should be encrypted for the leaf nodes. Valid values: * true: Encrypted * false: Not encrypted Data type: Boolean Default: false |
| returnFields | List of fields to return as part of the response. Pass the record column names such as sys_id, sys_updated_by, or state. Data type: Array Default: All fields as determined by the endpoint |
[Table 32. Query parameters]

{#editor-PUT-nodes__entry__20}

| Name | Description |
|-|-|
| None |   |
[Table 33. Request body parameters]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#editor-PUT-nodes__entry__24}{#editor-PUT-nodes__accept-JSON-only-entry-RESTAPI}{#editor-PUT-nodes__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 34. Request headers]

{#editor-PUT-nodes__entry__30}

| Header | Description |
|-|-|
| None |   |
[Table 35. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://servicenow-prod.fluidtopics.net/2vuQj3~2s_niNXyXhrbRZA "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#editor-PUT-nodes__entry__34}{#editor-PUT-nodes__entry-200-status-code}{#editor-PUT-nodes__entry-400-status-code}{#editor-PUT-nodes__entry-500-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 36. Status codes]

### Response body parameters

{#editor-PUT-nodes__id_nwg_5jl_c5b__entry__2}{#editor-PUT-nodes__changeset-node-editor-entry}{#editor-PUT-nodes__changeset_link-node-editor-entry}{#editor-PUT-nodes__changeset_value-node-editor-entry}{#editor-PUT-nodes__conflict-node-editor-entry}{#editor-PUT-nodes__conflict_type-node-editor-entry}{#editor-PUT-nodes__description-node-editor-entry}{#editor-PUT-nodes__effective_from-node-editor-entry}{#editor-PUT-nodes__effective_to-node-editor-entry}{#editor-PUT-nodes__level-node-editor-entry}{#editor-PUT-nodes__linked_to-node-editor-entry}{#editor-PUT-nodes__main_id-node-editor-entry}{#editor-PUT-nodes__main_id_encoded-node-editor-entry}{#editor-PUT-nodes__name-node-editor-entry}{#editor-PUT-nodes__node_classifier-node-editor-entry}{#editor-PUT-nodes__name_path-node-editor-entry}{#editor-PUT-nodes__position-node-editor-entry}{#editor-PUT-nodes__previous_version-node-editor-entry}{#editor-PUT-nodes__previous_version_link-node-editor-entry}{#editor-PUT-nodes__previous_version_value-node-editor-entry}{#editor-PUT-nodes__restricted_to-node-editor-entry}{#editor-PUT-nodes__restricted_to_link-node-editor-entry}{#editor-PUT-nodes__restricted_to_value-node-editor-entry}{#editor-PUT-nodes__secure_value-node-editor-entry}{#editor-PUT-nodes__status-node-editor-entry}{#editor-PUT-nodes__system_folder-node-editor-entry}{#editor-PUT-nodes__sys_class_name-node-editor-entry}{#editor-PUT-nodes__sys_created_by-node-editor-entry}{#editor-PUT-nodes__sys_created_on-node-editor-entry}{#editor-PUT-nodes__sys_id-node-editor-entry}{#editor-PUT-nodes__sys_updated_by-node-editor-entry}{#editor-PUT-nodes__sys_updated_on-node-editor-entry}{#editor-PUT-nodes__type-node-editor-entry}{#editor-PUT-nodes__value-node-editor-entry}

| Name | Description |
|-|-|
| changeset_id | Details of the changeset record associated with the node. Data type: Object "changeset_id": { "link": "String", "value": "String" } |
| changeset_id.link | Call syntax for querying this changeset record using the Table REST API. Data type: String |
| changeset_id.value | Unique identifier of the changeset record. Located in the CDM Changeset \[sn_cdm_changeset\] table. Data type: String |
| conflict | Flag that indicates whether there was a conflict when processing the node. Possible values: * true: Conflict detected. * false: No conflict was detected. Data type: Boolean |
| conflict_type | If the conflict parameter is true, the type of conflict detected. Null if no conflict is detected. Possible values: * corrupted_node * deleted_node * duplicated_node * incomplete_deleted_parent * incomplete_deleted_ref * incomplete_renamed_ref * invalid_include * orphaned_descendant * related_conflict * unlinked_include * unrenamed_include * updated_node Data type: String |
| description | Short description of the purpose of the node. Data type: String |
| effective_from | Timestamp (converted to a long integer) when the node was committed as part of the changeset. If the node hasn't been committed, this value is "null". Data type: Integer |
| effective_to | Timestamp (converted to a long integer) of the node when it was either deleted or superseded by another node, otherwise "null". Data type: Integer |
| error | If an error occurred during processing, the details about the error. Data type: Object "error": { "detail": "String", "message": "String" } |
| error.detail | Additional information about the error. Data type: String |
| error.message | Error message that was generated while trying to process the request. Data type: String |
| level | Level of the node, starting from the root node, which is always 0. For example, the node /AppA/components/compA has two levels. Data type: String |
| linked_to | The main_id parameter of the referenced node to which this node is linked. If this node isn't linked to a reference node, the value is "null". Data type: String |
| main_id | Primary identifier for the node. You can use this value in the CdmQuery() script include to retrieve a JSON tree. For example: `CdmQuery().mainId('123')/query().getTree();` Data type: String |
| main_id_encoded | RADIX 57 string representation of the node's main_id parameter. Data type: String |
| name | Name of the node. Data type: String |
| node_classifier | Classifier hierarchy of the node. Use this information to locate a node within the folder hierarchy. For example, a deployable would have a hierarchy of /application/deployables/env:Development While a collection would have a hierarchy of /applications/collections Data type: String |
| node_path | Full node path name. Data type: String |
| position | Node position. For example: If you upload the following array: arrayNode1: [ "literal1", {"cdi1": 1}, "literal3" ] The position values are set as follows: * arrayNode1.literal1 = 1000 * arrayNode1.2000 = 2000 * arrayNode1.literal3 = 3000 {#editor-PUT-nodes__ul_ybk_wg2_25b}If a complex object is uploaded under an array, in this case `{"cdi1": 1}`, the endpoint creates a new virtual node with the name equal to its position. In the example above, this is 2000. For includes, the position is always empty. Data type: String |
| previous_version | Details of the previous version of the node record. Note: If a new node was created, the endpoint returns `"previous_version" = null` for this parameter. Data type: Object "previous_version": { "link": "String", "value": "String" } |
| previous_version.link | Call syntax for querying this node record using the Table REST API. Data type: String |
| previous_version.value | Sys_id of the node record. Located in the CDM Node \[sn_cdm_node\] table. Data type: String |
| reason_for_conflict | Detailed explanation of the conflict. Data type: String |
| restricted_to | Details of the group that has access the associated the node. Data type: Object "restricted_to": { "link": "String", "value": "String" } |
| restricted_to.link | Call syntax for querying this group record using the Table REST API. Data type: String |
| restricted_to.value | Sys_id of the group record. Located in the CDM Group \[sys_user_group\] table. Data type: String |
| secure_value | If this value was flagged to be secured, the encrypted field (returned masked). A user must have the sn_cdm.cdm_secrets role to decrypt this information. You can direct the endpoint not to return these fields by setting the returnFields query parameter field. Data type: String |
| status | Node status. Possible values: * DELETED * NEW * SUPERSEDED * UPDATED * VALID Data type: String |
| system_folder | Flag that indicates whether the associated node is a system folder. Possible values: * true: Node is a system folder. * false: Node isn't a system folder. Data type: Boolean |
| sys_class_name | Table in which the node resides. Data type: String |
| sys_created_by | Name of the user that created the node. Data type: String |
| sys_created_on | Date and time when the node was created. Data type: String Format: yyyy-mm-dd hh:mm:ss |
| sys_id | Sys_id of the node. Located in the CDM Node \[sn_cdm_node\] table. Data type: String |
| sys_updated_by | Name of the user that updated the node. Data type: String |
| sys_updated_on | Date and time when the node was last updated. Data type: String Format: yyyy-mm-dd hh:mm:ss |
| type | Node type. Possible values: * sn_cdm_node_cdi * sn_cdm_node_collection * sn_cdm_node_component * sn_cdm_node_folder * sn_cdm_node_variable Data type: String Default: All |
| value | Node value. Data type: String |
[ ]

{#editor-PUT-nodes__id_nwg_5jl_c5b}  

### cURL request

The following code example shows how to update the value of a node.

    curl "http://instance.servicenow.com/api/sn_cdm/editor/nodes?newValue=cdcdc&fullNamePath=%2FtestApp%2Fdeployables%2FDe
    velopment-1%2Fcdi45&changesetNumber=Chset-5" \
    --request PUT \
    --header "Accept:application/json" \
    --user 'username':'password'

Return result:

    { 
      "result": { 
        "changeset_id": { 
          "value": "d403648653b70110a1d3ddeeff7b12c5", 
          "link": "http://instance.servicenow.com/api/now/table/sn_cdm_changeset/d403648653b70110a1d3ddeeff7b12c5" 
        }, 
        "node_path": "!$!+!,![:", 
        "description": null, 
        "sys_updated_on": "2022-06-30 08:53:13", 
        "type": "sn_cdm_node_cdi", 
        "sys_class_name": "sn_cdm_node", 
        "sys_id": "c93c7c1753981110a1d3ddeeff7b12c7", 
        "sys_updated_by": "admin", 
        "previous_version": null, 
        "sys_created_on": "2022-06-30 08:53:13", 
        "value": null, 
        "effective_from": null, 
        "linked_to": null, 
        "sys_created_by": "admin", 
        "restricted_to": null, 
        "level": "3", 
        "conflict_type": null, 
        "main_id": "2869", 
        "effective_to": null, 
        "secure_value": "﷞﷟﷒113a0c6e53001110a1d3ddeeff7b121d﷬﷔1﷬﷭bAUA1wj-fxofbSrMyF-BAg==6qiho5f_9DhnuHT2Km5SLf0Ck4XNX_w=﷮﷯", 
        "node_classifier": "/application/deployables/env:Development", 
        "main_id_encoded": "[:", 
        "name": "cdi45", 
        "position": null, 
        "reason_for_conflict": null, 
        "system_folder": false, 
        "status": "new", 
        "conflict": false 
      } 
    }


