Get lifecycle rules for a bucket | Tigris Object Storage Documentation

Get lifecycle rules for a bucket

GET https://mgmt.storage.dev/v1/providers/:provider_id/orgs/:org_id/buckets/:bucket_name/lifecycle

Returns the currently configured lifecycle rules for the bucket. Returns an empty rules array if no lifecycle rules are configured.

Request

Path Parameters

provider_id string required
Provider ID

org_id string required
Organization ID

bucket_name string required
Bucket name

Responses

OK

Schema

rules object[] required
Currently configured lifecycle rules for the bucket. Empty array if no rules are configured.

Array [

id string required
Unique identifier for the rule (max 255 chars). Use a descriptive name like archive-old-logs or expire-temp-uploads.

enabled boolean required
Whether the rule is currently active. Set to false to temporarily disable a rule without deleting it. When disabled, objects will not be transitioned or expired by this rule.

expiration object
Configuration for automatic object deletion (expiration).

When the expiration condition is met, objects matching this rule are permanently deleted.

Specify ONE Condition (Not Both)

days integer
Number of days after object creation when the object will be deleted.

The deletion happens at midnight UTC on the calculated expiration date.

date date-time
Specific date (at midnight UTC) when all matching objects will be deleted, regardless of when they were created.

transitions object[]
List of storage class transitions. Objects will transition through each defined step.

Array [

days integer
Number of days after object creation when the transition occurs.

date date-time
Specific date (at midnight UTC) when all matching objects will be transitioned, regardless of when they were created.

storage_class StorageClass required
Storage class for the bucket. Default is STANDARD.

filter object
Optional scope for a lifecycle rule. When unset, the rule applies to every object in the bucket.

prefix string
Only apply this rule to objects whose keys start with the given prefix.

{
  "rules": [
    {
      "id": "string",
      "enabled": true,
      "expiration": {
        "days": 0,
        "date": "2025-01-01T00:00:00Z"
      },
      "transitions": [
        {
          "days": 0,
          "date": "2025-06-01T00:00:00Z",
          "storage_class": "STANDARD"
        }
      ],
      "filter": {
        "prefix": "string"
      }
    }
  ]
}

Unexpected error

Schema

message string

{
  "message": "string"
}

Authorization: X-Tigris-Signature

name: X-Tigris-Signature  
type: apiKey  
in: header  
description: HMAC-SHA256 of the canonical request signed using the signing key.
To create the signature, concatenate the HTTP method, URL, timestamp, and nonce with a newline character in between.
Then, calculate the HMAC-SHA256 of the concatenated string using the signing key. Example:

Create the `canonical_request` as:
```
POST
https://mgmt.storage.dev/provider/your-provider-id/orgs/user-org-id/provision
1731703213870
f8d133cb-5a42-47b1-9ef2-874bb55bab72
```
Then, calculate HMAC-SHA256 of the canonical request using the signing key as:
```
Signature = hex(sha256sign(canonical_request, "signing_key"))
```
name: X-Tigris-Nonce  
type: apiKey  
in: header  
description: Random unique string to identify the request and prevent replay attacks. Example: "f8d133cb-5a42-47b1-9ef2-874bb55bab72"
name: X-Tigris-Time  
type: apiKey  
in: header  
description: Unix timestamp in milliseconds of the request. Example: 1731703213870
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://mgmt.storage.dev/v1/providers/:provider_id/orgs/:org_id/buckets/:bucket_name/lifecycle");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("X-Tigris-Signature", "<X-Tigris-Signature>");
request.Headers.Add("X-Tigris-Nonce", "<X-Tigris-Nonce>");
request.Headers.Add("X-Tigris-Time", "<X-Tigris-Time>");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());