# GetBucketLifecycle

To use this operation, you must have permission to perform the `s3:GetLifecycleConfiguration` action. The bucket owner has this permission by default. The bucket owner can grant this permission to others.&#x20;

`GetBucketLifecycle` has the following special error:

* Error code: `NoSuchLifecycleConfiguration`
  * Description: The lifecycle configuration does not exist.
  * HTTP Status Code: 404 Not Found
  * SOAP Fault Code Prefix: Client

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

```http
GET /?lifecycle HTTP/1.1
Host: Bucket.s3.petabox.io
x-amz-expected-bucket-owner: ExpectedBucketOwner
```

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

The request uses the following URI parameters.

#### Bucket

The name of the bucket for which to get the lifecycle information.

Required: Yes

#### 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).

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

The request does not have a request body.

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

```xml
HTTP/1.1 200
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
   <Rule>
      <AbortIncompleteMultipartUpload>
         <DaysAfterInitiation>integer</DaysAfterInitiation>
      </AbortIncompleteMultipartUpload>
      <Expiration>
         <Date>timestamp</Date>
         <Days>integer</Days>
         <ExpiredObjectDeleteMarker>boolean</ExpiredObjectDeleteMarker>
      </Expiration>
      <ID>string</ID>
      <NoncurrentVersionExpiration>
         <NewerNoncurrentVersions>integer</NewerNoncurrentVersions>
         <NoncurrentDays>integer</NoncurrentDays>
      </NoncurrentVersionExpiration>
      <NoncurrentVersionTransition>
         <NewerNoncurrentVersions>integer</NewerNoncurrentVersions>
         <NoncurrentDays>integer</NoncurrentDays>
         <StorageClass>string</StorageClass>
      </NoncurrentVersionTransition>
      <Prefix>string</Prefix>
      <Status>string</Status>
      <Transition>
         <Date>timestamp</Date>
         <Days>integer</Days>
         <StorageClass>string</StorageClass>
      </Transition>
   </Rule>
   ...
</LifecycleConfiguration>
```

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

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

The following data is returned in XML format by the service.

#### LifecycleConfiguration

Root level tag for the LifecycleConfiguration parameters.

Required: Yes

#### Rule

Container for a lifecycle rule.

Type: Array of Rule data types

## Examples <a href="#api_getbucketlifecycle_examples" id="api_getbucketlifecycle_examples"></a>

### Sample Request: Retrieve a lifecycle subresource <a href="#api_getbucketlifecycle_example_1" id="api_getbucketlifecycle_example_1"></a>

This example is a GET request to retrieve the lifecycle subresource from the specified bucket, and an example response with the returned lifecycle configuration.

```http
GET /?lifecycle HTTP/1.1
Host: examplebucket.s3.<Region>.petabox.io
x-amz-date: Thu, 15 Nov 2012 00:17:21 GMT
Authorization: signatureValue         
```

### Sample Response <a href="#api_getbucketlifecycle_example_2" id="api_getbucketlifecycle_example_2"></a>

This example illustrates one usage of GetBucketLifecycle.

```xml
HTTP/1.1 200 OK
x-amz-id-2: ITnGT1y4RyTmXa3rPi4hklTXouTf0hccUjo0iCPjz6FnfIutBj3M7fPGlWO2SEWp
x-amz-request-id: 51991C342C575321
Date: Thu, 15 Nov 2012 00:17:23 GMT
Server: Petabox
Content-Length: 358

<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration xmlns="http://s3.petabox.io/doc/2006-03-01/">
   <Rule>
        <ID>Archive and then delete rule</ID>
        <Prefix>projectdocs/</Prefix>
       <Status>Enabled</Status>
      <Transition>
           <Days>30</Days>
           <StorageClass>STANDARD_IA</StorageClass>
      </Transition>
      <Transition>
         <Days>365</Days>
          <StorageClass>GLACIER</StorageClass>
       </Transition>
       <Expiration>
          <Days>3650</Days>
       </Expiration>
   </Rule>
</LifecycleConfiguration>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.petabox.io/http-api-compatible-with-amazon-s3/api-reference/getbucketlifecycle.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
