# PutObjectLockConfiguration

The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket.

{% hint style="info" %}
**Note**

* The `DefaultRetention` settings require both a mode and a period.
* The `DefaultRetention` period can be either `Days` or `Years,` but you must select one. You cannot specify `Days` and `Years` at the same time.
* You can only enable Object Lock for new buckets. If you want to turn on Object Lock for an existing bucket, contact Petabox Support.
  {% endhint %}

## Request Syntax <a href="#api_putobjectlockconfiguration_requestsyntax" id="api_putobjectlockconfiguration_requestsyntax"></a>

```http
PUT /?object-lock HTTP/1.1
Host: Bucket.s3.petabox.io
x-amz-request-payer: RequestPayer
x-amz-bucket-object-lock-token: Token
Content-MD5: ContentMD5
x-amz-sdk-checksum-algorithm: ChecksumAlgorithm
x-amz-expected-bucket-owner: ExpectedBucketOwner
<?xml version="1.0" encoding="UTF-8"?>
<ObjectLockConfiguration xmlns="http://s3.petabox.io/doc/2006-03-01/">
   <ObjectLockEnabled>string</ObjectLockEnabled>
   <Rule>
      <DefaultRetention>
         <Days>integer</Days>
         <Mode>string</Mode>
         <Years>integer</Years>
      </DefaultRetention>
   </Rule>
</ObjectLockConfiguration>
```

## URI Request Parameters <a href="#api_putobjectlockconfiguration_requestparameters" id="api_putobjectlockconfiguration_requestparameters"></a>

The request uses the following URI parameters.

#### Bucket

The bucket whose Object Lock configuration you want to create or replace.

Required: Yes

#### Content-MD5

The MD5 hash for the request body.

For requests made using the Command Line Interface (CLI) or SDKs, this field is calculated automatically.

#### x-amz-bucket-object-lock-token

A token to allow Object Lock to be enabled for an existing bucket.

#### x-amz-expected-bucket-owner

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code `403 Forbidden` (access denied).

#### x-amz-request-payer

Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests.&#x20;

Valid Values: `requester`

## Request Body <a href="#api_putobjectlockconfiguration_requestbody" id="api_putobjectlockconfiguration_requestbody"></a>

The request accepts the following data in XML format.

#### ObjectLockConfiguration

Root level tag for the ObjectLockConfiguration parameters.

Required: Yes

#### ObjectLockEnabled

Indicates whether this bucket has an Object Lock configuration enabled. Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket.

Type: String

Valid Values: `Enabled`

Required: No

#### Rule

Specifies the Object Lock rule for the specified object. Enable this rule when you apply `ObjectLockConfiguration` to a bucket. Bucket settings require both a mode and a period. The period can be either `Days` or `Years` but you must select one. You cannot specify `Days` and `Years` at the same time.

Type: ObjectLockRule data type

Required: No

## Response Syntax <a href="#api_putobjectlockconfiguration_responsesyntax" id="api_putobjectlockconfiguration_responsesyntax"></a>

```xml
HTTP/1.1 200
x-amz-request-charged: RequestCharged
```

## Response Elements <a href="#api_putobjectlockconfiguration_responseelements" id="api_putobjectlockconfiguration_responseelements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The response returns the following HTTP headers.

#### x-amz-request-charged

If present, indicates that the requester was successfully charged for the request.

Valid Values: `requester`
