# Maintenance Configs ## Get catalog maintenance configuration `r2_data_catalog.maintenance_configs.get(strbucket_name, MaintenanceConfigGetParams**kwargs) -> MaintenanceConfigGetResponse` **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 - `account_id: str` Use this to identify the account. - `bucket_name: str` Specifies the R2 bucket name. ### Returns - `class MaintenanceConfigGetResponse: …` Contains maintenance configuration and credential status. - `credential_status: Literal["present", "absent"]` Shows the credential configuration status. - `"present"` - `"absent"` - `maintenance_config: MaintenanceConfig` Configures maintenance for the catalog. - `compaction: Optional[MaintenanceConfigCompaction]` Configures compaction for catalog maintenance. - `state: Literal["enabled", "disabled"]` Specifies the state of maintenance operations. - `"enabled"` - `"disabled"` - `target_size_mb: Literal["64", "128", "256", "512"]` Sets the target file size for compaction in megabytes. Defaults to "128". - `"64"` - `"128"` - `"256"` - `"512"` - `snapshot_expiration: Optional[MaintenanceConfigSnapshotExpiration]` Configures snapshot expiration settings. - `max_snapshot_age: str` 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". - `min_snapshots_to_keep: int` Specifies the minimum number of snapshots to retain. Defaults to 100. - `state: Literal["enabled", "disabled"]` Specifies the state of maintenance operations. - `"enabled"` - `"disabled"` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) maintenance_config = client.r2_data_catalog.maintenance_configs.get( bucket_name="my-data-bucket", account_id="0123456789abcdef0123456789abcdef", ) print(maintenance_config.credential_status) ``` #### 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 `r2_data_catalog.maintenance_configs.update(strbucket_name, MaintenanceConfigUpdateParams**kwargs) -> MaintenanceConfigUpdateResponse` **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 - `account_id: str` Use this to identify the account. - `bucket_name: str` Specifies the R2 bucket name. - `compaction: Optional[Compaction]` Updates compaction configuration (all fields optional). - `state: Optional[Literal["enabled", "disabled"]]` Updates the state optionally. - `"enabled"` - `"disabled"` - `target_size_mb: Optional[Literal["64", "128", "256", "512"]]` Updates the target file size optionally. - `"64"` - `"128"` - `"256"` - `"512"` - `snapshot_expiration: Optional[SnapshotExpiration]` Updates snapshot expiration configuration (all fields optional). - `max_snapshot_age: Optional[str]` Updates the maximum age for snapshots optionally. - `min_snapshots_to_keep: Optional[int]` Updates the minimum number of snapshots to retain optionally. - `state: Optional[Literal["enabled", "disabled"]]` Updates the state optionally. - `"enabled"` - `"disabled"` ### Returns - `class MaintenanceConfigUpdateResponse: …` Configures maintenance for the catalog. - `compaction: Optional[Compaction]` Configures compaction for catalog maintenance. - `state: Literal["enabled", "disabled"]` Specifies the state of maintenance operations. - `"enabled"` - `"disabled"` - `target_size_mb: Literal["64", "128", "256", "512"]` Sets the target file size for compaction in megabytes. Defaults to "128". - `"64"` - `"128"` - `"256"` - `"512"` - `snapshot_expiration: Optional[SnapshotExpiration]` Configures snapshot expiration settings. - `max_snapshot_age: str` 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". - `min_snapshots_to_keep: int` Specifies the minimum number of snapshots to retain. Defaults to 100. - `state: Literal["enabled", "disabled"]` Specifies the state of maintenance operations. - `"enabled"` - `"disabled"` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) maintenance_config = client.r2_data_catalog.maintenance_configs.update( bucket_name="my-data-bucket", account_id="0123456789abcdef0123456789abcdef", compaction={ "state": "enabled", "target_size_mb": "256", }, snapshot_expiration={ "max_snapshot_age": "14d", "min_snapshots_to_keep": 5, "state": "enabled", }, ) print(maintenance_config.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 } ``` ## Domain Types ### Maintenance Config Get Response - `class MaintenanceConfigGetResponse: …` Contains maintenance configuration and credential status. - `credential_status: Literal["present", "absent"]` Shows the credential configuration status. - `"present"` - `"absent"` - `maintenance_config: MaintenanceConfig` Configures maintenance for the catalog. - `compaction: Optional[MaintenanceConfigCompaction]` Configures compaction for catalog maintenance. - `state: Literal["enabled", "disabled"]` Specifies the state of maintenance operations. - `"enabled"` - `"disabled"` - `target_size_mb: Literal["64", "128", "256", "512"]` Sets the target file size for compaction in megabytes. Defaults to "128". - `"64"` - `"128"` - `"256"` - `"512"` - `snapshot_expiration: Optional[MaintenanceConfigSnapshotExpiration]` Configures snapshot expiration settings. - `max_snapshot_age: str` 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". - `min_snapshots_to_keep: int` Specifies the minimum number of snapshots to retain. Defaults to 100. - `state: Literal["enabled", "disabled"]` Specifies the state of maintenance operations. - `"enabled"` - `"disabled"` ### Maintenance Config Update Response - `class MaintenanceConfigUpdateResponse: …` Configures maintenance for the catalog. - `compaction: Optional[Compaction]` Configures compaction for catalog maintenance. - `state: Literal["enabled", "disabled"]` Specifies the state of maintenance operations. - `"enabled"` - `"disabled"` - `target_size_mb: Literal["64", "128", "256", "512"]` Sets the target file size for compaction in megabytes. Defaults to "128". - `"64"` - `"128"` - `"256"` - `"512"` - `snapshot_expiration: Optional[SnapshotExpiration]` Configures snapshot expiration settings. - `max_snapshot_age: str` 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". - `min_snapshots_to_keep: int` Specifies the minimum number of snapshots to retain. Defaults to 100. - `state: Literal["enabled", "disabled"]` Specifies the state of maintenance operations. - `"enabled"` - `"disabled"`