| { |
| "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" } |
| ] |
| } |
| ] |
| } |