{
  "enumTypes": [
    {
      "name": "HiveObjectType",
      "enumValues": [
        {
          "value": "GLOBAL",
          "ordinal": 1
        },
        {
          "value": "DATABASE",
          "ordinal": 2
        },
        {
          "value": "TABLE",
          "ordinal": 3
        },
        {
          "value": "PARTITION",
          "ordinal": 4
        },
        {
          "value": "COLUMN",
          "ordinal": 5
        }
      ]
    },
    {
      "name": "LockLevel",
      "enumValues": [
        {
          "value": "DB",
          "ordinal": 1
        },
        {
          "value": "TABLE",
          "ordinal": 2
        },
        {
          "value": "PARTITION",
          "ordinal": 3
        }
      ]
    },
    {
      "name": "TxnState",
      "enumValues": [
        {
          "value": "COMMITTED",
          "ordinal": 1
        },
        {
          "value": "ABORTED",
          "ordinal": 2
        },
        {
          "value": "OPEN",
          "ordinal": 3
        }
      ]
    },
    {
      "name": "PrincipalType",
      "enumValues": [
        {
          "value": "USER",
          "ordinal": 1
        },
        {
          "value": "ROLE",
          "ordinal": 2
        },
        {
          "value": "GROUP",
          "ordinal": 3
        }
      ]
    }
  ],
  "structTypes": [
    {
      "typeName": "t2",
      "attributeDefinitions": [
        {
          "name": "a",
          "dataTypeName": "int",
          "multiplicity": "required",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "s",
          "dataTypeName": "t2",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        }
      ]
    },
    {
      "typeName": "t1",
      "attributeDefinitions": [
        {
          "name": "a",
          "dataTypeName": "int",
          "multiplicity": "required",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "b",
          "dataTypeName": "boolean",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "c",
          "dataTypeName": "byte",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "d",
          "dataTypeName": "short",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "e",
          "dataTypeName": "int",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "f",
          "dataTypeName": "int",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "g",
          "dataTypeName": "long",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "h",
          "dataTypeName": "float",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "i",
          "dataTypeName": "double",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "j",
          "dataTypeName": "biginteger",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "k",
          "dataTypeName": "bigdecimal",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "l",
          "dataTypeName": "date",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "m",
          "dataTypeName": "array<int>",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "n",
          "dataTypeName": "array<bigdecimal>",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "o",
          "dataTypeName": "map<string,double>",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        }
      ]
    },
    {
      "typeName": "ts1",
      "attributeDefinitions": [
        {
          "name": "a",
          "dataTypeName": "int",
          "multiplicity": "required",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "b",
          "dataTypeName": "boolean",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "c",
          "dataTypeName": "byte",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "d",
          "dataTypeName": "short",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "e",
          "dataTypeName": "int",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "f",
          "dataTypeName": "int",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "g",
          "dataTypeName": "long",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "h",
          "dataTypeName": "float",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "i",
          "dataTypeName": "double",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "j",
          "dataTypeName": "biginteger",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "k",
          "dataTypeName": "bigdecimal",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "l",
          "dataTypeName": "date",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "m",
          "dataTypeName": "array<int>",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "n",
          "dataTypeName": "array<bigdecimal>",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "o",
          "dataTypeName": "map<string,double>",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        }
      ]
    }
  ],
  "traitTypes": [
    {
      "superTypes": [
        "B",
        "C"
      ],
      "hierarchicalMetaTypeName": "org.apache.atlas.types.TraitType",
      "typeName": "D",
      "attributeDefinitions": [
        {
          "name": "d",
          "dataTypeName": "short",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        }
      ]
    },
    {
      "superTypes": [
      ],
      "hierarchicalMetaTypeName": "org.apache.atlas.types.TraitType",
      "typeName": "A",
      "attributeDefinitions": [
        {
          "name": "a",
          "dataTypeName": "int",
          "multiplicity": "required",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "b",
          "dataTypeName": "boolean",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "c",
          "dataTypeName": "byte",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "d",
          "dataTypeName": "short",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        }
      ]
    },
    {
      "superTypes": [
        "A"
      ],
      "hierarchicalMetaTypeName": "org.apache.atlas.types.TraitType",
      "typeName": "B",
      "attributeDefinitions": [
        {
          "name": "b",
          "dataTypeName": "boolean",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        }
      ]
    },
    {
      "superTypes": [
        "A"
      ],
      "hierarchicalMetaTypeName": "org.apache.atlas.types.TraitType",
      "typeName": "C",
      "attributeDefinitions": [
        {
          "name": "c",
          "dataTypeName": "byte",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        }
      ]
    },
    {
      "superTypes": [
      ],
      "hierarchicalMetaTypeName": "org.apache.atlas.types.TraitType",
      "typeName": "SecurityClearance",
      "attributeDefinitions": [
        {
          "name": "level",
          "dataTypeName": "int",
          "multiplicity": "required",
          "isComposite": false,
          "reverseAttributeName": null
        }
      ]
    }
  ],
  "classTypes": [
    {
      "superTypes": [
        "Person"
      ],
      "hierarchicalMetaTypeName": "org.apache.atlas.types.ClassType",
      "typeName": "Manager",
      "attributeDefinitions": [
        {
          "name": "subordinates",
          "dataTypeName": "array<Person>",
          "multiplicity": "collection",
          "isComposite": false,
          "reverseAttributeName": "manager"
        }
      ]
    },
    {
      "superTypes": [
      ],
      "hierarchicalMetaTypeName": "org.apache.atlas.types.ClassType",
      "typeName": "Department",
      "attributeDefinitions": [
        {
          "name": "name",
          "dataTypeName": "string",
          "multiplicity": "required",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "employees",
          "dataTypeName": "array<Person>",
          "multiplicity": "collection",
          "isComposite": true,
          "reverseAttributeName": "department"
        }
      ]
    },
    {
      "superTypes": [
      ],
      "hierarchicalMetaTypeName": "org.apache.atlas.types.ClassType",
      "typeName": "t4",
      "attributeDefinitions": [
        {
          "name": "a",
          "dataTypeName": "int",
          "multiplicity": "required",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "b",
          "dataTypeName": "boolean",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "c",
          "dataTypeName": "byte",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "d",
          "dataTypeName": "short",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "enum1",
          "dataTypeName": "HiveObjectType",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "e",
          "dataTypeName": "int",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "f",
          "dataTypeName": "int",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "g",
          "dataTypeName": "long",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "enum2",
          "dataTypeName": "PrincipalType",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "h",
          "dataTypeName": "float",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "i",
          "dataTypeName": "double",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "j",
          "dataTypeName": "biginteger",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "k",
          "dataTypeName": "bigdecimal",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "enum3",
          "dataTypeName": "TxnState",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "l",
          "dataTypeName": "date",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "m",
          "dataTypeName": "array<int>",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "n",
          "dataTypeName": "array<bigdecimal>",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "o",
          "dataTypeName": "map<string,double>",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "enum4",
          "dataTypeName": "LockLevel",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": null
        }
      ]
    },
    {
      "superTypes": [
      ],
      "hierarchicalMetaTypeName": "org.apache.atlas.types.ClassType",
      "typeName": "Person",
      "attributeDefinitions": [
        {
          "name": "name",
          "dataTypeName": "string",
          "multiplicity": "required",
          "isComposite": false,
          "reverseAttributeName": null
        },
        {
          "name": "department",
          "dataTypeName": "Department",
          "multiplicity": "required",
          "isComposite": false,
          "reverseAttributeName": "employees"
        },
        {
          "name": "manager",
          "dataTypeName": "Manager",
          "multiplicity": "optional",
          "isComposite": false,
          "reverseAttributeName": "subordinates"
        }
      ]
    }
  ]
}
