# Lifecycle

This document provides instructions to manage [<mark style="color:blue;">Lifecycle</mark>](https://docs.ionos.com/cloud/backup-and-storage/ionos-object-storage/settings/lifecycle) using the CLI. Additionally, these tasks can also be performed using the [<mark style="color:blue;">DCD</mark>](https://docs.ionos.com/cloud/backup-and-storage/settings/lifecycle#dcd) and [<mark style="color:blue;">API</mark>](https://api.ionos.com/docs/s3/v2/#tag/Lifecycle).

{% hint style="info" %}
**Prerequisites:**

* Set up the AWS CLI by following the [<mark style="color:blue;">installation instructions</mark>](https://docs.ionos.com/cloud/backup-and-storage/ionos-object-storage/s3-tools/awscli/awscli-configure).
* Make sure to consider the supported [<mark style="color:blue;">Endpoints</mark>](https://docs.ionos.com/cloud/backup-and-storage/ionos-object-storage/endpoints).
* [<mark style="color:blue;">Versioning</mark>](https://docs.ionos.com/cloud/backup-and-storage/ionos-object-storage/settings/versioning) must be enabled for source and destination buckets.
  {% endhint %}

## Commands

Create a file `lifecycle.json` with the JSON policy:

```
{
  "Rules": [
    {
      "ID": "Delete objects with data/ prefix after 30 days with size",
      "Status": "Enabled",
      "Expiration": {
        "Days": 30
      },
      "Filter": {
        "Prefix": "data/"
      }
    },
    {
      "ID": "Delete objects 60 days after becoming non-current for bucket with Versioning enabled",
      "Status": "Enabled",
      "Filter": {
        "Prefix": "temp/"
      },
      "NoncurrentVersionExpiration": {
        "NoncurrentDays": 45
      }
    },
    {
      "ID": "Delete 2022 logs in 2024.",
      "Status": "Enabled",
      "Expiration": {
          "Date": "2024-01-01T00:00:00.000Z"
      },  
      "Filter": {  
        "Prefix": "logs/2022/"
      }
    },
    {
      "ID": "Delete incomplete multipart uploads",
      "Status": "Enabled",
      "AbortIncompleteMultipartUpload": {
        "DaysAfterInitiation": 5
      },
      "Filter": {}
    }  
  ]
}
```

Apply the lifecycle configuration to a bucket:

```
aws s3api put-bucket-lifecycle-configuration --bucket my-bucket --lifecycle-configuration  file://lifecycle.json  --endpoint-url https://s3.eu-central-2.ionoscloud.com

```

Save the bucket’s lifecycle configuration to a file:

```
aws s3api get-bucket-lifecycle-configuration --bucket my-bucket --endpoint-url https://s3.eu-central-2.ionoscloud.com > lifecycle.json

```

Delete the Lifecyle configuration:

```
aws s3api delete-bucket-lifecycle --bucket my-bucket --endpoint-url https://s3.eu-central-2.ionoscloud.com

```


---

# 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.ionos.com/cloud/backup-and-storage/ionos-object-storage/s3-tools/awscli/awscli-lifecycle.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.
