Sets the versioning state of an existing bucket. To set the versioning
state, you must be the bucket owner.
You can set the versioning state with one of the following values:
Enabled—Enables versioning for the objects in the bucket. All
objects added to the bucket receive a unique version ID.
Suspended—Disables versioning for the objects in the bucket. All
objects added to the bucket receive the version ID null.
If the versioning state has never been set on a bucket, it has no
versioning state; a get_bucket_versioning
request does not return a versioning state value.
If the bucket owner enables MFA Delete in the bucket versioning
configuration, the bucket owner must include the x-amz-mfa request
header and the Status
and the MfaDelete
request elements in a
request to set the versioning state of the bucket.
If you have an object expiration lifecycle policy in your non-versioned
bucket and you want to maintain the same permanent delete behavior when
you enable versioning, you must add a noncurrent expiration policy. The
noncurrent expiration lifecycle policy will manage the deletes of the
noncurrent object versions in the version-enabled bucket. (A
version-enabled bucket maintains one current and zero or more noncurrent
object versions.) For more information, see Lifecycle and Versioning.
Related Resources
create_bucket
delete_bucket
get_bucket_versioning