Partial Updates for Source Mappings
Learn how to use partial operations to add, modify or remove source mapped values in lookups.
Partial updates in source mappings allow you to modify lookup definitions incrementally using the operation field. The supported operations include:
INSERT– adds new source values.UPDATE– modifies existing source values.DELETE– removes source values from an RDM lookup.
You can include multiple operation types in a single request, enabling you to insert, update, and delete source-mapped values in the same payload. This approach enables efficient, targeted updates without replacing the entire lookup.
INSERT - Add a new source value
The following table describes the request body parameters for the INSERT operation, which lets you add a new source-specific value to a lookup.
| Parameter | Type | Required | Description | Default values | Accepted values |
|---|---|---|---|---|---|
operation | String | Yes | Specifies INSERT operation. | None | "INSERT" |
code | String | Yes | Source value identifier to be added. | None | "US" |
value | String | Yes | Source value description to be added. | None | "United States" |
enabled | Boolean | No | Indicates whether the source value is active. | true | "true" or "false" |
canonicalValue | Boolean | No | Marks if the value is canonical. | false | "true" or "false" |
downStreamDefaultValue | Boolean | No | Indicates if the value should be default for downstream processes. | false | "true" or "false" |
description | String | No | Description for source values | None | None |
Example request for INSERT operation
{
"operation": "INSERT",
"code": "US",
"value": "United States",
"enabled": true,
"canonicalValue": false,
"downStreamDefaultValue": true
}
UPDATE - Modify attributes of an existing source value
The following table describes the request body parameters for the UPDATE operation, which modifies an existing source-mapped value. You must match both the code and value fields exactly to apply updates.
The UPDATE operation can only modify the following parameters: enabled, canonicalValue, and downStreamDefaultValue. You cannot use the UPDATE operation to change the code or value fields of an existing lookup entry.
| Parameter | Type | Required | Description | Default Value | Accepted values |
|---|---|---|---|---|---|
operation | String | Yes | Specifies UPDATE operation. | None | "UPDATE" |
code | String | Yes | Must match existing code for update. | None | "US" |
value | String | Yes | Must match existing value for update. | None | "United States" |
enabled | Boolean | No | Updated enabled status. | true | "true" or "false" |
canonicalValue | Boolean | No | Updated canonical flag. | false | "true" or "false" |
downStreamDefaultValue | Boolean | No | Updated downstream default flag. | false | "true" or "false" |
description | String | No | Description for source values | None | None |
Example request for UPDATE operation
{
"operation": "UPDATE",
"code": "US",
"value": "United States",
"enabled": false,
"canonicalValue": false,
"downStreamDefaultValue": true
}
This request updates the enabled value to false.
DELETE - Remove an existing source value
The following table describes the request body parameters for the DELETE operation, which removes a source-specific value from the lookup. All fields must match the existing entry exactly.
| Parameter | Type | Required | Description | Default Value | Accepted values |
|---|---|---|---|---|---|
operation | String | Yes | Specifies DELETE operation. | None | "DELETE" |
code | String | Yes | Must match existing code exactly for deletion. | None | "US" |
value | String | Yes | Must match existing value exactly for deletion. | None | "United States" |
enabled | Boolean | Yes | Must match existing enabled value. | true | "true" or "false" |
canonicalValue | Boolean | Yes | Must match existing canonical flag. | false | "true" or "false" |
downStreamDefaultValue | Boolean | Yes | Must match existing downstream default flag. | false | "true" or "false" |
description | String | No | Description for source values | None | None |
Example request for DELETE operation
{
"operation": "DELETE",
"code": "US",
"value": "United States",
"enabled": true,
"canonicalValue": false,
"downStreamDefaultValue": true
}
Using multiple operations in a single request
You can combine INSERT, UPDATE, and DELETE operations in the same request body. This allows you to update multiple source-mapped values efficiently without replacing the full lookup.
When combining operations, follow these rules:
- Only one value per lookup code can have "canonicalValue": true. If multiple values are marked as canonical, the system returns an error.
- Only one value per source can have "downStreamDefaultValue": true. If none is specified, the first enabled value for that source becomes the default.
- Only Include the source mappings you want to modify; any sources or source values not included in the request will remain unchanged.
Example: Existing lookup
[
{
"tenantId": "{{rdm_tenant}}",
"type": "rdm/lookupTypes/Gender",
"code": "M",
"enabled": true,
"sourceMappings": [
{
"source": "Reltio",
"values": [
{
"code": "Men",
"value": "Men",
"enabled": true,
"canonicalValue": true,
"downStreamDefaultValue": false
},
{
"code": "0",
"value": "0",
"enabled": true,
"canonicalValue": false,
"downStreamDefaultValue": false
}
]
}
]
}
]
Request body[
{
"tenantId": "{{rdm_tenant}}",
"type": "rdm/lookupTypes/Gender",
"code": "M",
"enabled": true,
"sourceMappings": [
{
"source": "Reltio",
"values": [
{
"operation": "INSERT",
"code": "Male",
"value": "Male",
"enabled": true,
"canonicalValue": true,
"downStreamDefaultValue": true
},
{
"operation": "UPDATE",
"code": "Men",
"value": "Men",
"enabled": true,
"canonicalValue": false,
"downStreamDefaultValue": false
},
{
"operation": "DELETE",
"code": "0",
"value": "0",
"enabled": true,
"canonicalValue": false,
"downStreamDefaultValue": false
}
]
},
{
"source": "Reltio2",
"values": [
{
"operation": "INSERT",
"code": "Male",
"value": "Male",
"enabled": true,
"canonicalValue": false,
"downStreamDefaultValue": true
}
]
}
]
}
]This request performs three operations on the existing lookup. It inserts a new source value "Male" and sets its canonicalValue to true. It updates the existing value "Men" by changing its canonicalValue to false. Finally, it deletes the source value "0" from the lookup.
Response body
[
{
"uri": "{{rdm_tenant}}/Gender/M",
"value": {
"tenantId": "{{rdm_tenant}}",
"type": "rdm/lookupTypes/Gender",
"code": "M",
"enabled": true,
"sourceMappings": [
{
"source": "Reltio",
"values": [
{
"code": "Male",
"value": "Male",
"enabled": true,
"canonicalValue": true,
"downStreamDefaultValue": true
},
{
"code": "Men",
"value": "Men",
"enabled": true,
"canonicalValue": false,
"downStreamDefaultValue": false
}
]
},
{
"source": "Reltio1",
"values": [
{
"code": "m",
"value": "m",
"enabled": true,
"canonicalValue": false,
"downStreamDefaultValue": true
}
]
},
{
"source": "Reltio2",
"values": [
{
"code": "Male",
"value": "Male",
"enabled": true,
"canonicalValue": false,
"downStreamDefaultValue": true
}
]
}
],
"startDate": 0,
"endDate": 0,
"updatedBy": "{{user}}",
"updateDate": "{{update_date}}",
"version": "{{version}}"
}
}
]