{
  "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.hadoop.metadata.types.TraitType",
      "typeName":"D",
      "attributeDefinitions":[
        {
          "name":"d",
          "dataTypeName":"short",
          "multiplicity":"optional",
          "isComposite":false,
          "reverseAttributeName":null
        }
      ]
    },
    {
      "superTypes":[

      ],
      "hierarchicalMetaTypeName":"org.apache.hadoop.metadata.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.hadoop.metadata.types.TraitType",
      "typeName":"B",
      "attributeDefinitions":[
        {
          "name":"b",
          "dataTypeName":"boolean",
          "multiplicity":"optional",
          "isComposite":false,
          "reverseAttributeName":null
        }
      ]
    },
    {
      "superTypes":[
        "A"
      ],
      "hierarchicalMetaTypeName":"org.apache.hadoop.metadata.types.TraitType",
      "typeName":"C",
      "attributeDefinitions":[
        {
          "name":"c",
          "dataTypeName":"byte",
          "multiplicity":"optional",
          "isComposite":false,
          "reverseAttributeName":null
        }
      ]
    },
    {
      "superTypes":[

      ],
      "hierarchicalMetaTypeName":"org.apache.hadoop.metadata.types.TraitType",
      "typeName":"SecurityClearance",
      "attributeDefinitions":[
        {
          "name":"level",
          "dataTypeName":"int",
          "multiplicity":"required",
          "isComposite":false,
          "reverseAttributeName":null
        }
      ]
    }
  ],
  "classTypes":[
    {
      "superTypes":[
        "Person"
      ],
      "hierarchicalMetaTypeName":"org.apache.hadoop.metadata.types.ClassType",
      "typeName":"Manager",
      "attributeDefinitions":[
        {
          "name":"subordinates",
          "dataTypeName":"array<Person>",
          "multiplicity":"collection",
          "isComposite":false,
          "reverseAttributeName":"manager"
        }
      ]
    },
    {
      "superTypes":[

      ],
      "hierarchicalMetaTypeName":"org.apache.hadoop.metadata.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.hadoop.metadata.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.hadoop.metadata.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"
        }
      ]
    }
  ]
}
