diff --git a/proto.sh b/proto.sh
--- a/proto.sh
+++ b/proto.sh
@@ -1,6 +1,7 @@
 #!/bin/bash
 
 protobuf=$((readlink $0 || printf $0) | xargs dirname)
+SED=$(which gsed || which sed)
 
 if [[ -z "$protobuf" ]]; then
     echo "error: don't know where we are!" 1>&2
@@ -19,7 +20,7 @@
     exit 1
 fi
 
-sed -e 's/Rpb//g' -e 's/Req\>/Request/g' -e 's/Resp\>/Response/g' \
+$SED -e 's/Rpb//g' -e 's/Req\>/Request/g' -e 's/Resp\>/Response/g' \
     -e 's/MapRedR/MapReduceR/g' -e 's/DelR/DeleteR/' -e 's/ClientId/ClientID/' \
     -e 's/GetServerInfoResponse/ServerInfo/g' \
     -e 's/MapReduceResponse/MapReduce/g' \
@@ -28,12 +29,5 @@
     src/riak.proto src/riak_kv.proto src/riak_search.proto src/riakextra.proto > src/Protocol.proto
 
 (cd src && hprotoc -p Network.Riak Protocol.proto)
-for i in $(find src/Network/Riak/Protocol -name '*.hs';
-           echo src/Network/Riak/Protocol.hs); do
-    cp /dev/null $i.$$
-    echo '{-# OPTIONS_GHC -fno-warn-unused-imports #-}' >> $i.$$
-    cat $i >> $i.$$
-    mv $i.$$ $i
-done
 
 rm src/Protocol.proto
diff --git a/riak-protobuf.cabal b/riak-protobuf.cabal
--- a/riak-protobuf.cabal
+++ b/riak-protobuf.cabal
@@ -1,5 +1,5 @@
 name:                riak-protobuf
-version:             0.19.0.0
+version:             0.20.0.0
 synopsis:            Haskell types for the Riak protocol buffer API
 description:
   A set of Haskell types for interacting with the protocol buffer
@@ -78,8 +78,8 @@
     array >= 0.4,
     base == 4.*,
     parsec >= 3,
-    protocol-buffers-fork == 2.0.*,
-    protocol-buffers-descriptor-fork == 2.0.*
+    protocol-buffers >= 2.1.4 && < 2.2,
+    protocol-buffers-descriptor >= 2.1.4 && < 2.2
 
   ghc-options: -Wall -fno-warn-orphans
 
diff --git a/src/Network/Riak/Protocol.hs b/src/Network/Riak/Protocol.hs
--- a/src/Network/Riak/Protocol.hs
+++ b/src/Network/Riak/Protocol.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol (protoInfo, fileDescriptorProto) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
diff --git a/src/Network/Riak/Protocol/BucketProps.hs b/src/Network/Riak/Protocol/BucketProps.hs
--- a/src/Network/Riak/Protocol/BucketProps.hs
+++ b/src/Network/Riak/Protocol/BucketProps.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.BucketProps (BucketProps(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -188,3 +188,166 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.BucketProps\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"BucketProps\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"BucketProps.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.n_val\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"n_val\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.allow_mult\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"allow_mult\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.last_write_wins\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"last_write_wins\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.precommit\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"precommit\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.CommitHook\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"CommitHook\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.has_precommit\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"has_precommit\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 40}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Just \"false\", hsDefault = Just (HsDef'Bool False)},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.postcommit\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"postcommit\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 50}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.CommitHook\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"CommitHook\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.has_postcommit\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"has_postcommit\"}, fieldNumber = FieldId {getFieldId = 7}, wireTag = WireTag {getWireTag = 56}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Just \"false\", hsDefault = Just (HsDef'Bool False)},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.chash_keyfun\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"chash_keyfun\"}, fieldNumber = FieldId {getFieldId = 8}, wireTag = WireTag {getWireTag = 66}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.ModFun\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"ModFun\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.linkfun\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"linkfun\"}, fieldNumber = FieldId {getFieldId = 9}, wireTag = WireTag {getWireTag = 74}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.ModFun\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"ModFun\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.old_vclock\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"old_vclock\"}, fieldNumber = FieldId {getFieldId = 10}, wireTag = WireTag {getWireTag = 80}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.young_vclock\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"young_vclock\"}, fieldNumber = FieldId {getFieldId = 11}, wireTag = WireTag {getWireTag = 88}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.big_vclock\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"big_vclock\"}, fieldNumber = FieldId {getFieldId = 12}, wireTag = WireTag {getWireTag = 96}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.small_vclock\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"small_vclock\"}, fieldNumber = FieldId {getFieldId = 13}, wireTag = WireTag {getWireTag = 104}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.pr\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"pr\"}, fieldNumber = FieldId {getFieldId = 14}, wireTag = WireTag {getWireTag = 112}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.r\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"r\"}, fieldNumber = FieldId {getFieldId = 15}, wireTag = WireTag {getWireTag = 120}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.w\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"w\"}, fieldNumber = FieldId {getFieldId = 16}, wireTag = WireTag {getWireTag = 128}, packedTag = Nothing, wireTagLength = 2, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.pw\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"pw\"}, fieldNumber = FieldId {getFieldId = 17}, wireTag = WireTag {getWireTag = 136}, packedTag = Nothing, wireTagLength = 2, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.dw\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"dw\"}, fieldNumber = FieldId {getFieldId = 18}, wireTag = WireTag {getWireTag = 144}, packedTag = Nothing, wireTagLength = 2, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.rw\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"rw\"}, fieldNumber = FieldId {getFieldId = 19}, wireTag = WireTag {getWireTag = 152}, packedTag = Nothing, wireTagLength = 2, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.basic_quorum\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"basic_quorum\"}, fieldNumber = FieldId {getFieldId = 20}, wireTag = WireTag {getWireTag = 160}, packedTag = Nothing, wireTagLength = 2, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.notfound_ok\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"notfound_ok\"}, fieldNumber = FieldId {getFieldId = 21}, wireTag = WireTag {getWireTag = 168}, packedTag = Nothing, wireTagLength = 2, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.backend\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"backend\"}, fieldNumber = FieldId {getFieldId = 22}, wireTag = WireTag {getWireTag = 178}, packedTag = Nothing, wireTagLength = 2, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.search\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"search\"}, fieldNumber = FieldId {getFieldId = 23}, wireTag = WireTag {getWireTag = 184}, packedTag = Nothing, wireTagLength = 2, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.BucketProps.repl\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"BucketProps\"], baseName' = FName \"repl\"}, fieldNumber = FieldId {getFieldId = 24}, wireTag = WireTag {getWireTag = 192}, packedTag = Nothing, wireTagLength = 2, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.BucketProps.ReplMode\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\",MName \"BucketProps\"], baseName = MName \"ReplMode\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType BucketProps where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg BucketProps where
+  textPut msg
+   = do
+       P'.tellT "n_val" (n_val msg)
+       P'.tellT "allow_mult" (allow_mult msg)
+       P'.tellT "last_write_wins" (last_write_wins msg)
+       P'.tellT "precommit" (precommit msg)
+       P'.tellT "has_precommit" (has_precommit msg)
+       P'.tellT "postcommit" (postcommit msg)
+       P'.tellT "has_postcommit" (has_postcommit msg)
+       P'.tellT "chash_keyfun" (chash_keyfun msg)
+       P'.tellT "linkfun" (linkfun msg)
+       P'.tellT "old_vclock" (old_vclock msg)
+       P'.tellT "young_vclock" (young_vclock msg)
+       P'.tellT "big_vclock" (big_vclock msg)
+       P'.tellT "small_vclock" (small_vclock msg)
+       P'.tellT "pr" (pr msg)
+       P'.tellT "r" (r msg)
+       P'.tellT "w" (w msg)
+       P'.tellT "pw" (pw msg)
+       P'.tellT "dw" (dw msg)
+       P'.tellT "rw" (rw msg)
+       P'.tellT "basic_quorum" (basic_quorum msg)
+       P'.tellT "notfound_ok" (notfound_ok msg)
+       P'.tellT "backend" (backend msg)
+       P'.tellT "search" (search msg)
+       P'.tellT "repl" (repl msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy
+                (P'.choice
+                  [parse'n_val, parse'allow_mult, parse'last_write_wins, parse'precommit, parse'has_precommit, parse'postcommit,
+                   parse'has_postcommit, parse'chash_keyfun, parse'linkfun, parse'old_vclock, parse'young_vclock, parse'big_vclock,
+                   parse'small_vclock, parse'pr, parse'r, parse'w, parse'pw, parse'dw, parse'rw, parse'basic_quorum,
+                   parse'notfound_ok, parse'backend, parse'search, parse'repl])
+                P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'n_val
+         = P'.try
+            (do
+               v <- P'.getT "n_val"
+               Prelude'.return (\ o -> o{n_val = v}))
+        parse'allow_mult
+         = P'.try
+            (do
+               v <- P'.getT "allow_mult"
+               Prelude'.return (\ o -> o{allow_mult = v}))
+        parse'last_write_wins
+         = P'.try
+            (do
+               v <- P'.getT "last_write_wins"
+               Prelude'.return (\ o -> o{last_write_wins = v}))
+        parse'precommit
+         = P'.try
+            (do
+               v <- P'.getT "precommit"
+               Prelude'.return (\ o -> o{precommit = P'.append (precommit o) v}))
+        parse'has_precommit
+         = P'.try
+            (do
+               v <- P'.getT "has_precommit"
+               Prelude'.return (\ o -> o{has_precommit = v}))
+        parse'postcommit
+         = P'.try
+            (do
+               v <- P'.getT "postcommit"
+               Prelude'.return (\ o -> o{postcommit = P'.append (postcommit o) v}))
+        parse'has_postcommit
+         = P'.try
+            (do
+               v <- P'.getT "has_postcommit"
+               Prelude'.return (\ o -> o{has_postcommit = v}))
+        parse'chash_keyfun
+         = P'.try
+            (do
+               v <- P'.getT "chash_keyfun"
+               Prelude'.return (\ o -> o{chash_keyfun = v}))
+        parse'linkfun
+         = P'.try
+            (do
+               v <- P'.getT "linkfun"
+               Prelude'.return (\ o -> o{linkfun = v}))
+        parse'old_vclock
+         = P'.try
+            (do
+               v <- P'.getT "old_vclock"
+               Prelude'.return (\ o -> o{old_vclock = v}))
+        parse'young_vclock
+         = P'.try
+            (do
+               v <- P'.getT "young_vclock"
+               Prelude'.return (\ o -> o{young_vclock = v}))
+        parse'big_vclock
+         = P'.try
+            (do
+               v <- P'.getT "big_vclock"
+               Prelude'.return (\ o -> o{big_vclock = v}))
+        parse'small_vclock
+         = P'.try
+            (do
+               v <- P'.getT "small_vclock"
+               Prelude'.return (\ o -> o{small_vclock = v}))
+        parse'pr
+         = P'.try
+            (do
+               v <- P'.getT "pr"
+               Prelude'.return (\ o -> o{pr = v}))
+        parse'r
+         = P'.try
+            (do
+               v <- P'.getT "r"
+               Prelude'.return (\ o -> o{r = v}))
+        parse'w
+         = P'.try
+            (do
+               v <- P'.getT "w"
+               Prelude'.return (\ o -> o{w = v}))
+        parse'pw
+         = P'.try
+            (do
+               v <- P'.getT "pw"
+               Prelude'.return (\ o -> o{pw = v}))
+        parse'dw
+         = P'.try
+            (do
+               v <- P'.getT "dw"
+               Prelude'.return (\ o -> o{dw = v}))
+        parse'rw
+         = P'.try
+            (do
+               v <- P'.getT "rw"
+               Prelude'.return (\ o -> o{rw = v}))
+        parse'basic_quorum
+         = P'.try
+            (do
+               v <- P'.getT "basic_quorum"
+               Prelude'.return (\ o -> o{basic_quorum = v}))
+        parse'notfound_ok
+         = P'.try
+            (do
+               v <- P'.getT "notfound_ok"
+               Prelude'.return (\ o -> o{notfound_ok = v}))
+        parse'backend
+         = P'.try
+            (do
+               v <- P'.getT "backend"
+               Prelude'.return (\ o -> o{backend = v}))
+        parse'search
+         = P'.try
+            (do
+               v <- P'.getT "search"
+               Prelude'.return (\ o -> o{search = v}))
+        parse'repl
+         = P'.try
+            (do
+               v <- P'.getT "repl"
+               Prelude'.return (\ o -> o{repl = v}))
diff --git a/src/Network/Riak/Protocol/BucketProps/ReplMode.hs b/src/Network/Riak/Protocol/BucketProps/ReplMode.hs
--- a/src/Network/Riak/Protocol/BucketProps/ReplMode.hs
+++ b/src/Network/Riak/Protocol/BucketProps/ReplMode.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.BucketProps.ReplMode (ReplMode(..)) where
 import Prelude ((+), (/), (.))
 import qualified Prelude as Prelude'
@@ -65,3 +65,7 @@
    = P'.EnumInfo (P'.makePNF (P'.pack ".Protocol.BucketProps.ReplMode") ["Network", "Riak"] ["Protocol", "BucketProps"] "ReplMode")
       ["Network", "Riak", "Protocol", "BucketProps", "ReplMode.hs"]
       [(0, "FALSE"), (1, "REALTIME"), (2, "FULLSYNC"), (3, "TRUE")]
+ 
+instance P'.TextType ReplMode where
+  tellT = P'.tellShow
+  getT = P'.getRead
diff --git a/src/Network/Riak/Protocol/CSBucketRequest.hs b/src/Network/Riak/Protocol/CSBucketRequest.hs
--- a/src/Network/Riak/Protocol/CSBucketRequest.hs
+++ b/src/Network/Riak/Protocol/CSBucketRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.CSBucketRequest (CSBucketRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,10 +7,10 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data CSBucketRequest = CSBucketRequest{bucket :: !P'.ByteString, start_key :: !P'.ByteString, end_key :: !(P'.Maybe P'.ByteString),
-                                       start_incl :: !(P'.Maybe P'.Bool), end_incl :: !(P'.Maybe P'.Bool),
-                                       continuation :: !(P'.Maybe P'.ByteString), max_results :: !(P'.Maybe P'.Word32),
-                                       timeout :: !(P'.Maybe P'.Word32)}
+data CSBucketRequest = CSBucketRequest{bucket :: !(P'.ByteString), start_key :: !(P'.ByteString),
+                                       end_key :: !(P'.Maybe P'.ByteString), start_incl :: !(P'.Maybe P'.Bool),
+                                       end_incl :: !(P'.Maybe P'.Bool), continuation :: !(P'.Maybe P'.ByteString),
+                                       max_results :: !(P'.Maybe P'.Word32), timeout :: !(P'.Maybe P'.Word32)}
                      deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable CSBucketRequest where
@@ -87,3 +87,68 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.CSBucketRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"CSBucketRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"CSBucketRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CSBucketRequest.bucket\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CSBucketRequest\"], baseName' = FName \"bucket\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CSBucketRequest.start_key\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CSBucketRequest\"], baseName' = FName \"start_key\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CSBucketRequest.end_key\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CSBucketRequest\"], baseName' = FName \"end_key\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CSBucketRequest.start_incl\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CSBucketRequest\"], baseName' = FName \"start_incl\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 32}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Just \"true\", hsDefault = Just (HsDef'Bool True)},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CSBucketRequest.end_incl\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CSBucketRequest\"], baseName' = FName \"end_incl\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 40}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Just \"false\", hsDefault = Just (HsDef'Bool False)},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CSBucketRequest.continuation\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CSBucketRequest\"], baseName' = FName \"continuation\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 50}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CSBucketRequest.max_results\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CSBucketRequest\"], baseName' = FName \"max_results\"}, fieldNumber = FieldId {getFieldId = 7}, wireTag = WireTag {getWireTag = 56}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CSBucketRequest.timeout\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CSBucketRequest\"], baseName' = FName \"timeout\"}, fieldNumber = FieldId {getFieldId = 8}, wireTag = WireTag {getWireTag = 64}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType CSBucketRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg CSBucketRequest where
+  textPut msg
+   = do
+       P'.tellT "bucket" (bucket msg)
+       P'.tellT "start_key" (start_key msg)
+       P'.tellT "end_key" (end_key msg)
+       P'.tellT "start_incl" (start_incl msg)
+       P'.tellT "end_incl" (end_incl msg)
+       P'.tellT "continuation" (continuation msg)
+       P'.tellT "max_results" (max_results msg)
+       P'.tellT "timeout" (timeout msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy
+                (P'.choice
+                  [parse'bucket, parse'start_key, parse'end_key, parse'start_incl, parse'end_incl, parse'continuation,
+                   parse'max_results, parse'timeout])
+                P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'bucket
+         = P'.try
+            (do
+               v <- P'.getT "bucket"
+               Prelude'.return (\ o -> o{bucket = v}))
+        parse'start_key
+         = P'.try
+            (do
+               v <- P'.getT "start_key"
+               Prelude'.return (\ o -> o{start_key = v}))
+        parse'end_key
+         = P'.try
+            (do
+               v <- P'.getT "end_key"
+               Prelude'.return (\ o -> o{end_key = v}))
+        parse'start_incl
+         = P'.try
+            (do
+               v <- P'.getT "start_incl"
+               Prelude'.return (\ o -> o{start_incl = v}))
+        parse'end_incl
+         = P'.try
+            (do
+               v <- P'.getT "end_incl"
+               Prelude'.return (\ o -> o{end_incl = v}))
+        parse'continuation
+         = P'.try
+            (do
+               v <- P'.getT "continuation"
+               Prelude'.return (\ o -> o{continuation = v}))
+        parse'max_results
+         = P'.try
+            (do
+               v <- P'.getT "max_results"
+               Prelude'.return (\ o -> o{max_results = v}))
+        parse'timeout
+         = P'.try
+            (do
+               v <- P'.getT "timeout"
+               Prelude'.return (\ o -> o{timeout = v}))
diff --git a/src/Network/Riak/Protocol/CSBucketResponse.hs b/src/Network/Riak/Protocol/CSBucketResponse.hs
--- a/src/Network/Riak/Protocol/CSBucketResponse.hs
+++ b/src/Network/Riak/Protocol/CSBucketResponse.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.CSBucketResponse (CSBucketResponse(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -63,3 +63,34 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.CSBucketResponse\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"CSBucketResponse\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"CSBucketResponse.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CSBucketResponse.objects\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CSBucketResponse\"], baseName' = FName \"objects\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.IndexObject\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"IndexObject\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CSBucketResponse.continuation\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CSBucketResponse\"], baseName' = FName \"continuation\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CSBucketResponse.done\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CSBucketResponse\"], baseName' = FName \"done\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType CSBucketResponse where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg CSBucketResponse where
+  textPut msg
+   = do
+       P'.tellT "objects" (objects msg)
+       P'.tellT "continuation" (continuation msg)
+       P'.tellT "done" (done msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'objects, parse'continuation, parse'done]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'objects
+         = P'.try
+            (do
+               v <- P'.getT "objects"
+               Prelude'.return (\ o -> o{objects = P'.append (objects o) v}))
+        parse'continuation
+         = P'.try
+            (do
+               v <- P'.getT "continuation"
+               Prelude'.return (\ o -> o{continuation = v}))
+        parse'done
+         = P'.try
+            (do
+               v <- P'.getT "done"
+               Prelude'.return (\ o -> o{done = v}))
diff --git a/src/Network/Riak/Protocol/CommitHook.hs b/src/Network/Riak/Protocol/CommitHook.hs
--- a/src/Network/Riak/Protocol/CommitHook.hs
+++ b/src/Network/Riak/Protocol/CommitHook.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.CommitHook (CommitHook(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -60,3 +60,28 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.CommitHook\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"CommitHook\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"CommitHook.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CommitHook.modfun\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CommitHook\"], baseName' = FName \"modfun\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.ModFun\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"ModFun\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CommitHook.name\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CommitHook\"], baseName' = FName \"name\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType CommitHook where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg CommitHook where
+  textPut msg
+   = do
+       P'.tellT "modfun" (modfun msg)
+       P'.tellT "name" (name msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'modfun, parse'name]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'modfun
+         = P'.try
+            (do
+               v <- P'.getT "modfun"
+               Prelude'.return (\ o -> o{modfun = v}))
+        parse'name
+         = P'.try
+            (do
+               v <- P'.getT "name"
+               Prelude'.return (\ o -> o{name = v}))
diff --git a/src/Network/Riak/Protocol/Content.hs b/src/Network/Riak/Protocol/Content.hs
--- a/src/Network/Riak/Protocol/Content.hs
+++ b/src/Network/Riak/Protocol/Content.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.Content (Content(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -9,7 +9,7 @@
 import qualified Network.Riak.Protocol.Link as Protocol (Link)
 import qualified Network.Riak.Protocol.Pair as Protocol (Pair)
  
-data Content = Content{value :: !P'.ByteString, content_type :: !(P'.Maybe P'.ByteString), charset :: !(P'.Maybe P'.ByteString),
+data Content = Content{value :: !(P'.ByteString), content_type :: !(P'.Maybe P'.ByteString), charset :: !(P'.Maybe P'.ByteString),
                        content_encoding :: !(P'.Maybe P'.ByteString), vtag :: !(P'.Maybe P'.ByteString),
                        links :: !(P'.Seq Protocol.Link), last_mod :: !(P'.Maybe P'.Word32), last_mod_usecs :: !(P'.Maybe P'.Word32),
                        usermeta :: !(P'.Seq Protocol.Pair), indexes :: !(P'.Seq Protocol.Pair), deleted :: !(P'.Maybe P'.Bool)}
@@ -103,3 +103,86 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.Content\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"Content\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"Content.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Content.value\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Content\"], baseName' = FName \"value\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Content.content_type\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Content\"], baseName' = FName \"content_type\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Content.charset\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Content\"], baseName' = FName \"charset\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Content.content_encoding\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Content\"], baseName' = FName \"content_encoding\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Content.vtag\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Content\"], baseName' = FName \"vtag\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 42}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Content.links\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Content\"], baseName' = FName \"links\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 50}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.Link\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"Link\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Content.last_mod\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Content\"], baseName' = FName \"last_mod\"}, fieldNumber = FieldId {getFieldId = 7}, wireTag = WireTag {getWireTag = 56}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Content.last_mod_usecs\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Content\"], baseName' = FName \"last_mod_usecs\"}, fieldNumber = FieldId {getFieldId = 8}, wireTag = WireTag {getWireTag = 64}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Content.usermeta\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Content\"], baseName' = FName \"usermeta\"}, fieldNumber = FieldId {getFieldId = 9}, wireTag = WireTag {getWireTag = 74}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.Pair\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"Pair\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Content.indexes\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Content\"], baseName' = FName \"indexes\"}, fieldNumber = FieldId {getFieldId = 10}, wireTag = WireTag {getWireTag = 82}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.Pair\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"Pair\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Content.deleted\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Content\"], baseName' = FName \"deleted\"}, fieldNumber = FieldId {getFieldId = 11}, wireTag = WireTag {getWireTag = 88}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType Content where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg Content where
+  textPut msg
+   = do
+       P'.tellT "value" (value msg)
+       P'.tellT "content_type" (content_type msg)
+       P'.tellT "charset" (charset msg)
+       P'.tellT "content_encoding" (content_encoding msg)
+       P'.tellT "vtag" (vtag msg)
+       P'.tellT "links" (links msg)
+       P'.tellT "last_mod" (last_mod msg)
+       P'.tellT "last_mod_usecs" (last_mod_usecs msg)
+       P'.tellT "usermeta" (usermeta msg)
+       P'.tellT "indexes" (indexes msg)
+       P'.tellT "deleted" (deleted msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy
+                (P'.choice
+                  [parse'value, parse'content_type, parse'charset, parse'content_encoding, parse'vtag, parse'links, parse'last_mod,
+                   parse'last_mod_usecs, parse'usermeta, parse'indexes, parse'deleted])
+                P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'value
+         = P'.try
+            (do
+               v <- P'.getT "value"
+               Prelude'.return (\ o -> o{value = v}))
+        parse'content_type
+         = P'.try
+            (do
+               v <- P'.getT "content_type"
+               Prelude'.return (\ o -> o{content_type = v}))
+        parse'charset
+         = P'.try
+            (do
+               v <- P'.getT "charset"
+               Prelude'.return (\ o -> o{charset = v}))
+        parse'content_encoding
+         = P'.try
+            (do
+               v <- P'.getT "content_encoding"
+               Prelude'.return (\ o -> o{content_encoding = v}))
+        parse'vtag
+         = P'.try
+            (do
+               v <- P'.getT "vtag"
+               Prelude'.return (\ o -> o{vtag = v}))
+        parse'links
+         = P'.try
+            (do
+               v <- P'.getT "links"
+               Prelude'.return (\ o -> o{links = P'.append (links o) v}))
+        parse'last_mod
+         = P'.try
+            (do
+               v <- P'.getT "last_mod"
+               Prelude'.return (\ o -> o{last_mod = v}))
+        parse'last_mod_usecs
+         = P'.try
+            (do
+               v <- P'.getT "last_mod_usecs"
+               Prelude'.return (\ o -> o{last_mod_usecs = v}))
+        parse'usermeta
+         = P'.try
+            (do
+               v <- P'.getT "usermeta"
+               Prelude'.return (\ o -> o{usermeta = P'.append (usermeta o) v}))
+        parse'indexes
+         = P'.try
+            (do
+               v <- P'.getT "indexes"
+               Prelude'.return (\ o -> o{indexes = P'.append (indexes o) v}))
+        parse'deleted
+         = P'.try
+            (do
+               v <- P'.getT "deleted"
+               Prelude'.return (\ o -> o{deleted = v}))
diff --git a/src/Network/Riak/Protocol/CounterGetRequest.hs b/src/Network/Riak/Protocol/CounterGetRequest.hs
--- a/src/Network/Riak/Protocol/CounterGetRequest.hs
+++ b/src/Network/Riak/Protocol/CounterGetRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.CounterGetRequest (CounterGetRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data CounterGetRequest = CounterGetRequest{bucket :: !P'.ByteString, key :: !P'.ByteString, r :: !(P'.Maybe P'.Word32),
+data CounterGetRequest = CounterGetRequest{bucket :: !(P'.ByteString), key :: !(P'.ByteString), r :: !(P'.Maybe P'.Word32),
                                            pr :: !(P'.Maybe P'.Word32), basic_quorum :: !(P'.Maybe P'.Bool),
                                            notfound_ok :: !(P'.Maybe P'.Bool)}
                        deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
@@ -74,3 +74,52 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.CounterGetRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"CounterGetRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"CounterGetRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterGetRequest.bucket\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterGetRequest\"], baseName' = FName \"bucket\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterGetRequest.key\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterGetRequest\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterGetRequest.r\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterGetRequest\"], baseName' = FName \"r\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterGetRequest.pr\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterGetRequest\"], baseName' = FName \"pr\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 32}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterGetRequest.basic_quorum\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterGetRequest\"], baseName' = FName \"basic_quorum\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 40}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterGetRequest.notfound_ok\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterGetRequest\"], baseName' = FName \"notfound_ok\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 48}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType CounterGetRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg CounterGetRequest where
+  textPut msg
+   = do
+       P'.tellT "bucket" (bucket msg)
+       P'.tellT "key" (key msg)
+       P'.tellT "r" (r msg)
+       P'.tellT "pr" (pr msg)
+       P'.tellT "basic_quorum" (basic_quorum msg)
+       P'.tellT "notfound_ok" (notfound_ok msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'bucket, parse'key, parse'r, parse'pr, parse'basic_quorum, parse'notfound_ok]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'bucket
+         = P'.try
+            (do
+               v <- P'.getT "bucket"
+               Prelude'.return (\ o -> o{bucket = v}))
+        parse'key
+         = P'.try
+            (do
+               v <- P'.getT "key"
+               Prelude'.return (\ o -> o{key = v}))
+        parse'r
+         = P'.try
+            (do
+               v <- P'.getT "r"
+               Prelude'.return (\ o -> o{r = v}))
+        parse'pr
+         = P'.try
+            (do
+               v <- P'.getT "pr"
+               Prelude'.return (\ o -> o{pr = v}))
+        parse'basic_quorum
+         = P'.try
+            (do
+               v <- P'.getT "basic_quorum"
+               Prelude'.return (\ o -> o{basic_quorum = v}))
+        parse'notfound_ok
+         = P'.try
+            (do
+               v <- P'.getT "notfound_ok"
+               Prelude'.return (\ o -> o{notfound_ok = v}))
diff --git a/src/Network/Riak/Protocol/CounterGetResponse.hs b/src/Network/Riak/Protocol/CounterGetResponse.hs
--- a/src/Network/Riak/Protocol/CounterGetResponse.hs
+++ b/src/Network/Riak/Protocol/CounterGetResponse.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.CounterGetResponse (CounterGetResponse(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -56,3 +56,22 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.CounterGetResponse\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"CounterGetResponse\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"CounterGetResponse.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterGetResponse.value\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterGetResponse\"], baseName' = FName \"value\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 18}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType CounterGetResponse where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg CounterGetResponse where
+  textPut msg
+   = do
+       P'.tellT "value" (value msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'value]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'value
+         = P'.try
+            (do
+               v <- P'.getT "value"
+               Prelude'.return (\ o -> o{value = v}))
diff --git a/src/Network/Riak/Protocol/CounterUpdateRequest.hs b/src/Network/Riak/Protocol/CounterUpdateRequest.hs
--- a/src/Network/Riak/Protocol/CounterUpdateRequest.hs
+++ b/src/Network/Riak/Protocol/CounterUpdateRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.CounterUpdateRequest (CounterUpdateRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data CounterUpdateRequest = CounterUpdateRequest{bucket :: !P'.ByteString, key :: !P'.ByteString, amount :: !P'.Int64,
+data CounterUpdateRequest = CounterUpdateRequest{bucket :: !(P'.ByteString), key :: !(P'.ByteString), amount :: !(P'.Int64),
                                                  w :: !(P'.Maybe P'.Word32), dw :: !(P'.Maybe P'.Word32),
                                                  pw :: !(P'.Maybe P'.Word32), returnvalue :: !(P'.Maybe P'.Bool)}
                           deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
@@ -80,3 +80,59 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.CounterUpdateRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"CounterUpdateRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"CounterUpdateRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterUpdateRequest.bucket\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterUpdateRequest\"], baseName' = FName \"bucket\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterUpdateRequest.key\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterUpdateRequest\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterUpdateRequest.amount\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterUpdateRequest\"], baseName' = FName \"amount\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 18}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterUpdateRequest.w\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterUpdateRequest\"], baseName' = FName \"w\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 32}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterUpdateRequest.dw\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterUpdateRequest\"], baseName' = FName \"dw\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 40}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterUpdateRequest.pw\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterUpdateRequest\"], baseName' = FName \"pw\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 48}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterUpdateRequest.returnvalue\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterUpdateRequest\"], baseName' = FName \"returnvalue\"}, fieldNumber = FieldId {getFieldId = 7}, wireTag = WireTag {getWireTag = 56}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType CounterUpdateRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg CounterUpdateRequest where
+  textPut msg
+   = do
+       P'.tellT "bucket" (bucket msg)
+       P'.tellT "key" (key msg)
+       P'.tellT "amount" (amount msg)
+       P'.tellT "w" (w msg)
+       P'.tellT "dw" (dw msg)
+       P'.tellT "pw" (pw msg)
+       P'.tellT "returnvalue" (returnvalue msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'bucket, parse'key, parse'amount, parse'w, parse'dw, parse'pw, parse'returnvalue])
+                P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'bucket
+         = P'.try
+            (do
+               v <- P'.getT "bucket"
+               Prelude'.return (\ o -> o{bucket = v}))
+        parse'key
+         = P'.try
+            (do
+               v <- P'.getT "key"
+               Prelude'.return (\ o -> o{key = v}))
+        parse'amount
+         = P'.try
+            (do
+               v <- P'.getT "amount"
+               Prelude'.return (\ o -> o{amount = v}))
+        parse'w
+         = P'.try
+            (do
+               v <- P'.getT "w"
+               Prelude'.return (\ o -> o{w = v}))
+        parse'dw
+         = P'.try
+            (do
+               v <- P'.getT "dw"
+               Prelude'.return (\ o -> o{dw = v}))
+        parse'pw
+         = P'.try
+            (do
+               v <- P'.getT "pw"
+               Prelude'.return (\ o -> o{pw = v}))
+        parse'returnvalue
+         = P'.try
+            (do
+               v <- P'.getT "returnvalue"
+               Prelude'.return (\ o -> o{returnvalue = v}))
diff --git a/src/Network/Riak/Protocol/CounterUpdateResponse.hs b/src/Network/Riak/Protocol/CounterUpdateResponse.hs
--- a/src/Network/Riak/Protocol/CounterUpdateResponse.hs
+++ b/src/Network/Riak/Protocol/CounterUpdateResponse.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.CounterUpdateResponse (CounterUpdateResponse(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -56,3 +56,22 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.CounterUpdateResponse\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"CounterUpdateResponse\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"CounterUpdateResponse.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.CounterUpdateResponse.value\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"CounterUpdateResponse\"], baseName' = FName \"value\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 18}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType CounterUpdateResponse where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg CounterUpdateResponse where
+  textPut msg
+   = do
+       P'.tellT "value" (value msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'value]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'value
+         = P'.try
+            (do
+               v <- P'.getT "value"
+               Prelude'.return (\ o -> o{value = v}))
diff --git a/src/Network/Riak/Protocol/DeleteRequest.hs b/src/Network/Riak/Protocol/DeleteRequest.hs
--- a/src/Network/Riak/Protocol/DeleteRequest.hs
+++ b/src/Network/Riak/Protocol/DeleteRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.DeleteRequest (DeleteRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data DeleteRequest = DeleteRequest{bucket :: !P'.ByteString, key :: !P'.ByteString, rw :: !(P'.Maybe P'.Word32),
+data DeleteRequest = DeleteRequest{bucket :: !(P'.ByteString), key :: !(P'.ByteString), rw :: !(P'.Maybe P'.Word32),
                                    vclock :: !(P'.Maybe P'.ByteString), r :: !(P'.Maybe P'.Word32), w :: !(P'.Maybe P'.Word32),
                                    pr :: !(P'.Maybe P'.Word32), pw :: !(P'.Maybe P'.Word32), dw :: !(P'.Maybe P'.Word32),
                                    timeout :: !(P'.Maybe P'.Word32), sloppy_quorum :: !(P'.Maybe P'.Bool),
@@ -108,3 +108,92 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.DeleteRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"DeleteRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"DeleteRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.DeleteRequest.bucket\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"DeleteRequest\"], baseName' = FName \"bucket\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.DeleteRequest.key\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"DeleteRequest\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.DeleteRequest.rw\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"DeleteRequest\"], baseName' = FName \"rw\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.DeleteRequest.vclock\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"DeleteRequest\"], baseName' = FName \"vclock\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.DeleteRequest.r\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"DeleteRequest\"], baseName' = FName \"r\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 40}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.DeleteRequest.w\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"DeleteRequest\"], baseName' = FName \"w\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 48}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.DeleteRequest.pr\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"DeleteRequest\"], baseName' = FName \"pr\"}, fieldNumber = FieldId {getFieldId = 7}, wireTag = WireTag {getWireTag = 56}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.DeleteRequest.pw\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"DeleteRequest\"], baseName' = FName \"pw\"}, fieldNumber = FieldId {getFieldId = 8}, wireTag = WireTag {getWireTag = 64}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.DeleteRequest.dw\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"DeleteRequest\"], baseName' = FName \"dw\"}, fieldNumber = FieldId {getFieldId = 9}, wireTag = WireTag {getWireTag = 72}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.DeleteRequest.timeout\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"DeleteRequest\"], baseName' = FName \"timeout\"}, fieldNumber = FieldId {getFieldId = 10}, wireTag = WireTag {getWireTag = 80}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.DeleteRequest.sloppy_quorum\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"DeleteRequest\"], baseName' = FName \"sloppy_quorum\"}, fieldNumber = FieldId {getFieldId = 11}, wireTag = WireTag {getWireTag = 88}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.DeleteRequest.n_val\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"DeleteRequest\"], baseName' = FName \"n_val\"}, fieldNumber = FieldId {getFieldId = 12}, wireTag = WireTag {getWireTag = 96}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType DeleteRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg DeleteRequest where
+  textPut msg
+   = do
+       P'.tellT "bucket" (bucket msg)
+       P'.tellT "key" (key msg)
+       P'.tellT "rw" (rw msg)
+       P'.tellT "vclock" (vclock msg)
+       P'.tellT "r" (r msg)
+       P'.tellT "w" (w msg)
+       P'.tellT "pr" (pr msg)
+       P'.tellT "pw" (pw msg)
+       P'.tellT "dw" (dw msg)
+       P'.tellT "timeout" (timeout msg)
+       P'.tellT "sloppy_quorum" (sloppy_quorum msg)
+       P'.tellT "n_val" (n_val msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy
+                (P'.choice
+                  [parse'bucket, parse'key, parse'rw, parse'vclock, parse'r, parse'w, parse'pr, parse'pw, parse'dw, parse'timeout,
+                   parse'sloppy_quorum, parse'n_val])
+                P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'bucket
+         = P'.try
+            (do
+               v <- P'.getT "bucket"
+               Prelude'.return (\ o -> o{bucket = v}))
+        parse'key
+         = P'.try
+            (do
+               v <- P'.getT "key"
+               Prelude'.return (\ o -> o{key = v}))
+        parse'rw
+         = P'.try
+            (do
+               v <- P'.getT "rw"
+               Prelude'.return (\ o -> o{rw = v}))
+        parse'vclock
+         = P'.try
+            (do
+               v <- P'.getT "vclock"
+               Prelude'.return (\ o -> o{vclock = v}))
+        parse'r
+         = P'.try
+            (do
+               v <- P'.getT "r"
+               Prelude'.return (\ o -> o{r = v}))
+        parse'w
+         = P'.try
+            (do
+               v <- P'.getT "w"
+               Prelude'.return (\ o -> o{w = v}))
+        parse'pr
+         = P'.try
+            (do
+               v <- P'.getT "pr"
+               Prelude'.return (\ o -> o{pr = v}))
+        parse'pw
+         = P'.try
+            (do
+               v <- P'.getT "pw"
+               Prelude'.return (\ o -> o{pw = v}))
+        parse'dw
+         = P'.try
+            (do
+               v <- P'.getT "dw"
+               Prelude'.return (\ o -> o{dw = v}))
+        parse'timeout
+         = P'.try
+            (do
+               v <- P'.getT "timeout"
+               Prelude'.return (\ o -> o{timeout = v}))
+        parse'sloppy_quorum
+         = P'.try
+            (do
+               v <- P'.getT "sloppy_quorum"
+               Prelude'.return (\ o -> o{sloppy_quorum = v}))
+        parse'n_val
+         = P'.try
+            (do
+               v <- P'.getT "n_val"
+               Prelude'.return (\ o -> o{n_val = v}))
diff --git a/src/Network/Riak/Protocol/ErrorResponse.hs b/src/Network/Riak/Protocol/ErrorResponse.hs
--- a/src/Network/Riak/Protocol/ErrorResponse.hs
+++ b/src/Network/Riak/Protocol/ErrorResponse.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.ErrorResponse (ErrorResponse(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data ErrorResponse = ErrorResponse{errmsg :: !P'.ByteString, errcode :: !P'.Word32}
+data ErrorResponse = ErrorResponse{errmsg :: !(P'.ByteString), errcode :: !(P'.Word32)}
                    deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable ErrorResponse where
@@ -58,3 +58,28 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.ErrorResponse\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"ErrorResponse\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"ErrorResponse.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ErrorResponse.errmsg\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ErrorResponse\"], baseName' = FName \"errmsg\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ErrorResponse.errcode\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ErrorResponse\"], baseName' = FName \"errcode\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType ErrorResponse where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg ErrorResponse where
+  textPut msg
+   = do
+       P'.tellT "errmsg" (errmsg msg)
+       P'.tellT "errcode" (errcode msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'errmsg, parse'errcode]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'errmsg
+         = P'.try
+            (do
+               v <- P'.getT "errmsg"
+               Prelude'.return (\ o -> o{errmsg = v}))
+        parse'errcode
+         = P'.try
+            (do
+               v <- P'.getT "errcode"
+               Prelude'.return (\ o -> o{errcode = v}))
diff --git a/src/Network/Riak/Protocol/GetBucketRequest.hs b/src/Network/Riak/Protocol/GetBucketRequest.hs
--- a/src/Network/Riak/Protocol/GetBucketRequest.hs
+++ b/src/Network/Riak/Protocol/GetBucketRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.GetBucketRequest (GetBucketRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data GetBucketRequest = GetBucketRequest{bucket :: !P'.ByteString}
+data GetBucketRequest = GetBucketRequest{bucket :: !(P'.ByteString)}
                       deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable GetBucketRequest where
@@ -56,3 +56,22 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.GetBucketRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"GetBucketRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"GetBucketRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetBucketRequest.bucket\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetBucketRequest\"], baseName' = FName \"bucket\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType GetBucketRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg GetBucketRequest where
+  textPut msg
+   = do
+       P'.tellT "bucket" (bucket msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'bucket]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'bucket
+         = P'.try
+            (do
+               v <- P'.getT "bucket"
+               Prelude'.return (\ o -> o{bucket = v}))
diff --git a/src/Network/Riak/Protocol/GetBucketResponse.hs b/src/Network/Riak/Protocol/GetBucketResponse.hs
--- a/src/Network/Riak/Protocol/GetBucketResponse.hs
+++ b/src/Network/Riak/Protocol/GetBucketResponse.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.GetBucketResponse (GetBucketResponse(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -8,7 +8,7 @@
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Network.Riak.Protocol.BucketProps as Protocol (BucketProps)
  
-data GetBucketResponse = GetBucketResponse{props :: !Protocol.BucketProps}
+data GetBucketResponse = GetBucketResponse{props :: !(Protocol.BucketProps)}
                        deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable GetBucketResponse where
@@ -57,3 +57,22 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.GetBucketResponse\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"GetBucketResponse\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"GetBucketResponse.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetBucketResponse.props\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetBucketResponse\"], baseName' = FName \"props\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.BucketProps\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"BucketProps\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType GetBucketResponse where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg GetBucketResponse where
+  textPut msg
+   = do
+       P'.tellT "props" (props msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'props]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'props
+         = P'.try
+            (do
+               v <- P'.getT "props"
+               Prelude'.return (\ o -> o{props = v}))
diff --git a/src/Network/Riak/Protocol/GetClientIDRequest.hs b/src/Network/Riak/Protocol/GetClientIDRequest.hs
--- a/src/Network/Riak/Protocol/GetClientIDRequest.hs
+++ b/src/Network/Riak/Protocol/GetClientIDRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.GetClientIDRequest (GetClientIDRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -55,3 +55,11 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.GetClientIDRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"GetClientIDRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"GetClientIDRequest.hs\"], isGroup = False, fields = fromList [], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType GetClientIDRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg GetClientIDRequest where
+  textPut msg = Prelude'.return ()
+  textGet = Prelude'.return P'.defaultValue
diff --git a/src/Network/Riak/Protocol/GetClientIDResponse.hs b/src/Network/Riak/Protocol/GetClientIDResponse.hs
--- a/src/Network/Riak/Protocol/GetClientIDResponse.hs
+++ b/src/Network/Riak/Protocol/GetClientIDResponse.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.GetClientIDResponse (GetClientIDResponse(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data GetClientIDResponse = GetClientIDResponse{client_id :: !P'.ByteString}
+data GetClientIDResponse = GetClientIDResponse{client_id :: !(P'.ByteString)}
                          deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable GetClientIDResponse where
@@ -56,3 +56,22 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.GetClientIDResponse\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"GetClientIDResponse\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"GetClientIDResponse.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetClientIDResponse.client_id\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetClientIDResponse\"], baseName' = FName \"client_id\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType GetClientIDResponse where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg GetClientIDResponse where
+  textPut msg
+   = do
+       P'.tellT "client_id" (client_id msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'client_id]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'client_id
+         = P'.try
+            (do
+               v <- P'.getT "client_id"
+               Prelude'.return (\ o -> o{client_id = v}))
diff --git a/src/Network/Riak/Protocol/GetRequest.hs b/src/Network/Riak/Protocol/GetRequest.hs
--- a/src/Network/Riak/Protocol/GetRequest.hs
+++ b/src/Network/Riak/Protocol/GetRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.GetRequest (GetRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data GetRequest = GetRequest{bucket :: !P'.ByteString, key :: !P'.ByteString, r :: !(P'.Maybe P'.Word32),
+data GetRequest = GetRequest{bucket :: !(P'.ByteString), key :: !(P'.ByteString), r :: !(P'.Maybe P'.Word32),
                              pr :: !(P'.Maybe P'.Word32), basic_quorum :: !(P'.Maybe P'.Bool), notfound_ok :: !(P'.Maybe P'.Bool),
                              if_modified :: !(P'.Maybe P'.ByteString), head :: !(P'.Maybe P'.Bool),
                              deletedvclock :: !(P'.Maybe P'.Bool), timeout :: !(P'.Maybe P'.Word32),
@@ -108,3 +108,92 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.GetRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"GetRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"GetRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetRequest.bucket\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetRequest\"], baseName' = FName \"bucket\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetRequest.key\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetRequest\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetRequest.r\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetRequest\"], baseName' = FName \"r\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetRequest.pr\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetRequest\"], baseName' = FName \"pr\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 32}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetRequest.basic_quorum\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetRequest\"], baseName' = FName \"basic_quorum\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 40}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetRequest.notfound_ok\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetRequest\"], baseName' = FName \"notfound_ok\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 48}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetRequest.if_modified\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetRequest\"], baseName' = FName \"if_modified\"}, fieldNumber = FieldId {getFieldId = 7}, wireTag = WireTag {getWireTag = 58}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetRequest.head\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetRequest\"], baseName' = FName \"head\"}, fieldNumber = FieldId {getFieldId = 8}, wireTag = WireTag {getWireTag = 64}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetRequest.deletedvclock\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetRequest\"], baseName' = FName \"deletedvclock\"}, fieldNumber = FieldId {getFieldId = 9}, wireTag = WireTag {getWireTag = 72}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetRequest.timeout\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetRequest\"], baseName' = FName \"timeout\"}, fieldNumber = FieldId {getFieldId = 10}, wireTag = WireTag {getWireTag = 80}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetRequest.sloppy_quorum\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetRequest\"], baseName' = FName \"sloppy_quorum\"}, fieldNumber = FieldId {getFieldId = 11}, wireTag = WireTag {getWireTag = 88}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetRequest.n_val\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetRequest\"], baseName' = FName \"n_val\"}, fieldNumber = FieldId {getFieldId = 12}, wireTag = WireTag {getWireTag = 96}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType GetRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg GetRequest where
+  textPut msg
+   = do
+       P'.tellT "bucket" (bucket msg)
+       P'.tellT "key" (key msg)
+       P'.tellT "r" (r msg)
+       P'.tellT "pr" (pr msg)
+       P'.tellT "basic_quorum" (basic_quorum msg)
+       P'.tellT "notfound_ok" (notfound_ok msg)
+       P'.tellT "if_modified" (if_modified msg)
+       P'.tellT "head" (head msg)
+       P'.tellT "deletedvclock" (deletedvclock msg)
+       P'.tellT "timeout" (timeout msg)
+       P'.tellT "sloppy_quorum" (sloppy_quorum msg)
+       P'.tellT "n_val" (n_val msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy
+                (P'.choice
+                  [parse'bucket, parse'key, parse'r, parse'pr, parse'basic_quorum, parse'notfound_ok, parse'if_modified, parse'head,
+                   parse'deletedvclock, parse'timeout, parse'sloppy_quorum, parse'n_val])
+                P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'bucket
+         = P'.try
+            (do
+               v <- P'.getT "bucket"
+               Prelude'.return (\ o -> o{bucket = v}))
+        parse'key
+         = P'.try
+            (do
+               v <- P'.getT "key"
+               Prelude'.return (\ o -> o{key = v}))
+        parse'r
+         = P'.try
+            (do
+               v <- P'.getT "r"
+               Prelude'.return (\ o -> o{r = v}))
+        parse'pr
+         = P'.try
+            (do
+               v <- P'.getT "pr"
+               Prelude'.return (\ o -> o{pr = v}))
+        parse'basic_quorum
+         = P'.try
+            (do
+               v <- P'.getT "basic_quorum"
+               Prelude'.return (\ o -> o{basic_quorum = v}))
+        parse'notfound_ok
+         = P'.try
+            (do
+               v <- P'.getT "notfound_ok"
+               Prelude'.return (\ o -> o{notfound_ok = v}))
+        parse'if_modified
+         = P'.try
+            (do
+               v <- P'.getT "if_modified"
+               Prelude'.return (\ o -> o{if_modified = v}))
+        parse'head
+         = P'.try
+            (do
+               v <- P'.getT "head"
+               Prelude'.return (\ o -> o{head = v}))
+        parse'deletedvclock
+         = P'.try
+            (do
+               v <- P'.getT "deletedvclock"
+               Prelude'.return (\ o -> o{deletedvclock = v}))
+        parse'timeout
+         = P'.try
+            (do
+               v <- P'.getT "timeout"
+               Prelude'.return (\ o -> o{timeout = v}))
+        parse'sloppy_quorum
+         = P'.try
+            (do
+               v <- P'.getT "sloppy_quorum"
+               Prelude'.return (\ o -> o{sloppy_quorum = v}))
+        parse'n_val
+         = P'.try
+            (do
+               v <- P'.getT "n_val"
+               Prelude'.return (\ o -> o{n_val = v}))
diff --git a/src/Network/Riak/Protocol/GetResponse.hs b/src/Network/Riak/Protocol/GetResponse.hs
--- a/src/Network/Riak/Protocol/GetResponse.hs
+++ b/src/Network/Riak/Protocol/GetResponse.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.GetResponse (GetResponse(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -63,3 +63,34 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.GetResponse\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"GetResponse\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"GetResponse.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetResponse.content\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetResponse\"], baseName' = FName \"content\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.Content\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"Content\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetResponse.vclock\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetResponse\"], baseName' = FName \"vclock\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.GetResponse.unchanged\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"GetResponse\"], baseName' = FName \"unchanged\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType GetResponse where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg GetResponse where
+  textPut msg
+   = do
+       P'.tellT "content" (content msg)
+       P'.tellT "vclock" (vclock msg)
+       P'.tellT "unchanged" (unchanged msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'content, parse'vclock, parse'unchanged]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'content
+         = P'.try
+            (do
+               v <- P'.getT "content"
+               Prelude'.return (\ o -> o{content = P'.append (content o) v}))
+        parse'vclock
+         = P'.try
+            (do
+               v <- P'.getT "vclock"
+               Prelude'.return (\ o -> o{vclock = v}))
+        parse'unchanged
+         = P'.try
+            (do
+               v <- P'.getT "unchanged"
+               Prelude'.return (\ o -> o{unchanged = v}))
diff --git a/src/Network/Riak/Protocol/GetServerInfoRequest.hs b/src/Network/Riak/Protocol/GetServerInfoRequest.hs
--- a/src/Network/Riak/Protocol/GetServerInfoRequest.hs
+++ b/src/Network/Riak/Protocol/GetServerInfoRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.GetServerInfoRequest (GetServerInfoRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -55,3 +55,11 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.GetServerInfoRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"GetServerInfoRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"GetServerInfoRequest.hs\"], isGroup = False, fields = fromList [], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType GetServerInfoRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg GetServerInfoRequest where
+  textPut msg = Prelude'.return ()
+  textGet = Prelude'.return P'.defaultValue
diff --git a/src/Network/Riak/Protocol/IndexObject.hs b/src/Network/Riak/Protocol/IndexObject.hs
--- a/src/Network/Riak/Protocol/IndexObject.hs
+++ b/src/Network/Riak/Protocol/IndexObject.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.IndexObject (IndexObject(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -8,7 +8,7 @@
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Network.Riak.Protocol.GetResponse as Protocol (GetResponse)
  
-data IndexObject = IndexObject{key :: !P'.ByteString, object :: !Protocol.GetResponse}
+data IndexObject = IndexObject{key :: !(P'.ByteString), object :: !(Protocol.GetResponse)}
                  deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable IndexObject where
@@ -59,3 +59,28 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.IndexObject\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"IndexObject\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"IndexObject.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexObject.key\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexObject\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexObject.object\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexObject\"], baseName' = FName \"object\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.GetResponse\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"GetResponse\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType IndexObject where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg IndexObject where
+  textPut msg
+   = do
+       P'.tellT "key" (key msg)
+       P'.tellT "object" (object msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'key, parse'object]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'key
+         = P'.try
+            (do
+               v <- P'.getT "key"
+               Prelude'.return (\ o -> o{key = v}))
+        parse'object
+         = P'.try
+            (do
+               v <- P'.getT "object"
+               Prelude'.return (\ o -> o{object = v}))
diff --git a/src/Network/Riak/Protocol/IndexRequest.hs b/src/Network/Riak/Protocol/IndexRequest.hs
--- a/src/Network/Riak/Protocol/IndexRequest.hs
+++ b/src/Network/Riak/Protocol/IndexRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.IndexRequest (IndexRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -8,11 +8,12 @@
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Network.Riak.Protocol.IndexRequest.IndexQueryType as Protocol.IndexRequest (IndexQueryType)
  
-data IndexRequest = IndexRequest{bucket :: !P'.ByteString, index :: !P'.ByteString, qtype :: !Protocol.IndexRequest.IndexQueryType,
-                                 key :: !(P'.Maybe P'.ByteString), range_min :: !(P'.Maybe P'.ByteString),
-                                 range_max :: !(P'.Maybe P'.ByteString), return_terms :: !(P'.Maybe P'.Bool),
-                                 stream :: !(P'.Maybe P'.Bool), max_results :: !(P'.Maybe P'.Word32),
-                                 continuation :: !(P'.Maybe P'.ByteString), timeout :: !(P'.Maybe P'.Word32)}
+data IndexRequest = IndexRequest{bucket :: !(P'.ByteString), index :: !(P'.ByteString),
+                                 qtype :: !(Protocol.IndexRequest.IndexQueryType), key :: !(P'.Maybe P'.ByteString),
+                                 range_min :: !(P'.Maybe P'.ByteString), range_max :: !(P'.Maybe P'.ByteString),
+                                 return_terms :: !(P'.Maybe P'.Bool), stream :: !(P'.Maybe P'.Bool),
+                                 max_results :: !(P'.Maybe P'.Word32), continuation :: !(P'.Maybe P'.ByteString),
+                                 timeout :: !(P'.Maybe P'.Word32)}
                   deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable IndexRequest where
@@ -104,3 +105,86 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.IndexRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"IndexRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"IndexRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexRequest.bucket\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexRequest\"], baseName' = FName \"bucket\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexRequest.index\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexRequest\"], baseName' = FName \"index\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexRequest.qtype\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexRequest\"], baseName' = FName \"qtype\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.IndexRequest.IndexQueryType\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\",MName \"IndexRequest\"], baseName = MName \"IndexQueryType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexRequest.key\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexRequest\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexRequest.range_min\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexRequest\"], baseName' = FName \"range_min\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 42}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexRequest.range_max\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexRequest\"], baseName' = FName \"range_max\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 50}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexRequest.return_terms\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexRequest\"], baseName' = FName \"return_terms\"}, fieldNumber = FieldId {getFieldId = 7}, wireTag = WireTag {getWireTag = 56}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexRequest.stream\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexRequest\"], baseName' = FName \"stream\"}, fieldNumber = FieldId {getFieldId = 8}, wireTag = WireTag {getWireTag = 64}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexRequest.max_results\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexRequest\"], baseName' = FName \"max_results\"}, fieldNumber = FieldId {getFieldId = 9}, wireTag = WireTag {getWireTag = 72}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexRequest.continuation\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexRequest\"], baseName' = FName \"continuation\"}, fieldNumber = FieldId {getFieldId = 10}, wireTag = WireTag {getWireTag = 82}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexRequest.timeout\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexRequest\"], baseName' = FName \"timeout\"}, fieldNumber = FieldId {getFieldId = 11}, wireTag = WireTag {getWireTag = 88}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType IndexRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg IndexRequest where
+  textPut msg
+   = do
+       P'.tellT "bucket" (bucket msg)
+       P'.tellT "index" (index msg)
+       P'.tellT "qtype" (qtype msg)
+       P'.tellT "key" (key msg)
+       P'.tellT "range_min" (range_min msg)
+       P'.tellT "range_max" (range_max msg)
+       P'.tellT "return_terms" (return_terms msg)
+       P'.tellT "stream" (stream msg)
+       P'.tellT "max_results" (max_results msg)
+       P'.tellT "continuation" (continuation msg)
+       P'.tellT "timeout" (timeout msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy
+                (P'.choice
+                  [parse'bucket, parse'index, parse'qtype, parse'key, parse'range_min, parse'range_max, parse'return_terms,
+                   parse'stream, parse'max_results, parse'continuation, parse'timeout])
+                P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'bucket
+         = P'.try
+            (do
+               v <- P'.getT "bucket"
+               Prelude'.return (\ o -> o{bucket = v}))
+        parse'index
+         = P'.try
+            (do
+               v <- P'.getT "index"
+               Prelude'.return (\ o -> o{index = v}))
+        parse'qtype
+         = P'.try
+            (do
+               v <- P'.getT "qtype"
+               Prelude'.return (\ o -> o{qtype = v}))
+        parse'key
+         = P'.try
+            (do
+               v <- P'.getT "key"
+               Prelude'.return (\ o -> o{key = v}))
+        parse'range_min
+         = P'.try
+            (do
+               v <- P'.getT "range_min"
+               Prelude'.return (\ o -> o{range_min = v}))
+        parse'range_max
+         = P'.try
+            (do
+               v <- P'.getT "range_max"
+               Prelude'.return (\ o -> o{range_max = v}))
+        parse'return_terms
+         = P'.try
+            (do
+               v <- P'.getT "return_terms"
+               Prelude'.return (\ o -> o{return_terms = v}))
+        parse'stream
+         = P'.try
+            (do
+               v <- P'.getT "stream"
+               Prelude'.return (\ o -> o{stream = v}))
+        parse'max_results
+         = P'.try
+            (do
+               v <- P'.getT "max_results"
+               Prelude'.return (\ o -> o{max_results = v}))
+        parse'continuation
+         = P'.try
+            (do
+               v <- P'.getT "continuation"
+               Prelude'.return (\ o -> o{continuation = v}))
+        parse'timeout
+         = P'.try
+            (do
+               v <- P'.getT "timeout"
+               Prelude'.return (\ o -> o{timeout = v}))
diff --git a/src/Network/Riak/Protocol/IndexRequest/IndexQueryType.hs b/src/Network/Riak/Protocol/IndexRequest/IndexQueryType.hs
--- a/src/Network/Riak/Protocol/IndexRequest/IndexQueryType.hs
+++ b/src/Network/Riak/Protocol/IndexRequest/IndexQueryType.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.IndexRequest.IndexQueryType (IndexQueryType(..)) where
 import Prelude ((+), (/), (.))
 import qualified Prelude as Prelude'
@@ -58,3 +58,7 @@
         "IndexQueryType")
       ["Network", "Riak", "Protocol", "IndexRequest", "IndexQueryType.hs"]
       [(0, "Eq"), (1, "Range")]
+ 
+instance P'.TextType IndexQueryType where
+  tellT = P'.tellShow
+  getT = P'.getRead
diff --git a/src/Network/Riak/Protocol/IndexResponse.hs b/src/Network/Riak/Protocol/IndexResponse.hs
--- a/src/Network/Riak/Protocol/IndexResponse.hs
+++ b/src/Network/Riak/Protocol/IndexResponse.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.IndexResponse (IndexResponse(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -65,3 +65,40 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.IndexResponse\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"IndexResponse\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"IndexResponse.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexResponse.keys\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexResponse\"], baseName' = FName \"keys\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexResponse.results\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexResponse\"], baseName' = FName \"results\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.Pair\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"Pair\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexResponse.continuation\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexResponse\"], baseName' = FName \"continuation\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.IndexResponse.done\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"IndexResponse\"], baseName' = FName \"done\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 32}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType IndexResponse where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg IndexResponse where
+  textPut msg
+   = do
+       P'.tellT "keys" (keys msg)
+       P'.tellT "results" (results msg)
+       P'.tellT "continuation" (continuation msg)
+       P'.tellT "done" (done msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'keys, parse'results, parse'continuation, parse'done]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'keys
+         = P'.try
+            (do
+               v <- P'.getT "keys"
+               Prelude'.return (\ o -> o{keys = P'.append (keys o) v}))
+        parse'results
+         = P'.try
+            (do
+               v <- P'.getT "results"
+               Prelude'.return (\ o -> o{results = P'.append (results o) v}))
+        parse'continuation
+         = P'.try
+            (do
+               v <- P'.getT "continuation"
+               Prelude'.return (\ o -> o{continuation = v}))
+        parse'done
+         = P'.try
+            (do
+               v <- P'.getT "done"
+               Prelude'.return (\ o -> o{done = v}))
diff --git a/src/Network/Riak/Protocol/Link.hs b/src/Network/Riak/Protocol/Link.hs
--- a/src/Network/Riak/Protocol/Link.hs
+++ b/src/Network/Riak/Protocol/Link.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.Link (Link(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -61,3 +61,34 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.Link\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"Link\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"Link.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Link.bucket\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Link\"], baseName' = FName \"bucket\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Link.key\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Link\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Link.tag\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Link\"], baseName' = FName \"tag\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType Link where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg Link where
+  textPut msg
+   = do
+       P'.tellT "bucket" (bucket msg)
+       P'.tellT "key" (key msg)
+       P'.tellT "tag" (tag msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'bucket, parse'key, parse'tag]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'bucket
+         = P'.try
+            (do
+               v <- P'.getT "bucket"
+               Prelude'.return (\ o -> o{bucket = v}))
+        parse'key
+         = P'.try
+            (do
+               v <- P'.getT "key"
+               Prelude'.return (\ o -> o{key = v}))
+        parse'tag
+         = P'.try
+            (do
+               v <- P'.getT "tag"
+               Prelude'.return (\ o -> o{tag = v}))
diff --git a/src/Network/Riak/Protocol/ListBucketsRequest.hs b/src/Network/Riak/Protocol/ListBucketsRequest.hs
--- a/src/Network/Riak/Protocol/ListBucketsRequest.hs
+++ b/src/Network/Riak/Protocol/ListBucketsRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.ListBucketsRequest (ListBucketsRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -59,3 +59,28 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.ListBucketsRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"ListBucketsRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"ListBucketsRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ListBucketsRequest.timeout\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ListBucketsRequest\"], baseName' = FName \"timeout\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ListBucketsRequest.stream\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ListBucketsRequest\"], baseName' = FName \"stream\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType ListBucketsRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg ListBucketsRequest where
+  textPut msg
+   = do
+       P'.tellT "timeout" (timeout msg)
+       P'.tellT "stream" (stream msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'timeout, parse'stream]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'timeout
+         = P'.try
+            (do
+               v <- P'.getT "timeout"
+               Prelude'.return (\ o -> o{timeout = v}))
+        parse'stream
+         = P'.try
+            (do
+               v <- P'.getT "stream"
+               Prelude'.return (\ o -> o{stream = v}))
diff --git a/src/Network/Riak/Protocol/ListBucketsResponse.hs b/src/Network/Riak/Protocol/ListBucketsResponse.hs
--- a/src/Network/Riak/Protocol/ListBucketsResponse.hs
+++ b/src/Network/Riak/Protocol/ListBucketsResponse.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.ListBucketsResponse (ListBucketsResponse(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -59,3 +59,28 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.ListBucketsResponse\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"ListBucketsResponse\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"ListBucketsResponse.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ListBucketsResponse.buckets\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ListBucketsResponse\"], baseName' = FName \"buckets\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ListBucketsResponse.done\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ListBucketsResponse\"], baseName' = FName \"done\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType ListBucketsResponse where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg ListBucketsResponse where
+  textPut msg
+   = do
+       P'.tellT "buckets" (buckets msg)
+       P'.tellT "done" (done msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'buckets, parse'done]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'buckets
+         = P'.try
+            (do
+               v <- P'.getT "buckets"
+               Prelude'.return (\ o -> o{buckets = P'.append (buckets o) v}))
+        parse'done
+         = P'.try
+            (do
+               v <- P'.getT "done"
+               Prelude'.return (\ o -> o{done = v}))
diff --git a/src/Network/Riak/Protocol/ListKeysRequest.hs b/src/Network/Riak/Protocol/ListKeysRequest.hs
--- a/src/Network/Riak/Protocol/ListKeysRequest.hs
+++ b/src/Network/Riak/Protocol/ListKeysRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.ListKeysRequest (ListKeysRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data ListKeysRequest = ListKeysRequest{bucket :: !P'.ByteString, timeout :: !(P'.Maybe P'.Word32)}
+data ListKeysRequest = ListKeysRequest{bucket :: !(P'.ByteString), timeout :: !(P'.Maybe P'.Word32)}
                      deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable ListKeysRequest where
@@ -59,3 +59,28 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.ListKeysRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"ListKeysRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"ListKeysRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ListKeysRequest.bucket\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ListKeysRequest\"], baseName' = FName \"bucket\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ListKeysRequest.timeout\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ListKeysRequest\"], baseName' = FName \"timeout\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType ListKeysRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg ListKeysRequest where
+  textPut msg
+   = do
+       P'.tellT "bucket" (bucket msg)
+       P'.tellT "timeout" (timeout msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'bucket, parse'timeout]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'bucket
+         = P'.try
+            (do
+               v <- P'.getT "bucket"
+               Prelude'.return (\ o -> o{bucket = v}))
+        parse'timeout
+         = P'.try
+            (do
+               v <- P'.getT "timeout"
+               Prelude'.return (\ o -> o{timeout = v}))
diff --git a/src/Network/Riak/Protocol/ListKeysResponse.hs b/src/Network/Riak/Protocol/ListKeysResponse.hs
--- a/src/Network/Riak/Protocol/ListKeysResponse.hs
+++ b/src/Network/Riak/Protocol/ListKeysResponse.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.ListKeysResponse (ListKeysResponse(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -59,3 +59,28 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.ListKeysResponse\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"ListKeysResponse\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"ListKeysResponse.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ListKeysResponse.keys\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ListKeysResponse\"], baseName' = FName \"keys\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ListKeysResponse.done\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ListKeysResponse\"], baseName' = FName \"done\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType ListKeysResponse where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg ListKeysResponse where
+  textPut msg
+   = do
+       P'.tellT "keys" (keys msg)
+       P'.tellT "done" (done msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'keys, parse'done]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'keys
+         = P'.try
+            (do
+               v <- P'.getT "keys"
+               Prelude'.return (\ o -> o{keys = P'.append (keys o) v}))
+        parse'done
+         = P'.try
+            (do
+               v <- P'.getT "done"
+               Prelude'.return (\ o -> o{done = v}))
diff --git a/src/Network/Riak/Protocol/MapReduce.hs b/src/Network/Riak/Protocol/MapReduce.hs
--- a/src/Network/Riak/Protocol/MapReduce.hs
+++ b/src/Network/Riak/Protocol/MapReduce.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.MapReduce (MapReduce(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -61,3 +61,34 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.MapReduce\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"MapReduce\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"MapReduce.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.MapReduce.phase\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"MapReduce\"], baseName' = FName \"phase\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.MapReduce.response\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"MapReduce\"], baseName' = FName \"response\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.MapReduce.done\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"MapReduce\"], baseName' = FName \"done\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType MapReduce where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg MapReduce where
+  textPut msg
+   = do
+       P'.tellT "phase" (phase msg)
+       P'.tellT "response" (response msg)
+       P'.tellT "done" (done msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'phase, parse'response, parse'done]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'phase
+         = P'.try
+            (do
+               v <- P'.getT "phase"
+               Prelude'.return (\ o -> o{phase = v}))
+        parse'response
+         = P'.try
+            (do
+               v <- P'.getT "response"
+               Prelude'.return (\ o -> o{response = v}))
+        parse'done
+         = P'.try
+            (do
+               v <- P'.getT "done"
+               Prelude'.return (\ o -> o{done = v}))
diff --git a/src/Network/Riak/Protocol/MapReduceRequest.hs b/src/Network/Riak/Protocol/MapReduceRequest.hs
--- a/src/Network/Riak/Protocol/MapReduceRequest.hs
+++ b/src/Network/Riak/Protocol/MapReduceRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.MapReduceRequest (MapReduceRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data MapReduceRequest = MapReduceRequest{request :: !P'.ByteString, content_type :: !P'.ByteString}
+data MapReduceRequest = MapReduceRequest{request :: !(P'.ByteString), content_type :: !(P'.ByteString)}
                       deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable MapReduceRequest where
@@ -59,3 +59,28 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.MapReduceRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"MapReduceRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"MapReduceRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.MapReduceRequest.request\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"MapReduceRequest\"], baseName' = FName \"request\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.MapReduceRequest.content_type\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"MapReduceRequest\"], baseName' = FName \"content_type\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType MapReduceRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg MapReduceRequest where
+  textPut msg
+   = do
+       P'.tellT "request" (request msg)
+       P'.tellT "content_type" (content_type msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'request, parse'content_type]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'request
+         = P'.try
+            (do
+               v <- P'.getT "request"
+               Prelude'.return (\ o -> o{request = v}))
+        parse'content_type
+         = P'.try
+            (do
+               v <- P'.getT "content_type"
+               Prelude'.return (\ o -> o{content_type = v}))
diff --git a/src/Network/Riak/Protocol/ModFun.hs b/src/Network/Riak/Protocol/ModFun.hs
--- a/src/Network/Riak/Protocol/ModFun.hs
+++ b/src/Network/Riak/Protocol/ModFun.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.ModFun (ModFun(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data ModFun = ModFun{module' :: !P'.ByteString, function :: !P'.ByteString}
+data ModFun = ModFun{module' :: !(P'.ByteString), function :: !(P'.ByteString)}
             deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable ModFun where
@@ -58,3 +58,28 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.ModFun\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"ModFun\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"ModFun.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ModFun.module\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ModFun\"], baseName' = FName \"module'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ModFun.function\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ModFun\"], baseName' = FName \"function\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType ModFun where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg ModFun where
+  textPut msg
+   = do
+       P'.tellT "module" (module' msg)
+       P'.tellT "function" (function msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'module', parse'function]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'module'
+         = P'.try
+            (do
+               v <- P'.getT "module"
+               Prelude'.return (\ o -> o{module' = v}))
+        parse'function
+         = P'.try
+            (do
+               v <- P'.getT "function"
+               Prelude'.return (\ o -> o{function = v}))
diff --git a/src/Network/Riak/Protocol/Pair.hs b/src/Network/Riak/Protocol/Pair.hs
--- a/src/Network/Riak/Protocol/Pair.hs
+++ b/src/Network/Riak/Protocol/Pair.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.Pair (Pair(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data Pair = Pair{key :: !P'.ByteString, value :: !(P'.Maybe P'.ByteString)}
+data Pair = Pair{key :: !(P'.ByteString), value :: !(P'.Maybe P'.ByteString)}
           deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable Pair where
@@ -58,3 +58,28 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.Pair\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"Pair\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"Pair.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Pair.key\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Pair\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.Pair.value\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"Pair\"], baseName' = FName \"value\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType Pair where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg Pair where
+  textPut msg
+   = do
+       P'.tellT "key" (key msg)
+       P'.tellT "value" (value msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'key, parse'value]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'key
+         = P'.try
+            (do
+               v <- P'.getT "key"
+               Prelude'.return (\ o -> o{key = v}))
+        parse'value
+         = P'.try
+            (do
+               v <- P'.getT "value"
+               Prelude'.return (\ o -> o{value = v}))
diff --git a/src/Network/Riak/Protocol/PingRequest.hs b/src/Network/Riak/Protocol/PingRequest.hs
--- a/src/Network/Riak/Protocol/PingRequest.hs
+++ b/src/Network/Riak/Protocol/PingRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.PingRequest (PingRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -55,3 +55,11 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.PingRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"PingRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"PingRequest.hs\"], isGroup = False, fields = fromList [], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType PingRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg PingRequest where
+  textPut msg = Prelude'.return ()
+  textGet = Prelude'.return P'.defaultValue
diff --git a/src/Network/Riak/Protocol/PutRequest.hs b/src/Network/Riak/Protocol/PutRequest.hs
--- a/src/Network/Riak/Protocol/PutRequest.hs
+++ b/src/Network/Riak/Protocol/PutRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.PutRequest (PutRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -8,8 +8,8 @@
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Network.Riak.Protocol.Content as Protocol (Content)
  
-data PutRequest = PutRequest{bucket :: !P'.ByteString, key :: !(P'.Maybe P'.ByteString), vclock :: !(P'.Maybe P'.ByteString),
-                             content :: !Protocol.Content, w :: !(P'.Maybe P'.Word32), dw :: !(P'.Maybe P'.Word32),
+data PutRequest = PutRequest{bucket :: !(P'.ByteString), key :: !(P'.Maybe P'.ByteString), vclock :: !(P'.Maybe P'.ByteString),
+                             content :: !(Protocol.Content), w :: !(P'.Maybe P'.Word32), dw :: !(P'.Maybe P'.Word32),
                              return_body :: !(P'.Maybe P'.Bool), pw :: !(P'.Maybe P'.Word32),
                              if_not_modified :: !(P'.Maybe P'.Bool), if_none_match :: !(P'.Maybe P'.Bool),
                              return_head :: !(P'.Maybe P'.Bool), timeout :: !(P'.Maybe P'.Word32), asis :: !(P'.Maybe P'.Bool),
@@ -126,3 +126,111 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.PutRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"PutRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"PutRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.bucket\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"bucket\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.key\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.vclock\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"vclock\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.content\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"content\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.Content\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"Content\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.w\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"w\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 40}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.dw\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"dw\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 48}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.return_body\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"return_body\"}, fieldNumber = FieldId {getFieldId = 7}, wireTag = WireTag {getWireTag = 56}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.pw\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"pw\"}, fieldNumber = FieldId {getFieldId = 8}, wireTag = WireTag {getWireTag = 64}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.if_not_modified\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"if_not_modified\"}, fieldNumber = FieldId {getFieldId = 9}, wireTag = WireTag {getWireTag = 72}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.if_none_match\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"if_none_match\"}, fieldNumber = FieldId {getFieldId = 10}, wireTag = WireTag {getWireTag = 80}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.return_head\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"return_head\"}, fieldNumber = FieldId {getFieldId = 11}, wireTag = WireTag {getWireTag = 88}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.timeout\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"timeout\"}, fieldNumber = FieldId {getFieldId = 12}, wireTag = WireTag {getWireTag = 96}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.asis\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"asis\"}, fieldNumber = FieldId {getFieldId = 13}, wireTag = WireTag {getWireTag = 104}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.sloppy_quorum\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"sloppy_quorum\"}, fieldNumber = FieldId {getFieldId = 14}, wireTag = WireTag {getWireTag = 112}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutRequest.n_val\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutRequest\"], baseName' = FName \"n_val\"}, fieldNumber = FieldId {getFieldId = 15}, wireTag = WireTag {getWireTag = 120}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType PutRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg PutRequest where
+  textPut msg
+   = do
+       P'.tellT "bucket" (bucket msg)
+       P'.tellT "key" (key msg)
+       P'.tellT "vclock" (vclock msg)
+       P'.tellT "content" (content msg)
+       P'.tellT "w" (w msg)
+       P'.tellT "dw" (dw msg)
+       P'.tellT "return_body" (return_body msg)
+       P'.tellT "pw" (pw msg)
+       P'.tellT "if_not_modified" (if_not_modified msg)
+       P'.tellT "if_none_match" (if_none_match msg)
+       P'.tellT "return_head" (return_head msg)
+       P'.tellT "timeout" (timeout msg)
+       P'.tellT "asis" (asis msg)
+       P'.tellT "sloppy_quorum" (sloppy_quorum msg)
+       P'.tellT "n_val" (n_val msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy
+                (P'.choice
+                  [parse'bucket, parse'key, parse'vclock, parse'content, parse'w, parse'dw, parse'return_body, parse'pw,
+                   parse'if_not_modified, parse'if_none_match, parse'return_head, parse'timeout, parse'asis, parse'sloppy_quorum,
+                   parse'n_val])
+                P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'bucket
+         = P'.try
+            (do
+               v <- P'.getT "bucket"
+               Prelude'.return (\ o -> o{bucket = v}))
+        parse'key
+         = P'.try
+            (do
+               v <- P'.getT "key"
+               Prelude'.return (\ o -> o{key = v}))
+        parse'vclock
+         = P'.try
+            (do
+               v <- P'.getT "vclock"
+               Prelude'.return (\ o -> o{vclock = v}))
+        parse'content
+         = P'.try
+            (do
+               v <- P'.getT "content"
+               Prelude'.return (\ o -> o{content = v}))
+        parse'w
+         = P'.try
+            (do
+               v <- P'.getT "w"
+               Prelude'.return (\ o -> o{w = v}))
+        parse'dw
+         = P'.try
+            (do
+               v <- P'.getT "dw"
+               Prelude'.return (\ o -> o{dw = v}))
+        parse'return_body
+         = P'.try
+            (do
+               v <- P'.getT "return_body"
+               Prelude'.return (\ o -> o{return_body = v}))
+        parse'pw
+         = P'.try
+            (do
+               v <- P'.getT "pw"
+               Prelude'.return (\ o -> o{pw = v}))
+        parse'if_not_modified
+         = P'.try
+            (do
+               v <- P'.getT "if_not_modified"
+               Prelude'.return (\ o -> o{if_not_modified = v}))
+        parse'if_none_match
+         = P'.try
+            (do
+               v <- P'.getT "if_none_match"
+               Prelude'.return (\ o -> o{if_none_match = v}))
+        parse'return_head
+         = P'.try
+            (do
+               v <- P'.getT "return_head"
+               Prelude'.return (\ o -> o{return_head = v}))
+        parse'timeout
+         = P'.try
+            (do
+               v <- P'.getT "timeout"
+               Prelude'.return (\ o -> o{timeout = v}))
+        parse'asis
+         = P'.try
+            (do
+               v <- P'.getT "asis"
+               Prelude'.return (\ o -> o{asis = v}))
+        parse'sloppy_quorum
+         = P'.try
+            (do
+               v <- P'.getT "sloppy_quorum"
+               Prelude'.return (\ o -> o{sloppy_quorum = v}))
+        parse'n_val
+         = P'.try
+            (do
+               v <- P'.getT "n_val"
+               Prelude'.return (\ o -> o{n_val = v}))
diff --git a/src/Network/Riak/Protocol/PutResponse.hs b/src/Network/Riak/Protocol/PutResponse.hs
--- a/src/Network/Riak/Protocol/PutResponse.hs
+++ b/src/Network/Riak/Protocol/PutResponse.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.PutResponse (PutResponse(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -63,3 +63,34 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.PutResponse\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"PutResponse\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"PutResponse.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutResponse.content\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutResponse\"], baseName' = FName \"content\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.Content\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"Content\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutResponse.vclock\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutResponse\"], baseName' = FName \"vclock\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.PutResponse.key\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"PutResponse\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType PutResponse where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg PutResponse where
+  textPut msg
+   = do
+       P'.tellT "content" (content msg)
+       P'.tellT "vclock" (vclock msg)
+       P'.tellT "key" (key msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'content, parse'vclock, parse'key]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'content
+         = P'.try
+            (do
+               v <- P'.getT "content"
+               Prelude'.return (\ o -> o{content = P'.append (content o) v}))
+        parse'vclock
+         = P'.try
+            (do
+               v <- P'.getT "vclock"
+               Prelude'.return (\ o -> o{vclock = v}))
+        parse'key
+         = P'.try
+            (do
+               v <- P'.getT "key"
+               Prelude'.return (\ o -> o{key = v}))
diff --git a/src/Network/Riak/Protocol/ResetBucketRequest.hs b/src/Network/Riak/Protocol/ResetBucketRequest.hs
--- a/src/Network/Riak/Protocol/ResetBucketRequest.hs
+++ b/src/Network/Riak/Protocol/ResetBucketRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.ResetBucketRequest (ResetBucketRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data ResetBucketRequest = ResetBucketRequest{bucket :: !P'.ByteString}
+data ResetBucketRequest = ResetBucketRequest{bucket :: !(P'.ByteString)}
                         deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable ResetBucketRequest where
@@ -56,3 +56,22 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.ResetBucketRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"ResetBucketRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"ResetBucketRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ResetBucketRequest.bucket\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ResetBucketRequest\"], baseName' = FName \"bucket\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType ResetBucketRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg ResetBucketRequest where
+  textPut msg
+   = do
+       P'.tellT "bucket" (bucket msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'bucket]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'bucket
+         = P'.try
+            (do
+               v <- P'.getT "bucket"
+               Prelude'.return (\ o -> o{bucket = v}))
diff --git a/src/Network/Riak/Protocol/SearchDoc.hs b/src/Network/Riak/Protocol/SearchDoc.hs
--- a/src/Network/Riak/Protocol/SearchDoc.hs
+++ b/src/Network/Riak/Protocol/SearchDoc.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.SearchDoc (SearchDoc(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -57,3 +57,22 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.SearchDoc\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"SearchDoc\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"SearchDoc.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchDoc.fields\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchDoc\"], baseName' = FName \"fields\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.Pair\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"Pair\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType SearchDoc where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg SearchDoc where
+  textPut msg
+   = do
+       P'.tellT "fields" (fields msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'fields]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'fields
+         = P'.try
+            (do
+               v <- P'.getT "fields"
+               Prelude'.return (\ o -> o{fields = P'.append (fields o) v}))
diff --git a/src/Network/Riak/Protocol/SearchQueryRequest.hs b/src/Network/Riak/Protocol/SearchQueryRequest.hs
--- a/src/Network/Riak/Protocol/SearchQueryRequest.hs
+++ b/src/Network/Riak/Protocol/SearchQueryRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.SearchQueryRequest (SearchQueryRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data SearchQueryRequest = SearchQueryRequest{q :: !P'.ByteString, index :: !P'.ByteString, rows :: !(P'.Maybe P'.Word32),
+data SearchQueryRequest = SearchQueryRequest{q :: !(P'.ByteString), index :: !(P'.ByteString), rows :: !(P'.Maybe P'.Word32),
                                              start :: !(P'.Maybe P'.Word32), sort :: !(P'.Maybe P'.ByteString),
                                              filter :: !(P'.Maybe P'.ByteString), df :: !(P'.Maybe P'.ByteString),
                                              op :: !(P'.Maybe P'.ByteString), fl :: !(P'.Seq P'.ByteString),
@@ -99,3 +99,80 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.SearchQueryRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"SearchQueryRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"SearchQueryRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchQueryRequest.q\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchQueryRequest\"], baseName' = FName \"q\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchQueryRequest.index\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchQueryRequest\"], baseName' = FName \"index\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchQueryRequest.rows\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchQueryRequest\"], baseName' = FName \"rows\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchQueryRequest.start\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchQueryRequest\"], baseName' = FName \"start\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 32}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchQueryRequest.sort\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchQueryRequest\"], baseName' = FName \"sort\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 42}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchQueryRequest.filter\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchQueryRequest\"], baseName' = FName \"filter\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 50}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchQueryRequest.df\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchQueryRequest\"], baseName' = FName \"df\"}, fieldNumber = FieldId {getFieldId = 7}, wireTag = WireTag {getWireTag = 58}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchQueryRequest.op\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchQueryRequest\"], baseName' = FName \"op\"}, fieldNumber = FieldId {getFieldId = 8}, wireTag = WireTag {getWireTag = 66}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchQueryRequest.fl\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchQueryRequest\"], baseName' = FName \"fl\"}, fieldNumber = FieldId {getFieldId = 9}, wireTag = WireTag {getWireTag = 74}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchQueryRequest.presort\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchQueryRequest\"], baseName' = FName \"presort\"}, fieldNumber = FieldId {getFieldId = 10}, wireTag = WireTag {getWireTag = 82}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType SearchQueryRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg SearchQueryRequest where
+  textPut msg
+   = do
+       P'.tellT "q" (q msg)
+       P'.tellT "index" (index msg)
+       P'.tellT "rows" (rows msg)
+       P'.tellT "start" (start msg)
+       P'.tellT "sort" (sort msg)
+       P'.tellT "filter" (filter msg)
+       P'.tellT "df" (df msg)
+       P'.tellT "op" (op msg)
+       P'.tellT "fl" (fl msg)
+       P'.tellT "presort" (presort msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy
+                (P'.choice
+                  [parse'q, parse'index, parse'rows, parse'start, parse'sort, parse'filter, parse'df, parse'op, parse'fl,
+                   parse'presort])
+                P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'q
+         = P'.try
+            (do
+               v <- P'.getT "q"
+               Prelude'.return (\ o -> o{q = v}))
+        parse'index
+         = P'.try
+            (do
+               v <- P'.getT "index"
+               Prelude'.return (\ o -> o{index = v}))
+        parse'rows
+         = P'.try
+            (do
+               v <- P'.getT "rows"
+               Prelude'.return (\ o -> o{rows = v}))
+        parse'start
+         = P'.try
+            (do
+               v <- P'.getT "start"
+               Prelude'.return (\ o -> o{start = v}))
+        parse'sort
+         = P'.try
+            (do
+               v <- P'.getT "sort"
+               Prelude'.return (\ o -> o{sort = v}))
+        parse'filter
+         = P'.try
+            (do
+               v <- P'.getT "filter"
+               Prelude'.return (\ o -> o{filter = v}))
+        parse'df
+         = P'.try
+            (do
+               v <- P'.getT "df"
+               Prelude'.return (\ o -> o{df = v}))
+        parse'op
+         = P'.try
+            (do
+               v <- P'.getT "op"
+               Prelude'.return (\ o -> o{op = v}))
+        parse'fl
+         = P'.try
+            (do
+               v <- P'.getT "fl"
+               Prelude'.return (\ o -> o{fl = P'.append (fl o) v}))
+        parse'presort
+         = P'.try
+            (do
+               v <- P'.getT "presort"
+               Prelude'.return (\ o -> o{presort = v}))
diff --git a/src/Network/Riak/Protocol/SearchQueryResponse.hs b/src/Network/Riak/Protocol/SearchQueryResponse.hs
--- a/src/Network/Riak/Protocol/SearchQueryResponse.hs
+++ b/src/Network/Riak/Protocol/SearchQueryResponse.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.SearchQueryResponse (SearchQueryResponse(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -63,3 +63,34 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.SearchQueryResponse\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"SearchQueryResponse\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"SearchQueryResponse.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchQueryResponse.docs\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchQueryResponse\"], baseName' = FName \"docs\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.SearchDoc\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"SearchDoc\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchQueryResponse.max_score\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchQueryResponse\"], baseName' = FName \"max_score\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 21}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 2}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SearchQueryResponse.num_found\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SearchQueryResponse\"], baseName' = FName \"num_found\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 13}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType SearchQueryResponse where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg SearchQueryResponse where
+  textPut msg
+   = do
+       P'.tellT "docs" (docs msg)
+       P'.tellT "max_score" (max_score msg)
+       P'.tellT "num_found" (num_found msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'docs, parse'max_score, parse'num_found]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'docs
+         = P'.try
+            (do
+               v <- P'.getT "docs"
+               Prelude'.return (\ o -> o{docs = P'.append (docs o) v}))
+        parse'max_score
+         = P'.try
+            (do
+               v <- P'.getT "max_score"
+               Prelude'.return (\ o -> o{max_score = v}))
+        parse'num_found
+         = P'.try
+            (do
+               v <- P'.getT "num_found"
+               Prelude'.return (\ o -> o{num_found = v}))
diff --git a/src/Network/Riak/Protocol/ServerInfo.hs b/src/Network/Riak/Protocol/ServerInfo.hs
--- a/src/Network/Riak/Protocol/ServerInfo.hs
+++ b/src/Network/Riak/Protocol/ServerInfo.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.ServerInfo (ServerInfo(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -58,3 +58,28 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.ServerInfo\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"ServerInfo\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"ServerInfo.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ServerInfo.node\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ServerInfo\"], baseName' = FName \"node\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.ServerInfo.server_version\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"ServerInfo\"], baseName' = FName \"server_version\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType ServerInfo where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg ServerInfo where
+  textPut msg
+   = do
+       P'.tellT "node" (node msg)
+       P'.tellT "server_version" (server_version msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'node, parse'server_version]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'node
+         = P'.try
+            (do
+               v <- P'.getT "node"
+               Prelude'.return (\ o -> o{node = v}))
+        parse'server_version
+         = P'.try
+            (do
+               v <- P'.getT "server_version"
+               Prelude'.return (\ o -> o{server_version = v}))
diff --git a/src/Network/Riak/Protocol/SetBucketRequest.hs b/src/Network/Riak/Protocol/SetBucketRequest.hs
--- a/src/Network/Riak/Protocol/SetBucketRequest.hs
+++ b/src/Network/Riak/Protocol/SetBucketRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.SetBucketRequest (SetBucketRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -8,7 +8,7 @@
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Network.Riak.Protocol.BucketProps as Protocol (BucketProps)
  
-data SetBucketRequest = SetBucketRequest{bucket :: !P'.ByteString, props :: !Protocol.BucketProps}
+data SetBucketRequest = SetBucketRequest{bucket :: !(P'.ByteString), props :: !(Protocol.BucketProps)}
                       deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable SetBucketRequest where
@@ -60,3 +60,28 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.SetBucketRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"SetBucketRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"SetBucketRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SetBucketRequest.bucket\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SetBucketRequest\"], baseName' = FName \"bucket\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SetBucketRequest.props\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SetBucketRequest\"], baseName' = FName \"props\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Protocol.BucketProps\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"BucketProps\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType SetBucketRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg SetBucketRequest where
+  textPut msg
+   = do
+       P'.tellT "bucket" (bucket msg)
+       P'.tellT "props" (props msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'bucket, parse'props]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'bucket
+         = P'.try
+            (do
+               v <- P'.getT "bucket"
+               Prelude'.return (\ o -> o{bucket = v}))
+        parse'props
+         = P'.try
+            (do
+               v <- P'.getT "props"
+               Prelude'.return (\ o -> o{props = v}))
diff --git a/src/Network/Riak/Protocol/SetClientIDRequest.hs b/src/Network/Riak/Protocol/SetClientIDRequest.hs
--- a/src/Network/Riak/Protocol/SetClientIDRequest.hs
+++ b/src/Network/Riak/Protocol/SetClientIDRequest.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Network.Riak.Protocol.SetClientIDRequest (SetClientIDRequest(..)) where
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
@@ -7,7 +7,7 @@
 import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
-data SetClientIDRequest = SetClientIDRequest{client_id :: !P'.ByteString}
+data SetClientIDRequest = SetClientIDRequest{client_id :: !(P'.ByteString)}
                         deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable SetClientIDRequest where
@@ -56,3 +56,22 @@
   reflectDescriptorInfo _
    = Prelude'.read
       "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Protocol.SetClientIDRequest\", haskellPrefix = [MName \"Network\",MName \"Riak\"], parentModule = [MName \"Protocol\"], baseName = MName \"SetClientIDRequest\"}, descFilePath = [\"Network\",\"Riak\",\"Protocol\",\"SetClientIDRequest.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Protocol.SetClientIDRequest.client_id\", haskellPrefix' = [MName \"Network\",MName \"Riak\"], parentModule' = [MName \"Protocol\",MName \"SetClientIDRequest\"], baseName' = FName \"client_id\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 12}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ 
+instance P'.TextType SetClientIDRequest where
+  tellT = P'.tellSubMessage
+  getT = P'.getSubMessage
+ 
+instance P'.TextMsg SetClientIDRequest where
+  textPut msg
+   = do
+       P'.tellT "client_id" (client_id msg)
+  textGet
+   = do
+       mods <- P'.sepEndBy (P'.choice [parse'client_id]) P'.spaces
+       Prelude'.return (Prelude'.foldl (\ v f -> f v) P'.defaultValue mods)
+    where
+        parse'client_id
+         = P'.try
+            (do
+               v <- P'.getT "client_id"
+               Prelude'.return (\ o -> o{client_id = v}))
