{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/mongodb/main/json-schema/mongodb-data-protection-settings20231001-schema.json", "title": "DataProtectionSettings20231001", "x-generated": "2026-10-03", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/mongodb-cloud-backups-api-openapi.yml#/components/schemas/DataProtectionSettings20231001", "properties": { "authorizedEmail": { "description": "Email address of the user who authorized to update the Backup Compliance Policy settings.", "format": "email", "type": "string" }, "authorizedUserFirstName": { "description": "First name of the user who authorized to updated the Backup Compliance Policy settings.", "type": "string" }, "authorizedUserLastName": { "description": "Last name of the user who authorized to updated the Backup Compliance Policy settings.", "type": "string" }, "copyProtectionEnabled": { "default": false, "description": "Flag that indicates whether to prevent cluster users from deleting backups copied to other regions, even if those additional snapshot regions are removed. If unspecified, this value defaults to false.", "type": "boolean" }, "deletable": { "default": false, "description": "Flag that indicates whether the Backup Compliance Policy is allowed to be disabled. It is default to false and a support ticket needs to be filed to request setting to true.", "readOnly": true, "type": "boolean" }, "encryptionAtRestEnabled": { "default": false, "description": "Flag that indicates whether Encryption at Rest using Customer Key Management is required for all clusters with a Backup Compliance Policy. If unspecified, this value defaults to false.", "type": "boolean" }, "onDemandPolicyItem": { "$ref": "#/$defs/BackupComplianceOnDemandPolicyItem" }, "pitEnabled": { "default": false, "description": "Flag that indicates whether the cluster uses Continuous Cloud Backups with a Backup Compliance Policy. If unspecified, this value defaults to false.", "type": "boolean" }, "projectId": { "description": "Unique 24-hexadecimal digit string that identifies the project for the Backup Compliance Policy.", "pattern": "^([a-f0-9]{24})$", "type": "string" }, "restoreWindowDays": { "description": "Number of previous days that you can restore back to with Continuous Cloud Backup with a Backup Compliance Policy. You must specify a positive, non-zero integer, and the maximum retention window can't exceed the hourly retention time. This parameter applies only to Continuous Cloud Backups with a Backup Compliance Policy.", "format": "int32", "type": "integer" }, "scheduledPolicyItems": { "description": "List that contains the specifications for one scheduled policy.", "items": { "$ref": "#/$defs/BackupComplianceScheduledPolicyItem" }, "type": "array" }, "state": { "description": "Label that indicates the state of the Backup Compliance Policy settings. MongoDB Cloud ignores this setting when you enable or update the Backup Compliance Policy settings.", "enum": [ "ACTIVE", "ENABLING", "UPDATING", "DISABLING" ], "readOnly": true, "type": "string" }, "updatedDate": { "description": "ISO 8601 timestamp format in UTC that indicates when the user updated the Data Protection Policy settings. MongoDB Cloud ignores this setting when you enable or update the Backup Compliance Policy settings.", "format": "date-time", "readOnly": true, "type": "string" }, "updatedUser": { "description": "Email address that identifies the user who updated the Backup Compliance Policy settings. MongoDB Cloud ignores this email setting when you enable or update the Backup Compliance Policy settings.", "format": "email", "readOnly": true, "type": "string" } }, "required": [ "authorizedEmail", "authorizedUserFirstName", "authorizedUserLastName" ], "type": "object", "$defs": { "BackupComplianceOnDemandPolicyItem": { "description": "Specifications for on-demand policy.", "properties": { "frequencyInterval": { "description": "Number that indicates the frequency interval for a set of snapshots. MongoDB Cloud ignores this setting for non-hourly policy items in Backup Compliance Policy settings.", "enum": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 40 ], "format": "int32", "type": "integer" }, "frequencyType": { "description": "Human-readable label that identifies the frequency type associated with the backup policy.", "enum": [ "ondemand" ], "type": "string" }, "id": { "description": "Unique 24-hexadecimal digit string that identifies this backup policy item.", "pattern": "^([a-f0-9]{24})$", "readOnly": true, "type": "string" }, "retentionUnit": { "description": "Unit of time in which MongoDB Cloud measures snapshot retention.", "enum": [ "days", "weeks", "months", "years" ], "type": "string" }, "retentionValue": { "description": "Duration in days, weeks, months, or years that MongoDB Cloud retains the snapshot. For less frequent policy items, MongoDB Cloud requires that you specify a value greater than or equal to the value specified for more frequent policy items.\n\nFor example: If the hourly policy item specifies a retention of two days, you must specify two days or greater for the retention of the weekly policy item.", "format": "int32", "type": "integer" } }, "required": [ "frequencyInterval", "frequencyType", "retentionUnit", "retentionValue" ], "type": "object" }, "BackupComplianceScheduledPolicyItem": { "description": "Specifications for scheduled policy.", "properties": { "frequencyInterval": { "description": "Number that indicates the frequency interval for a set of Snapshots. A value of `1` specifies the first instance of the corresponding `frequencyType`.\n\n- In a yearly policy item, `1` indicates that the yearly Snapshot occurs on the first day of January and `12` indicates the first day of December.\n\n- In a monthly policy item, `1` indicates that the monthly Snapshot occurs on the first day of the month and `40` indicates the last day of the month.\n\n- In a weekly policy item, `1` indicates that the weekly Snapshot occurs on Monday and `7` indicates Sunday.\n\n- In an hourly policy item, you can set the frequency interval to `1`, `2`, `4`, `6`, `8`, or `12`. For hourly policy items for NVMe clusters, MongoDB Cloud accepts only `12` as the frequency interval value.\n\n MongoDB Cloud ignores this setting for non-hourly policy items in Backup Compliance Policy settings.", "enum": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 40 ], "format": "int32", "type": "integer" }, "frequencyType": { "description": "Human-readable label that identifies the frequency type associated with the backup policy.", "enum": [ "daily", "hourly", "weekly", "monthly", "yearly" ], "type": "string" }, "id": { "description": "Unique 24-hexadecimal digit string that identifies this backup policy item.", "pattern": "^([a-f0-9]{24})$", "readOnly": true, "type": "string" }, "retentionUnit": { "description": "Unit of time in which MongoDB Cloud measures Snapshot retention.", "enum": [ "days", "weeks", "months", "years" ], "type": "string" }, "retentionValue": { "description": "Duration in days, weeks, months, or years that MongoDB Cloud retains the Snapshot. For less frequent policy items, MongoDB Cloud requires that you specify a value greater than or equal to the value specified for more frequent policy items.\n\nFor example: If the hourly policy item specifies a retention of two days, you must specify two days or greater for the retention of the weekly policy item.", "format": "int32", "type": "integer" } }, "required": [ "frequencyInterval", "frequencyType", "retentionUnit", "retentionValue" ], "type": "object" } } }