{
    "enumDefs": [
        {
            "name": "ozone_storage_type",
            "description": "The storage type for an Ozone bucket",
            "serviceType": "ozone",
            "typeVersion": "1.0",
            "elementDefs": [
                {
                    "ordinal": 0,
                    "value": "RAM_DISK"
                },
                {
                    "ordinal": 1,
                    "value": "SSD"
                },
                {
                    "ordinal": 2,
                    "value": "DISK"
                },
                {
                    "ordinal": 3,
                    "value": "ARCHIVE"
                }
            ]
        },
        {
            "name": "ozone_replication_type",
            "description": "The replication type for an Ozone key",
            "serviceType": "ozone",
            "typeVersion": "1.0",
            "elementDefs": [
                {
                    "ordinal": 0,
                    "value": "RATIS"
                },
                {
                    "ordinal": 1,
                    "value": "STAND_ALONE"
                },
                {
                    "ordinal": 2,
                    "value": "CHAINED"
                }
            ]
        }
    ],
    "structDefs": [
        {
            "name": "ozone_key_location",
            "description": "Location information about Ozone key",
            "serviceType": "ozone",
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "containerID",
                    "typeName": "long",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional": false,
                    "isUnique": false
                },
                {
                    "name": "localID",
                    "typeName": "long",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional": false,
                    "isUnique": false
                },
                {
                    "name": "length",
                    "typeName": "long",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional": false,
                    "isUnique": false
                },
                {
                    "name": "offset",
                    "typeName": "long",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional": false,
                    "isUnique": false
                }
            ]
        }
    ],
    "classificationDefs": [],
    "entityDefs": [
        {
            "name":        "ozone_parent",
            "description": "Atlas entity-type representing parent types (bucket, key) in Ozone",
            "superTypes":  [
            ],
            "serviceType": "ozone",
            "typeVersion": "1.0",
            "attributeDefs": [
            ]
        },
        {
            "name":        "ozone_child",
            "description": "Atlas entity-type representing child types (key) in Ozone",
            "superTypes":  [
            ],
            "serviceType": "ozone",
            "typeVersion": "1.0",
            "attributeDefs": [
            ]
        },
        {
            "name": "ozone_volume",
            "description": "Atlas Type representing an volume in an Ozone Object Store",
            "superTypes": [
                "DataSet"
            ],
            "serviceType": "ozone",
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "admin",
                    "typeName": "string",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional": true,
                    "isUnique": false
                },
                {
                    "name": "quota",
                    "typeName": "long",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional": true,
                    "isUnique": false
                },
                {
                    "name": "creationTime",
                    "typeName": "date",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional": true,
                    "isUnique": false
                }
            ]
        },
        {
            "name": "ozone_bucket",
            "description": "Atlas Type representing a bucket in an Ozone Object Store Volume",
            "superTypes": [
                "DataSet",
                "ozone_parent"
            ],
            "serviceType": "ozone",
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "storageType",
                    "typeName": "ozone_storage_type",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional": true,
                    "isUnique": false
                },
                {
                    "name": "versioningEnabled",
                    "typeName": "boolean",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional": true,
                    "isUnique": false
                },
                {
                    "name": "encryptionKeyName",
                    "typeName": "string",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional": true,
                    "isUnique": false
                },
                {
                    "name": "creationTime",
                    "typeName": "date",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional": true,
                    "isUnique": false
                }
            ]
        },
        {
            "name": "ozone_key",
            "description": "Atlas Type representing a key in an Ozone Object Store Bucket",
            "superTypes": [
                "DataSet",
                "ozone_parent",
                "ozone_child"
            ],
            "serviceType": "ozone",
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "dataSize",
                    "typeName": "long",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional": true,
                    "isUnique": false
                },
                {
                    "name": "replicationType",
                    "typeName": "ozone_replication_type",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional": true,
                    "isUnique": false
                },
                {
                    "name": "replicationFactor",
                    "typeName": "int",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional": true,
                    "isUnique": false
                },
                {
                    "name": "keyLocations",
                    "typeName": "array<ozone_key_location>",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional": true,
                    "isUnique": false
                },
                {
                    "name": "creationTime",
                    "typeName": "date",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional": true,
                    "isUnique": false
                }
            ]
        }
    ],
    "relationshipDefs": [
        {
            "name": "ozone_volume_buckets",
            "serviceType": "ozone",
            "typeVersion": "1.0",
            "relationshipCategory": "COMPOSITION",
            "endDef1": {
                "type": "ozone_volume",
                "name": "buckets",
                "isContainer": true,
                "cardinality": "SET"
            },
            "endDef2": {
                "type": "ozone_bucket",
                "name": "volume",
                "isContainer": false,
                "cardinality": "SINGLE"
            },
            "propagateTags": "NONE"
        },
        {
            "name":                 "ozone_parent_children",
            "serviceType":          "ozone",
            "typeVersion":          "1.0",
            "relationshipCategory": "COMPOSITION",
            "endDef1": {
                "type":               "ozone_parent",
                "name":               "children",
                "isContainer":        true,
                "cardinality":        "SET"
            },
            "endDef2": {
                "type":               "ozone_child",
                "name":               "parent",
                "isContainer":        false,
                "cardinality":        "SINGLE"
            },
            "propagateTags": "NONE"
        }
    ]
}