> For the complete documentation index, see [llms.txt](https://docs.ionos.com/cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ionos.com/cloud/tools-cli/subcommands/object-storage/bucket/lifecycle/put.md).

# put

Create or replace the lifecycle configuration for a bucket

## Usage

```
ionosctl object-storage bucket lifecycle put [flags]
```

## Aliases

For `bucket` command:

```
[b]
```

For `lifecycle` command:

```
[lc]
```

For `put` command:

```
[p]
```

## Description

Create or replace a bucket's lifecycle configuration. This fully REPLACES any existing rules with the "Rules" array in the file.

Provide the configuration as a JSON file via --json-properties. Each rule needs an "ID", a "Prefix" (which object keys it applies to; "" = all objects), a "Status" ("Enabled" or "Disabled"), and at least one action: Expiration.Days / Expiration.Date Delete current objects after N days, or on a specific date. NoncurrentVersionExpiration.NoncurrentDays Delete old versions N days after they become noncurrent (versioned buckets). AbortIncompleteMultipartUpload.DaysAfterInitiation Abort unfinished multipart uploads after N days.

Note: on a versioned bucket, Expiration alone only adds a delete marker and does not reclaim storage - pair it with NoncurrentVersionExpiration. ionosctl computes and sends the required Content-MD5 for the request automatically.

Run with --json-properties-example to print a ready-to-edit template (expire objects under logs/ after 90 days, plus abort stale multipart uploads after 7 days).

## Options

```
  -u, --api-url string            Override default host URL. If contains placeholder, location will be embedded. Preferred over the config file override 'objectstorage' and env var 'IONOS_API_URL' (default "https://s3.%s.ionoscloud.com")
      --cols strings              Set of columns to be printed on output 
                                  Available columns: [ID Prefix Status ExpirationDays ExpirationDate ExpiredObjectDeleteMarker NoncurrentDays AbortDays]
  -c, --config string             Configuration file used for authentication (default "$XDG_CONFIG_HOME/ionosctl/config.yaml")
  -D, --depth int                 Level of detail for response objects (default 1)
  -F, --filters strings           Limit results to results containing the specified filter:KEY1=VALUE1,KEY2=VALUE2
  -f, --force                     Force command to execute without user input
  -h, --help                      Print usage
      --json-properties string    Path to a JSON file with the lifecycle rules ({"Rules":[...]}). Replaces all existing rules
      --json-properties-example   Print an example lifecycle configuration JSON and exit without contacting the API
      --limit int                 Maximum number of items to return per request (default 50)
  -l, --location string           Location of the resource to operate on. When unset, list commands query all locations. Can be one of: eu-central-3, eu-central-4, us-central-1. A facility inside one of these metro regions (e.g. de/fra/1) is also accepted and served by its metro region's endpoint. Defaults to eu-central-3
  -n, --name string               Name of the bucket (required)
      --no-headers                Don't print table headers when table output is used
      --offset int                Number of items to skip before starting to collect the results
      --order-by string           Property to order the results by
  -o, --output string             Desired output format [text|json|api-json] (default "text")
      --query string              JMESPath query string to filter the output
  -q, --quiet                     Quiet output
  -t, --timeout int               Timeout in seconds for --wait and other wait operations (default 600)
  -v, --verbose count             Increase verbosity level [-v, -vv, -vvv]
  -w, --wait                      Wait for the resource to reach AVAILABLE state after the command completes. No-op for list commands
```

## Examples

```
# Apply lifecycle rules from a file
ionosctl object-storage bucket lifecycle put --name my-bucket --json-properties lifecycle.json

# Print an example configuration
ionosctl object-storage bucket lifecycle put --json-properties-example
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.ionos.com/cloud/tools-cli/subcommands/object-storage/bucket/lifecycle/put.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
