{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "#DataStore",
    "description": "A virtual repository where data is stored, such as aws-s3-bucket, aws-rds-cluster, aws-dynamodb-table, bitbucket-repo, sharepoint-site, docker-registry. The exact type is described in the _type property of the Entity.",
    "type": "object",
    "allOf": [
        {
            "$ref": "#Entity"
        },
        {
            "properties": {
                "location": {
                    "description": "URI to the data store, e.g. https://docker-registry.jupiterone.com or https://jupiterone.sharepoint.com. Or a description to the physical location.",
                    "type": "string"
                },
                "encryptionRequired": {
                    "description": "If the data needs to be encrypted",
                    "type": "boolean"
                },
                "encryptionAlgorithm": {
                    "description": "Encryption algorithm used to encrypt the data store",
                    "type": "string"
                },
                "encryptionKeyRef": {
                    "description": "Reference to the encryption key used to encrypt the data store",
                    "type": "string"
                },
                "encrypted": {
                    "description": "If the data store is encrypted",
                    "type": ["boolean", "null"]
                },
                "public": {
                    "description": "Indicates if the data store is open to public access",
                    "type": "boolean"
                },
                "hasBackup": {
                    "description": "Indicates if the data store is data backup has been configured/enabled.",
                    "type": "boolean"
                },
                "retentionPeriodDays": {
                    "description": "The number of days for which data is retained",
                    "type": "number"
                }
            },
            "required": ["classification", "encrypted"]
        }
    ]
}
