Skip to content
Start here

Update catalog maintenance configuration

client.R2DataCatalog.MaintenanceConfigs.Update(ctx, bucketName, params) (*MaintenanceConfigUpdateResponse, error)
POST/accounts/{account_id}/r2-catalog/{bucket_name}/maintenance-configs

Update the maintenance configuration for a catalog. This allows you to enable or disable compaction and adjust target file sizes for optimization.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Workers R2 Data Catalog Write
ParametersExpand Collapse
bucketName string

Specifies the R2 bucket name.

maxLength63
minLength3
params MaintenanceConfigUpdateParams
AccountID param.Field[string]

Path param: Use this to identify the account.

Compaction param.Field[MaintenanceConfigUpdateParamsCompaction]optional

Body param: Updates compaction configuration (all fields optional).

State MaintenanceConfigUpdateParamsCompactionStateoptional

Updates the state optionally.

One of the following:
const MaintenanceConfigUpdateParamsCompactionStateEnabled MaintenanceConfigUpdateParamsCompactionState = "enabled"
const MaintenanceConfigUpdateParamsCompactionStateDisabled MaintenanceConfigUpdateParamsCompactionState = "disabled"
TargetSizeMB MaintenanceConfigUpdateParamsCompactionTargetSizeMBoptional

Updates the target file size optionally.

One of the following:
const MaintenanceConfigUpdateParamsCompactionTargetSizeMB64 MaintenanceConfigUpdateParamsCompactionTargetSizeMB = "64"
const MaintenanceConfigUpdateParamsCompactionTargetSizeMB128 MaintenanceConfigUpdateParamsCompactionTargetSizeMB = "128"
const MaintenanceConfigUpdateParamsCompactionTargetSizeMB256 MaintenanceConfigUpdateParamsCompactionTargetSizeMB = "256"
const MaintenanceConfigUpdateParamsCompactionTargetSizeMB512 MaintenanceConfigUpdateParamsCompactionTargetSizeMB = "512"
SnapshotExpiration param.Field[MaintenanceConfigUpdateParamsSnapshotExpiration]optional

Body param: Updates snapshot expiration configuration (all fields optional).

MaxSnapshotAge stringoptional

Updates the maximum age for snapshots optionally.

MinSnapshotsToKeep int64optional

Updates the minimum number of snapshots to retain optionally.

formatint64
minimum1
State MaintenanceConfigUpdateParamsSnapshotExpirationStateoptional

Updates the state optionally.

One of the following:
const MaintenanceConfigUpdateParamsSnapshotExpirationStateEnabled MaintenanceConfigUpdateParamsSnapshotExpirationState = "enabled"
const MaintenanceConfigUpdateParamsSnapshotExpirationStateDisabled MaintenanceConfigUpdateParamsSnapshotExpirationState = "disabled"
ReturnsExpand Collapse
type MaintenanceConfigUpdateResponse struct{…}

Configures maintenance for the catalog.

Compaction MaintenanceConfigUpdateResponseCompactionoptional

Configures compaction for catalog maintenance.

State MaintenanceConfigUpdateResponseCompactionState

Specifies the state of maintenance operations.

One of the following:
const MaintenanceConfigUpdateResponseCompactionStateEnabled MaintenanceConfigUpdateResponseCompactionState = "enabled"
const MaintenanceConfigUpdateResponseCompactionStateDisabled MaintenanceConfigUpdateResponseCompactionState = "disabled"
TargetSizeMB MaintenanceConfigUpdateResponseCompactionTargetSizeMB

Sets the target file size for compaction in megabytes. Defaults to "128".

One of the following:
const MaintenanceConfigUpdateResponseCompactionTargetSizeMB64 MaintenanceConfigUpdateResponseCompactionTargetSizeMB = "64"
const MaintenanceConfigUpdateResponseCompactionTargetSizeMB128 MaintenanceConfigUpdateResponseCompactionTargetSizeMB = "128"
const MaintenanceConfigUpdateResponseCompactionTargetSizeMB256 MaintenanceConfigUpdateResponseCompactionTargetSizeMB = "256"
const MaintenanceConfigUpdateResponseCompactionTargetSizeMB512 MaintenanceConfigUpdateResponseCompactionTargetSizeMB = "512"
SnapshotExpiration MaintenanceConfigUpdateResponseSnapshotExpirationoptional

Configures snapshot expiration settings.

MaxSnapshotAge string

Specifies the maximum age for snapshots. The system deletes snapshots older than this age. Format: where unit is d (days), h (hours), m (minutes), or s (seconds). Examples: "7d" (7 days), "48h" (48 hours), "2880m" (2,880 minutes). Defaults to "7d".

MinSnapshotsToKeep int64

Specifies the minimum number of snapshots to retain. Defaults to 100.

formatint64
minimum1
State MaintenanceConfigUpdateResponseSnapshotExpirationState

Specifies the state of maintenance operations.

One of the following:
const MaintenanceConfigUpdateResponseSnapshotExpirationStateEnabled MaintenanceConfigUpdateResponseSnapshotExpirationState = "enabled"
const MaintenanceConfigUpdateResponseSnapshotExpirationStateDisabled MaintenanceConfigUpdateResponseSnapshotExpirationState = "disabled"

Update catalog maintenance configuration

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/option"
  "github.com/cloudflare/cloudflare-go/r2_data_catalog"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  maintenanceConfig, err := client.R2DataCatalog.MaintenanceConfigs.Update(
    context.TODO(),
    "my-data-bucket",
    r2_data_catalog.MaintenanceConfigUpdateParams{
      AccountID: cloudflare.F("0123456789abcdef0123456789abcdef"),
      Compaction: cloudflare.F(r2_data_catalog.MaintenanceConfigUpdateParamsCompaction{
        State: cloudflare.F(r2_data_catalog.MaintenanceConfigUpdateParamsCompactionStateEnabled),
        TargetSizeMB: cloudflare.F(r2_data_catalog.MaintenanceConfigUpdateParamsCompactionTargetSizeMB256),
      }),
      SnapshotExpiration: cloudflare.F(r2_data_catalog.MaintenanceConfigUpdateParamsSnapshotExpiration{
        MaxSnapshotAge: cloudflare.F("14d"),
        MinSnapshotsToKeep: cloudflare.F(int64(5)),
        State: cloudflare.F(r2_data_catalog.MaintenanceConfigUpdateParamsSnapshotExpirationStateEnabled),
      }),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", maintenanceConfig.Compaction)
}
{
  "errors": [],
  "messages": [],
  "result": {
    "compaction": {
      "state": "enabled",
      "target_size_mb": "256"
    },
    "snapshot_expiration": {
      "max_snapshot_age": "14d",
      "min_snapshots_to_keep": 5,
      "state": "enabled"
    }
  },
  "success": true
}
Returns Examples
{
  "errors": [],
  "messages": [],
  "result": {
    "compaction": {
      "state": "enabled",
      "target_size_mb": "256"
    },
    "snapshot_expiration": {
      "max_snapshot_age": "14d",
      "min_snapshots_to_keep": 5,
      "state": "enabled"
    }
  },
  "success": true
}