GuidesMetadataMetadata cascade policies (Beta)Force-apply metadata to all items in a folder
Edit this page

Force-apply metadata to all items in a folder

Force-apply metadata to all items in a folder

Metadata cascade policies are currently in Beta and the syntax might change in the future.

When a metadata cascade policy already exists on a folder the metadata instance can be force-applied to all items in a folder by calling the POST /metadata_cascade_policies/:id/apply API endpoint with the id of the metadata cascade policy.

cURL
curl -X POST https://api.box.com/2.0/metadata_cascade_policies/21312/apply \
     -H 'Authorization: Bearer <ACCESS_TOKEN>'
     -H 'Content-Type: application/json" '
     -d '{
       "conflict_resolution": "overwrite"
     }'
.NET
string policyId = "11111";
string conflictResolution = Constants.ConflictResolution.Overwrite
BoxMetadataCascadePolicy newCascadePolicy = client.MetadataCascadePolicyManager
    .ForceApplyCascadePolicyAsync(policyId, conflictResolution);
Java
String cascadePolicyID = "e4392a41-7de5-4232-bdf7-15e0d6bba067";
BoxMetadataCascadePolicy policy = new BoxMetadataCascadePolicy(api, cascadePolicyID);
policy.forceApply("none");
Python
from boxsdk.object.metadata_cascade_policy import CascadePolicyConflictResolution

cascade_policy = client.metadata_cascade_policy(policy_id='84113349-794d-445c-b93c-d8481b223434')
cascade_policy.force_apply(CascadePolicyConflictResolution.PRESERVE_EXISTING)
print('Cascade policy was force applied!')
Node
var policyID = '84113349-794d-445c-b93c-d8481b223434';
client.metadata.forceApplyCascadePolicy(policyID, client.metadata.cascadeResolution.PRESERVE_EXISTING)
	.then(() => {
		// application started — no value returned
	});

To get the id of the policy, list all policies for the folder.

The metadata cascade operation will be started off asynchronously. The API call will return directly with the 202 Accepted HTTP status code before the cascade operation is complete. There is currently no way to check for when this operation is finished.

Conflict resolution

An additional conflict_resolution parameter can be passed to this API to define how to deal with any existing instances of the template on any of the items in the folder.

By default, without setting any value for conflict_resolution this API will preserve the existing value on any items. When the value is set to overwrite, it will force-apply the value of the template attached to the cascade policy over any existing value.