CdmPoliciesApi
The CdmPoliciesApi provides endpoints that enable you to manage policy mappings of deployables in Configuration Data Management (CDM). Policies that are properly mapped to a deployable are executed when a snapshot of the deployable is validated.
You must have one of the following roles to access the endpoints in this API:
- Scripted REST CDM View ACL
- Scripted REST CDM Admin ACL
In addition, the Configuration Data Management (CDM) plugin must be activated for this API to be available in an instance.
For additional information on policy mappings, see Map policies to a deployable.
Parent Topic:REST API reference
CdmPoliciesApi - DELETE /sn_cdm/policies/mappings
Deletes the mapping of a specified policy to a deployable.
The caller of this endpoint must have the CDM Admin role.
URL format
Versioned URL: /api/sn_cdm/{api_version}/policies/mappings
Default URL: /api/sn_cdm/policies/mappings
Note: Available versions are specified in the REST API Explorer. For scripted REST APIs there is additional version information on the Scripted REST Service form.
Supported request parameters
| Name | Description |
|---|---|
| api\_version | Optional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String |
| Name | Description |
|---|---|
| appName | Required. Name of the Configuration Data Management \(CDM\) application for which to remove the mapping to the policy.Data type: String Table: CDM Application \[sn\_cdm\_application\] |
| deployableName | Required. Name of the CDM deployable for which to remove the mapping to the policy.Data type: String Table: CDM Deployable \[sn\_cdm\_deployable\] |
| policyName | Required. Name of the associated policy.Data type: String Table: Policy \[sn\_pace\_policy\] |
| Name | Description |
|---|---|
| None |
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.
| Header | Description |
|---|---|
| Accept | Data format of the response body. Supported types: application/json or application/xml. Default: application/json |
| Header | Description |
|---|---|
| None |
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.
| Status code | Description |
|---|---|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. The policyName parameter passed is invalid. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
Response body parameters
| Name | Description |
|---|---|
| error | If an error occurred during processing, the details about the error.Data type: Object |
| 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 |
cURL request
The following code example shows how to remove a policy mapping.
curl "http://instance.servicenow.com/api/sn_cdm/policies/mappings?deployableName=Development_1&policyName=testALPolicy1&appName=testApp" \
--request DELETE \
--header "Accept:application/json" \
--user 'username':'password'
For a successful deletion of the mapping, no response is returned other than the HTTP status code.
None - results defined by the HTTP status code
CdmPoliciesApi - GET /sn_cdm/policies/mappings/inputs/resolved
Returns the resolved inputs for a specified policy mapping of a deployable.
For additional information on policy mappings, see Map policies to a deployable and Validating and correcting configuration data.
The caller of this endpoint must have the CDM Viewer role.
URL format
Versioned URL: /api/sn_cdm/{api_version}/policies/mappings/inputs/resolved
Default URL: /api/sn_cdm/policies/mappings/inputs/resolved
Note: Available versions are specified in the REST API Explorer. For scripted REST APIs there is additional version information on the Scripted REST Service form.
Supported request parameters
| Name | Description |
|---|---|
| api\_version | Optional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String |
| Name | Description |
|---|---|
| appName | Required. Name of the Configuration Data Management \(CDM\) application associated with the deployable for which to return the resolved policy inputs.Data type: String Table: CDM Application \[sn\_cdm\_application\] |
| deployableName | Required. Name of the CDM deployable for which to return the resolved policy.Data type: String Table: CDM Deployable \[sn\_cdm\_deployable\] |
| policyName | Required. Name of the associated policy.Data type: String Table: Policy \[sn\_pace\_policy\] |
| Name | Description |
|---|---|
| None |
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.
| Header | Description |
|---|---|
| Accept | Data format of the response body. Supported types: application/json or application/xml. Default: application/json |
| Header | Description |
|---|---|
| None |
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.
| Status code | Description |
|---|---|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. The policyName parameter passed is invalid. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
Response body parameters
| Name | Description |
|---|---|
| result | Name-value pair list of all resolved inputs for the specified policy mapping. For example: `{"input_name": "user_1", "input_password": "" }` Data type: Object |
cURL request
The following example shows how to use this endpoint to obtain the resolved policy inputs.
curl "http://instance.servicenow.com/api/sn_cdm/policies/mappings/inputs/resolved?policyName=testALPolicy1&deployableName=Development_1&appName=testApp" \
--request GET \
--header "Accept:application/json" \
--user 'username':'password'
Return result:
{
"result": {
"key1": "someVal",
"additionalDeployablesInput": "[{\"id\":\"e7e34a531b501110636e0fe0604bcba9\",\"label\":\"testApp-Development_2\"}]"
}
}
CdmPoliciesApi - POST /sn_cdm/policies/mappings
Maps a specified policy to a deployable.
The caller of this endpoint must have the CDM Admin role.
URL format
Versioned URL: /api/sn_cdm/{api_version}/policies/mappings
Default URL: /api/sn_cdm/policies/mappings
Note: Available versions are specified in the REST API Explorer. For scripted REST APIs there is additional version information on the Scripted REST Service form.
Supported request parameters
| Name | Description |
|---|---|
| api\_version | Optional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String |
| Name | Description |
|---|---|
| appName | Required. Name of the Configuration Data Management \(CDM\) application for which to map the policy.Data type: String Table: CDM Application \[sn\_cdm\_application\] |
| deployableName | Required. Name of the CDM deployable for which to map the policy.Data type: String Table: CDM Deployable \[sn\_cdm\_deployable\] |
| policyName | Required. Name of the associated policy.Data type: String Table: Policy \[sn\_pace\_policy\] |
| 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 |
| Name | Description |
|---|---|
| None |
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.
| 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. |
| Header | Description |
|---|---|
| None |
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.
| 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. |
Response body parameters
| Name | Description |
|---|---|
| description | Description of the mapping.Data type: String |
| document | Sys\_id of the document.Data type: String |
| document\_ref | Details of the document\_ref record associated with the node. Data type: Object |
| document\_ref.link | Call syntax for querying the deployable record mapped to the policy using the Table REST API.PaCE uses this field to store the reference to the deployable that is mapped to a policy. Data type: String |
| document\_ref.sys\_id | Sys\_id of the deployable record mapped to the policy.Data type: String |
| error | If an error occurred during processing, the details about the error.Data type: Object |
| 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 |
| exception | If there's an exception while trying to perform the mapping, the link to the exception record.Data type: String |
| exception\_allowed | Flag that indicates whether exceptions are allowed for the policy.Possible values: - true: Exceptions are allowed. - false: Exceptions aren't allowed. Data type: Boolean |
| input\_status | Status of the inputs.Possible values: - invalid - valid Data type: String |
| last\_updated\_by | Details of the user that last updated the policy mapping. Data type: Object |
| last\_updated\_by.link | Call syntax for querying the user record using the Table REST API.Data type: String |
| last\_updated\_by.sys\_id | Sys\_id of the user record.Data type: String Table: User \[sys\_user\] |
| number | Unique number that identifies the mapping. This value provides a human-readable identifier for the mapping.Data type: String |
| policy | Details of the policy record associated with the mapping. Data type: Object |
| policy.link | Call syntax for querying the policy record mapped to the policy using the Table REST API.Data type: String |
| policy.sys\_id | Sys\_id of the policy record.Data type: String Table: Policy \[sn\_pace\_policy\] |
| reason | Description of the reason for the current state.Data type: String |
| state | Current state of the mapping.Possible values: - active - inactive Data type: String |
| sys\_class\_name | Table name of the policy mapping.Data type: String |
| sys\_created\_by | Name of the user that created the mapping.Data type: String |
| sys\_created\_on | Date and time when the mapping was created.Data type: String Format: yyyy-mm-dd hh:mm:ss |
| sys\_id | Sys\_id of the mapping.Data type: String Table: Policy Mapping \[sn\_pace\_policy\_mapping\] |
| sys\_updated\_by | Name of the user that updated the mapping.Data type: String |
| sys\_updated\_on | Date and time when the mapping was last updated.Data type: String Format: yyyy-mm-dd hh:mm:ss |
cURL request
This code example shows how to map a specific policy to a deployable.
curl "http://instance.servicenow.com/api/sn_cdm/policies/mappings?appName=testApp&deployableName=Development_1&policyName=testALPolicy1" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
Return results:
{
"result": {
"exception": null,
"reason": null,
"exception_allowed": "--",
"document": "0be34a531b501110636e0fe0604bcb21",
"input_status": "valid",
"description": null,
"sys_updated_on": "2022-06-30 14:07:37",
"sys_class_name": "sn_cdm_pace_policy_mapping",
"sys_id": "ea24469f1b101110636e0fe0604bcbed",
"number": "MAP0001001",
"last_updated_by": {
"value": "48630e131b501110636e0fe0604bcb53",
"link": "https://instance.servicenow.com/api/now/table/sys_user/48630e131b501110636e0fe0604bcb53"
},
"sys_updated_by": "admin",
"sys_created_on": "2022-06-30 14:07:37",
"document_ref": {
"value": "0be34a531b501110636e0fe0604bcb21",
"link": "https://instance.servicenow.com/api/now/table/sn_cdm_deployable/0be34a531b501110636e0fe0604bcb21"
},
"state": "active",
"sys_created_by": "admin",
"policy": {
"value": "12a3c2531b501110636e0fe0604bcb9b",
"link": "https://instance.servicenow.com/api/now/table/sn_pace_policy/12a3c2531b501110636e0fe0604bcb9b"
}
}
}
CdmPoliciesApi - PUT /sn_cdm/policies/mappings/inputs/additional-deployables
Updates the additionalDeployablesInput input variable of a Configuration Data Management (CDM) policy mapping.
The additionalDeployablesInput input variable contains the additional deployables you can assign to an existing policy mapping. They are similar to mapping inputs, but they have a specific array structure.
For additional information on policy mappings, see Map policies to a deployable.
The caller of this endpoint must have the CDM Admin role.
URL format
Versioned URL: /api/sn_cdm/{api_version}/policies/mappings/inputs/additional-deployables
Default URL: /api/sn_cdm/policies/mappings/inputs/additional-deployables
Note: Available versions are specified in the REST API Explorer. For scripted REST APIs there is additional version information on the Scripted REST Service form.
Supported request parameters
| Name | Description |
|---|---|
| api\_version | Optional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String |
| Name | Description |
|---|---|
| additionalDeployables | Required. List of deployables to add to the additionalDeployablesInput input variable.Data type: Array of Objects ``` "additionalDeployables": [ { "appName": "String", "deployableName": "String" } ] |