Create the 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. It cannot be specified with tags. |
|
bucket_name |
string |
Specifies the name of the bucket. Bucket name is a string that can only contain the following combination of ASCII-range alphanumeric characters 0-9, a-z, ".", and "-". |
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. The length of the name can range from 0 to 256 characters. |
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. |
|
svm |
Specifies the name of the SVM where this bucket exists. |
|
uuid |
string |
Specifies the unique identifier of the bucket. |
Example request
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"abort_incomplete_multipart_upload": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
}
},
"bucket_name": "bucket1",
"expiration": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"object_age_days": 100,
"object_expiry_date": "2039-09-22 20:00:00 -0400"
},
"name": "string",
"non_current_version_expiration": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
}
},
"object_filter": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"prefix": "/logs",
"size_greater_than": 10240,
"size_less_than": 10485760,
"tags": [
"project1=projA",
"project2=projB"
]
},
"svm": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "svm1",
"uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
},
"uuid": "414b29a1-3b26-11e9-bd58-0050568ea055"
}
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 "rule1" for bucket "testbuck1" in SVM "vs0" 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 ."; |
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 "object_expiry_date"."; |
92406123 |
"Expiration is supported on object store volumes only, bucket "testbuck-nas" on SVM "vs0" is not an object store volume."; |
92406126 |
"Lifecycle Management rule "rule1" for bucket "testbuck1" in SVM "vs0" is invalid because specified tags contain one or more invalid characters. Valid characters for a tag are 0-9, A-Z, a-z, "+", "-", "=", ".", "_", ":", "/", "@", and " ". Each "=" character present in a tag key or value must be prefixed with the "" escape character."; |
92406127 |
"Lifecycle Management rule " |
92406128 //end row //start row |
"Lifecycle Management rule "rule1" for bucket "testbuck1" in SVM "vs0" has tags with duplicate keys. Verify that each tag has a unique key and then try the operation again."; //end row //start row |
92406129 //end row //start row |
"Lifecycle Management rule "rule1" for bucket "testbuck1" in SVM "vs0" has a prefix that is too long. The maximum length of the prefix is 1024 characters."; //end row //start row |
92406130 //end row //start row |
"Lifecycle Management rule "rule1" for bucket "testbuck1" in SVM "vs0" is invalid because the minimum object size of 10485760 is larger than or equal to the maximum object size of 10240."; //end row //start row |
92406131 //end row //start row |
"Lifecycle Management rule "testcheck2" for bucket "testbuck1" in SVM "vs0" cannot be created because "non_current_days" must be specified along with "new_non_current_versions"."; //end row //start row |
92406132 //end row //start row |
"Lifecycle Management rule " |
92406132 //end row //start row |
"Lifecycle Management rule " |
92406132 //end row //start row |
"Lifecycle Management rule " |
92406133 //end row //start row |
"Lifecycle Management rule for bucket in Vserver is invalid. The object_expiry_date must be later than January 1, 1970."; //end row //start row |
92406134 //end row //start row |
"Cannot exceed the max limit of 1000 Lifecycle Management rules per bucket."; //end row //start row |
92406135 //end row //start row |
"MetroCluster is configured on cluster. Object Expiration is not supported in a MetroCluster configuration."; //end row //start row |
92406136 //end row //start row |
"Lifecycle Management rule "rule1" for bucket "buck1" in SVM "vs0" is invalid. The "object_expiry_date" must be at midnight GMT."; //end row //start row |
92406139 //end row //start row |
"Lifecycle Management rule for bucket in Vserver with action is a stale entry. Contact technical support for assistance."; //end row //start row |
92406141 //end row //start row |
"Lifecycle Management rule "rule1" for bucket "buck1" in SVM "vs0" with action "Expiration" cannot have "expired_object_delete_marker" disabled. To disable "expired_object_delete_marker", run the "vserver object-store-server bucket lifecycle-management-rule delete" command."; //end row //start row |
92406143 //end row //start row |
"As part of Bucket Lifecycle, cannot create fabriclink relationship on bucket " |
92406144 //end row //start row |
"The "AbortIncompleteMultipartUpload" action cannot be specified with object size."; //end row //start row |
92406150 //end row //start row |
""expired_object_delete_marker" cannot be specified with "size_less_than"."; //end row //start row |
92406148 //end row //start row |
"Lifecycle Management rule "rule1" for bucket "buck1" in SVM "vs0" cannot have "new_non_current_versions" more than 100."; //end row //start row |
92406149 //end row //start row |
"Lifecycle Management rule "rule1" for bucket "buck1" in SVM "vs0" requires an action to be specified. Retry the operation after adding an action."; //end row |
|Name |Type |Description
|error |returned_error a|
.Example error [%collapsible%closed] ==== [source,json,subs=+macros] { "error": { "arguments": [ { "code": "string", "message": "string" } ], "code": "4", "message": "entry doesn't exist", "target": "uuid" } } ==== == Definitions [.api-def-first-level] .See Definitions [%collapsible%closed] ==== [#href] [.api-collapsible-fifth-title] href [cols=3*,options=header] |
|Name |Type |Description
|href |string a|
[#_links] [.api-collapsible-fifth-title] _links [cols=3*,options=header] |
|Name |Type |Description
|self |href a|
[#abort_incomplete_multipart_upload] [.api-collapsible-fifth-title] abort_incomplete_multipart_upload Specifies a way to perform abort_incomplete_multipart_upload action on filtered objects within a bucket. It cannot be specified with tags. [cols=3*,options=header] |
|Name |Type |Description
|_links |_links a|
|after_initiation_days |integer a|Number of days of initiation after which uploads can be aborted.
[#expiration] [.api-collapsible-fifth-title] expiration Specifies a way to perform expiration action on filtered objects within a bucket. [cols=3*,options=header] |
|Name |Type |Description
|_links |_links a|
|expired_object_delete_marker |boolean a|Cleanup object delete markers.
|object_age_days |integer a|Number of days since creation after which objects can be deleted. This cannot be used along with object_expiry_date.
|object_expiry_date |string a|Specific date from when objects can expire. This cannot be used with object_age_days.
[#non_current_version_expiration] [.api-collapsible-fifth-title] non_current_version_expiration Specifies a way to perform non_current_version_expiration action on filtered objects within a bucket. [cols=3*,options=header] |
|Name |Type |Description
|_links |_links a|
|new_non_current_versions |integer a|Number of latest non-current versions to be retained.
|non_current_days |integer a|Number of days after which non-current versions can be deleted.
[#object_filter] [.api-collapsible-fifth-title] object_filter Specifies a way to filter objects within a bucket. [cols=3*,options=header] |
|Name |Type |Description
|_links |_links a|
|prefix |string a|A prefix that is matched against object-names within a bucket.
|size_greater_than |integer a|Size of the object greater than specified for which the corresponding lifecycle rule is to be applied.
|size_less_than |integer a|Size of the object smaller than specified for which the corresponding lifecycle rule is to be applied.
|tags
|array[string]
a|An array of key-value paired tags of the form
[#svm] [.api-collapsible-fifth-title] svm Specifies the name of the SVM where this bucket exists. [cols=3*,options=header] |
|Name |Type |Description
|_links |_links a|
|name |string a|The name of the SVM. This field cannot be specified in a PATCH method.
|uuid |string a|The unique identifier of the SVM. This field cannot be specified in a PATCH method.
[#s3_bucket_lifecycle_rule] [.api-collapsible-fifth-title] s3_bucket_lifecycle_rule Information about the lifecycle management rule of a bucket. [cols=3*,options=header] |
|Name |Type |Description
|_links |_links a|
|abort_incomplete_multipart_upload |abort_incomplete_multipart_upload a|Specifies a way to perform abort_incomplete_multipart_upload action on filtered objects within a bucket. It cannot be specified with tags.
|bucket_name |string a|Specifies the name of the bucket. Bucket name is a string that can only contain the following combination of ASCII-range alphanumeric characters 0-9, a-z, ".", and "-".
|enabled |boolean a|Specifies whether or not the associated rule is enabled.
|expiration |expiration a|Specifies a way to perform expiration action on filtered objects within a bucket.
|name |string a|Bucket lifecycle management rule identifier. The length of the name can range from 0 to 256 characters.
|non_current_version_expiration |non_current_version_expiration a|Specifies a way to perform non_current_version_expiration action on filtered objects within a bucket.
|object_filter |object_filter a|Specifies a way to filter objects within a bucket.
|svm |svm a|Specifies the name of the SVM where this bucket exists.
|uuid |string a|Specifies the unique identifier of the bucket.
[#job_link] [.api-collapsible-fifth-title] job_link [cols=3*,options=header] |
|Name |Type |Description
|_links |_links a|
|uuid |string a|The UUID of the asynchronous job that is triggered by a POST, PATCH, or DELETE operation.
[#error_arguments] [.api-collapsible-fifth-title] error_arguments [cols=3*,options=header] |
|Name |Type |Description
|code |string a|Argument code
|message |string a|Message argument
[#returned_error] [.api-collapsible-fifth-title] returned_error [cols=3*,options=header] |
|Name |Type |Description
|arguments |array[error_arguments] a|Message arguments
|code |string a|Error code
|message |string a|Error message
|target |string a|The target parameter that caused the error.
==== |