{"namespace": "org.apache.avro.test",
 "protocol": "Simple",
 "doc": "Protocol used for testing.",
 "version" : "1.6.2",
 "javaAnnotation": ["javax.annotation.Generated(\"avro\")",
                    "org.apache.avro.TestAnnotation"],

 "types": [
     {"name": "Kind", "type": "enum", "symbols": ["FOO","BAR","BAZ"],
      "javaAnnotation": "org.apache.avro.TestAnnotation"},

     {"name": "MD5", "type": "fixed", "size": 16,
      "javaAnnotation": "org.apache.avro.TestAnnotation"},

     {"name": "TestRecord", "type": "record",
      "javaAnnotation": "org.apache.avro.TestAnnotation",
      "fields": [
          {"name": "name", "type": "string", "order": "ignore",
           "javaAnnotation": "org.apache.avro.TestAnnotation"},
          {"name": "kind", "type": "Kind", "order": "descending"},
          {"name": "hash", "type": "MD5"}
      ]
     },

     {"name": "TestError", "type": "error", "fields": [
         {"name": "message", "type": "string"}
      ]
     },

     {"name": "TestRecordWithUnion", "type": "record",
      "fields": [
          {"name": "kind", "type": ["null", "Kind"]},
          {"name": "value", "type": ["null", "string"]}
      ]
     }

 ],

 "messages": {

     "hello": {
         "doc": "Send a greeting",
         "request": [{"name": "greeting", "type": "string", "aliases" : [ "salute" ], "customProp" : "customValue"}],
         "response": "string"
     },

     "echo": {
         "doc": "Pretend you're in a cave!",
         "request": [{"name": "record", "type": "TestRecord"}],
         "response": "TestRecord"
     },

     "add": {
         "specialProp" : "test",
         "request": [{"name": "arg1", "type": "int"}, {"name": "arg2", "type": "int"}],
         "response": "int"
     },

     "echoBytes": {
         "request": [{"name": "data", "type": "bytes"}],
         "response": "bytes"
     },

     "error": {
         "doc": "Always throws an error.",
         "request": [],
         "response": "null",
         "errors": ["TestError"]
     },

     "ack": {
         "doc": "Send a one way message",
         "request": [],
         "response": "null",
         "one-way": true,
         "javaAnnotation": "org.apache.avro.TestAnnotation"
     }
 }

}
