ATLAS-4226: Add new model types to support Google Cloud Platform
Signed-off-by: Sarath Subramanian <sarath@apache.org>
diff --git a/addons/models/3000-Cloud/3060-gcp_typedefs.json b/addons/models/3000-Cloud/3060-gcp_typedefs.json
new file mode 100644
index 0000000..fbaed79
--- /dev/null
+++ b/addons/models/3000-Cloud/3060-gcp_typedefs.json
@@ -0,0 +1,232 @@
+{
+ "enumDefs": [],
+ "structDefs": [],
+ "classificationDefs": [],
+ "entityDefs": [
+ {
+ "name": "gcp_storage_parent",
+ "description": "Atlas entity-type representing parent types (bucket, vitual directory) that can hold other objects in Google Cloud Storage",
+ "superTypes": [
+ ],
+ "serviceType": "gcp",
+ "typeVersion": "1.0",
+ "attributeDefs": [
+ ]
+ },
+ {
+ "name": "gcp_storage_child",
+ "description": "Atlas entity-type representing child types (virtual directory, blob) in Google Cloud Storage",
+ "superTypes": [
+ ],
+ "serviceType": "gcp",
+ "typeVersion": "1.0",
+ "attributeDefs": [
+ ]
+ },
+ {
+ "name": "gcp_storage_base",
+ "description": "Atlas Type representing base Type for all Google Cloud Storage Data Types",
+ "superTypes": [
+ "DataSet"
+ ],
+ "serviceType": "gcp",
+ "typeVersion": "1.0",
+ "attributeDefs": [
+ {
+ "name": "creationTime",
+ "typeName": "date",
+ "cardinality": "SINGLE",
+ "isIndexable": true,
+ "isOptional": true,
+ "isUnique": false
+ },
+ {
+ "name": "lastModifiedTime",
+ "typeName": "date",
+ "cardinality": "SINGLE",
+ "isIndexable": true,
+ "isOptional": true,
+ "isUnique": false
+ },
+ {
+ "name": "storageClass",
+ "typeName": "string",
+ "cardinality": "SINGLE",
+ "isIndexable": true,
+ "isOptional": true,
+ "isUnique": false
+ },
+ {
+ "name": "encryption",
+ "typeName": "string",
+ "cardinality": "SINGLE",
+ "isIndexable": false,
+ "isOptional": true,
+ "isUnique": false
+ },
+ {
+ "name": "publicAccess",
+ "typeName": "string",
+ "cardinality": "SINGLE",
+ "isIndexable": true,
+ "isOptional": true,
+ "isUnique": false
+ }
+ ]
+ },
+ {
+ "name": "gcp_storage_bucket",
+ "description": "Atlas Type representing a Bucket in Google Cloud Storage",
+ "superTypes": [
+ "gcp_storage_parent",
+ "gcp_storage_base"
+ ],
+ "serviceType": "gcp",
+ "typeVersion": "1.0",
+ "attributeDefs": [
+ {
+ "name": "location",
+ "typeName": "string",
+ "cardinality": "SINGLE",
+ "isIndexable": true,
+ "isOptional": true,
+ "isUnique": false
+ },
+ {
+ "name": "locationType",
+ "typeName": "string",
+ "cardinality": "SINGLE",
+ "isIndexable": true,
+ "isOptional": true,
+ "isUnique": false
+ },
+ {
+ "name": "accessControl",
+ "typeName": "string",
+ "cardinality": "SINGLE",
+ "isIndexable": false,
+ "isOptional": true,
+ "isUnique": false
+ },
+ {
+ "name": "lifecycleRules",
+ "typeName": "string",
+ "cardinality": "SINGLE",
+ "isIndexable": false,
+ "isOptional": true,
+ "isUnique": false
+ },
+ {
+ "name": "labels",
+ "typeName": "string",
+ "cardinality": "SINGLE",
+ "isIndexable": false,
+ "isOptional": true,
+ "isUnique": false
+ },
+ {
+ "name": "retentionPolicy",
+ "typeName": "string",
+ "cardinality": "SINGLE",
+ "isIndexable": false,
+ "isOptional": true,
+ "isUnique": false
+ },
+ {
+ "name": "requesterPays",
+ "typeName": "boolean",
+ "cardinality": "SINGLE",
+ "isIndexable": false,
+ "isOptional": true,
+ "isUnique": false
+ }
+ ]
+ },
+ {
+ "name": "gcp_storage_object",
+ "description": "Atlas Type representing an Object in Google Cloud Storage",
+ "superTypes": [
+ "gcp_storage_child",
+ "gcp_storage_base"
+ ],
+ "serviceType": "gcp",
+ "typeVersion": "1.0",
+ "attributeDefs": [
+ {
+ "name": "size",
+ "typeName": "long",
+ "cardinality": "SINGLE",
+ "isIndexable": false,
+ "isOptional": true,
+ "isUnique": false
+ },
+ {
+ "name": "type",
+ "typeName": "string",
+ "cardinality": "SINGLE",
+ "isIndexable": true,
+ "isOptional": true,
+ "isUnique": false
+ },
+ {
+ "name": "retentionExpirationDate",
+ "typeName": "date",
+ "cardinality": "SINGLE",
+ "isIndexable": true,
+ "isOptional": true,
+ "isUnique": false
+ },
+ {
+ "name": "holds",
+ "typeName": "string",
+ "cardinality": "SINGLE",
+ "isIndexable": false,
+ "isOptional": true,
+ "isUnique": false
+ }
+ ]
+ },
+ {
+ "name": "gcp_storage_virtual_directory",
+ "description": "Atlas Type representing a virtual directory in Google Cloud Storage",
+ "superTypes": [
+ "gcp_storage_object",
+ "gcp_storage_parent",
+ "Path"
+ ],
+ "serviceType": "gcp",
+ "typeVersion": "1.0",
+ "attributeDefs": [
+ {
+ "name": "objectPrefix",
+ "typeName": "string",
+ "cardinality": "SINGLE",
+ "isIndexable": true,
+ "isOptional": true,
+ "isUnique": false
+ }
+ ]
+ }
+ ],
+ "relationshipDefs": [
+ {
+ "name": "gcp_storage_parent_children",
+ "serviceType": "gcp",
+ "typeVersion": "1.0",
+ "relationshipCategory": "COMPOSITION",
+ "endDef1": {
+ "type": "gcp_storage_parent",
+ "name": "children",
+ "isContainer": true,
+ "cardinality": "SET"
+ },
+ "endDef2": {
+ "type": "gcp_storage_child",
+ "name": "parent",
+ "isContainer": false,
+ "cardinality": "SINGLE"
+ },
+ "propagateTags": "NONE"
+ }
+ ]
+}