{ "protocol" : "MyProtocol", "namespace" : "com.foo", "types" : [ { "type" : "record", "name" : "A", "fields" : [ { "name" : "f1", "type" : "long" } ] }, { "type" : "enum", "name" : "MyEnum", "symbols" : [ "A", "B", "C" ] }, { "type": "fixed", "size": 16, "name": "MyFixed" }, { "type" : "record", "name" : "Simple", "fields" : [ { "name" : "myInt", "type" : "int" }, { "name" : "myLong", "type" : "long" }, { "name" : "myBool", "type" : "boolean" }, { "name" : "myDouble", "type" : "double" }, { "name" : "myFloat", "type" : "float" }, { "name" : "myBytes", "type" : "bytes" }, { "name" : "myString", "type" : "string" }, { "name" : "myNull", "type" : "null" }, ] }, { "type" : "record", "name" : "Complex", "fields" : [ { "name" : "myUInt", "type" : [ "int", "null" ] }, { "name" : "myULong", "type" : [ "long", "null" ] }, { "name" : "myUBool", "type" : [ "boolean", "null" ] }, { "name" : "myUDouble", "type" : [ "double", "null" ] }, { "name" : "myUFloat", "type" : [ "float", "null" ] }, { "name" : "myUBytes", "type" : [ "bytes", "null" ] }, { "name" : "myUString", "type" : [ "string", "null" ] }, { "name" : "myInt", "type" : "int" }, { "name" : "myLong", "type" : "long" }, { "name" : "myBool", "type" : "boolean" }, { "name" : "myDouble", "type" : "double" }, { "name" : "myFloat", "type" : "float" }, { "name" : "myBytes", "type" : "bytes" }, { "name" : "myString", "type" : "string" }, { "name" : "myNull", "type" : "null" }, { "name" : "myFixed", "type" : "MyFixed" }, { "name" : "myA", "type" : "A" }, { "name" : "myE", "type" : "MyEnum" }, { "name" : "myArray", "type" : { "type" : "array", "items" : "bytes" } }, { "name" : "myArray2", "type" : { "type" : "array", "items" : { "type" : "record", "name" : "newRec", "fields" : [ { "name" : "f1", "type" : "long"} ] } } }, { "name" : "myMap", "type" : { "type" : "map", "values" : "string" } }, { "name" : "myMap2", "type" : { "type" : "map", "values" : "newRec" } }, { "name" : "myObject", "type" : [ "MyEnum", "A", "null" ] }, { "name" : "myArray3", "type" : { "type" : "array", "items" : { "type" : "array", "items" : [ "double", "string", "null" ] } } } ] }, { "type" : "record", "name" : "Wide", "fields" : [ { "name" : "myInt", "type" : "int" }, { "name" : "myLong", "type" : "long" }, { "name" : "myBool", "type" : "boolean" }, { "name" : "myDouble", "type" : "double" }, { "name" : "myFloat", "type" : "float" }, { "name" : "myBytes", "type" : "bytes" }, { "name" : "myString", "type" : "string" }, { "name" : "myA", "type" : "A" }, { "name" : "myE", "type" : "MyEnum" }, { "name" : "myInt2", "type" : "int" }, { "name" : "myLong2", "type" : "long" }, { "name" : "myBool2", "type" : "boolean" }, { "name" : "myDouble2", "type" : "double" }, { "name" : "myFloat2", "type" : "float" }, { "name" : "myBytes2", "type" : "bytes" }, { "name" : "myString2", "type" : "string" }, { "name" : "myA2", "type" : "A" }, { "name" : "myE2", "type" : "MyEnum" }, { "name" : "myInt3", "type" : "int" }, { "name" : "myLong3", "type" : "long" }, { "name" : "myBool3", "type" : "boolean" }, { "name" : "myDouble3", "type" : "double" }, { "name" : "myFloat3", "type" : "float" }, { "name" : "myBytes3", "type" : "bytes" }, { "name" : "myString3", "type" : "string" }, { "name" : "myA3", "type" : "A" }, { "name" : "myE3", "type" : "MyEnum" }, { "name" : "myInt4", "type" : "int" }, { "name" : "myLong4", "type" : "long" }, { "name" : "myBool4", "type" : "boolean" }, { "name" : "myDouble4", "type" : "double" }, { "name" : "myFloat4", "type" : "float" }, { "name" : "myBytes4", "type" : "bytes" }, { "name" : "myString4", "type" : "string" }, { "name" : "myA4", "type" : "A" }, { "name" : "myE4", "type" : "MyEnum" }, ] }, { "type" : "record", "name" : "Narrow", "fields" : [ { "name" : "myInt", "type" : "int" }, { "name" : "myLong", "type" : "long" }, { "name" : "myString", "type" : "string" } ] } ] }