At the cluster setting level, a user must enable lifecycle policies. As it is enabled in the cluster, so use the management API:

curl -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' -d '{}'
'http://lucky1.tx.caringo.com:91/api/storage/clusters/_self/settings/policy.lifecycle?value=enabled' -u admin:ourpwdofchoicehere

A missing Policy-Lifecycle header on the domain is considered a tacit enablement so it is not required to make any changes.

A bucket may have one or multiple lifecycle policies, such as:

Such policies are applied on a bucket object using one or multiple Policy-Lifecycle headers:

curl –X COPY –-post301 –-location-trusted –H 'Policy-Lifecycle: RuleId:"rule5" ExpirationDays:1825 ObsoleteExpirationDays:365'
'http://lucky1.tx.caringo.com/mybucket?domain=mydomain&preserve'

In the previous example, implicitly applying to all content in the bucket by;

The preserve query argument on the COPY operations indicates leaving other persisted headers as it is.

See S3 lifecycle policy examples. Note that Swarm currently only supports expiration policies.