{
    "enumDefs": [],
    "structDefs": [],
    "classificationDefs": [],
    "entityDefs": [
        {
            "name": "rdbms_instance",
            "description": "Instance that the rdbms server is running on",
            "superTypes": ["DataSet", "Asset"],
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "rdbms_type",
                    "typeName": "string",
                    "isOptional": false,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": true
                },
                {
                    "name": "platform",
                    "typeName": "string",
                    "isOptional": false,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": true
                },
                {
                    "name": "cloudOrOnPrem",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "hostname",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "port",
                    "typeName": "int",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "protocol",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "contact_info",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "comment",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "databases",
                    "typeName": "array<rdbms_db>",
                    "isOptional": true,
                    "cardinality": "SET",
                    "isUnique": false,
                    "isIndexable": false,
                    "constraints": [
                       {
                          "type": "ownedRef"
                       }
                    ]
                }
            ]
        },
        {
            "name": "rdbms_db",
            "description": "a database (schema) in an rdbms",
            "superTypes": ["DataSet", "Asset"],
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "prodOrOther",
                    "typeName": "string",
                    "isOptional": false,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": true
                },
                {
                    "name": "instance",
                    "typeName": "rdbms_instance",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false,
                    "constraints": [
                       {
                           "type": "inverseRef",
                           "params": {
                               "attribute": "databases"
                           }
                       }
                    ]
                },
                {
                    "name": "contact_info",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "tables",
                    "typeName": "array<rdbms_table>",
                    "isOptional": true,
                    "cardinality": "SET",
                    "isUnique": false,
                    "isIndexable": false,
                    "constraints": [
                       {
                           "type": "ownedRef"
                       }
                    ]
                }
            ]
        },
        {
            "name": "rdbms_table",
            "description": "a table in an rdbms database (schema)",
            "superTypes": ["DataSet", "Asset"],
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "db",
                    "typeName": "rdbms_db",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false,
                    "constraints": [
                       {
                           "type": "inverseRef",
                           "params": {
                               "attribute": "tables"
                           }
                       }
                    ]
                },
                {
                    "name": "name_path",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "createTime",
                    "typeName": "date",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "comment",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "type",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "contact_info",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "valuesMinCount": 1,
                    "valuesMaxCount": 1,
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "columns",
                    "typeName": "array<rdbms_column>",
                    "isOptional": true,
                    "cardinality": "SET",
                    "isUnique": false,
                    "isIndexable": false,
                    "constraints": [
                        {
                            "type": "ownedRef"
                        }
                    ]
                },
                {
                    "name": "indexes",
                    "typeName": "array<rdbms_index>",
                    "isOptional": true,
                    "cardinality": "SET",
                    "isUnique": false,
                    "isIndexable": false,
                    "constraints": [
                        {
                            "type": "ownedRef"
                        }
                    ]
                },
                {
                    "name": "foreign_keys",
                    "typeName": "array<rdbms_foreign_key>",
                    "isOptional": true,
                    "cardinality": "SET",
                    "isUnique": false,
                    "isIndexable": false,
                    "constraints": [
                        {
                            "type": "ownedRef"
                        }
                    ]
                }
            ]
        },
        {
            "name": "rdbms_column",
            "description": "a column in an rdbms table",
            "superTypes": ["DataSet", "Asset"],
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "data_type",
                    "typeName": "string",
                    "isOptional": false,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": true
                },
                {
                    "name": "length",
                    "typeName": "int",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "default_value",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "comment",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "table",
                    "typeName": "rdbms_table",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false,
                    "constraints": [
                       {
                        "type": "inverseRef",
                        "params": {
                            "attribute": "columns"
                        }
                    }
                    ]
                },
                {
                    "name": "isNullable",
                    "typeName": "boolean",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "isPrimaryKey",
                    "typeName": "boolean",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                }
            ]
        },
        {
            "name": "rdbms_index",
            "description": "An index on an RDBMS table",
            "superTypes": ["DataSet", "Asset"],
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "table",
                    "typeName": "rdbms_table",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false,
                    "constraints": [
                        {
                            "type": "inverseRef",
                            "params": {
                                "attribute": "indexes"
                            }
                        }
                    ]
                },
                {
                    "name": "index_type",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "isUnique",
                    "typeName": "boolean",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "columns",
                    "typeName": "array<rdbms_column>",
                    "isOptional": true,
                    "cardinality": "SET",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "comment",
                    "typeName": "string",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                }
            ]
        },
        {
            "name": "rdbms_foreign_key",
            "description": null,
            "superTypes": ["DataSet", "Asset"],
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name": "table",
                    "typeName": "rdbms_table",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "key_columns",
                    "typeName": "array<rdbms_column>",
                    "isOptional": true,
                    "cardinality": "SET",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "references_table",
                    "typeName": "rdbms_table",
                    "isOptional": true,
                    "cardinality": "SINGLE",
                    "isUnique": false,
                    "isIndexable": false
                },
                {
                    "name": "references_columns",
                    "typeName": "array<rdbms_column>",
                    "isOptional": true,
                    "cardinality": "SET",
                    "isUnique": false,
                    "isIndexable": false
                }
            ]
        }
    ],
    "relationshipDefs": [
        {
            "name": "rdbms_instance_databases",
            "typeVersion": "1.0",
            "relationshipCategory": "AGGREGATION",
            "endDef1": {
                "type": "rdbms_instance",
                "name": "databases",
                "isContainer": true,
                "cardinality": "SET",
                "isLegacyAttribute": true
            },
            "endDef2": {
                "type": "rdbms_db",
                "name": "instance",
                "isContainer": false,
                "cardinality": "SINGLE",
                "isLegacyAttribute": true
            },
            "propagateTags": "NONE"
        },
        {
            "name": "rdbms_db_tables",
            "typeVersion": "1.0",
            "relationshipCategory": "AGGREGATION",
            "endDef1": {
                "type": "rdbms_db",
                "name": "tables",
                "isContainer": true,
                "cardinality": "SET",
                "isLegacyAttribute": true
            },
            "endDef2": {
                "type": "rdbms_table",
                "name": "db",
                "isContainer": false,
                "cardinality": "SINGLE",
                "isLegacyAttribute": true
            },
            "propagateTags": "NONE"
        },
        {
            "name": "rdbms_table_columns",
            "typeVersion": "1.0",
            "relationshipCategory": "AGGREGATION",
            "endDef1": {
                "type": "rdbms_table",
                "name": "columns",
                "isContainer": true,
                "cardinality": "SET",
                "isLegacyAttribute": true
            },
            "endDef2": {
                "type": "rdbms_column",
                "name": "table",
                "isContainer": false,
                "cardinality": "SINGLE",
                "isLegacyAttribute": true
            },
            "propagateTags": "NONE"
        },
        {
            "name": "rdbms_table_indexes",
            "typeVersion": "1.0",
            "relationshipCategory": "AGGREGATION",
            "endDef1": {
                "type": "rdbms_table",
                "name": "indexes",
                "isContainer": true,
                "cardinality": "SET",
                "isLegacyAttribute": true
            },
            "endDef2": {
                "type": "rdbms_index",
                "name": "table",
                "isContainer": false,
                "cardinality": "SINGLE",
                "isLegacyAttribute": true
            },
            "propagateTags": "NONE"
        },
        {
            "name": "rdbms_index_columns",
            "typeVersion": "1.0",
            "relationshipCategory": "ASSOCIATION",
            "endDef1": {
                "type": "rdbms_index",
                "name": "columns",
                "isContainer": false,
                "cardinality": "SET",
                "isLegacyAttribute": true
            },
            "endDef2": {
                "type": "rdbms_column",
                "name": "indexes",
                "isContainer": false,
                "cardinality": "SET",
                "isLegacyAttribute": true
            },
            "propagateTags": "NONE"
        },
        {
            "name": "rdbms_table_foreign_key",
            "typeVersion": "1.0",
            "relationshipCategory": "AGGREGATION",
            "endDef1": {
                "type": "rdbms_table",
                "name": "foreign_keys",
                "isContainer": true,
                "cardinality": "SET",
                "isLegacyAttribute": true
            },
            "endDef2": {
                "type": "rdbms_foreign_key",
                "name": "table",
                "isContainer": false,
                "cardinality": "SINGLE",
                "isLegacyAttribute": true
            },
            "propagateTags": "NONE"
        },
        {
            "name": "rdbms_foreign_key_key_columns",
            "typeVersion": "1.0",
            "relationshipCategory": "ASSOCIATION",
            "endDef1": {
                "type": "rdbms_foreign_key",
                "name": "key_columns",
                "isContainer": false,
                "cardinality": "SET",
                "isLegacyAttribute": true
            },
            "endDef2": {
                "type": "rdbms_column",
                "name": "key_column_references",
                "isContainer": false,
                "cardinality": "SET"
            },
            "propagateTags": "NONE"
        },
        {
            "name": "rdbms_foreign_key_table_references",
            "typeVersion": "1.0",
            "relationshipCategory": "ASSOCIATION",
            "endDef1": {
                "type": "rdbms_foreign_key",
                "name": "references_table",
                "isContainer": false,
                "cardinality": "SINGLE",
                "isLegacyAttribute": true
            },
            "endDef2": {
                "type": "rdbms_table",
                "name": "foreign_key_references",
                "isContainer": false,
                "cardinality": "SET"
            },
            "propagateTags": "NONE"
        },
        {
            "name": "rdbms_foreign_key_column_references",
            "typeVersion": "1.0",
            "relationshipCategory": "ASSOCIATION",
            "endDef1": {
                "type": "rdbms_foreign_key",
                "name": "references_columns",
                "isContainer": false,
                "cardinality": "SET",
                "isLegacyAttribute": true
            },
            "endDef2": {
                "type": "rdbms_column",
                "name": "foreign_key_references",
                "isContainer": false,
                "cardinality": "SET"
            },
            "propagateTags": "NONE"
        }
    ]
}
