## 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. ### Parameters - `bucketName string` Specifies the R2 bucket name. - `params MaintenanceConfigUpdateParams` - `AccountID param.Field[string]` Path param: Use this to identify the account. - `Compaction param.Field[MaintenanceConfigUpdateParamsCompaction]` Body param: Updates compaction configuration (all fields optional). - `State MaintenanceConfigUpdateParamsCompactionState` Updates the state optionally. - `const MaintenanceConfigUpdateParamsCompactionStateEnabled MaintenanceConfigUpdateParamsCompactionState = "enabled"` - `const MaintenanceConfigUpdateParamsCompactionStateDisabled MaintenanceConfigUpdateParamsCompactionState = "disabled"` - `TargetSizeMB MaintenanceConfigUpdateParamsCompactionTargetSizeMB` Updates the target file size optionally. - `const MaintenanceConfigUpdateParamsCompactionTargetSizeMB64 MaintenanceConfigUpdateParamsCompactionTargetSizeMB = "64"` - `const MaintenanceConfigUpdateParamsCompactionTargetSizeMB128 MaintenanceConfigUpdateParamsCompactionTargetSizeMB = "128"` - `const MaintenanceConfigUpdateParamsCompactionTargetSizeMB256 MaintenanceConfigUpdateParamsCompactionTargetSizeMB = "256"` - `const MaintenanceConfigUpdateParamsCompactionTargetSizeMB512 MaintenanceConfigUpdateParamsCompactionTargetSizeMB = "512"` - `SnapshotExpiration param.Field[MaintenanceConfigUpdateParamsSnapshotExpiration]` Body param: Updates snapshot expiration configuration (all fields optional). - `MaxSnapshotAge string` Updates the maximum age for snapshots optionally. - `MinSnapshotsToKeep int64` Updates the minimum number of snapshots to retain optionally. - `State MaintenanceConfigUpdateParamsSnapshotExpirationState` Updates the state optionally. - `const MaintenanceConfigUpdateParamsSnapshotExpirationStateEnabled MaintenanceConfigUpdateParamsSnapshotExpirationState = "enabled"` - `const MaintenanceConfigUpdateParamsSnapshotExpirationStateDisabled MaintenanceConfigUpdateParamsSnapshotExpirationState = "disabled"` ### Returns - `type MaintenanceConfigUpdateResponse struct{…}` Configures maintenance for the catalog. - `Compaction MaintenanceConfigUpdateResponseCompaction` Configures compaction for catalog maintenance. - `State MaintenanceConfigUpdateResponseCompactionState` Specifies the state of maintenance operations. - `const MaintenanceConfigUpdateResponseCompactionStateEnabled MaintenanceConfigUpdateResponseCompactionState = "enabled"` - `const MaintenanceConfigUpdateResponseCompactionStateDisabled MaintenanceConfigUpdateResponseCompactionState = "disabled"` - `TargetSizeMB MaintenanceConfigUpdateResponseCompactionTargetSizeMB` Sets the target file size for compaction in megabytes. Defaults to "128". - `const MaintenanceConfigUpdateResponseCompactionTargetSizeMB64 MaintenanceConfigUpdateResponseCompactionTargetSizeMB = "64"` - `const MaintenanceConfigUpdateResponseCompactionTargetSizeMB128 MaintenanceConfigUpdateResponseCompactionTargetSizeMB = "128"` - `const MaintenanceConfigUpdateResponseCompactionTargetSizeMB256 MaintenanceConfigUpdateResponseCompactionTargetSizeMB = "256"` - `const MaintenanceConfigUpdateResponseCompactionTargetSizeMB512 MaintenanceConfigUpdateResponseCompactionTargetSizeMB = "512"` - `SnapshotExpiration MaintenanceConfigUpdateResponseSnapshotExpiration` 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. - `State MaintenanceConfigUpdateResponseSnapshotExpirationState` Specifies the state of maintenance operations. - `const MaintenanceConfigUpdateResponseSnapshotExpirationStateEnabled MaintenanceConfigUpdateResponseSnapshotExpirationState = "enabled"` - `const MaintenanceConfigUpdateResponseSnapshotExpirationStateDisabled MaintenanceConfigUpdateResponseSnapshotExpirationState = "disabled"` ### Example ```go 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) } ``` #### Response ```json { "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 } ```