Create an S3 bucket lifecycle rule configuration
POST /protocols/s3/services/{svm.uuid}/buckets/{s3_bucket.uuid}/rules
Introduced In: 9.13
Creates the S3 bucket lifecycle rule configuration.
Required properties
-
name
- Lifecycle Management rule to be created. -
actions
- Lifecycle Management actions associated with the rule.
Recommended optional properties
-
enabled
- Lifecycle Management rule is enabled or not. -
object_filter.prefix
- Lifecycle Management rule filter prefix. -
object_filter.tags
- Lifecycle Management rule filter tags. -
object_filter.size_greater_than
- Lifecycle Management rule filter minimum object size. -
object_filter.size_less_than
- Lifecycle Management rule filter maximum object size. -
object_age_days
- Number of days since creation after which objects can be deleted. -
object_expiry_date
- Specific date from when objects can expire. -
expired_object_delete_marker
- Cleanup object delete markers. -
new_non_current_versions
- Number of latest non-current versions to be retained. -
non_current_days
- Number of days after which non-current versions can be deleted. -
after_initiation_days
- Number of days of initiation after which uploads can be aborted.
Related ONTAP commands
-
vserver object-store-server bucket lifecycle-management-rule create
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
s3_bucket.uuid |
string |
path |
True |
Unique identifier of a bucket. |
return_timeout |
integer |
query |
False |
The number of seconds to allow the call to execute before returning. When doing a POST, PATCH, or DELETE operation on a single record, the default is 0 seconds. This means that if an asynchronous operation is started, the server immediately returns HTTP code 202 (Accepted) along with a link to the job. If a non-zero value is specified for POST, PATCH, or DELETE operations, ONTAP waits that length of time to see if the job completes so it can return something other than 202.
|
return_records |
boolean |
query |
False |
The default is false. If set to true, the records are returned.
|
svm.uuid |
string |
path |
True |
UUID of the SVM to which this object belongs. |
Request Body
Name | Type | Description |
---|---|---|
_links |
||
abort_incomplete_multipart_upload |
Specifies a way to perform abort_incomplete_multipart_upload action on filtered objects within a bucket. |
|
enabled |
boolean |
Specifies whether or not the associated rule is enabled. |
expiration |
Specifies a way to perform expiration action on filtered objects within a bucket. |
|
name |
string |
Bucket lifecycle management rule identifier. |
non_current_version_expiration |
Specifies a way to perform non_current_version_expiration action on filtered objects within a bucket. |
|
object_filter |
Specifies a way to filter objects within a bucket. |
Example request
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"abort_incomplete_multipart_upload": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
}
},
"expiration": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"object_expiry_date": "string"
},
"name": "string",
"non_current_version_expiration": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
}
},
"object_filter": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"prefix": "/logs",
"size_greater_than": 10485760,
"size_less_than": 10240,
"tags": [
"project1=projA",
"project2=projB"
]
}
}
Response
Status: 202, Accepted
Name | Type | Description |
---|---|---|
job |
Example response
{
"job": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"uuid": "string"
}
}
Headers
Name | Description | Type |
---|---|---|
Location |
Useful for tracking the resource location |
string |
Response
Status: 201, Created
Error
Status: Default
ONTAP Error Response Codes
Error code | Message |
---|---|
92405861 |
"The specified SVM UUID or bucket UUID does not exist."; |
92406111 |
"Lifecycle Management rule for bucket in Vserver is invalid because of the number of tags specified. The maximum number of tags supported is four."; |
92406113 |
"Lifecycle Management rule for bucket in Vserver is invalid because there is a mismatch in one of the filter-field. Filters must be the same for a particular rule identifier."; |
92406114 |
"The Expiration action requires specifying either object_expiry_date, object_age_days or expired_object_delete_marker."; |
92406115 |
"The NonCurrentVersionExpiration action requires either new_non_current_versions or non_current_days."; |
92406116 |
"The AbortIncompleteMultipartUpload action requires after_initiation_days."; |
92406117 |
"The Expiration action cannot have both an expiry date and an age."; |
92406118 |
"Using Lifecycle Management rules requires an effective cluster version of 9.13.1 ."; |
92406119 |
"One or more object store buckets exist with Lifecycle Management rules. To list the buckets, run the vserver object-store-server bucket lifecycle-management-rule show command. To delete the buckets, use the vserver object-store-server bucket delete command."; |
92406120 |
"The AbortIncompleteMultipartUpload action cannot be specified with tags."; |
92406121 |
"Expired object delete marker cannot be specified with tags."; |
92406122 |
"Expired object delete marker cannot be specified with object age days or expiry date."; |
92406123 |
"Expiration is supported on object store volumes only, bucket on Vserver is not an object store volume."; |
92406126 |
"Lifecycle Management rule for bucket in Vserver is invalid because specified tags contain one or more invalid characters. Valid characters for a tag are 0-9, A-Z, a-z, +, -, =, ., _, :, /, @."; |
92406127 |
"Lifecycle Management rule for bucket in Vserver is invalid because specified tag length is greater than maximum allowed length: {1}."; |
92406128 |
"Lifecycle Management rule for bucket in Vserver has tags with duplicate keys. Ensure each tag has a unique key and try the operation again."; |
92406129 |
"Lifecycle Management rule for bucket in Vserver has a prefix that is too long. The maximum length of the prefix is 1024 characters."; |
92406130 |
"Lifecycle Management rule for bucket in Vserver is invalid because the minimum object size is larger than the maximum object size."; |
92406131 |
"Lifecycle Management rule for bucket in Vserver cannot be created because non_current_days must be specified when new_non_current_versions is specified."; |
92406132 |
"Lifecycle Management rule for bucket in Vserver requires object_age_days to be greater than zero."; |
92406133 |
"Lifecycle Management rule for bucket in Vserver is invalid. The object_expiry_date must be later than January 1, 1970."; |
92406134 |
"Cannot exceed the max limit of 1000 Lifecycle Management rules per bucket."; |
92406135 |
"MetroCluster is configured on cluster. Object Expiration is not supported in a MetroCluster configuration."; |
92406136 |
"Lifecycle Management rule for bucket in Vserver is invalid. The object_expiry_date must be at midnight GMT."; |
92406139 |
"Lifecycle Management rule for bucket in Vserver with action is a stale entry. Contact technical support for assistance."; |
92406140 |
"Expired object delete marker must be enabled to create a Lifecycle Management rule."; |
92406141 |
"Lifecycle Management rule for bucket in Vserver with action cannot have expired_object_delete_marker disabled. To disable expired_object_delete_marker, run vserver object-store-server bucket lifecycle-management-rule delete"; |
92406142 |
"Cannot create fabriclink relationship between bucket A and bucket B. Reason : {2}."; |
92406143 |
"The AbortIncompleteMultipartUpload action cannot be specified with object size."; |
Name | Type | Description |
---|---|---|
error |
Example error
{
"error": {
"arguments": [
{
"code": "string",
"message": "string"
}
],
"code": "4",
"message": "entry doesn't exist",
"target": "uuid"
}
}
Definitions
See Definitions
href
Name | Type | Description |
---|---|---|
href |
string |
_links
Name | Type | Description |
---|---|---|
self |
abort_incomplete_multipart_upload
Specifies a way to perform abort_incomplete_multipart_upload action on filtered objects within a bucket.
Name | Type | Description |
---|---|---|
_links |
||
after_initiation_days |
integer |
Number of days of initiation after which uploads can be aborted. |
expiration
Specifies a way to perform expiration action on filtered objects within a bucket.
Name | Type | Description |
---|---|---|
_links |
||
expired_object_delete_marker |
boolean |
Cleanup object delete markers. |
object_age_days |
integer |
Number of days since creation after which objects can be deleted. |
object_expiry_date |
string |
Specific date from when objects can expire. |
non_current_version_expiration
Specifies a way to perform non_current_version_expiration action on filtered objects within a bucket.
Name | Type | Description |
---|---|---|
_links |
||
new_non_current_versions |
integer |
Number of latest non-current versions to be retained. |
non_current_days |
integer |
Number of days after which non-current versions can be deleted. |
object_filter
Specifies a way to filter objects within a bucket.
Name | Type | Description |
---|---|---|
_links |
||
prefix |
string |
A prefix that is matched against object-names within a bucket. |
size_greater_than |
integer |
Size of the object greater than specified for which the corresponding lifecycle rule is to be applied. |
size_less_than |
integer |
Size of the object smaller than specified for which the corresponding lifecycle rule is to be applied. |
tags |
array[string] |
An array of key-value paired tags of the form |
s3_bucket_lifecycle_rule
Information about the lifecycle management rule of a bucket.
Name | Type | Description |
---|---|---|
_links |
||
abort_incomplete_multipart_upload |
Specifies a way to perform abort_incomplete_multipart_upload action on filtered objects within a bucket. |
|
enabled |
boolean |
Specifies whether or not the associated rule is enabled. |
expiration |
Specifies a way to perform expiration action on filtered objects within a bucket. |
|
name |
string |
Bucket lifecycle management rule identifier. |
non_current_version_expiration |
Specifies a way to perform non_current_version_expiration action on filtered objects within a bucket. |
|
object_filter |
Specifies a way to filter objects within a bucket. |
job_link
Name | Type | Description |
---|---|---|
_links |
||
uuid |
string |
The UUID of the asynchronous job that is triggered by a POST, PATCH, or DELETE operation. |
error_arguments
Name | Type | Description |
---|---|---|
code |
string |
Argument code |
message |
string |
Message argument |
error
Name | Type | Description |
---|---|---|
arguments |
array[error_arguments] |
Message arguments |
code |
string |
Error code |
message |
string |
Error message |
target |
string |
The target parameter that caused the error. |