# Maintenance Configs ## Get catalog maintenance configuration `client.R2DataCatalog.MaintenanceConfigs.Get(ctx, bucketName, query) (*MaintenanceConfigGetResponse, error)` **get** `/accounts/{account_id}/r2-catalog/{bucket_name}/maintenance-configs` Retrieve the maintenance configuration for a specific catalog, including compaction settings and credential status. ### Parameters - `bucketName string` Specifies the R2 bucket name. - `query MaintenanceConfigGetParams` - `AccountID param.Field[string]` Use this to identify the account. ### Returns - `type MaintenanceConfigGetResponse struct{…}` Contains maintenance configuration and credential status. - `CredentialStatus MaintenanceConfigGetResponseCredentialStatus` Shows the credential configuration status. - `const MaintenanceConfigGetResponseCredentialStatusPresent MaintenanceConfigGetResponseCredentialStatus = "present"` - `const MaintenanceConfigGetResponseCredentialStatusAbsent MaintenanceConfigGetResponseCredentialStatus = "absent"` - `MaintenanceConfig MaintenanceConfigGetResponseMaintenanceConfig` Configures maintenance for the catalog. - `Compaction MaintenanceConfigGetResponseMaintenanceConfigCompaction` Configures compaction for catalog maintenance. - `State MaintenanceConfigGetResponseMaintenanceConfigCompactionState` Specifies the state of maintenance operations. - `const MaintenanceConfigGetResponseMaintenanceConfigCompactionStateEnabled MaintenanceConfigGetResponseMaintenanceConfigCompactionState = "enabled"` - `const MaintenanceConfigGetResponseMaintenanceConfigCompactionStateDisabled MaintenanceConfigGetResponseMaintenanceConfigCompactionState = "disabled"` - `TargetSizeMB MaintenanceConfigGetResponseMaintenanceConfigCompactionTargetSizeMB` Sets the target file size for compaction in megabytes. Defaults to "128". - `const MaintenanceConfigGetResponseMaintenanceConfigCompactionTargetSizeMB64 MaintenanceConfigGetResponseMaintenanceConfigCompactionTargetSizeMB = "64"` - `const MaintenanceConfigGetResponseMaintenanceConfigCompactionTargetSizeMB128 MaintenanceConfigGetResponseMaintenanceConfigCompactionTargetSizeMB = "128"` - `const MaintenanceConfigGetResponseMaintenanceConfigCompactionTargetSizeMB256 MaintenanceConfigGetResponseMaintenanceConfigCompactionTargetSizeMB = "256"` - `const MaintenanceConfigGetResponseMaintenanceConfigCompactionTargetSizeMB512 MaintenanceConfigGetResponseMaintenanceConfigCompactionTargetSizeMB = "512"` - `SnapshotExpiration MaintenanceConfigGetResponseMaintenanceConfigSnapshotExpiration` 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 MaintenanceConfigGetResponseMaintenanceConfigSnapshotExpirationState` Specifies the state of maintenance operations. - `const MaintenanceConfigGetResponseMaintenanceConfigSnapshotExpirationStateEnabled MaintenanceConfigGetResponseMaintenanceConfigSnapshotExpirationState = "enabled"` - `const MaintenanceConfigGetResponseMaintenanceConfigSnapshotExpirationStateDisabled MaintenanceConfigGetResponseMaintenanceConfigSnapshotExpirationState = "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.Get( context.TODO(), "my-data-bucket", r2_data_catalog.MaintenanceConfigGetParams{ AccountID: cloudflare.F("0123456789abcdef0123456789abcdef"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", maintenanceConfig.CredentialStatus) } ``` #### Response ```json { "errors": [], "messages": [], "result": { "credential_status": "present", "maintenance_config": { "compaction": { "state": "enabled", "target_size_mb": "128" }, "snapshot_expiration": { "max_snapshot_age": "7d", "min_snapshots_to_keep": 100, "state": "enabled" } } }, "success": true } ``` ## 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 } ```