{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--mongodb-atlas-cloudbackupsnapshot.json",
  "title": "MongoDBAtlasCloudBackupSnapshotProperties",
  "description": "Returns, takes, and removes Cloud Backup snapshots.. Source:- <https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/mongodb-atlas-cloudbackupsnapshot.json",
    "sourceSha256": "ab3e419f005ab994f9fa799fb5c8af3a03981de12d486b46d8f372f9bf248573"
  },
  "type": "object",
  "properties": {
    "Profile": {
      "oneOf": [
        {
          "type": "string",
          "default": "default"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The profile is defined in AWS Secret manager. See [Secret Manager Profile setup](../../../examples/profile-secret.yaml)."
    },
    "ClusterName": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 64,
          "minLength": 1
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Human-readable label that identifies the cluster."
    },
    "InstanceName": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "pattern": "^([a-zA-Z0-9]([a-zA-Z0-9-]){0,21}(?<!-)([\\w]{0,42}))$"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Human-readable label that identifies the serverless instance."
    },
    "Description": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Human-readable phrase or sentence that explains the purpose of the snapshot. The resource returns this parameter when `\"status\": \"onDemand\"`."
    },
    "FrequencyType": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "hourly",
            "daily",
            "weekly",
            "monthly"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Human-readable label that identifies how often this snapshot triggers."
    },
    "ProjectId": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 24,
          "minLength": 24,
          "pattern": "^([a-f0-9]{24})$"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Unique 24-hexadecimal digit string that identifies your project."
    },
    "IncludeCount": {
      "type": "boolean",
      "description": "Flag that indicates whether the response returns the total number of items (**totalCount**) in the response."
    },
    "ItemsPerPage": {
      "type": "integer",
      "description": "Number of items that the response returns per page."
    },
    "Members": {
      "type": "array",
      "insertionOrder": false,
      "description": "List that includes the snapshots and the cloud provider that stores the snapshots. The resource returns this parameter when `\"type\" : \"SHARDED_CLUSTER\"`.",
      "items": {
        "$ref": "#/$defs/ApiAtlasDiskBackupShardedClusterSnapshotMemberView",
        "type": "object"
      }
    },
    "PageNum": {
      "type": "integer",
      "description": "Number of the page that displays the current set of the total objects that the response returns."
    },
    "PolicyItems": {
      "type": "array",
      "insertionOrder": false,
      "description": "List that contains unique identifiers for the policy items.",
      "items": {
        "type": "string"
      }
    },
    "Results": {
      "type": "array",
      "insertionOrder": false,
      "description": "List of returned documents that MongoDB Cloud provides when completing this request.",
      "items": {
        "$ref": "#/$defs/ApiAtlasDiskBackupShardedClusterSnapshotView",
        "type": "object"
      }
    },
    "RetentionInDays": {
      "type": "integer",
      "description": "Number of days that MongoDB Cloud should retain the on-demand snapshot. Must be at least **1**"
    },
    "SnapshotType": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "onDemand",
            "scheduled"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Human-readable label that identifies when this snapshot triggers."
    },
    "TotalCount": {
      "type": "number",
      "description": "Number of documents returned in this response."
    }
  },
  "typeName": "MongoDB::Atlas::CloudBackupSnapshot",
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git",
  "$defs": {
    "ApiAtlasDiskBackupReplicaSetView": {
      "type": "object",
      "properties": {
        "CloudProvider": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "AWS",
                "AZURE",
                "GCP"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable label that identifies the cloud provider that stores this snapshot. The resource returns this parameter when `\"type\": \"replicaSet\".`"
        },
        "CreatedAt": {
          "oneOf": [
            {
              "type": "string",
              "pattern": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d{1,9})?(?:Z)$"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Date and time when MongoDB Cloud took the snapshot. This parameter expresses its value in the ISO 8601 timestamp format in UTC."
        },
        "Description": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable phrase or sentence that explains the purpose of the snapshot. The resource returns this parameter when `\"status\": \"onDemand\"`."
        },
        "ExpiresAt": {
          "oneOf": [
            {
              "type": "string",
              "pattern": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d{1,9})?(?:Z)$"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Date and time when MongoDB Cloud deletes the snapshot. This parameter expresses its value in the ISO 8601 timestamp format in UTC."
        },
        "FrequencyType": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "hourly",
                "daily",
                "weekly",
                "monthly"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable label that identifies how often this snapshot triggers."
        },
        "Id": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 24,
              "minLength": 24,
              "pattern": "^([a-f0-9]{24})$"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Unique 24-hexadecimal digit string that identifies the snapshot."
        },
        "MasterKeyUUID": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Unique string that identifies the Amazon Web Services (AWS) Key Management Service (KMS) Customer Master Key (CMK) used to encrypt the snapshot. The resource returns this value when `\"encryptionEnabled\" : true`."
        },
        "MongodVersion": {
          "oneOf": [
            {
              "type": "string",
              "pattern": "([0-9]+\\.[0-9]+\\.[0-9]+)"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Version of the MongoDB host that this snapshot backs up."
        },
        "PolicyItems": {
          "type": "array",
          "insertionOrder": false,
          "description": "List that contains unique identifiers for the policy items.",
          "items": {
            "type": "string"
          }
        },
        "ReplicaSetName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable label that identifies the replica set from which MongoDB Cloud took this snapshot. The resource returns this parameter when `\"type\": \"replicaSet\"`"
        },
        "SnapshotType": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "onDemand",
                "scheduled"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable label that identifies when this snapshot triggers."
        },
        "Status": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "queued",
                "inProgress",
                "completed",
                "failed"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable label that indicates the stage of the backup process for this snapshot."
        },
        "StorageSizeBytes": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Number of bytes taken to store the backup snapshot."
        },
        "Type": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "REPLICA_SET",
                "SHARDED_CLUSTER"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable label that categorizes the cluster as a replica set or sharded cluster."
        }
      },
      "title": "MongoDBAtlasCloudBackupSnapshotApiAtlasDiskBackupReplicaSetViewDefinition",
      "additionalProperties": false
    },
    "ApiAtlasDiskBackupShardedClusterSnapshotMemberView": {
      "type": "object",
      "properties": {
        "CloudProvider": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "AWS",
                "AZURE",
                "GCP"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable label that identifies the cloud provider that stores this snapshot. The resource returns this parameter when `\"type\": \"replicaSet\".`"
        },
        "Id": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 24,
              "minLength": 24,
              "pattern": "^([a-f0-9]{24})$"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Unique 24-hexadecimal digit string that identifies the snapshot."
        },
        "ReplicaSetName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable label that identifies the shard or config host from which MongoDB Cloud took this snapshot."
        }
      },
      "title": "MongoDBAtlasCloudBackupSnapshotApiAtlasDiskBackupShardedClusterSnapshotMemberViewDefinition",
      "additionalProperties": false
    },
    "ApiAtlasDiskBackupShardedClusterSnapshotView": {
      "type": "object",
      "properties": {
        "CreatedAt": {
          "oneOf": [
            {
              "type": "string",
              "pattern": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d{1,9})?(?:Z)$"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Date and time when MongoDB Cloud took the snapshot. This parameter expresses its value in the ISO 8601 timestamp format in UTC."
        },
        "Description": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable phrase or sentence that explains the purpose of the snapshot. The resource returns this parameter when `\"status\": \"onDemand\"`."
        },
        "ExpiresAt": {
          "oneOf": [
            {
              "type": "string",
              "pattern": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d{1,9})?(?:Z)$"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Date and time when MongoDB Cloud deletes the snapshot. This parameter expresses its value in the ISO 8601 timestamp format in UTC."
        },
        "FrequencyType": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "hourly",
                "daily",
                "weekly",
                "monthly"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable label that identifies how often this snapshot triggers."
        },
        "Id": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 24,
              "minLength": 24,
              "pattern": "^([a-f0-9]{24})$"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Unique 24-hexadecimal digit string that identifies the snapshot."
        },
        "MasterKeyUUID": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Unique string that identifies the Amazon Web Services (AWS) Key Management Service (KMS) Customer Master Key (CMK) used to encrypt the snapshot. The resource returns this value when `\"encryptionEnabled\" : true`."
        },
        "Members": {
          "type": "array",
          "insertionOrder": false,
          "description": "List that includes the snapshots and the cloud provider that stores the snapshots. The resource returns this parameter when `\"type\" : \"SHARDED_CLUSTER\"`.",
          "items": {
            "$ref": "#/$defs/ApiAtlasDiskBackupShardedClusterSnapshotMemberView",
            "type": "object"
          }
        },
        "MongodVersion": {
          "oneOf": [
            {
              "type": "string",
              "pattern": "([0-9]+\\.[0-9]+\\.[0-9]+)"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Version of the MongoDB host that this snapshot backs up."
        },
        "PolicyItems": {
          "type": "array",
          "insertionOrder": false,
          "description": "List that contains unique identifiers for the policy items.",
          "items": {
            "type": "string"
          }
        },
        "SnapshotIds": {
          "type": "array",
          "insertionOrder": false,
          "description": "List that contains the unique identifiers of the snapshots created for the shards and config host for a sharded cluster. The resource returns this parameter when `\"type\": \"SHARDED_CLUSTER\"`. These identifiers should match the ones specified in the **members[n].id** parameters. This allows you to map a snapshot to its shard or config host name.",
          "items": {
            "type": "string"
          }
        },
        "SnapshotType": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "onDemand",
                "scheduled"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable label that identifies when this snapshot triggers."
        },
        "Status": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "queued",
                "inProgress",
                "completed",
                "failed"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable label that indicates the stage of the backup process for this snapshot."
        },
        "StorageSizeBytes": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Number of bytes taken to store the backup snapshot."
        },
        "Type": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "REPLICA_SET",
                "SHARDED_CLUSTER"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Human-readable label that categorizes the cluster as a replica set or sharded cluster."
        }
      },
      "title": "MongoDBAtlasCloudBackupSnapshotApiAtlasDiskBackupShardedClusterSnapshotViewDefinition",
      "additionalProperties": false
    },
    "apiKeyDefinition": {
      "type": "object",
      "properties": {
        "PrivateKey": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "PublicKey": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "title": "MongoDBAtlasCloudBackupSnapshotapiKeyDefinition",
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "primaryIdentifier": [
    "/properties/ProjectId",
    "/properties/ClusterName",
    "/properties/SnapshotId",
    "/properties/Profile"
  ],
  "readOnlyProperties": [
    "/properties/SnapshotId",
    "/properties/SnapshotIds",
    "/properties/MasterKeyUUID",
    "/properties/Type",
    "/properties/ExpiresAt",
    "/properties/StorageSizeBytes",
    "/properties/Id",
    "/properties/CreatedAt",
    "/properties/CloudProvider",
    "/properties/MongodVersion",
    "/properties/ReplicaSetName",
    "/properties/Status"
  ],
  "createOnlyProperties": [
    "/properties/ProjectId",
    "/properties/ClusterName",
    "/properties/Profile"
  ],
  "required": [
    "ProjectId",
    "ClusterName"
  ]
}
